Notes et transcriptions du cours “Défis et enjeux de la cybersécurité” proposé par l' UBS1) sur la plateforme FUN MOOC.
Comme précisé précédemment dans le cours, les évènements de sécurité sont utilisés par le SIEM afin de connaître l’activité du périmètre à sécuriser. Plus concrètement, ce sont des logs qui sont envoyés au SIEM.
Les logs permettent à des processus s’exécutant sur un serveur ou un poste utilisateur de tracer leur activité de manière chronologique. Cette activité sera enregistrée dans un fichier dédié : un fichier de logs. Un fichier de logs est un fichier texte contenant un ensemble de enregistrements. Ces fichiers de logs sont importants, ils permettent tout d’abord d’investiguer lorsque le fonctionnement nominal d’un processus est compromis. Les logs permettent de garder trace. D’un point de vue sécurité numérique, cela permet de connaître l’activité détaillée d’un processus durant son exécution. Finalement, grâce à ces informations, le SIEM dispose d’une vue à la fois macro et micro de son environnement. Macro au sens où il a connaissance de l’ensemble des systèmes monitorés et micro au sens où, pour chaque système, il a la capacité de surveiller précisément son activité.
Il existe de nombreux formats de logs qui dépendent majoritairement du processus qui va les générer. En revanche, vous retrouverez toujours dans un log un timestamp (horodatage) et un message. Le timestamp représente l’occurrence d’un évènement. Il est composé d’une date et d’une heure. Le contenu du message va, quant à lui, dépendre du type de processus générant le log. Par exemple, si vous prenez un fichier de log d’un serveur et que vous le comparez à un fichier de log du noyau de votre système d’exploitation, les messages seront fondamentalement différents.
Nous avons ici un exemple provenant de la documentation officielle du serveur web Apache.
192.168.103.3 - - [21/Jul/2023:11:55:23 +0200] "GET /lib/tpl/dokuwiki/images/button-dw.png HTTP/1.1" 200 398
Cet exemple représente un évènement que l’on peut retrouver dans un fichier de logs. Cet évènement nous donne les informations suivantes : une adresse IP spécifique a requêté le serveur web à telle date et à telle heure afin d’obtenir une ressource (button-dw.png). D’autres informations y sont présentées comme le code d’état renvoyé par le serveur (200) ou encore la version du protocole de communication utilisé HTTP/1.1.
Au sein d’un système, il faut retenir que la très grande majorité des activités peut être journalisée. A noter qu’un utilisateur peut faire le choix d’activer ou de désactiver la journalisation (logging) de ses processus.
Les processus s’exécutant en arrière-plan peuvent enregistrer leur activité au sein de fichiers de logs. Pour rappel, un processus s’exécutant en arrière-plan peut être initialement lancé par un utilisateur (par exemple, un serveur web) ou bien automatiquement par le système d’exploitation. Plus généralement, l’ensemble des logiciels et applications natifs ou non installés sur notre système peuvent logger leur activité. Le système d’exploitation peut également logger son activité.
Dans un fichier de log, on va pouvoir attribuer un niveau de sévérité (criticité) à chacun des évènements. Les plus utilisés sont les suivants :
D’autres niveaux de sévérité peuvent également être utilisés, comme FATAL qui permettra de signifier que le processus a été forcé de s’arrêter.
On retrouvera la majorité des fichiers de logs dans le dossier /var/log
. À noter que des processus, souvent non natifs peuvent enregistrer leur activité dans des emplacements différents.
Dans /var/log
, on retrouvera principalement deux types de fichiers de logs :
Finalement, sur Linux, on peut si on le souhaite limiter la taille des fichiers de logs. Pour cela, on utilise l’utilitaire “logrotate” via son fichier de configuration /etc/logrotate.conf
. Ainsi, pour les processus concernés, à chaque fois que la taille maximale est atteinte, un nouveau fichier de log est créé dont le nom est composé du niveau d’incrément ([nomFichierLog1].log, [nomFichierLog2].log, etc.).
Cette diapositive permet de rappeler que tout type de serveur peut journaliser son activité. Le deuxième screen met en évidence des logs d’un firewall “pfsense”.
Qu’importe le système d’exploitation, Windows ou Linux, pour une même activité, la signification du log est la même. Seuls son format et son contenu peuvent être différents. Sur Windows, on a l’habitude d’utiliser Event Viewer (l' Observateur d’évènements) afin de manipuler les logs.
L’observateur d’évènement est utilisé depuis 1993 au sein des systèmes d’exploitation Microsoft. On peut les retrouver via le path suivant : C:\Windows\System32\winevt\Logs
.
Les Logs Windows disposent de types de sévérité spécifiques comme « SuccessAudit » ou encore « FailureAudit ». Ces sévérités peuvent être par exemple utilisées afin de préciser le caractère réussi ou non d’une authentification à une session.