« LINUX:Wazuh-Actions préventives » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(20 versions intermédiaires par le même utilisateur non affichées)
Ligne 4 : Ligne 4 :
----
----
=But=
=But=
Jusqu'ici nous avons traité de l'aspect des actions immédiates à toute attaque. Wazuh dispose de divers autres modules ayant une action préventives. Ils tentent à repérer des problèmes potentiels de sécurité afin que nous puissions combler ces trous de sécurité.  
Jusqu'ici nous avons traité de l'aspect des actions immédiates à toute attaque. Wazuh dispose de divers autres modules ayant une action préventive. Ils tentent de repérer des problèmes potentiels de sécurité afin que nous puissions combler ces trous de sécurité.  




=SCA=
=[[LINUX:Wazuh-ROOTCHECK|ROOTCHECK]]=
Ce module a pour but d'analyser la configuration du système et de divers services au terme duquel un rapport est généré. Il se base sur des fichiers de tests. On peut en créer soi-même mais quelques uns sont fournis pour divers systèmes ou logiciels phares. Il joue un rôle semblable au logiciel "[[LINUX:Lynis|Lynis]]" vu dans un autre article.
Le module a pour tâche de repérer divers malwares. Il joue un rôle semblable au logiciel "[[LINUX:Rkhunter|Rkhunter]]" vu dans un autre article.




==Configuration==
=[[LINUX:Wazuh-SYSCHECK|SYSCHECK]]=
Cette configuration est incluse dans le fichier "/var/ossec/etc/ossec.conf".  
Ce module repère tout changement de taille et de contenu d'une vaste sélection de fichiers du système. Il joue un rôle semblable au logiciel "[[LINUX:Rkhunter|Rkhunter]]" vu dans un autre article.


Sur la machine où le service "wazuh-manager" s'exécute, cette configuration est placée dans ce fichier.


Sur les machines hébergeant l'agent distant, la configuration peut être contenue dans le fichier du même nom mais il est plus pratique de transmettre cette configuration via le système de partage vu précédemment. Dans le cas du partage par défaut, sur la machine Manager, ce fichier se nomme '''"/var/ossec/etc/shared/default/agent.conf"''' et sur l'agent distant, il se trouve sous le nom '''"/var/ossec/etc/default/agent.conf"'''.
=[[LINUX:Wazuh-SCA|SCA]]=
 
Ce module a pour but d'analyser la configuration du système et de divers services au terme duquel un rapport est généré. Il se base sur des fichiers de contrôles en se basant sur diverses règles. On peut en créer soi-même mais quelques uns sont fournis pour divers systèmes ou logiciels phares. Il joue un rôle semblable au logiciel "[[LINUX:Lynis|Lynis]]" vu dans un autre article.
De plus dans le cas de partage de configuration "SCA", il est requit d'ajouter sur l'agent distant une option qui permet d'activer ce module. Celle-ci est à mettre dans le fichier ''''"/var/ossec/etc/local_internal_options.conf"''' comme conseillé précédemment.
----
sca.remote_commands=1
----
 
 
La configuration est comprise entre les balises '''<nowiki><sca></nowiki>''' et '''<nowiki></sca></nowiki>'''.  
 
Voici une configuration de base:
----
  <sca>
    <enabled>yes</enabled>
    <scan_on_start>no</scan_on_start>
    <interval>12h</interval>
    <skip_nfs>yes</skip_nfs>
  </sca>
----
Explication des options:
* enabled: active le module
* scan_on_start: lance le traitement dès le lancement du service
* interval: définit l'intervalle entre le lancement de deux traitements; ici 12h
* skip_nfs: le traitement évite les partitions NFS




==Policies==
=[[LINUX:Wazuh-SYSCOLLECTOR|SYSCOLLECTOR]]=
L'ensemble des règles de contrôles des configurations sur système globalement sont reprises sous format YAML dans des fichiers ayant l'extension "yml".  
Ce module récolte les informations globales du système comme les logiciels installés, le matériel présent, les interfaces réseaux, les ports réseaux, les processus. Il est actif sur tous les agents local et distants. Ces informations sont centralisées auprès de la machine manager. Elles y seront analysées par le module VULNERABILITY-DETECTOR.




Un ensemble de fichiers de ces règles toutes faites se retrouvent dans le répertoire "/var/ossec/ruleset/sca". Chaque fichier reprend les règles pour un thème donné. Par exemple le fichier "cis_apache_24.yml" est dédié au service WEB Apache de version 2.4 et le fichier "cis_rhel8_linux.yml" est dédié au système Linux de la distribution RedHat Entreprise version 8. Par défaut, tous les fichiers de ce répertoire ayant l'extension "yml" seront traités. Sous Fedora, tous les fichiers sont désactivés car ils portent l'extension "yml.disabled" sauf un, le fichier "cis_rhel8_linux.yml".
=[[LINUX:Wazuh-VULNERABILITY-DETECTEUR|VULNERABILITY-DETECTEUR]]=
Sur la machine manager, les informations récoltées récoltées et reçues par le module SYSCOLLECTOR, sont analysées afin d'y repérer des risques d'attaques.




Malheureusement à chaque mise à jour, le contenu de ce répertoire est réinitialisé. Or il faudra d'une part renommer les fichiers désirés, adapter un peu leur contenu et d'autre part ils devront être transférés vers les agents distants.
=[[LINUX:Wazuh-VULNERABILITY-DETECTOR|VULNERABILITY-DETECTOR]]=
Dans la nouvelle version, cette option a été revue et renommée [[LINUX:Wazuh-VULNERABILITY-DETECTEUR|VULNERABILITY-DETECTEUR]] et n'est donc plus disponible sous ce nom.


Pour pallier à ces limitations, nous avons opté pour l'utilisation du système de partage. Nous allons mettre les fichiers retenus dans le répertoire '''"/var/ossec/etc/shared/default"''' sur la machine manager après les avoir renommés avec l'extension "yml". Ces fichiers seront transférés automatiquement dans le répertoire '''"/var/ossec/etc/default"'''. Mais il faut ensuite signaler au module "SCA" où les trouver.


Nous avons retenu les fichiers:
=OSQUERY=
* cis_apache_24.yml
Ce module est désactivé par défaut sur le manager et sur les agents distants. Il fait appel à un logiciel tiers.
* cis_mysql5-6_community.yml
* cis_rhel8_linux.yml
* cis_rhel9_linux.yml
* sca_unix_audit.yml
* web_vulnerabilities.yml
Les noms des fichiers sont assez explicites pour devoir les expliquer.


Sur la machine manager, la configuration est amendée comme suit:
Voici la configuration du manager dans le fichier "/var/ossec/etc/ossec.conf" et du fichier "/var/ossec/etc/shared/default/agent.conf" transmis aux agents distants:
----
----
   <sca>
   <wodle name="osquery">
    <enabled>yes</enabled>
     <disabled>yes</disabled>
    <scan_on_start>no</scan_on_start>
   </wodle>
    <interval>12h</interval>
     <skip_nfs>yes</skip_nfs>
    '''<policies>'''
    '''<policy>etc/shared/default/cis_apache_24.yml</policy>'''
    '''<policy>etc/shared/default/cis_mysql5-6_community.yml</policy>'''
    '''<policy>etc/shared/default/cis_rhel8_linux.yml</policy>'''
    '''<policy>etc/shared/default/cis_rhel9_linux.yml</policy>'''
    '''<policy>etc/shared/default/sca_unix_audit.yml</policy>'''
    '''<policy>etc/shared/default/web_vulnerabilities.yml</policy>'''
    '''<policy enabled="no">ruleset/sca/cis_rhel8_linux.yml</policy>'''
    '''</policies>'''
   </sca>
----
----
On remarque que le fichier "/var/ossec/ruleset/sca/cis_rhel8_linux.yml" est désactivé car son homologue "/var/ossec/etc/shared/default/cis_rhel8_linux.yml" devra être adapté pour être opérationnel et que le n° des règles seront en double et par ce fait, elles entreront en conflit entre elles.


Remarquons que le chemin de ces fichiers est relatif; en effet le chemin de base pour Wazuh est "/var/ossec".


=CIS-CAT=
Ce module est désactivé par défaut sur le manager et sur les agents distants. Il fait appel à un logiciel propriétaire tiers.


Dans le fichier de partage pour les agents '''"/var/ossec/etc/shared/default/agent.conf"''' sur la machine manager, la configuration devient:
Voici la configuration du manager dans le fichier "/var/ossec/etc/ossec.conf" et du fichier "/var/ossec/etc/shared/default/agent.conf" transmis aux agents distants:
----
----
   <sca>
   <wodle name="cis-cat">
    <enabled>yes</enabled>
     <disabled>yes</disabled>
    <scan_on_start>no</scan_on_start>
  </wodle>
    <interval>12h</interval>
     <skip_nfs>yes</skip_nfs>
    '''<policies>'''
    '''<policy>etc/shared/cis_apache_24.yml</policy>'''
    '''<policy>etc/shared/cis_mysql5-6_community.yml</policy>'''
    '''<policy>etc/shared/cis_rhel8_linux.yml</policy>'''
    '''<policy>etc/shared/cis_rhel9_linux.yml</policy>'''
    '''<policy>etc/shared/sca_unix_audit.yml</policy>'''
    '''<policy>etc/shared/web_vulnerabilities.yml</policy>'''
    '''<policy enabled="no">ruleset/sca/cis_rhel8_linux.yml</policy>'''
    '''</policies>'''
  </sca>
----
----
Dans ce cas le chemin sera celui de la machine de l'agent distant "/var/ossec/etc/shared".
Dans notre cas, du côté des agents, ce sont toutes des machines Linux. Il est évident que si nous sommes en présence aussi de machines Windows, il faut ajouter un profil autre que le défaut adapté à Windows et lier les agents de ces machines à ce profil.
==Adaptation des policies==
Les principales modifications à effectuer concerne le nom des fichiers de configuration à analyser. La syntaxe YAML est facilement compréhensible. Les modifications sont faciles.
Quelques exemples:
* Le fichier "cis_mysql5-6_community.yml" est adapté à MySql or nous utilisons MariaDB. Les fichiers de configuration sont similaires mais leurs noms et le répertoire sont différents.
* Nous avons ajouté un second service SSH spécial pour les sauvegardes avec un fichier de configuration spécifique; ce second fichier doit être ajouté.
* Les fichiers de configurations du service WEB Apache, on été découpés et organisés dans des répertoires par nom de domaine et protocoles pour une question de lisibilité. Le dossier contenant les sources des sites WEB a été déplacé pour une question de place et n'est plus dans le répertoire "/var/www".
Enfin les fichiers de règles concernant un OS et une distribution spécifique contiennent des vérifications sur ces deux informations. Nous utilisons la distribution de Linux Fedora (versions 36 et 37) appartenant à l'ensemble des distributions sous l'égide de RedHat. Or les fichiers "cis_rhel8_linux.yml" et "cis_rhel9_linux.yml" n'acceptent pas Fedora. Nous allons donc ajouter deux règles.
Sous la section "requirements" et la sous-section "rules" du fichier "cis_rhel8_linux.yml", nous avons quelques règles qui nous serviront de base.
Voici le contenu de cette section:
----
requirements:
  title: "Check RHEL8 family platform"
  description: "Requirements for running the policy against RHEL 8 family."
  condition: any
  rules:
    - 'f:/etc/redhat-release -> r:^Red Hat Enterprise Linux && r:release 8'
    - 'f:/etc/redhat-release -> r:^Cloud && r:release 8'
    - 'f:/etc/redhat-release -> r:^Oracle && r:release 8'
    - 'f:/etc/redhat-release -> r:^Better && r:release 8'
    - 'f:/etc/redhat-release -> r:^OpenVZ && r:release 8'
----
Nous ajoutons vers la ligne 31, les deux lignes suivantes précédées d'une ligne de commentaire pour repérer facilement les modifications apportées:
----
# ADB
    - 'f:/etc/redhat-release -> r:^Fedora && r:release 36'
    - 'f:/etc/redhat-release -> r:^Fedora && r:release 37'
----
Ces règles analysent le fichier ("f") "/etc/redhat-release".
Par exemple, le contenu de ce fichier sous Fedora 37 est:
----
Fedora release 37 (Thirty Seven)
----
Ce fichier doit commencer par le mot "Fedora" relatif à la distribution et doit contenir "release 36" ou "release 37" pour les versions actuellement présentes. Les autres règles peuvent être mises en commentaire.
==Vérification==
Pour une exécution rapide pour test, modifiez dans le fichier de configuration la ligne "<scan_on_start>yes</scan_on_start>" et redémarrons le service.
En premier lieu, suivez l'exécution du module "SCA" dans le fichier journal "/var/ossec/logs/ossec.log". Repérez toute erreur et y remédier. Voici un extrait du journal:
----
2022/11/21 16:35:39 sca: INFO: Module started.
2022/11/21 16:35:39 sca: INFO: Policy '/var/ossec/ruleset/sca/cis_rhel8_linux.yml' disabled by configuration.
2022/11/21 16:35:39 sca: INFO: Loaded policy '/var/ossec/etc/shared/cis_apache_24.yml'
2022/11/21 16:35:39 sca: INFO: Loaded policy '/var/ossec/etc/shared/sca_unix_audit.yml'
2022/11/21 16:35:39 sca: INFO: Loaded policy '/var/ossec/etc/shared/cis_rhel8_linux.yml'
2022/11/21 16:35:39 sca: INFO: Loaded policy '/var/ossec/etc/shared/cis_rhel9_linux.yml'
2022/11/21 16:35:39 sca: INFO: Loaded policy '/var/ossec/etc/shared/cis_mysql5-6_community.yml'
2022/11/21 16:35:39 sca: INFO: Loaded policy '/var/ossec/etc/shared/web_vulnerabilities.yml'
2022/11/22 04:35:39 sca: INFO: Starting Security Configuration Assessment scan.
2022/11/22 04:35:39 sca: INFO: Starting evaluation of policy: '/var/ossec/etc/shared/cis_apache_24.yml'
2022/11/22 04:35:43 sca: INFO: Evaluation finished for policy '/var/ossec/etc/shared/cis_apache_24.yml'
2022/11/22 04:35:43 sca: INFO: Starting evaluation of policy: '/var/ossec/etc/shared/sca_unix_audit.yml'
2022/11/22 04:35:46 sca: INFO: Evaluation finished for policy '/var/ossec/etc/shared/sca_unix_audit.yml'
2022/11/22 04:35:46 sca: INFO: Starting evaluation of policy: '/var/ossec/etc/shared/cis_rhel8_linux.yml'
2022/11/22 04:38:26 sca: INFO: Evaluation finished for policy '/var/ossec/etc/shared/cis_rhel8_linux.yml'
2022/11/22 04:38:27 sca: INFO: Starting evaluation of policy: '/var/ossec/etc/shared/cis_rhel9_linux.yml'
2022/11/22 04:39:53 sca: INFO: Evaluation finished for policy '/var/ossec/etc/shared/cis_rhel9_linux.yml'
2022/11/22 04:40:02 sca: INFO: Starting evaluation of policy: '/var/ossec/etc/shared/cis_mysql5-6_community.yml'
2022/11/22 04:40:05 sca: INFO: Evaluation finished for policy '/var/ossec/etc/shared/cis_mysql5-6_community.yml'
2022/11/22 04:40:05 sca: INFO: Starting evaluation of policy: '/var/ossec/etc/shared/web_vulnerabilities.yml'
2022/11/22 04:40:30 sca: INFO: Evaluation finished for policy '/var/ossec/etc/shared/web_vulnerabilities.yml'
2022/11/22 04:40:30 sca: INFO: Security Configuration Assessment scan finished. Duration: 291 seconds.
----
Ensuite si vous avez activé la réception de mails, vous devrez recevoir un rapport succinct par analyse au format JSON.
Ces rapports sont aussi centralisés sur la machine manager dans les journaux d'alertes. Le fichier courant est "/var/ossec/logs/alerts/alerts.json". Ceci pour autant que les niveaux d'alerte soient supérieurs ou égaux à ceux définis dans le fichier de configuration entre les balises <alerts> et </alerts> comme vu précédemment.


Si vous avez installé le module WUI de Wazuh que nous verrons dans un autre article, vous pouvez voir le détail





Dernière version du 14 juillet 2024 à 11:51


retour à Wazuh: HIDS


But

Jusqu'ici nous avons traité de l'aspect des actions immédiates à toute attaque. Wazuh dispose de divers autres modules ayant une action préventive. Ils tentent de repérer des problèmes potentiels de sécurité afin que nous puissions combler ces trous de sécurité.


ROOTCHECK

Le module a pour tâche de repérer divers malwares. Il joue un rôle semblable au logiciel "Rkhunter" vu dans un autre article.


SYSCHECK

Ce module repère tout changement de taille et de contenu d'une vaste sélection de fichiers du système. Il joue un rôle semblable au logiciel "Rkhunter" vu dans un autre article.


SCA

Ce module a pour but d'analyser la configuration du système et de divers services au terme duquel un rapport est généré. Il se base sur des fichiers de contrôles en se basant sur diverses règles. On peut en créer soi-même mais quelques uns sont fournis pour divers systèmes ou logiciels phares. Il joue un rôle semblable au logiciel "Lynis" vu dans un autre article.


SYSCOLLECTOR

Ce module récolte les informations globales du système comme les logiciels installés, le matériel présent, les interfaces réseaux, les ports réseaux, les processus. Il est actif sur tous les agents local et distants. Ces informations sont centralisées auprès de la machine manager. Elles y seront analysées par le module VULNERABILITY-DETECTOR.


VULNERABILITY-DETECTEUR

Sur la machine manager, les informations récoltées récoltées et reçues par le module SYSCOLLECTOR, sont analysées afin d'y repérer des risques d'attaques.


VULNERABILITY-DETECTOR

Dans la nouvelle version, cette option a été revue et renommée VULNERABILITY-DETECTEUR et n'est donc plus disponible sous ce nom.


OSQUERY

Ce module est désactivé par défaut sur le manager et sur les agents distants. Il fait appel à un logiciel tiers.

Voici la configuration du manager dans le fichier "/var/ossec/etc/ossec.conf" et du fichier "/var/ossec/etc/shared/default/agent.conf" transmis aux agents distants:


 <wodle name="osquery">
   <disabled>yes</disabled>
 </wodle>


CIS-CAT

Ce module est désactivé par défaut sur le manager et sur les agents distants. Il fait appel à un logiciel propriétaire tiers.

Voici la configuration du manager dans le fichier "/var/ossec/etc/ossec.conf" et du fichier "/var/ossec/etc/shared/default/agent.conf" transmis aux agents distants:


 <wodle name="cis-cat">
   <disabled>yes</disabled>
 </wodle>




retour à Wazuh: HIDS