Amélioration de la sécurité des systèmes informatiques

Wazuh et Elastic Stack basic

 

 

 

Sous la direction de M. Hassan DIKI

Meet the Team

Snad

Oussama

Sabri

Sommaire

Introduction :

Dans le cadre de notre Projet de Fin d'Études nous nous sommes concentrés sur le renforcement de la sécurité des systèmes

informatiques

1.

2.

Critique de l'existant :

Après avoir analysé le système d'information de les sociétés  ,Nous avons identifié trois principales catégories de points faibles : la disponibilité, la supervision et la sécurité. Les société éprouve des difficultés à garantir un accès constant et fiable à son système.

3.

Problématique:

Dans cette optique, nous avons identifié la problématique suivante : Comment améliorer la détection et la prévention des incidents de sécurité informatique.

# whomai

Sommaire

Solution proposée :

Pour relever ces défis, nous avons opté pour l'implémentation de la solution open-source

Wazuh and Elastic Stack basic license

. En tant que système SIEM 

4.

5.

Objectifs du projet:

  • Introduction
  • conditions requises pour le téléchargement
  • Systèmes d'exploitation
  • les composants centraux de Wazuh et ELK 
  • Installer Wazuh avec Elastic Stack
# whomai

Méthodologie

  • Installation et configuration de l'infrastructure Wazuh en respectant les meilleures pratiques.
  • Déploiement des agents Wazuh sur les systèmes à surveiller.

6.

Sommaire

# whomai

Conclusion : La solution Wazuh renforcera la sécurité informatique de notre entreprise en détectant et prévenant les incidents de sécurité de manière proactive. Ce projet de PFE nous permettra d'approfondir nos connaissances en sécurité informatique et de protéger activement les systèmes et les données de l'entreprise

7.

  • Simulation une attaque

 

  • Activation de module de SCAN de vulnérabilités

 

  • Setup MAIL alertes

 

  • Détection des fichiers malveillants avec Wazuh et VirusTotal

6. 

Introduction

  • Le contexte de notre Projet de Fin d'Études (PFE) est la nécessité de renforcer la sécurité des systèmes informatiques au sein d'une entreprise.
  • Dans un monde de plus en plus connecté, les menaces et les attaques informatiques sont devenues une réalité préoccupante.
  • Afin de protéger les infrastructures informatiques et les données sensibles, il est essentiel de mettre en place des solutions de sécurité robustes et efficaces.
# CHAPTER 2

Critique de l'existant

Au cours de notre analyse du système d'information de les sociétés, nous avons identifié des points faibles

Difficultés à assurer un accès constant et fiable au système.

Manque d'outils de surveillance pour suivre les activités des utilisateurs et détecter les intrusions non autorisées.

Besoin d'attention pour améliorer la disponibilité, renforcer la supervision et assurer une meilleure sécurité du système d'information de les sociétés.

1

Gestion de logs décentralisée

2

Incapacité de bloquer plusieurs types d’intrusions

3

Absence d'un moyen pour mesurer le niveau de sécurité du SI

5

Manque de maturité de la sécurité

4

Absence d’outils de supervision

6

 

 

Vue limitée des activités de sécurité, difficulté à repérer les comportements suspects 

Problématique

# PRESENTING CODE

- Absence d'installation d'une solution SIEM (Security Information and Event Management) dans les sociétés.

- Lacunes en matière de surveillance, de détection et de gestion des incidents de sécurité. -

- Vue limitée des activités de sécurité, difficulté à repérer les comportements suspects et réagir efficacement aux menaces. -

- Nécessité impérative de mettre en place une solution SIEM pour améliorer la sécurité et protéger le système d'information de les sociétés.

# cd alias rm

Solution proposé

Il est proposé de déployer un système de gestion d'informations et d'événements de sécurité appelé Wazzuh avec ELK basic   pour répondre aux problèmes mentionnés précédemment.

Ce système permettrait de gérer de manière centralisée les données provenant de divers outils de sécurité, de les stocker et de les traiter afin de faciliter la tâche des administrateurs dans l'administration et la gestion de la sécurité.

Objectifs du projet:

Mise en place de la solution Wazuh et elastic stack basic 

Wazuh est une plate-forme de sécurité open source qui intègre divers composants liés à la sécurité pour fournir des capacités de détection des menaces, d'analyse des journaux et de gestion de la conformité. Wazuh est conçu pour améliorer la surveillance de la sécurité, la détection des menaces et la réponse aux incidents dans les environnements informatiques.

  1. Introduction

2. conditions requises pour le téléchargement

Les besoins en termes de matériel sont étroitement liés au nombre de terminaux protégés et à la charge de travail dans la prod.

Ce nombre permet d'estimer la quantité de données qui seront analysées ainsi que le nombre d'alertes de sécurité qui seront stockées et indexées.

3.Systèmes d'exploitation

Pour l'installation des composants centraux de Wazuh, il est préférable d'utiliser un système d'exploitation Linux 64 bits. Wazuh recommande l'utilisation de l'une des versions suivantes du système d'exploitation 

4. ELK stack 

La pile ELK est un ensemble de logiciels open source largement utilisés pour la gestion et l'analyse des journaux (logs) et des données volumineuses. ELK est un acronyme pour Elasticsearch, Logstash et Kibana, les trois composants principaux de cette pile.

5.Installer Wazuh avec Elastic Stack

Le Wazuh Manager : est le composant central de l'architecture Wazuh. Il collecte et analyse les événements de sécurité à partir de différentes sources de données, y compris les journaux, les alertes et les événements système.

Agents Wazuh : les agents Wazuh sont des composants logiciels légers installés sur des hôtes surveillés. Ils collectent les logs système et applicatif, les transmettent au Wazuh Manager pour analyse.

 L'application Wazuh :  est un plugin Kibana qui fournit une interface conviviale pour visualiser et analyser les événements de sécurité collectés par Wazuh. Il propose des tableaux de bord, des rapports et des fonctionnalités de recherche prédéfinis pour explorer et enquêter sur les incidents de sécurité.

Wazuh Elasticsearch : Wazuh s'intègre à Elasticsearch, un puissant moteur de recherche et d'analyse, pour stocker et indexer les événements de sécurité. Elasticsearch permet une recherche, un filtrage et une agrégation rapides et efficaces des données de sécurité, ce qui facilite la détection et l'investigation des menaces de sécurité.

All-in-one deployment

Le serveur Wazuh et Elastic Stack sont installés sur le même hôte. Ce type de déploiement est approprié pour les tests et les petits environnements de travail.

Les composants suivants seront installés :

Le serveur Wazuh, y compris le gestionnaire Wazuh en tant que cluster à nœud unique, et Filebeat.

Elastic Stack, y compris Elasticsearch en tant que cluster à nœud unique, et Kibana, y compris le plug-in Wazuh Kibana.

La communication est cryptée à l'aide de certificats.

# CHAPTER 2

Méthodologie 

Pour assurer la sécurité de l'entreprise, nous suivrons une méthodologie en plusieurs étapes.

ont a utilisée All-in-one deployment 

c'est la meilleur solution pour répondre au besoins 

apt-get install apt-transport-https zip unzip lsb-release curl gnupg
# PRESENTING CODE

Certains packages supplémentaires sont nécessaires pour l'installation, tels que curl ou unzip, qui seront utilisés dans les étapes suivantes.

Installer Elasticsearch

curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch |
gpg --no-default-keyring 
--keyring gnupg-ring:/usr/share/keyrings/elasticsearch.gpg
--import && chmod 644 /usr/share/keyrings/elasticsearch.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch.gpg] 
https://artifacts.elastic.co/packages/7.x/apt stable main" |
tee /etc/apt/sources.list.d/elastic-7.x.list
# PRESENTING CODE

Ajoutez le repository

Mettez à jour les informations sur le package 

apt-get update
apt-get install elasticsearch=7.17.9
# PRESENTING CODE

Installez le package Elasticsearch :

Téléchargez le fichier de configuration /etc/elasticsearch/elasticsearch.yml comme suit :

curl -so /etc/elasticsearch/elasticsearch.yml 
https://packages.wazuh.com/4.4/tpl/elastic-basic
/elasticsearch_all_in_one.yml
curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.4/tpl/elastic-basic/instances_aio.yml
# PRESENTING CODE

Télécharger le fichier de configuration pour créer les certificats

Dans les étapes suivantes, un fichier contenant un dossier nommé d'après l'instance définie ici sera créé. Ce dossier contiendra les certificats et les clés nécessaires pour communiquer avec le nœud Elasticsearch en utilisant SSL.

/usr/share/elasticsearch/bin/elasticsearch-certutil 
cert ca --pem --in instances.yml --keep-ca-key 
--out ~/certs.zip
# PRESENTING CODE

Les certificats peuvent être créés à l'aide de l'outil elasticsearch-certutil

Extrayez le fichier certs.zip généré à l'étape précédente.

unzip ~/certs.zip -d ~/certs
mkdir /etc/elasticsearch/certs/ca -p
cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/
chown -R elasticsearch: /etc/elasticsearch/certs
chmod -R 500 /etc/elasticsearch/certs
chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.*
rm -rf ~/certs/ ~/certs.zip
# wa hasssann

L'étape suivante consiste à créer le répertoire /etc/elasticsearch/certs, puis à y copier le fichier CA, le certificat et la clé :

Activer et démarrer le service Elasticsearch

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

Modifier le fichier de configuration de elasticsearch 

systemctl restart elasticsearch
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
# PRESENTING CODE

Générez des informations d'identification pour tous les rôles et utilisateurs prédéfinis de la Suite Elastic

curl -XGET https://192.168.21.130:9200 -u elastic:YaIlvmcXVAv0HBAqD66v -k
# PRESENTING CODE

Pour vérifier que l'installation s'est bien déroulée

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH |
gpg --no-default-keyring --keyring gnupg-ring:
/usr/share/keyrings/wazuh.gpg --import && chmod 644 
/usr/share/keyrings/wazuh.gpg
# PRESENTING CODE

Installation du serveur Wazuh

Ajouter le repository

echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg]
https://packages.wazuh.com/4.x/apt/ stable main" |
tee -a /etc/apt/sources.list.d/wazuh.list
apt-get update
# PRESENTING CODE

Mettre à jour les informations du package

apt-get install wazuh-manager
systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager
systemctl status wazuh-manager
apt-get install filebeat=7.17.9
# PRESENTING CODE

Installation de Filebeat

Filebeat est l'outil du serveur Wazuh qui transmet en toute sécurité les alertes et les événements archivés à Elasticsearch.

Installez le package Filebeat

Téléchargez le fichier de configuration Filebeat préconfiguré utilisé pour transmettre les alertes Wazuh à Elasticsearch

curl -so /etc/filebeat/filebeat.yml 
https://packages.wazuh.com/4.4/tpl/elastic-basic/
filebeat_all_in_one.yml
curl -so /etc/filebeat/wazuh-template.json 
https://raw.githubusercontent.com/wazuh/wazuh/4.4/
extensions/elasticsearch/7.x/wazuh-template.json
chmod go+r /etc/filebeat/wazuh-template.json
# PRESENTING CODE

Téléchargez le modèle d'alertes pour Elasticsearch

Téléchargez le module Wazuh pour Filebeat

curl -s https://packages.wazuh.com/4.x/filebeat/
wazuh-filebeat-0.2.tar.gz |
tar -xvz -C /usr/share/filebeat/module
# PRESENTING CODE

Editez le fichier /etc/filebeat/filebeat.yml

Copiez les certificats dans /etc/filebeat/certs/

cp -r /etc/elasticsearch/certs/ca/ /etc/filebeat/certs/
cp /etc/elasticsearch/certs/elasticsearch.crt 
/etc/filebeat/certs/filebeat.crt
cp /etc/elasticsearch/certs/elasticsearch.key 
/etc/filebeat/certs/filebeat.key
systemctl daemon-reload
systemctl enable filebeat
systemctl start filebeat
# PRESENTING CODE

Activez et démarrez le service Filebeat

Pour vous assurer que Filebeat a été installé avec succès, exécutez la commande suivante

filebeat test output
apt-get install kibana=7.17.9
# PRESENTING CODE

Kibana installation and configuration

Kibana est une interface Web flexible et intuitive pour l'exploration et la visualisation des événements et des archives stockés dans Elasticsearch.

Installer le package Kibana

mkdir /etc/kibana/certs/ca -p
cp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/
cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.key
cp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crt
chown -R kibana:kibana /etc/kibana/
chmod -R 500 /etc/kibana/certs
chmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.
# PRESENTING CODE

Copiez les certificats Elasticsearch dans le dossier de configuration de Kibana :

Téléchargez le fichier de configuration Kibana :

curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.4/tpl/
elastic-basic/kibana_all_in_one.yml
# PRESENTING CODE

Modifiez le fichier /etc/kibana/kibana.yml

Créez le répertoire /usr/share/kibana/data

mkdir /usr/share/kibana/data
chown -R kibana:kibana /usr/share/kibana
cd /usr/share/kibana
sudo -u kibana /usr/share/kibana/bin/kibana-plugin
install https://packages.wazuh.com/4.x/ui/kibana/
wazuh_kibana-4.4.4_7.17.9-1.zip
# PRESENTING CODE

Installez le plugin Wazuh Kibana. L'installation du plugin doit se faire depuis le home Kibana

Lier le socket de Kibana au port privilégié 443

setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node
systemctl daemon-reload
systemctl enable kibana
systemctl start kibana
# CHAPTER 2

Déploiement des agents Wazuh sur les systèmes à surveiller.

wazuh > Agent > Deploy new agent 

# CHAPTER 2

Réalisation des attaques par

bruteforce 

 

Password spraying sur WinRM est une technique utilisée pour tenter de se connecter à des Windows à l'aide de combinaisons de noms d'utilisateurs systèmes courants et de mots de passe courants.

# CHAPTER 2

Activation de module de SCAN de vulnérabilités

Wazuh utilise le module Vulnerability Detector pour identifier les vulnérabilités dans les applications et les systèmes d'exploitation exécutés sur les terminaux.

vulnérabilité-detector

 <vulnerability-detector>
    <enabled>yes</enabled>
    <interval>5m</interval>
    <min_full_scan_interval>6h</min_full_scan_interval>
    <run_on_start>yes</run_on_start>

    <!-- Ubuntu OS vulnerabilities -->
    <provider name="canonical">
      <enabled>yes</enabled>
      <os>trusty</os>
      <os>xenial</os>
      <os>bionic</os>
      <os>focal</os>
      <os>jammy</os>
      <update_interval>1h</update_interval>
    </provider>

    <!-- Debian OS vulnerabilities -->
    <provider name="debian">
      <enabled>yes</enabled>
      <os>buster</os>
      <os>bullseye</os>
      <update_interval>1h</update_interval>
    </provider>

    <!-- RedHat OS vulnerabilities -->
    <provider name="redhat">
      <enabled>yes</enabled>
      <os>5</os>
      <os>6</os>
      <os>7</os>
      <os>8</os>
      <os>9</os>
      <update_interval>1h</update_interval>
    </provider>

    <!-- Amazon Linux OS vulnerabilities -->
    <provider name="alas">
      <enabled>yes</enabled>
      <os>amazon-linux</os>
      <os>amazon-linux-2</os>
      <update_interval>1h</update_interval>
    </provider>

    <!-- SUSE OS vulnerabilities -->
    <provider name="suse">
      <enabled>yes</enabled>
      <os>11-server</os>
      <os>11-desktop</os>
      <os>12-server</os>
      <os>12-desktop</os>
      <os>15-server</os>
      <os>15-desktop</os>
      <update_interval>1h</update_interval>
    </provider>

    <!-- Arch OS vulnerabilities -->
    <provider name="arch">
      <enabled>yes</enabled>
      <update_interval>1h</update_interval>
    </provider>

    <!-- Windows OS vulnerabilities -->
    <provider name="msu">
      <enabled>yes</enabled>
      <update_interval>1h</update_interval>
    </provider>

    <!-- Aggregate vulnerabilities -->
    <provider name="nvd">
      <enabled>yes</enabled>
      <update_from_year>2010</update_from_year>
      <update_interval>1h</update_interval>
    </provider>
# PRESENTING CODE

Le serveur Wazuh crée automatiquement la base de données globale des vulnérabilités avec les données des référentiels suivants

https://canonical.com : utilisé pour extraire les CVE pour les distributions Ubuntu Linux.

https://www.redhat.com : utilisé pour extraire les CVE pour les distributions Red Hat et CentOS Linux.

https://www.debian.org : utilisé pour extraire les CVE des distributions Debian Linux.

https://security.archlinux.org : utilisé pour extraire les CVE des distributions Arch Linux.

https://nvd.nist.gov : utilisé pour extraire les CVE de la base de données nationale sur les vulnérabilités.

assurons que le mode est bien activée

Text

Text

# CHAPTER 2

Setup MAIL alertes

SMTP server with authentication

avec  POSTFIX

Les alertes par e-mail Wazuh ne prennent pas en charge les serveurs SMTP avec authentification tels que Gmail. Cependant, vous pouvez utiliser un serveur relais, comme Postfix, pour envoyer ces emails.

  • Postfix est un logiciel de serveur de messagerie électronique open-source largement utilisé.
  • Il a pour fonction d'acheminer et de livrer des e-mails sur des systèmes Linux et Unix.
  • Postfix est réputé pour sa fiabilité, ses performances et sa sécurité.
  • Il est couramment choisi comme solution de serveur de messagerie.
  • Postfix est compatible avec les protocoles SMTP, POP3 et IMAP.
apt-get update && apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
# PRESENTING CODE

install the required packages

Ajoutez ces lignes à /etc/postfix/main.cf pour configurer Postfix.

relayhost = [smtp.outlook.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
echo [smtp.outlook.com]:587 oussama.snad@outlook.com:De*****07 > /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
chmod 400 /etc/postfix/sasl_passwd
# PRESENTING CODE

Définissez l'adresse e-mail et le mot de passe de l'expéditeur.

Sécurisez notre fichier de base de données de mot de passe.

chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Redémarrez Postfix.

systemctl restart postfix
echo "Test mail from postfix" | mail -s "Test Postfix" -r "oussama.snad@outlook.com" oussama.snad@outlook.com
# PRESENTING CODE

tester la configuration

Configure email notifications in the Wazuh server /var/ossec/etc/ossec.conf

<global>
  <email_notification>yes</email_notification>
  <smtp_server>localhost</smtp_server>
  <email_from>oussama.snad@outlook.com</email_from>
  <email_notification>yes</email_notification>
  <email_to>oussama.snad@outlook.com</email_to>
</global>
<ossec_config>
  <alerts>
      <email_alert_level>10</email_alert_level>
  </alerts>
  ...
</ossec_config>
# PRESENTING CODE

Une fois que ce qui précède a été configuré, l'email_alert_level doit être défini sur le niveau d'alerte minimum qui déclenchera un e-mail. Par défaut, ce niveau est défini sur 12.

nano /var/ossec/etc/ossec.conf

  <alerts>
    <log_alert_level>10</log_alert_level>
    <email_alert_level>10</email_alert_level>
  </alerts>
  
    <email_alerts>
    <email_to>oussama.snad@outlook.com</email_to>
    <event_location>/log/secure$</event_location>
  </email_alerts>
  
  <email_alerts>
    <email_to>oussama.snad@outlook.com</email_to>
    <event_location>/192.168.21</event_location>
  </email_alerts>
  
  <email_alerts>
    <email_to>oussama.snad@outlook.com</email_to>
    <level>10</level>
  </email_alerts>

redémareez wazuh-manager

systemctl restart wazuh-manager

example de alert 

# CHAPTER 2

Détection des

malwares

avec

Wazuh et VirusTotal

obtenir une clé API VirusTotal.

Intégrez Wazuh Manager à VirusTotal

<!-- Wazuh VirusTotal Integration -->
  <integration>
    <name>virustotal</name>
    <api_key>10d6e17cbe4760b00db3f61c1dadef3df6b8e29a91b8b4638259bfb4ca783c2f</api_key>
    <group>syscheck</group>
    <alert_format>json</alert_format>
  </integration>

Intégrez Wazuh Manager à VirusTotal

systemctl restart wazuh-manager

Conclusion 

# PRESENTING CODE

La mise en place de la solution Wazuh permettra à notre entreprise de renforcer sa sécurité informatique en détectant et en prévenant les incidents de sécurité de manière proactive. Ce projet de PFE représente pour nous une opportunité unique d'approfondir nos connaissances en matière de sécurité informatique et de contribuer activement à la protection des systèmes et des données de l'entreprise.

Nous tenons à exprimer notre sincère gratitude envers nos formateurs, M. Hassan Diki, M. Zakaria IGRAMEN et Salah CHOUACH, pour leur soutien et leurs précieux conseils tout au long de ce projet et de notre formation. Leur motivation et leur accompagnement ont été d'une grande aide. Nous souhaitons également remercier chaleureusement Ziad Abalil, Ahmed Flah, Othmane Elguass et Nizar Zoubir pour leur contribution précieuse à la réalisation de ce travail. Leur implication a été inestimable.

Remerciement

Made with Slides.com