Connecteur OpenCTI – AbuseIPDB Blacklist

Connecteur OpenCTI

Bonjour à tous, aujourd’hui, je continue avec OpenCTI parce que je vous ai développé un petit connecteur OpenCTI. J’en ai un peu chié :’-) entre le python qui n’est pas ma tasse de thé et le fait que je démarre avec OpenCTI : je suis pas parti avec des bonus là…^^
Mais du coup je me dis que ca vaut le coup de vous partager un peu de ce que j’ai fait, car il y avait de bon trucs à apprendre notamment autour du format Stix.

L’environnement de development.

Alors c’est probablement la partie la plus simple au départ, il suffit quasiment de suivre le guide du projet il peut y avoir quelques subtilité pour déployer Python sur votre Windows avec VSCode et pip mais globalement ça ne se passe pas si mal.

Une fois votre environnement de dev en place, il faut :

  1. Forker le projet OpenCTI connectors sur votre Github
  2. Faire une branche dédié et basculer dessus
  3. Si comme moi vous créer un nouveau connecteur :
    1. Copier le répertoire template
    2. renommer quelques variables/chemin comme indiqué dans la doc.

Jusqu’ici tout va bien.

Le development

Alors la bonne nouvelle c’est comme il existe déjà plein de connecteurs, vous … Lire la suite

The percentage of small buckets… – Splunk

Bonjour à tous, aujourd’hui je vous partage un bug que j’ai rencontré avec un instance Splunk il y a quelques temps de ça. L’erreur en question était celle-ci : « The percentage of small buckets (40%) created over the last hour is high and exceeded the yellow thresholds (30%) for index« . J’ai mis un moment à la détricoter.

The percentage of small buckets (40%) created over the last hour is high and exceeded the yellow thresholds (30%) for index

Après quelques recherches (ici, là), j’ai fini par identifier la root-cause : des logs sui arriveraient avec « trop de retard » par rapport à leur date réelle d’émission. Ce délai forcait Splunk, qui range les données dans les Bucket de manière temporellement ordonnée, à recréer des bucket pour ces évènements car ceux correspondant à cette plage temporelle avaient été fermés.

A la recherche des logs pétés

A partir de mon erreur, je me lance donc dans le SPL ci-dessous et effectivement j’ai bien une des sources de logs qui arrivent avec des latences pas normales.

index=<monindex>
| eval latency=_indextime-_time
| stats min(latency),
max(latency),
avg(latency),
median(latency)
by index sourcetype host
| sort - "avg(latency)"
The percentage of small buckets (40%) created over the last hour is high and exceeded the yellow thresholds (30%) for index

Du coup j’ai gratté un peu sur l’hôte en question et il s’avère qu’on a régulièrement des grosses latence à l’indexation, à … Lire la suite

No Limit Secu – Les dix commandements du SIEM

No Limit Sécu

Bonjour à tous, alors pour commencer, je suis désolé je n’en ai toujours pas terminé avec mon gros projet. Ça pique, c’est long et ça me consomme un temps de dingue. En conséquence, le rythme normal des publications sur le site ne reprendra surement pas avant 2022. Pour autant, je ne chôme pas et pour vous faire patienter on vous a concocté avec l’équipe de NoLimitSécu un petit épisode sur les dix commandements du SIEM cet été.

Comme la dernière fois, c’est une super expérience avec Johanne, Hervé, Nicolas et Marc Frédéric et vous pouvez nous écouter ici :

https://www.nolimitsecu.fr/les-dix-commandements-du-siem/
(ou sur toutes les bonnes plateforme de musique comme Spotify, deezer, etc.)

Voilà donc, écoutez-nous ? j’espère que cet épisode sur les dix commandements du SIEM vous intéressera, il y en a certains d’entre vous que je n’ai pas revu depuis un certain temps, ça vous rappellera ma douce voix suave dans vos cages à miel :-p ? A minima j’espère que ça remettra quelques idées en place à certains, parce que la plupart des exemples dans ce n°334 du podcast ressemblent fortement à des personnages réels et ce n’est pas une coïncidence ! ^^

Et … Lire la suite

Transformer un tableau avec plusieurs colonnes dates en évènements

Salut à tous, aujourd’hui je voulais m’arrêter sur un cas d’utilisation « à la con 🙂 » de Splunk et plus exactement comment transformer un tableau avec plusieurs colonnes dates en évènements. Niveau contexte, on m’a demandé de suivre les status d’offenses (incident) d’un QRadar dans un Splunk (oui, je sais, ça à l’air con dit comme ça, juste… enfin bref cherchez pas…). Mais comme ce serait trop simple d’avoir des évènements « carrés » qui vous indique ouverture, fermeture, activité, etc. je n’avais à ma disposition que l’option des calls API Rest. Et comme on a beaucoup d’offenses, je ne peux pas non plus faire un fulldump et construire un lookup avec toutes mes offenses. Du coup dernière option jouable faire des exports réguliers des offenses ouvertes ou fermées. En gros, j’exporte mes données avec ces quelques lignes de PowerShell qui interrogent l’API QRadar au début de chaque heure :

function ConvertTo-UnixDateMs ($PSDate) {
        $epoch = [timezone]::CurrentTimeZone.ToLocalTime([datetime]'1/1/1970')
        return (New-TimeSpan -Start $epoch -End $PSDate).TotalSeconds * 1000
}

$start = ConvertTo-UnixDateMs -PSDate ([DateTime]::Today.AddHours($now.Hour - 1))
$end = $start + (2 * 3600 * 1000)

((Invoke-RestMethod ("$urlQradarapi"+"/siem/offenses%3Ffilter%3Dclose_time%20%3E%20"+"$start"+"%20and%20close_time%20%3C%20"+"$end"+"%20or%20start_time%20%3E%20"+"$start"+"%20and%20start_time%20%3C%20"+"$end") -Method GET -Headers @{Version=$apiversion;Accept='application/json';SEC=$apikey}) ConvertTo-Json -Depth 100  | Out-File ("$outoffensesfile") -Encoding utf8)

Et le … Lire la suite