Vous êtes sur la page 1sur 17

Sécurité avancée

- Laboratoire -
AIDE LMD et ClamAV
420-T10-SU

AIDE, LMD
ClamAV

Équipe des professeurs – réseau et sécurité

Juillet 2018

255 Crémazie Est, bureau 100, Montréal (Québec) H2M 1M2


Téléphone : (514) 842-2426, télécopieur : (514) 842-2084
www.isi-mtl.com
Table des matières
Introduction ............................................................................................................................................................................ 3
AIDE ..................................................................................................................................................................................... 3
Priorité des dépôts .............................................................................................................................................................. 5
La recherche de rootkit ....................................................................................................................................................... 7
INSTALLATION ................................................................................................................................................................. 7
UTILISATION .................................................................................................................................................................... 7
Linux Malware Detect (LMD) et ClamAV ............................................................................................................................ 8
LMD ................................................................................................................................................................................. 8
ClamAV .......................................................................................................................................................................... 11
Tester LMD et ClamAV ...................................................................................................................................................... 13
Monitoring mode .............................................................................................................................................................. 16

2|Page
Introduction
Afin de vous aider dans votre travail d'administrateur réseau, vous avez des outils qui peuvent vous aider.

AIDE
AIDE (Advanced Intrusion Detection Environment) est un vérificateur d'intégrité de fichiers et de répertoires.

Installez l'outil AIDE

# yum install aide

Si vous voulez voir les options pour AIDE

# aide --help

Le fichier de configuration de l’outil AIDE : /etc/aide.conf

Pour commencer il faut initialiser la base de données

# aide --init

Cette commande va prendre un certain temps, ne pas interrompre le processus.

La base de données initiale se nomme aide.db.new.gz et doit être renommé afin de permettre à AIDE
de fonctionner correctement

# cd /var/lib/aide

# ls

# mv aide.db.new.gz aide.db.gz

# ls

Effectuez un premier test. Durant le test. Ne faites aucune activité sur la machine

# aide --check

Cette commande va prendre un certain temps, ne pas interrompre le processus

3|Page
Faites des modifications et faites à nouveau le test:

# cd

# touch /etc/test.conf

# touch rootfile.txt

# mv anaconda-ks.cfg anaconda-ks.cfg_original

# aide --check

AIDE 0.15.1 found differences between database and filesystem!!


Start timestamp: 2017-02-12 15:15:20

Summary:
Total number of files: 48768
Added files: 3
Removed files: 1
Changed files: 0

---------------------------------------------------
Added files:
---------------------------------------------------

added: /etc/test.conf
added: /root/anaconda-ks.cfg_original
added: /root/rootfile.txt

---------------------------------------------------
Removed files:
---------------------------------------------------

removed: /root/anaconda-ks.cfg

Pour éviter qu’AIDE ne rapporte ces changements lors des prochains tests:

# aide --update

4|Page
Il faut ensuite renommer l’ancienne BD et la nouvelle qui a été créée. Remplacé <date> avec la date en
cours

# cd /var/lib/aide

# ls

# mv aide.db.gz aide.db.gz.<date>

# #mv aide.db.new.gz aide.db.gz

Remarque : On peut écrire un script qui renomme l’ancienne BD et fait des tests (--check)
automatiquement avec l’outil cron.

Priorité des dépôts


Installez le plugin nécessaire pour yum

# yum install yum-plugin-priorities

Afin prioriser le dépôt de base sur les autres dépôts, il faut ajouter la ligne priority=1 à chaque groupe

# vi /etc/yum.repos.d/CentOS-Base.repo

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
priority=1
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
priority=1

5|Page
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=up
dates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful


[extras]
priority=1
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=ex
tras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages


[centosplus]
priority=1
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=ce
ntosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Afin de prioriser le dépôt de base sur les autres dépôts, il faut ajouter la ligne priority=5 à chaque
groupe

# vi /etc/yum.repos.d/epel.repo

[epel]
priority=5
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
priority=5
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-
7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]

6|Page
priority=5
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-
7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
~

La recherche de rootkit
Rkhunter est un chasseur de rootkit pour les systèmes Linux.

INSTALLATION
Dans ce laboratoire, vous allez installer rkhunter via yum

Méthode avec le yum

Ajouter le dépôt (repository) EPEL (Extra Packages for Enterprise Linux)

# yum -y install epel-release

Installez en suite rkhunter

# yum -y install rkhunter

UTILISATION

Il faut mettre à jour les fichiers de données. Ces fichiers contiennent des informations que rkhunter
utilise pour déterminer si un fichier ou un comportement est suspect ou non. Il est essentiel de garder ces
fichiers à jour.

# rkhunter --update

Vérifiez si vous avez la dernière version de rkhunter sur votre VM

# rkhunter --version check

Il faut mettre aussi à jour la « baseline » de la propriété des fichiers pour que rkhunter puisse nous
avertir si les fichiers de configuration qui sont surveillés deviennent altérés. Cette commande permet de
prendre les valeurs actuelles et les enregistrer comme bonne valeurs connues.

7|Page
# rkhunter --propupd

Il reste ensuite à faire la vérification

# rkhunter --check

Une fois le scan complété, consultez le fichier log pour trouver la cause des avertissements

Avec un éditeur (VI, VIM, Nano)

# vi /var/log/rkhunter/rkhunter.log

Avec les commandes grep

# grep Warning /var/log/rkhunter/rkhunter.log

Linux Malware Detect (LMD) et ClamAV


Linux Malware Detect (LMD) est un détecteur de malware et un outil de balayage pour Linux.

LMD
Téléchargement de LMD ensuite décompressez le fichier

# cd /tmp

# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

# tar -xzvf maldetect-current.tar.gz

Déplacez-vous dans le répertoire nouvellement créé et exécutez le script d’installation

# cd maldetect*

# ./install.sh

Créer un lien symbolique vers le dossier /bin

# ln -s /usr/local/maldetect/maldet /bin/maldet

Il faut maintenant configurer LMD. Utilisez votre éditeur afin de modifier le fichier conf.maldet

8|Page
#vim /usr/local/maldetect/conf.maldet

9|Page
Nous avons besoin d’utiliser le moteur de ClamAV pour le balayage car il est plus performant pour
balayer sur de grands ensembles de fichiers. La valeur doit être à 1 sur la ligne 119

scan_clamscan="1"

Nous voulons aussi que les fichiers malveillants (malware) soientdéplacés en quarantaine
automatiquement durant le balayage. Changez la valeur à 1 sur la ligne 185

quarantine_hits="1"

Ensuite, il faut mettre la valeur à 1 à la ligne 190 pour activer les fichiers malveillant de type « string
based malware injections ».

quarantine_clean="1"

Enregistrer le fichier et sortir de l’éditeur de texte

10 | P a g e
ClamAV
Installer ClamAV

# yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav


clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

Créez ensuite un lien symbolique pour le fichier de configuration

# ln -s /etc/clamd.d/scan.conf /etc/clamd.conf

Il faut éditer le fichier de configuration pour la commande de mise à jour pour ClamAV avec votre
éditeur

# vi /etc/clamd.d/scan.conf

Avec votre éditeur, commentez la ligne 8

## Example config file for the Clam AV daemon


## Please read the clamd.conf(5) manual before editing this file.
##

# Comment or remove the line below.


#Example
# Path to the database directory.

Avec votre éditeur, enlever le commentaire à la ligne 93


# The daemon can work in local mode, network mode or both.
# Due to security reasons we recommend the local mode.

# Path to a local socket file the daemon will listen on.


# Default: disabled (must be specified by a user)
LocalSocket /var/run/clamd.scan/clamd.sock

Enregistrez et fermez le fichier de configuration

11 | P a g e
Activez et démarrez le clamAV, puis valider que le service est bien démarré

#systemctl start clamd@scan

#systemctl enable clamd@scan

#systemctl status clamd@scan

● clamd@scan.service - Generic clamav scanner daemon


Loaded: loaded (/usr/lib/systemd/system/clamd@scan.service; enabled; vendor
preset: disabled)
Active: active (running) since Fri 2017-02-03 12:38:00 EST; 12s ago
Main PID: 1931 (clamd)
CGroup: /system.slice/system-clamd.slice/clamd@scan.service
└─1931 /usr/sbin/clamd -c /etc/clamd.d/scan.conf --foreground=yes

Éditez le fichier de configuration

# vi /etc/freshclam.conf

Commentez la ligne 8 si ce n'est pas le cas


##
## Example config file for freshclam
## Please read the freshclam.conf(5) manual before editing this file.
##

# Comment or remove the line below.


#Example

# Path to the database directory.

Enregistrez et fermez le fichier de configuration

Vous pouvez maintenant mettre à jour ClamAV

# freshclam

12 | P a g e
Tester LMD et ClamAV
Les instructions qui suivent demandent l’utilisation du compte utilisateur robert que vous devez créer et du
compte root

Avec le compte root, vous devez créer un répertoire dans /home et y télécharger 3 fichiers malicieux

# mkdir /home/admin

# cd /home/admin

# wget http://centos.isimtl.local/t10/eicar.com.txt

# wget http://centos.isimtl.local/t10/eicar_com.zip

# wget http://centos.isimtl.local/t10/eicarcom2.zip

Faite la même procédure avec le compte de Robert. Assurez-vous de changer de compte pour celui de
robert et déplacez-vous dans son dossier par défaut.

[root@machine1 admin]# su robert

[robert@machine1 admin]$ cd

[robert@machine1~]$

Téléchargez les fichiers malicieux

# wget http://centos.isimtl.local/t10/eicar.com.txt

# wget http://centos.isimtl.local/t10/eicar_com.zip

# wget http://centos.isimtl.local/t10/eicarcom2.zip

Quittez la session de robert avec la commande exit

13 | P a g e
Faite un scan du dossier /home avec LMD et regarder les résultats du scan

# maldet -a /home

Linux Malware Detect v1.5


(C) 2002-2016, R-fx Networks <proj@rfxn.com>
(C) 2016, Ryan MacDonald <ryan@rfxn.com>
This program may be freely redistributed under the terms of the GNU GPL v2

maldet(2282): {scan} signatures loaded: 11294 (9343 MD5 / 1951 HEX / 0 USER)
maldet(2282): {scan} building file list for "/home", this might take awhile...
maldet(2282): {scan} setting nice scheduler priorities for all operations: cpunice
19 , ionice 6
maldet(2282): {scan} file list completed in 0s, found 44 files...
maldet(2282): {scan} found clamav binary at /usr/bin/clamscan, using clamav
scanner engine...
maldet(2282): {scan} scan of "/home" (44 files) in progress...
maldet(2282): {scan} processing scan results for hits: 3 hits 0 cleaned
maldet(2282): {scan} scan completed on "/home": files 44, malware hits 3, cleaned
hits 0, time 19s
maldet(2282): {scan} scan report saved, to view run: maldet --report 170203-
1427.2282

Regardez maintenant le rapport produit par LMD (attention d’utiliser le numéro de rapport qui
correspond à votre machine)

# maldet --report 170203-1427.2282

HOST: machine1.bluesky.local
SCAN ID: 170203-1427.2282
STARTED: Feb 3 2017 14:27:24 -0500
COMPLETED: Feb 3 2017 14:27:43 -0500
ELAPSED: 19s [find: 0s]

PATH: "/home"
TOTAL FILES: 44
TOTAL HITS: 3
TOTAL CLEANED: 0

FILE HIT LIST:


{HEX}EICAR.TEST.10 : /home/robert/eicar.com.txt =>
/usr/local/maldetect/quarantine/eicar.com.txt.258$
{HEX}EICAR.TEST.10 : /home/robert/eicar_com.zip =>
/usr/local/maldetect/quarantine/eicar_com.zip.261$
{HEX}EICAR.TEST.10 : /home/robert/eicarcom2.zip =>
/usr/local/maldetect/quarantine/eicarcom2.zip.239$
===============================================
Linux Malware Detect v1.5 < proj@rfxn.com >

Pour quitter le rapport, vous devez faire CTRL+X et ne pas enregistrer les modifications s’il vous le
demande.

14 | P a g e
Lancez maintenant un scan avec deux commande pour ClamAV sur le dossier /home

clamscan – balayage avec l’outil directement

# clamscan --recursive --infected /home

/home/admin/eicar.com.txt: Eicar-Test-Signature FOUND


/home/admin/eicar_com.zip: Eicar-Test-Signature FOUND
/home/admin/eicarcom2.zip: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------


Known viruses: 5732063
Engine version: 0.99.2
Scanned directories: 95
Scanned files: 59
Infected files: 3
Data scanned: 2.25 MB
Data read: 5.39 MB (ratio 0.42:1)
Time: 15.547 sec (0 m 15 s)

Clamdscan – scan via le service clamd

# clamdscan --fdpass /home

/home/admin/eicar.com.txt: Eicar-Test-Signature FOUND


/home/admin/eicar_com.zip: Eicar-Test-Signature FOUND
/home/admin/eicarcom2.zip: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------


Infected files: 3
Time: 0.030 sec (0 m 0 s)
[root@machine1 ~]# man clamdscan
You have new mail in /var/spool/mail/root
[root@machine1 ~]# clamdscan --fdpass /home
/home/admin/eicar.com.txt: Eicar-Test-Signature FOUND
/home/admin/eicar_com.zip: Eicar-Test-Signature FOUND
/home/admin/eicarcom2.zip: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------


Infected files: 3
Time: 0.102 sec (0 m 0 s)

Pourquoi est-ce que ClamAV voit les 3 fichiers malicieux dans le dossier /home/admin alors que LMD
ne l’a pas vu ?

Vous trouverez la réponse dans le fichier /usr/local/maldetect/conf.maldet dans la section située à la


ligne 147

# vi /usr/local/maldetect/conf.maldet

15 | P a g e
Monitoring mode
Installez inotify-tools à l’aide de yum

# clamscan --recursive --infected /home

1. Connectez-vous sur le router et ouvrez un terminal. Ensuite ouvrez une session SSH vers votre serveur

# ssh –l root <adresse de votre serveur>

Acceptez la clé de chiffrement et entrez le mot de passe pour le compte root

Exécutez LMD en mode surveillance

# maldet --monitor /home/robert/

Ensuite, ouvrez une session avec le compte de robert et assurer vous d'être dans le répertoire par
défaut.

$ cd

Téléchargez les fichiers eicar

# wget http://centos.isimtl.local/t10/eicar.com.txt

# wget http://centos.isimtl.local/t10/eicar_com.zip

# wget http://centos.isimtl.local/t10/eicarcom2.zip

16 | P a g e
2. Attendez quelques secondes, et regarder le contenu du dossier

$ ls

Le dossier devrait être vide

3. Sur la session ssh avec le compte root, regarder le journal event_log pour voir ce qui s’est passé

# tail -n 20 /usr/local/maldetect/logs/event_log

Feb 03 15:49:40 machine1 maldet(8025): {mon} warning clamd service not running;
force-set monitor mode file scanning to every 120s
Feb 03 15:49:52 machine1 maldet(8025): {mon} scanned 0 new/changed files with
clamav engine
Feb 03 15:51:53 machine1 maldet(8025): {mon} warning clamd service not running;
force-set monitor mode file scanning to every 120s
Feb 03 15:52:05 machine1 maldet(8025): {mon} scanned 0 new/changed files with
clamav engine
Feb 03 15:54:05 machine1 maldet(8025): {mon} warning clamd service not running;
force-set monitor mode file scanning to every 120s
Feb 03 15:54:17 machine1 maldet(8025): {mon} scanned 0 new/changed files with
clamav engine
Feb 03 15:56:18 machine1 maldet(8025): {mon} warning clamd service not running;
force-set monitor mode file scanning to every 120s
Feb 03 15:56:36 machine1 maldet(8025): {hit} malware hit {HEX}EICAR.TEST.10 found
for /home/robert/eicarcom2.zip
Feb 03 15:56:36 machine1 maldet(8025): {quar} malware quarantined from
'/home/robert/eicarcom2.zip' to
'/usr/local/maldetect/quarantine/eicarcom2.zip.307219138'
Feb 03 15:56:36 machine1 maldet(8025): {hit} malware hit {HEX}EICAR.TEST.10 found
for /home/robert/eicar.com.txt
Feb 03 15:56:36 machine1 maldet(8025): {quar} malware quarantined from
'/home/robert/eicar.com.txt' to
'/usr/local/maldetect/quarantine/eicar.com.txt.788723705'
Feb 03 15:56:36 machine1 maldet(8025): {hit} malware hit {HEX}EICAR.TEST.10 found
for /home/robert/eicar_com.zip
Feb 03 15:56:36 machine1 maldet(8025): {quar} malware quarantined from
'/home/robert/eicar_com.zip' to
'/usr/local/maldetect/quarantine/eicar_com.zip.2903722635'
Feb 03 15:56:36 machine1 maldet(8025): {mon} scanned 3 new/changed files with
clamav engine
Feb 03 15:58:36 machine1 maldet(8025): {mon} warning clamd service not running;
force-set monitor mode file scanning to every 120s
Feb 03 15:58:48 machine1 maldet(8025): {mon} scanned 3 new/changed files with
clamav engine
Feb 03 16:00:48 machine1 maldet(8025): {mon} warning clamd service not running;
force-set monitor mode file scanning to every 120s
Feb 03 16:00:59 machine1 maldet(8025): {mon} scanned 0 new/changed files with
clamav engine

17 | P a g e

Vous aimerez peut-être aussi