Tutoriel QRadar AQL – Advanced Search 103

Bonjour à tous, aujourd’hui on termine avec ce tutoriel QRadar AQL le cycle sur le SIEM d’IBM. Dans les précédents tutos, on a vu le fonctionnement du langage de requêtes de QRadar : l’AQL, puis comment ce dernier interagit avec les différents composant de Qradar notamment via les mécanismes d’indexation, dans le but d’optimiser nos requêtes. Pour finir cette série, on va s’attarder sur les dernier gros éléments de logiciel : les offenses, rules et building block ; ainsi que les Reference data, l’API et les visualisations.

AQL : Advanced Quombat Langage ?

Les offenses

On va commencer ce tutoriel QRadar AQL en parlant dece qu’est une offense : c’est un incident qui est généré dès que les conditions d’une règle sont réunies. Dans le logiciel, l’importance d’une offense est caractérisée par sa magnitude. Une magnitude : comme pour les séismes, elle est basée sur ces trois paramètres :

  • Relevance : c’est la surface d’exposition ;
  • Credibility : taux de faux positif ; et
  • Severity : est-ce grave ou non.
Tutoriel QRadar AQL

Notez que c’est l’implémentation technique de l’offense qui alimente ces éléments, il faut donc faire attention à ne pas prendre leur valeur pour comptant car ce n’est pas nécessairement fait correctement selon les infra.… Lire la suite

Tutoriel QRadar AQL – Advanced Search 102

Bonjour à tous, aujourd’hui on continue le tutoriel QRadar AQL commencé la semaine dernière. Dans le précédent TP, on avait vu les principales notions du langage de requête de QRADAR, l’AQL (Ariel Query Langage). Cette fois on va se concentrer sur l’utilisation de ce langage dans l’infrastructure QRadar et tous les petits raffinements qui lui sont associés. Mais d’abord et dans ce Tutoriel QRadar AQL on va devoir s’intéresser au fonctionnement d’une infrastructure QRadar

Je l’indique de nouveau ce post c’est du « vrai taf » ça, du coup je profite de cette introduction pour remercier mon équipe à EDF qui m’autorise à republier ce travail… On lâche un pouce bleu pour EDF c’est pas systématique les boites sympas qui autorisent ça 🙂 ! The SOC needs you, tout ça tout ça, hein… :-).

AQL : Advanced Questions Level ?

Dans le précédent Tutoriel QRadar AQL, on avait vu les principales notions du langage de requête de QRADAR, l’AQL (Ariel Query Langage). Cette fois on va se concentrer sur l’utilisation de ce langage dans une infrastructure QRadar et tous les petits raffinements qui lui sont associés. Mais d’abord, on va devoir s’intéresser au fonctionnement d’une infra QRadar.

Un peu de vocabulaire

Dans … Lire la suite

Tutoriel QRadar AQL – Advanced Search 101

Bonjour à tous, aujourd’hui j’ai eu l’autorisation de vous repartager du boulot que j’ai réalisé en 2020 à mon taf. Du coup, on va se faire un Tutoriel QRadar AQL, logiciel d’IBM et son langage de recherche interne : cool non ? Je sais qu’ici je vous ai plutôt abonné chez la concurrence jusqu’ici mais ca ne fait jamais de mal de regarder l’herbe ailleurs, hein.

Et je l’indique ce post c’est du « vrai taf » ça, du coup je profite de cette introduction pour remercier mon équipe à EDF qui m’autorise à republier ce travail… On lâche un pouce bleu pour EDF c’est pas systématique les boites sympas qui autorisent ça 🙂 ! The SOC needs you, tout ça tout ça, hein… :-).

Bref c’est partie pour ce tutoriel QRadar AQL…

AQL : pour Acceptable Query Limit ?     

Ariel ?

L’AQL, pour Ariel Query Langage, est le langage de requête dans QRadar. La syntaxe ressemble beaucoup à du SQL, et ce qui est demandé dans le clickodrome via l’interface web de QRadar qui construit en fait des requêtes AQL. Chez la concurrence (qui a dit Splunk ?), ça s’appelle le SPL pour Search Processing Language.

Il faut garder en tête … 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