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 que si … Lire la suite

Trouver l’emplacement d’un module PowerShell

emplacement d'un module PowerShell

Salut à tous, aujourd’hui encore une petite astuce de commande PowerShell pour trouver l’emplacement d’un module PowerShell. Récemment j’ai eu besoin de retrouver où était installé un module PowerShell sur un de nos serveurs.

Il faut savoir que les modules PowerShell ne sont ni plus ni moins qu’un fichier texte PowerShell (extension .psm1 au lieu de .ps1) avec le code source du module et un fichier .psd1 qui décrit le module (et allez voir par ici si vous voulez en savoir plus). Il faut placer ces fichiers dans des dossiers spécifiques pour que PowerShell les trouve (comme une variable d’environnement PATH quoi).

Donc 2 options : soit vous utilisez la commande native, la version des faibles :

Get-Module -listavailable | where-Object {$_.Name -match '<ModuleName'}

Sinon à la main, je vous propose une version oneliner « qui sert à rien » mais « parce que je peux le faire » :

$env:PSModulePath.Split(';') | foreach {Write-Host -ForegroundColor Yellow $_ ; If (Test-Path $_){Get-ChildItem -Path $_ | foreach {if($_.Name -match "<ModuleName"){Write-Host @($_.name+'-'+$_.FullName)}}}}

Les plus attentifs auront noté que je cherche dans ce second cas un nom de dossier, et pas un nom de module, dans les emplacements possibles pour un module … Lire la suite

Durée d’exécution de la dernière commande en PowerShell

Durée d'exécution de la dernière commande en PowerShell

Salut à tous, aujourd’hui je vous propose une brève sur la durée d’exécution de la dernière commande en PowerShell. C’est pas violent, mais pas plus tard que cette semaine je me suis retrouvé avec un vieux bout de script PowerShell « un peu moisi » à faire marcher en production et qui mettait plus de 12h à s’exécuter… quelques optimisations évidentes effectuées, j’en était toujours à plus de 8h (i.e ça débordait de mon temps de présence sur place) et j’ai oublié d’inclure dans les logs le temps de début et la fin d’exécution, ce qui fait que quand j’ai fini par réussir avec avoir une exécution qui se terminait en allant au bout, je ne savais pas combien de temps ça avait pris…^^

Il s’avère que PowerShell est toujours aussi sympa et vous conserve pour vous l’historique d’exécution, accessible via la commande Get-History, avec toutes les propriétés liées à l’exécution de chaque commande :

Du coup il m’a suffit de saisir la commande suivante pour récupérer la durée d’exécution de la dernière commande en PowerShell :

(Get-History)[-1].EndExecutionTime - (Get-History)[-1].StartExecutionTime 

Et voir que mon script prenait encore 10h pour s’exécuter. Pour le coup cela me suffisait puisqu’on m’en demandait … Lire la suite