« LINUX:Wazuh-Décodeurs et Règles » : différence entre les versions

aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 461 : Ligne 461 :




=4<sup>ème</sup> cas=
Sur une machine, j'ai installé le logiciel Nagios, programme de surveillance du matériel et des services à travers le réseau. Sur cette machine existe un serveur de messagerir comprenant les protocoles POP3, POP3S, IMAP et IMPAPS au travers du logiciel DOVECOT. Ces services ont logiquement été mis sous surveillance à intervals réguliers. Dès ce moment, quatre alarmes de niveau 5 intempestives sont apparues et répétées régulièrement. Nous avons voulu remettre ces alarmes à un niveau 0. Deux approches sont présentées.




==Requête type du journal de la messagerir (Dovecot)==
Voici quatre exemples d'entrées dans le journal "/var/log/mail":
----
----
  Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>
  Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>
Ligne 474 : Ligne 478 :




==Evaluation==
Comme pour les cas précédents, nous allons utiliser la commande qui émet une alarme de niveau 5. Nous avons pris comme exemple la première ligne de l'extrait du journal:
/var/ossec/bin/wazuh-logtest
Résultat:
----
Starting wazuh-logtest v4.2.5
Type one log per line
&nbsp;
Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>
&nbsp;
**Phase 1: Completed pre-decoding.
        full event: 'Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>'
        timestamp: 'Mar  1 20:13:14'
        hostname: 'serverdb'
        program_name: 'dovecot'
**Phase 2: Completed decoding.
        name: 'dovecot'
        parent: 'dovecot'
**Phase 3: Completed filtering (rules).
        id: '9707'
        level: '5'
        description: 'Dovecot Aborted Login.'
        groups: '['dovecot', 'invalid_login']'
        firedtimes: '1'
        gdpr: '['IV_35.7.d', 'IV_32.2']'
        gpg13: '['7.1']'
        hipaa: '['164.312.b']'
        mail: 'True'
        nist_800_53: '['AU.14', 'AC.7']'
        pci_dss: '['10.2.4', '10.2.5']'
        tsc: '['CC6.1', 'CC6.8', 'CC7.2', 'CC7.3']'
**Alert to be generated.
----
C'est la règle n° 9707 qui est concernée.


/var/ossec/ruleset/rules/0155-dovecot_rules.xml
 
==Règle du logiciel==
Cette règle se retrouve dans le fichier "/var/ossec/ruleset/rules/0155-dovecot_rules.xml".
 
Voici un extrait:
----
----
  <group name="dovecot,">
  <group name="dovecot,">
Ligne 490 : Ligne 532 :
  </group>
  </group>
----
----
==1<sup>ère</sup> approche==
Pour cette première approche, nous avons utilisé la même méthode que dans les cas précédents; c'est à dire l'ajout d'une règle.
===Règle personnelle===
On va donc créer un fichier qui va contenir nos règles personnelles liées à la messagerie. On le nommera "/var/ossec/etc/rules/perso-mail_rules.xml". Le décodage ne nous fourni que peu d'information; seul le n° de règle activée (9707). Il ne nous reste que l'exploitation directe du message brut. Il nous faut désactiver cette alarme pour un émetteur et un récepteur bien précis au travers de leurs adresses IP. Cette partie du message qui correspond à ces critères est "rip=192.168.1.110, lip=192.168.1.110" ainsi que l'interrogation émise par Nagios ne tente pas d'effectuer une authentification ("Disconnected: Aborted login by logging out").
Voici cette règle:
/var/ossec/etc/rules/perso-mail_rules.xml
----
<group name="dovecot,">
  <rule id="100153" level="0">
    <if_sid>9707</if_sid>
    <match>rip=192.168.1.110, lip=192.168.1.110</match>
    <match>Disconnected: Aborted login by logging out</match>
    <description>Nagios-dovecot (ADB).</description>
  </rule>
</group>
----
===Validation===
On passe à l'étape évaluation. On lance la commande:
/var/ossec/bin/wazuh-logtest
Résultat:
----
Starting wazuh-logtest v4.2.5
Type one log per line
&nbsp;
Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>
&nbsp;
**Phase 1: Completed pre-decoding.
        full event: 'Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>'
        timestamp: 'Mar  1 20:13:14'
        hostname: 'serverdb'
        program_name: 'dovecot'
**Phase 2: Completed decoding.
        name: 'dovecot'
        parent: 'dovecot'
**Phase 3: Completed filtering (rules).
        id: '100153'
        level: '0'
        description: 'Nagios-dovecot (ADB).'
        groups: '['dovecot']'
        firedtimes: '1'
        mail: 'False'
----




Ligne 528 : Ligne 627 :
  </decoder>
  </decoder>
  &nbsp;
  &nbsp;
  <decoder name="dovecot-disconnect-adb">
  '''<decoder name="dovecot-disconnect-adb">
   <parent>dovecot</parent>
   <parent>dovecot</parent>
   <prematch offset="after_parent">^\w\w\w\w-login: Disconnected: Aborted login by logging out</prematch>
   <prematch offset="after_parent">^\w\w\w\w-login: Disconnected: Aborted login by logging out</prematch>
   <regex offset="after_prematch">user=\p>, rip=(\S+), lip=(\S+),\.</regex>
   <regex offset="after_prematch">user=\p>, rip=(\S+), lip=(\S+),\.</regex>
   <order>srcip, dstip</order>
   <order>srcip, dstip</order>
  </decoder>
  </decoder>'''
  &nbsp;
  &nbsp;
  <decoder name="dovecot-disconnect-user">
  <decoder name="dovecot-disconnect-user">
Ligne 554 : Ligne 653 :




/var/ossec/etc/rules/perso-mail_rules.xml
 
----
<group name="dovecot,">
  <rule id="100153" level="0">
    <if_sid>9707</if_sid>
    <match>rip=192.168.1.110, lip=192.168.1.110</match>
    <match>Disconnected: Aborted login by logging out</match>
    <description>Nagios-dovecot (ADB).</description>
  </rule>
</group>
----




Ligne 582 : Ligne 671 :




/var/ossec/bin/wazuh-logtest
----
Starting wazuh-logtest v4.2.5
Type one log per line
&nbsp;
Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>
&nbsp;
**Phase 1: Completed pre-decoding.
        full event: 'Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>'
        timestamp: 'Mar  1 20:13:14'
        hostname: 'serverdb'
        program_name: 'dovecot'
**Phase 2: Completed decoding.
        name: 'dovecot'
        parent: 'dovecot'
**Phase 3: Completed filtering (rules).
        id: '9707'
        level: '5'
        description: 'Dovecot Aborted Login.'
        groups: '['dovecot', 'invalid_login']'
        firedtimes: '1'
        gdpr: '['IV_35.7.d', 'IV_32.2']'
        gpg13: '['7.1']'
        hipaa: '['164.312.b']'
        mail: 'True'
        nist_800_53: '['AU.14', 'AC.7']'
        pci_dss: '['10.2.4', '10.2.5']'
        tsc: '['CC6.1', 'CC6.8', 'CC7.2', 'CC7.3']'
**Alert to be generated.
----




Ligne 618 : Ligne 677 :




/var/ossec/bin/wazuh-logtest
 
----
 
Starting wazuh-logtest v4.2.5
Type one log per line
&nbsp;
Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>
&nbsp;
**Phase 1: Completed pre-decoding.
        full event: 'Mar  1 20:13:14 serverdb dovecot[1034]: pop3-login: Disconnected: Aborted login by logging out (no auth attempts in 0 secs): user=<>, rip=192.168.1.110, lip=192.168.1.110, secured, session=<rKDy9CzZIsTAqAE8>'
        timestamp: 'Mar  1 20:13:14'
        hostname: 'serverdb'
        program_name: 'dovecot'
**Phase 2: Completed decoding.
        name: 'dovecot'
        parent: 'dovecot'
**Phase 3: Completed filtering (rules).
        id: '100153'
        level: '0'
        description: 'Nagios-dovecot (ADB).'
        groups: '['dovecot']'
        firedtimes: '1'
        mail: 'False'
----