Outils Open Source pour l'audit et la sécurisation des systèmes d'information

Page 1 sur 42Lecteur de document UniversityLib

Outils Open Source pour l'audit et la sécurisation des systèmes d'information

Cybersecurity · course

Voir tous les documents en sécurité informatique

Outils Open Source pour l'audit et la sécurisation des systèmes d'information

Source : ANSI

Plan de la présentation

Introduction

Firewall

Proxy

Authentification

IDS

Host IDS

AntiSpam

Antivirus

Outils d’administration

Scanner de vulnérabilité

Outils de gestion des log

Honey Pot

Cryptage de communication

Sécurité et logiciels libres

● Avantages :

liberté de correction et d'adaptation importante audit du code source possible (contre failles,backdoor) indépendance et respect des standards durée de vulnérabilité (pas le nombre, ni la gravité)

● Inconvénients :

inertie sur les IDS et les scanners pas d'antivirus

Logiciels libres pour la sécurité

● Prévention

xinetd, pam, « chroot », services et daemons

● Protection

NetFilter, IP-Filter, Packet Filter, Squid,Squidguard, GnuPG, OpenSSL, OpenSSH

● Détection (et évaluations)

Syslog-ng, Logcheck, IPPL, IPTraf, MRTG, Snort, Prelude, Nessus, Nmap, AIDE

● Correction (et réponses)

INTERNET

Présentation:

Filtre de paquets du noyau Linux 2.4 et successeur d‟IPchains (Linux 2.2) Firewall “stateful inspection” (et Stateless packet filtering pour IPv6) Utilise le NAT et le PAT pour partager l‟accés à Internet Notion de „transparent proxies‟ Permet de mettre en place des QOS sophistiquès

NetFilter

 Fonctionnalité de filtrage IP standard

 Paramètres de filtrage

○ Interface réseau : entrée ou sortie ○ Adresses IP (source et destination) : hôte ou sous-réseau ○ Champs de l‟en-tête IP (Fragmentation,TOS et TTL) ○ Protocoles de niveau 4 : TCP, UDP et ICMP (Ports source et

destination (TCP et UDP), Drapeaux (TCP),Types et codes (ICMP) )

 Actions

○ Autoriser ○ Bloquer ○ Rejeter (message ICMP ou segment TCP avec drapeau RST)

NetFilter

 Filtrage Stateful inspection

 Principe

○ Filtrage dynamique, en conservant des états pour les communications en cours ○ Seuls des paquets correspondants à un état déjà existant sont acceptés

 Protocole

○ TCP : Segments appartenant à une connexion TCP en cour ○ UDP : Datagrammes en réponse à un datagramme UDP émis - Messages ICMP d‟erreur ○ ICMP : Messages ICMP en réponse à un message ICMP émis

 Options permettant de comparer le trafic aux états

○ NEW : création d‟un nouvel état ○ ESTABLISHED : paquet appartenant à une connexion déjà établie ○ RELATED : paquet lié à une connection en cours

 Message ICMP d’erreur  Trafic lié au fonctionnement d’un protocole applicatif

○ INVALID : paquet non identifié parmi les communications en cours

 Stratégie

○ Créer un état au début de communication avec NEW ○ Accepter les paquets liés aux communications en cours

 ESTABLISHED  RELATED

NetFilter  Translation d’adresses et de ports

 Translation d’adresses

○ Uni-directionnelle (en sortie) : adresses privées en adresse(s) publique(s) avec possibilité

de changer le port source

○ Bi-directionnelle : adresse publique en une adresse et réciproquement

 Redirection de ports

○ Redirection d‟un port en entrée vers un autre, en modifiant l‟adresse de destination ou

non

 Les chaînes de netfilter

 Règles de filtrage placées dans des chaînes

○ Chaîne : sous-programme ○ Règles de filtrage : instructions

 Une des 3 chaînes standards est obligatoirement traversée :

○ INPUT : paquets à destination de la machine locale ○ OUTPUT : paquets émis par la machine locale ○ FORWARD : paquets transitant par la machine locale

NetFilter

 Outils de génération de Script

FwBuilder : www.fwbuilder.org/

PHP Firewall Generator : http://phpfwgen.sourceforge.net

Easyfwgen : easyfwgen.morizot.net/gen/ (On-Line)

GIPTables Firewall : www.giptables.org

NetFilter

 Exemple de script

IFACE=eth0 MYLAN=192.168.1.0 MYWKS=192.168.1.1 MYDNS=192.168.1.2 MYADDR=192.168.1.3 # Effacer les chaînes standards iptables -F # Bloquer le trafic ( par défaut) iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Stateful inspection iptables -A OUTPUT -i $IFACE -m state --state ESTABLISHED, RELATED -j ACCEPT iptables -A INPUT -i $IFACE -m state --state ESTABLISHED, RELATED -j ACCEPT # Administration par SSH iptables -A INPUT -i $IFACE -p tcp -s $MYWKS --sport 1024:65535 -d $MYADDR --dport 22 \ -m state --state NEW -j ACCEPT # Résolution DNS iptables -A OUTPUT -i $IFACE -p udp -s $MYADDR --sport 1024:65535 -d $MYDNS --dport 53 \ -m state --state NEW -j ACCEPT # Surveillance avec ping(1) iptables -A OUTPUT -i $IFACE -p icmp -s $MYADDR --icmp-type echo-request -d $MYLAN \ -m state --state NEW -j ACCEPT

INTERNET

 Présentation:

 SQUID est Un serveur "proxy" permet de partager un

Publicité

accès Internet entre plusieurs utilisateurs avec une seule connexion.

 SQUID propose également un mécanisme de cache des requêtes, qui permet d‟accéder aux données en utilisant les ressources locales au lieu du web, réduisant les temps d‟accès et la bande passante consommée.

 SQUID permet le cache des protocoles HTTP, ftp, gopher, etc. Il supporte également SSL, les contrôles d‟accès, le cache de DNS et fournit une trace complète (log) de toutes les requêtes.

SQUID

 Contrôle d’accès

Limiter l‟accès à des plages horaires particulières, fournir des informations depuis le cache, autoriser seulement certains sites ou groupes de sites, etc... Squid dispose pour ces contrôles de deux types de composants : les éléments ACL (Access Control List) et la liste d‟accès. Une liste d‟accès, autorise ou refuse l‟accès au service.

Ci-dessous quelques uns des plus importants éléments ACL

src : Source c-à-d. l‟adresse IP du client dst : Destination c-à-d. l‟adresse IP du serveur srcdomain : Source c-à-d. le nom de domaine du client dstdomain : Destination c-à-d. le nom de domaine du serveur time : Heure du jour et jour de la semaine url_regex : Expression régulière décrivant une catégorie d‟URL urlpath_regex: Expression régulière décrivant un ensemble d‟URL sans le protocole ni le nom d‟hôte proxy_auth : Procédé externe d‟authentification d‟un utilisateur

○ ○ ○ ○ ○ ○ ○ ○ ○ maxconn : Nombre maximum de connexions pour une adresse IP cliente

 On peut associé nombre de logiciels à squid (filtrage, statistiques,

supervision,...). Un dès plus indispensables „SquidGuard‟ un redirecteur qui utilise la librairie Berkeley Database de sleepycat

SquidGuard

 Caractéristiques :

Il permet de différencier la transformation suivant : ○ L'adresse de la machine ○ L'identité de l'utilisateur ○ L'URL (évidemment) ○ L'horaire de la consultation ○ La classe de redirection (par exemple on peut définir une classe publicité, une classe

adult, etc...)

 SquidGuard permet :

○ Limiter l‟accès d‟ un nombre d‟utilisateurs à un ensemble de serveurs web ou url accepté

(connu à l‟avance).

○ Bloque l‟accès à une liste de serveurs web ou URLs : Blacklist ○ Bloque l‟accès à des URLs correspondant (matching) avec une liste d‟expression

régulière ou une liste de mot clé

○ Renforce l‟utilisation des nom de domaine/Interdit l‟utilisation d‟adresse IP dans les URLs ○ Redérige les adresses bloquées vers une page d‟info à base de CGI. ○ Redérige les utilisateurs non enregistré vers un formulaire d‟enregistrement. ○ Redérige des téléchergements de fichiers fréquents vers des copies locales. ○ Il dispose de plusieurs règle se basant sur le temps, la date … ○ Affecte des règles pour des groupes d‟utilisateurs

INTERNET

OpenLDAP

 Présentation d’OpenLDAP

 OpenLDAP est un annuaire gratuit et peut être installé sur tout type de plate-forme, y compris Windows et les principaux Unix, dont Linux bien sûr. Toutes les distributions Linux offrent en standard la possibilité de l‟installer.

 Son code source est accessible et il est possible de faire évoluer le

serveur d‟annuaire en fonction des besoins. On trouve par exemple des extensions permettant d‟intégrer OpenLDAP avec Kerberos, Radius, et tout autre mécanisme d‟authentification.

 Et enfin, OpenLDAP est totalement intégré à Linux. La plupart des

distributions Linux ont adopté OpenLDAP comme annuaire de référence, et offre une version compilée et prête à l‟emploi de celui-ci.

 OpenLDAP peut être utilisé pour gérer les utilisateurs du système

d‟exploitation, et partager ainsi un même référentiel avec les applications fonctionnant sous Linux et livré avec le système, comme Samba, NIS, etc.

OpenLDAP

 Les services offerts par OpenLDAP

 OpenLDAP offre les fonctions standards d’un annuaire conforme à la norme LDAP

v3. Il supporte donc le protocole LDAP V3 aussi bien en IPv4 qu‟en IPv6.

 Il supporte aussi le protocole SASL (Simple Authentication and Security Layer) pour l‟authentification et la sécurité. SASL permet à une application de s’authentifier à l’annuaire en utilisant divers mécanismes d‟authentification forte comme DIGEST- MD5, EXTERNAL, et Kerberos 5 (GSSAPI). Ces mécanismes sont extensibles et il est possible de rajouter un mécanisme spécifique, comme l‟usage d‟une carte à puce, tout en assurant une parfaite compatibilité avec le standard LDAP v3.

 OpenLDAP supporte le protocole TLS (Transport Layer Security) qui permet d’assurer

le chiffrement et l’intégrité des données échangées avec l’annuaire.

 OpenLDAP offre des fonctions de gestion des autorisations, permettant de contrôler l‟accès aux entrées et aux attributs en fonction du profil de l‟utilisateur connecté à l‟annuaire.

 OpenLDAP autorise la réplication multi-maître et maître-esclave, assurant ainsi une meilleure disponibilité de l‟annuaire et une répartition de charge sur différentes instances de l‟annuaire, situées sur une ou plusieurs machines.

Port mirorring

INTERNET

OpenLDAP

 Présnetation:

 Système de détection d'intrusion réseau (NIDS)  Portable sur plusieurs types de plateformes  Installation et configuration simples  Détection en temps réel et puissante

 Fonctionnalités:

 Détection au niveau des protocoles :

- IP – TCP – UDP - ICMP

 Détection d'activités anormales

○ Stealth scan ○ Code ICMP "invalide"

_ . . .

_ Découverte d'empreinte d'OS

 Pré-processeur HTTP (attaque CGI)  Détection des petits fragments  Détection de dénis de service  Détection de débordement de buffer

Snort  Écriture de règles:

 Langage de description simple et facile à utiliser  Une règle doit être impérativement écrite sur une seule ligne  La combinaison de règles est autorisée  Variables de substitutions acceptées  Possibilité de faire référence à des fichiers de règles séparés  Exemple de règle:

○ Alert tcp any any -> 192.16.1.0/24 any (flags:SF; msg:"Possi. SYN FIN scan";)

 Enregitrement des logs:

 Le fichier alert (-d)  Un fichier spécifique par attaque (logto)  Un répertoire spécifique (-l)  Le répertoire /var/log/snort (-s)  L'enregistrement dans un répertoire s'effectue par adresse IP de

machines sources et/ou destinations

Snort

 Les logs (suite)

 Visualisation des fichiers de log  Règle :

○ alert TCP any any -> $MY_NET any (msg:"NMAP TCP ping !"; flags: A; ack: 0;)

date

heure

protocole

port source

@IP source

@IP dest

port dest

drapeaux

temps de vie restant

type de service

n°séquence en hexadécimal

n°d'ordre d’acquittement en hexadécimal

n°d'ordre d'identification du paquet

Publicité

Snort

On peut ajouter des modules (plug-in) à sornt

 Flexresp (intégrer) : pour bloquer une connexion par TCP/RST

 Snort-Inline : c‟est une modification de snort pour le rendre en

mode actif (réponse en temps réelle à une intrusion)

 Guardien pour écrire des règle dans le firewall Iptables

 SnortSnarf : Gestion des log pour snort, permet de visualiser via interface web des signatures détectées (par machine) et de visualiser les paquets fautifs

SendMail

Zone des Serveurs

Apache

Port mirorring

INTERNET

OpenLDAP

 AIDE est un HIDS : Host-based Intrusion Detection System. Il s'agit

d'un clone amélioré de Tripwire.

 AIDE permet de construire une base de signatures (utilisant des

algorithmes d'empreinte cryptographique) de fichiers que l'on désire surveiller, et de re-calculer ces empreintes périodiquement ou au besoin, en les confrontant à la base.

 Vérifier si les empreintes sont différentes (au niveau du fichier, de sa date, de ses droits d'accès, de son inode ...), AIDE aura ou pas détecté une modification de fichiers.

 AIDE est très utile en cas d'intrusion, afin de découvrir ce qui a été changé (journaux modifiés, fichiers ajoutés à certains endroits, binaires comme netstat, lsof, who, sshd modifiés, fichiers de configuration, pages web, etc.).

SendMail

Spam Assassin

Zone des Serveurs

Apache

Port mirorring

INTERNET

OpenLDAP

 Permet "d'assassiner" les spam de votre courrier électronique - du moins il identifie

l'indésirable et permet ainsi au lecteur de courrier de traiter celui-ci de la façon la moins contrariante pour l'utilisateur.

 Le SpamAssassin fonctionne en effectuant de nombreux tests sur le courrier analysé. Il y a des tests pour le courrier en HTML seulement, pour déterminer si le courrier contient des phrases souvent usitées dans les prospectus, s'il indique ne pas être du spam d'après certaines lois et règlements, s'il contient une quantité inhabituelle de points d'exclamation ou d'interrogation, s'il parle de "Millions de Dollars" et ainsi de suite.

 Pour chaque test qui a été effectué, un courrier reçoit des points; l'utilisateur peut

indiquer combien de points sont attribués aux tests dans un fichier de configuration simple en ASCII. Si la somme de tous les points dépasse un certain seuil - également configurable, le SpamAssassin juge que le courrier est sans doute du spam. Une fois cette décision prise, le SpamAssassin insère dans l'en-tête des marqueurs informant des résultats du test. Si l'utilisateur le souhaite, les spams sont également forcés d'avoir comme type de contenu "text/plain", ce qui facilite grandement la consultation ultérieure des résultats.

 Le SpamAssassin peut aussi insérer un rapport de test plus détaillé au début du

courrier afin qu'un utilisateur puisse facilement voir pourquoi il a été classé comme spam.

 comprend aussi les listes noires proposées en ligne. Les listes usuelles de DNS

référençant les sources connues et les relais de Spam sont également supportées, comme Vipul's Razor, une base de données de Spam permettant l'identification des Spam connus.

Zone des Serveurs

Apache

SendMail

Spam Assassin

Amavis

Port mirorring

INTERNET

OpenLDAP

 Amavis

 Propose 2 versions (anciennement amavis-

perl) : amavisd et amavisd-new . ○ Amavisd : démon lancé une fois pour toute. ○ Amavisd-new est une évolution de amavis (qui

consommait pas mal de ressources car il faut démarrer une programme perl pour chaque message à traiter), qui offre de riches fonctionnalités (possibilité de coupler un antispam à l‟antivirus, …).

 Possibilité de coopérer avec d‟autre produit tel

que ClamAV

Zone des Serveurs

Apache

SendMail

Spam Assassin

Amavis

WebMin

Console d’administration

Port mirorring

INTERNET

OpenLDAP

 Webmin est une interface d‟administration web concu pour

les serveur d‟hébergement unix.

 Cette interface permet d‟interagir avec tous les programmes

installé sur un serveur (Snort, netfilter, apache, squid, sendmail, …)

 Webmin dispose de nombreuses fonctionnalités dont la

gestion des DNS, le redémarrage à distance de la machine, la gestion de tâches planifiées (cron), la gestion des comptes mails, FTP, de sites web etc.

 Sa structure permet d'être complétée par ajout de modules

afin d'étendre ses fonctionnalités.

Zone des Serveurs

Apache

SendMail

Spam Assassin

Amavis

WebMin

Swatch

Log Watcher

Console d’administration

Port mirorring

Publicité

INTERNET

OpenLDAP

 Surveille les logs en temps réel et

déclenche une action prédéfinie (alerte, …) lorsqu‟un événement spécifiques (trigger) se déclenche

Zone des Serveurs

Apache

SendMail

Spam Assassin

Amavis

WebMin

Swatch

Log Watcher

Console d’administration

Port mirorring

INTERNET

OpenLDAP

 Présentation:

 Nessus est un scanner de sécurité multi-plateformes : il réalise un

audit de sécurité sur les différents composants du réseau. En s'appuyant sur une base de données de failles de sécurité, il indique à l'administrateur réseau les faiblesses et les failles existantes sur son réseau. Il est basé sur une architecture client- serveur.

 Nessus est un outil capable d‟indentifier :

○ Les machines présentes sur mon réseau (adresse IP, nom) ○ Les systèmes d'exploitation utilisés sur une machine donnée ○ Les services (démons) fonctionnent sur une machine ○ L‟état de sécurité d‟un réseau

Nessus

 Fonctionnement:

 Nessus permet un audit de sécurité en s'appuyant sur deux éléments : un client et un serveur. Le serveur, nessusd, est chargé de tester le système indiqué en essayant toutes les attaques que sa base contient, pendant que le client, nessus (qui n'est qu'une interface graphique), fait un rapport sur les différents résultats obtenus.

 Le serveur possède une base de données d'environ 300

attaques existantes à l'installation et c'est à l'administrateur de la remettre à jour régulièrement. Les attaques mises en place par nessusd sont codées comme des modules externes (ou plugins) écrits en différents languages.

Nessus  Caractéristiques:

• une reconnaissance intelligente des services : Nessus ne se base pas sur les ports pour reconnaître les services. Ainsi un serveur HTTP fonctionnant sur un port 1234 sera détecté. • une détection sur plusieurs machines de manière concurrente

afin d'accélérer l'analyse.

SendMail

Spam Assassin

Amavis

WebMin

Swatch

Log Watcher

Console d’administration

Port mirorring

Zone des Serveurs

Apache

INTERNET

HoneyD

OpenLDAP

 HoneyNet

 Un honeypot est un programme, un machine ou encore un système introduit dans

un réseau afin d'être atteint par un attaquant.

 Le concept est de faire croire à ce dernier qu'il se trouve sur un système tout à fait

légitime.

 Les honeypots sont donc des machines virtuelles qui émulent de vraies machines et ce en faisant croire qu'elles possèdent des services et des ports ouverts que l'on pourrait trouver sur une autre machine.

 Ces services ont pour finalité d'attirer l'attention du hacker afin que ce dernier fournisse du temps et des ressources qui seront par la suite enregistrés par le honeypot .

 Les honeypots sont conçus pour être pénétrés et ce pour deux raisons. La première

est de permettre de trouver des informations concernant les faiblesses d'un système. L'administrateur peut donc apprendre de l'attaquant la façon dont il est parvenu à casser le système. La deuxième raison est de collecter les informations nécessaires sur les hackers et éventuellement de le poursuivre en justice

SendMail

Spam Assassin

Amavis

WebMin

Swatch

Log Watcher

Console d’administration

Port mirorring

Zone des Serveurs

Apache

INTERNET

HoneyD

GPG

OpenLDAP

 GnuPG est un outil qui se lance via une console par une ligne de commande sans interface graphique. C'est un vrai moteur cryptographique qui peut être utilisé directement depuis un prompt, un script shell ou par d'autres programmes. Il peut aussi fournir à d'autres applications les outils de crypto nécessaires.

 Cependant, même utilisé via une ligne de commande, il fournit toutes les

fonctionnalités nécessaires - ainsi qu'un menu interactif. Le jeu de commande de cet outil sera toujours plus complet que celui de n'importe quelle interface graphique.

 Remplacement complet de PGP.  Peut être utilisé comme programme filtrant.  Offre des améliorations par rapport à PGP 2; au niveau de la sécurité.  Déchiffre et vérifie les messages créés avec PGP 5, 6 et 7.  Supporte ElGamal, DSA, RSA, AES, 3DES, Blowfish, Twofish, CAST5, MD5,

SHA-1, RIPE-MD-160 et TIGER.

 Implémentation facilitée de nouveaux algorithmes utilisant des modules

d'extension.

 Supporte les dates d'expiration de clé et de signature.

D’autres outils Open Source pour l'audit et la sécurisation des SSI existent …

A vous de me les faire découvrir !