WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Monitoring d'une infrastructure informatique Linux sur base d'outils libres

( Télécharger le fichier original )
par Geoffrey Lemaire
Haute Ecole Rennequin Sualem (Belgique) - Bachelier en Informatique et Systèmes (finalité Réseaux et Télécommunications) 2003
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

4.4 Snort

Snort est capable d'effectuer en temps réel des analyses de trafic et de logger les paquets sur un réseau IP. Il peut effectuer des analyses de protocole, recherche/correspondance de contenu et peut être utilisé pour détecter une grande variété d'attaques et de sondes comme des dépassements de buffers, scans, attaques sur des CGI, sondes SMB, essai d'OS fingerprintings et bien plus. Cependant, comme tout logiciel, Snort n'est pas infaillible et demande une mise à jour régulière.

Snort peut également être utilisé avec d'autres projets open sources tels que SnortSnarf, ACID, sguil et BASE (Basic Analysis and Security Engine) afin de fournir une représentation visuelle des données concernant les éventuelles intrusions.

Dans notre cas, j'utilise BASE pour la représentation visuelle.

Site web du prod uit : http://www.snort.org

4.4.1 L'abonnement

Il existe trois types d'utilisateurs pour Snort au niveau des règles de sécurités.

Le premier est pour l'utilisateur non enregistré sur le site reçoit un set de sécurité statique pour chaque Release Majeur de Snort.

Le second (dans mon cas) est l'utilisateur enregistré sur le site. On peut dès lors avoir accès à des règles mises à jour tout les 30 jours après les utilisateurs abonnés.

Enfin, le troisième, l'utilisateur abonné. Ce dernier recevra en temps réel les mises à jour dès qu'elles sont disponibles.

Voici les prix :

4.4.2 Pré requis

SNORT requiert peu de chose pour pouvoir s'installer. Par contre BASE (v1.3.6) requiert une base de données MySQL et plusieurs packages de PEAR sont requis. Une petite modification dans iptables est requise aussi. Il s'agit d'ouvrir tout les ports en entrée et en sortie pour que Snort puisse recevoir et analyser les paquets.

4.4.3 Installation

Comme spécifié dans le pré requis, SNORT ne requiert que peu de choses à faire. Il est disponible sur les dépôts de Dag Wieers (v. 2.3.3) mais suite à quelques problèmes notamment du coté des «Configure dynamic loaded libraries» qui ne voulaient pas se charger, j'ai décidé d'aller chercher les RPMs pour RHEL4 sur le site de Snort et j'ai installé Snort à partir de là. Quand à BASE, une fois

SNORT configuré en daemon, il s'installe via une interface Web sans encombre si le compte MySQL est bien réglé.

4.4.4 Configuration

Aucune configuration particulière. Juste dans le fichier de configuration, on peut définir l'adresse du réseau que Snort doit monitorer et l'endroit où se trouvent les règles de sécurités. On doit ensuite indiquer à Snort qu'il doit envoyer ses logs vers une base de données MySQL. Enfin, on lance le daemon SNORT et quelques heures plus tard, il ne se passe rien...

4.4.5 Tests avec Nessus

Si rien ne se passe, provoquons des attaques?

L'attaquant : 192.168.1.14 L'attaqué : 192.168.1.11

Le résultat ne s'est pas fait attendre :

# tail -f /var/log/snort/alert

05/23-15:29:47.059534 (**] (1:1418:11] SNMP request tcp (**] (Classification: Attempted Information Leak] (Priority: 2] {TCP} 192.168.1.14:4647 -> 192.168.1.11:161

05/23-15:29:47.059559 (**] (1:1420:11] SNMP trap tcp (**] (Classification: Attempted Information Leak] (Priority: 2] {TCP} 192.168.1.14:4647 -> 192.168.1.11:162

Monitoring d'une infrastructure Linux sur base d'outils libres

05/23-15:35:34.893804 [**] [116:54:1] (snort_decoder): Tcp Options found with bad lengths [**] {TCP} 192.1 68.1 .14:22362 -> 192.1 68.1 .11:389

05/23-15:35:34.893839 [**] [116:54:1] (snort_decoder): Tcp Options found with bad lengths [**] {TCP} 192.1 68.1 .14:22362 -> 192.1 68.1 .11:389

05/23-15:35:44.928871 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.928909 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.928941 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.928974 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.929057 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.929100 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 1 92.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.929132 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.9291 79 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 1 92.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.929211 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:44.929242 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {TCP} 192.1 68.1 .14:80 -> 192.1 68.1 .11:80

05/23-15:35:54.931508 [**] [116:54:1] (snort_decoder): Tcp Options found with bad lengths [**] {TCP} 192.1 68.1 .14:31658 -> 192.1 68.1 .11:31658 05/23-15:35:55.932433 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:35:55.932465 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:35:55.932495 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:35:55.932524 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:35:55.932592 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:35:55.932632 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:35:55.932662 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:29:48.052402 [**] [1 :1421:11] SNMP AgentX/tcp request [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 1 92.1 68.1 .14:4 64 7 -> 192.168.1.11:705 05/23-15:29:50.053122 [**] [1 :1421:11] SNMP AgentX/tcp request [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 1 92.1 68.1 .14:4 64 7 -> 192.168.1.11:705 05/23-15:29:50.315235 [**] [1 :1420:11] SNMP trap tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 192.168.1.14:4647 -> 192.1 68.1 .11:1 62

05/23-15:29:50.316245 [**] [1 :1418:11] SNMP request tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 192.168.1.14:4647 -> 192.1 68.1 .11:1 61 05/23-15:29:52.053797 [**] [1 :1421:11] SNMP AgentX/tcp request [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 1 92.1 68.1 .14:4 64 7 -> 192.168.1.11:705 05/23-15:29:52.316913 [**] [1 :1420:11] SNMP trap tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 192.168.1.14:4647 -> 192.1 68.1 .11:1 62 05/23-15:29:52.317919 [**] [1 :1418:11] SNMP request tcp [**] [Classification: Attempted Information Leak] [Priority: 2] {TCP} 192.168.1.14:4647 -> 192.1 68.1 .11:1 61 05/23-15:30:19.043407 [**] [1 :4 69 :4] ICMP PING NMAP [**] [Classification: Attempted Information Leak] [Priority: 2] {ICMP} 192.1 68.1 .14 -> 192.1 68.1 .11 05/23-15:30:33.410074 [**] [1 :1444:3] TFTP Get [**] [Classification: Potentially Bad Traffic] [Priority: 2] {UDP} 192.1 68.1 .14:11670 -> 192.168.1.11:69

05/23-15:30:34.416906 [**] [1 :1444:3] TFTP Get [**] [Classification: Potentially Bad Traffic] [Priority: 2] {UDP} 192.1 68.1 .14:11670 -> 192.168.1.11:69

05/23-15:30:35.42373 7 [**] [1 :1444:3] TFTP Get [**] [Classification: Potentially Bad Traffic] [Priority: 2] {UDP} 192.1 68.1 .14:11670 -> 192.168.1.11:69

05/23-15:30:48.020705 [**] [1 :524:8] BAD-TRAFFIC tcp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {TCP} 192.1 68.1 .14:29019 -> 192.1 68.1 .11:0

05/23-15:30:50.02 73 71 [**] [1 :524:8] BAD-TRAFFIC tcp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {TCP} 192.1 68.1 .14:29019 -> 192.1 68.1 .11:0 05/23-15:30:52.035044 [**] [1 :524:8] BAD-TRAFFIC tcp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {TCP} 192.1 68.1 .14:29019 -> 192.1 68.1 .11:0 05/23-15:33:20.013863 [**] [1 :221:5] DDOS TFN Probe [**] [Classification: Attempted Information Leak] [Priority: 2] {ICMP} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:33:56.69904 7 [**] [1 :4 75 :4] ICMP traceroute ipopts [**] [Classification: Attempted Information Leak] [Priority: 2] {ICMP} 192.1 68.1 .1 1 -> 1 92.1 68.1 .14 05/23-15:35:34.893696 [**] [116:54:1] (snort_decoder): Tcp Options found with bad lengths [**] {TCP} 1 92.1 68.1 .14:22362 -> 192.168.1.11:389

05/23-15:35:34.893735 [**] [116:54:1] (snort_decoder): Tcp Options found with bad lengths [**] {TCP} 1 92.1 68.1 .14:22362 -> 192.168.1.11:389

05/23-15:35:34.893772 [**] [116:54:1] (snort_decoder): Tcp Options found with bad lengths [**] {TCP} 1 92.1 68.1 .14:22362 -> 192.168.1.11:389

Monitoring d'une infrastructure Linux sur base d'outils libres

05/23-15:35:55.932702 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO1 70} 192.168.1.14 -> 1 92.1 68.1 .1 1

05/23-15:35:55.932731 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO1 70} 192.168.1.14 -> 1 92.1 68.1 .1 1

05/23-15:35:55.932759 [**] [116:4:1] (snort_decoder): Ipv4 Options found with bad lengths [**] {PROTO170} 192.1 68.1 .14 -> 192.1 68.1 .11

05/23-15:36:05.934681 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934714 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934742 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934771 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934823 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934854 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934882 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934910 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.93493 7 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:05.934966 [**] [1 :525:9] BAD-TRAFFIC udp port 0 traffic [**] [Classification: Misc activity] [Priority: 3] {UDP} 192.1 68.1 .14:1234 -> 192.1 68.1 .11:0 05/23-15:36:35.945745 [**] [1 :2 74:6] DOS ath [**] [Classification: Attempted Denial of Service] [Priority: 2] {ICMP} 192.1 68.1 .14 -> 192.168.1.11

05/23-15:38:20.82 6466 [**] [116:151:1] (snort decoder) Bad Traffic Same Src/Dst IP [**] {TCP} 192.1 68.1 .11:389 -> 192.168.1.11:389

4.4.6 Conclusion

Du fait de l'environnement de test dans lequel je suis, je n'ai pas pu réellement tester SNORT. Beaucoup d'attaques étant filtrées par l'ASA et par les iptables. Cependant, grâce à Nessus, j'ai pu simuler des attaques à l'encontre d'un serveur et c'est justement le rôle de Snort, voir des paquets pas très logique à l'encontre du serveur et les répertorier.

On peut voir que Nessus fait bien son travail. On retrouve donc notamment des attaques DOS (Denial of Service), il essaye de récupérer diverses informations via SNMP, envois des paquets traffiqués (avec des options de tailles différentes) pour s'introduire dans le serveur, des attaques ICMP,? Cependant, Base ne relève rien du tout ni dans la base de donnée MySQL... Peut-être un petit problème entre Snort et Mysql...

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Le don sans la technique n'est qu'une maladie"