Section outline

    • Les fichiers journaux (ou journaux) sont des fichiers utilisés par les ordinateurs pour enregistrer les événements. Les logiciels, les processus d'arrière-plan, les services ou les transactions entre les services, y compris le système d'exploitation lui-même, peuvent générer des événements. Les fichiers journaux dépendent de l'application qui les génère. C'est au développeur de l'application de se conformer aux conventions de dénomination des fichiers journaux. La documentation du logiciel devrait inclure des informations sur ses fichiers journaux. 


      Dans ce TD nous allons voir quels peuvent être les apports et les limites de l’Intelligence artificielle à travers 2 bots officiels proposés sur le site Poe.com, Code-Llama 34b et Claude_instant_100k.

    • Comme les fichiers journaux permettent essentiellement de suivre des événements spécifiques, le type d'informations stockées varie en fonction de l'application ou des services qui génèrent ces événements. 

      a. Examinez l'entrée de journal unique ci-dessous. Elle a été générée par Apache, un serveur web très utilisé. 

      [Wed Mar 22 11:23:12.207022 2017] [core:error] [pid 3548:tid 4682351596] [client 209.165.200.230] File does not exist: /var/www/apache/htdocs/favicon.ico 

      L'entrée de journal ci-dessus représente l'enregistreur d'événements web d'Apache. Quelques éléments d'information sont importants dans les transactions web, y compris l'adresse IP du client, les date et heure, ainsi que les détails de la transaction. L'entrée ci-dessus peut être divisée en cinq parties principales : 

      Horodatage : cette partie a été enregistrée lorsque l'événement a eu lieu. Il est très important de synchroniser correctement l'horloge du serveur, car cela permet de suivre et de relier les événements entre eux avec précision. 

      Type : il s'agit du type d'événement. Dans ce cas, il s'agissait d'une erreur. 

      PID : contient des informations sur l'ID de processus utilisé par Apache à ce moment. 

      Client : enregistre l'adresse IP du client à l'origine de la requête. 

      Description : contient une description de l'événement. 

      En vous basant sur l'entrée de journal ci-dessus, décrivez ce qui s'est passé.


      b. Examinez un autre exemple de fichier journal du serveur web est présenté ci-dessous : 

      83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash-monitorama-
      2013/images/kibana-search.png HTTP/1.1" 200 203023 
      "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 
      (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" 
      83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash-monitorama-
      2013/images/kibana-dashboard3.png HTTP/1.1" 200 171717 
      "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 
      (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36" 
      83.149.9.216 - - [04/Jan/2015:05:13:44 +0000] "GET /presentations/logstash-monitorama-
      2013/plugin/highlight/highlight.js HTTP/1.1" 200 26185 
      "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 
      (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) 
      Chrome/32.0.1700.77 Safari/537.36” <some output omitted> 

      De quoi s’agit-il ? Pour vous aider à répondre, interroger le bot Claude_instant_100k sur le site poe.com, en lui demandant une interprétation des logs du fichier fourni extrait log web.txt



    • N'importe quel logiciel peut inclure des fichiers journaux, y compris le système d'exploitation lui-même. Habituellement, Linux utilise le répertoire /var/log pour stocker les divers fichiers log, y compris les journaux du système d'exploitation. Les systèmes d'exploitation modernes sont des logiciels complexes et utilisent, par conséquent, plusieurs fichiers distincts pour enregistrer les événements. Cette section passe rapidement en revue le fichier /var/log/messages. Stocké dans /var/log, le fichier de messages contient divers événements système. Le branchement d'une nouvelle clé USB, la mise en disponibilité d'une carte réseau (enpXXsYY) et un nombre excessif de tentatives de connexion root qui ont échoué sont quelques exemples des événements enregistrés dans le fichier /var/log/messages. 

      a. La commande more a été utilisée pour afficher le contenu du fichier /var/log/messages et la commande sudo est requise, car le fichier de messages appartient à l'utilisateur root. 

      [analyst@secOps ~]$ sudo more /var/log/messages  
      [sudo] password for analyst:  
      Mar 20 08:34:38 secOps kernel: [6.149910] random: crng init done 
      Mar 20 08:34:40 secOps kernel: [8.280667] floppy0: no floppy controllers found 
      Mar 20 08:34:40 secOps kernel: [8.280724] work still pending 
      Mar 20 08:35:16 secOps kernel: [   44.414695] hrtimer: interrupt took 5346452 ns 
      Mar 20 14:28:29 secOps kernel: [21239.566409] pcnet32 0000:00:03.0 enp0s3: link down 
      Mar 20 14:28:33 secOps kernel: [21243.404646] pcnet32 0000:00:03.0 enp0s3: link up, 100Mbps, full-duplex 
      Mar 20 14:28:35 secOps kernel: [21245.536961] pcnet32 0000:00:03.0 enp0s3: link down 
      Mar 20 14:28:43 secOps kernel: [21253.427459] pcnet32 0000:00:03.0 enp0s3: link up, 100Mbps, full-duplex 
      Mar 20 14:28:53 secOps kernel: [21263.449480] pcnet32 0000:00:03.0 enp0s3: link down 
      Mar 20 14:28:57 secOps kernel: [21267.500152] pcnet32 0000:00:03.0 enp0s3: link up, 100Mbps, full-duplex 
      Mar 20 14:29:01 secOps kernel: [21271.551499] pcnet32 0000:00:03.0 enp0s3: link down 
      Mar 20 14:29:05 secOps kernel: [21275.389707] pcnet32 0000:00:03.0 enp0s3: link up, 100Mbps, full-duplex 
      Mar 22 06:01:40 secOps kernel: [0.000000] Linux version 4.8.12-2-ARCH 
      (builduser@andyrtr) (gcc version 6.2.1 20160830 (GCC) ) #1 SMP PREEMPT Fri Dec 2 20:41:47 CET 2016 
      Mar 22 06:01:40 secOps kernel: [0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' 
      <some output omitted> 

      Notez que les événements énumérés ci-dessus sont très différents des événements de serveur web. Comme le système d'exploitation lui-même génère ce journal, tous les événements enregistrés sont en relation avec le système d'exploitation lui-même. 

      b. Les fichiers journaux sont très importants pour le dépannage. Supposons qu'un utilisateur de ce système spécifique ait signalé que toutes les opérations de réseau étaient lentes vers 14 h 30. Les entrées de journal illustrées ci-dessus permettent-elles de prouver cet événement ?

      Expliquez votre réponse.  Là aussi vérifiez ce que propose le bot Claude_instant_100k (fichier fourni extrait log système.txt)

    • Les fichiers journaux peuvent être affichés avec de nombreux outils de présentation de texte. Alors que les commandes cat, more, less et nano peuvent être utilisées pour travailler avec des fichiers journaux, elles ne sont pas adaptées pour les surveiller en temps réel. Les développeurs ont conçu divers outils permettant de surveiller les fichiers journaux en temps réel. Certains outils sont basés sur du texte, tandis que d'autres ont une interface graphique. Ici on se focalise sur tail, un outil simple mais efficace, disponible dans pratiquement tous les systèmes Unix. 

      La commande tail affiche la fin d'un fichier texte. Par défaut, tail affiche les dix dernières lignes d'un fichier texte. 

      Utilisation de la commande tail pour afficher les 5 dernières lignes (option –n) du fichier /var/log/nginx/access.log. 

       [analyst@secOps ~]$ sudo tail -n 5 /var/log/nginx/access.log 
      127.0.0.1 - - [22/May/2017:11:20:27 -0400] "GET /favicon.ico HTTP/1.1" 404 
      169 "-" "Mozilla/5.0 (X11; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0" 
      127.0.0.1 - - [22/May/2017:12:49:26 -0400] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0" 
      127.0.0.1 - - [22/May/2017:12:49:50 -0400] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0" 
      127.0.0.1 - - [22/May/2017:12:49:53 -0400] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0" 
      127.0.0.1 - - [22/May/2017:13:01:55 -0400] "GET /favicon.ico HTTP/1.1" 404 
      169 "-" "Mozilla/5.0 (X11; Linux i686; rv:50.0) Gecko/20100101 Firefox/50.0" 
      [analyst@secOps ~]$


    • Les fichiers journaux sont extrêmement importants pour le dépannage. 

      Les horloges doivent toujours être synchronisées pour que tous les systèmes aient l'heure correcte. Si les horloges ne sont pas correctement définies, il est très difficile de retracer les événements. 

      Il est important de comprendre quand certains événements spécifiques ont eu lieu. De plus, les événements provenant de différentes sources sont souvent analysés en même temps. 



    • Dans ce TD nous allons voir quels peuvent être les apports et les limites de l’Intelligence artificielle à travers 2 bots officiels proposés sur le site Poe.com, Code-Llama 34b et Claude_instant_100k.

      Contrairement à ChatGPT, ils permettent de joindre des fichiers.


      a. Prise en main des outils et premières utilisations

      Nous partons d’un extrait de fichier de logs extrait de logs cliousclat.txt

      1. Travail à faire sur le bot Code-Llama 34b

      Posez successivement des questions sur :

      1. La mise en forme de tableau des logs du fichier joint

      2. L’interprétation des logs

      3. La détection d’anomalies dans ces logs pouvant signifier une attaque


      Analysez les résultats obtenus. Quels apports faits par ce bot ? Quelles limites ?

      1. Travail à faire sur le bot Claude_instant_100k 

      Posez les mêmes questions

      Avez-vous les mêmes réponses ? Là aussi analysez et concluez


      b. Adaptation à vos propres outils

      Vous avez configuré un serveur de logs sexilog pour centraliser les logs du PFSense et du contrôleur de domaine. 

      Utilisez un ou plusieurs filtres dans Sexilog pour sélectionner des logs pertinents. A vous de préciser ces filtres.

      Créer et exporter en fichier texte, un extrait d’une vingtaine de ligne de logs de chaque machine.

      Utilisez ces extraits dans les bots vus précédemment.

      Comparez et analyser la mise en forme de tableau fait par Sexilog et par les deux bots étudiés.

      Etudiez l’interprétation des logs faite par les bots

      Analysez et concluez.