Corrélation de journaux avec le framework Prelude



Documents pareils
Retour d expérience sur Prelude

Topologies et Outils d Alertesd

IPS : Corrélation de vulnérabilités et Prévention des menaces

Les IDS et IPS Open Source. Alexandre MARTIN Jonathan BRIFFAUT

L analyse de logs. Sébastien Tricaud Groupe Resist - Toulouse 2013

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

SECURIDAY 2013 Cyber War

SSH, le shell sécurisé

Indicateur et tableau de bord

Test d un système de détection d intrusions réseaux (NIDS)

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria

Instructions Mozilla Thunderbird Page 1

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Atelier Sécurité / OSSIR

face à la sinistralité

OUTIL DE TRAVAIL COLLABORATIF

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Audits Sécurité. Des architectures complexes

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Sécurité des applications web. Daniel Boteanu

Couche application. La couche application est la plus élevée du modèle de référence.

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

La Sécurité des Données en Environnement DataCenter

Nmap (Network Mapper) Outil d exploration réseau et scanneur de ports/sécurité

Audits de sécurité, supervision en continu Renaud Deraison

Détection d'intrusions et analyse forensique

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

PACK SKeeper Multi = 1 SKeeper et des SKubes

TEST D INTRUISION. Document Technique

Chapitre 7. Le Protocole SNMP 7.1 INTRODUCTION COMPOSANTES POUR L UTILISATION FONCTIONNEMENT LE PAQUET SNMPV1...

Haka : un langage orienté réseaux et sécurité

Orange Business Services. Direction de la sécurité. De l utilisation de la supervision de sécurité en Cyber-Defense? JSSI 2011 Stéphane Sciacco

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

MSP Center Plus. Vue du Produit

Visualisation et Analyse de Risque Dynamique pour la Cyber-Défense

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Contenu. Cocher : Network Policy and Access Services > Next > Next. Cocher : Network Policy Server > Next > Install

RAPPORT DE TER sur PRELUDE-IDS

Configurer la supervision pour une base MS SQL Server Viadéis Services

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

Accès aux ressources informatiques de l ENSEEIHT à distance

WEB page builder and server for SCADA applications usable from a WEB navigator

Réseaux Privés Virtuels

Confirmation du titulaire de la carte en cas de contestation de transaction(s) Cardholder s Certification of Disputed Transactions

Sécurité des réseaux Firewalls

«Evolution des menaces de sécurité et lutte contre les cyber attaques» Mathieu Vialetay, CISSP. Security Consultant, North Africa Tlemcen, juin 2013

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Tom Pertsekos. Sécurité applicative Web : gare aux fraudes et aux pirates!

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Expression, analyse et déploiement de politiques de sécurité - Application réseau -

La gestion des vulnérabilités par des simulations d'attaques

sshgate Patrick Guiran Chef de projet support

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

Formations. «Règles de l Art» Certilience formation N SIRET APE 6202A - N TVA Intracommunautaire FR

Sécurité d IPv6. Sécurité d IPv6. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr. Stéphane Bortzmeyer AFNIC bortzmeyer@nic.fr

IPFIX (Internet Protocol Information export)

Contrôle de l Activité et Gestion des Menaces dans un environnement Réseau Distribué. INTERDATA Présentation Q1Labs

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

How to Login to Career Page

Sécurité et Linux. Philippe Biondi Cédric Blancher 14 mai 2002

SERVEUR DÉDIÉ DOCUMENTATION

Mise en place de la composante technique d un SMSI Le Package RSSI Tools BOX

Gestion des incidents de sécurité. Une approche MSSP

Sécurité des systèmes d exploitation

Licence 3 Systèmes et Réseaux II. Chapitre V : Filtrage

Lieberman Software Corporation

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

Devoir Surveillé de Sécurité des Réseaux

HIMS Host Intrusion Monitoring System

Sécurité des réseaux Les attaques

INTRUSION SUR INTERNET

TP Configuration de l'authentification OSPF

Etat des lieux sur la sécurité de la VoIP

WDpStats Procédure d installation

Once the installation is complete, you can delete the temporary Zip files..

Nouveaux outils de consolidation de la défense périmétrique

Manuel de l utilisateur

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

DIGITAL NETWORK. Le Idle Host Scan

Les ACL Cisco. F. Nolot Master 2 Professionnel STIC-Informatique 1

Laboratoire de Haute Sécurité. Télescope réseau et sécurité des réseaux

Les techniques de la télémaintenance

La sécurité applicative et les tests d'intrusion, beaucoup plus qu'un scan automatisé. Conférence ASIQ, mars 2014

SECURITE. Figure 1. Incident réseau, source CERT. Nombre. Sécurité

Restaurant Application Quick Reference Guide

INFO-F-404 : Techniques avancées de systèmes d exploitation

Paris Airports - Web API Airports Path finding

Linux Firewalling - IPTABLES

Les différentes méthodes pour se connecter

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

IMS INTERNET /Paramétrage de l offre / Gateway Cisco IMS INTERNET. Paramétrage de l offre Gateway CISCO. Référence Edition Date de Diffusion Page

Transcription:

Corrélation de journaux avec le framework Prelude tutojres 2008 Corrélation de journaux avec le framework Prelude 1/ 41

Qui suis-je? Développeur de logiciels libres Co-mainteneur de Linux-PAM Développeur de NuFW Développeur de Prelude IDS Contributeur à OSSEC, ClamAV, SanCP, Snort Chercheur en sécurité Spécialisé en détection d intrusions Corrélation de journaux avec le framework Prelude 2/ 41

Introduction aux IDS Que sont les IDS? Systèmes de détection d intrusions Les gens du marketing l appellent Systèmes de prévention d intrusions (IPS) 1 Security Information and Event Management (SIEM) Pendant cette présentation, on restera sur le terme IDS 1 Pour prévenir une attaque, il faut d abord la détecter ;) Corrélation de journaux avec le framework Prelude 3/ 41

Introduction aux IDS Qu est-ce qui existe? Host IDS (HIDS) Network IDS (NIDS) Meta IDS (MIDS) Corrélation de journaux avec le framework Prelude 4/ 41

Introduction aux IDS Beaucoup de sources d informations Un maximum de sources permet de trouver plus d attaques Corrélation de journaux avec le framework Prelude 5/ 41

Introduction aux IDS Beaucoup de sources d informations Un maximum de sources permet de trouver plus d attaques Sources bas niveau : Routeurs : Cisco, Linksys, Juniper,... Pare-feux : Netfilter, NuFW, Checkpoint, pf,... Systémes d exploitation : journaux systèmes et applicatifs, utilisateurs, applications lancées,... Physique : Alarmes,... Corrélation de journaux avec le framework Prelude 5/ 41

Introduction aux IDS Beaucoup de sources d informations Un maximum de sources permet de trouver plus d attaques Sources bas niveau : Routeurs : Cisco, Linksys, Juniper,... Pare-feux : Netfilter, NuFW, Checkpoint, pf,... Systémes d exploitation : journaux systèmes et applicatifs, utilisateurs, applications lancées,... Physique : Alarmes,... Sources haut niveau : Pots de miel : Nepenthes,... Réseau : Snort, Sancp, NuFW,... Machines : Auditd (SELinux), Linux PAM, Samhain, Ossec, Prelude LML, ClamAV... Scanners : Nessus, p0f, nmap... Corrélation de journaux avec le framework Prelude 5/ 41

Introduction aux IDS Exemples d alertes : OSSEC : SSHD authentication success. Prelude LML : Admin login successful Snort : BLEEDING-EDGE SCAN NMAP -f -ss ClamAV : Eicar-Test-Signature (succeeded) Auditd (SE Linux) : App Abnormal Termination Corrélation de journaux avec le framework Prelude 6/ 41

Le défi de la corrélation Limitations inhérentes aux IDS Trop d informations Vue limitée Faux positifs Faux négatifs Évasion (fragmentation, signatures, temps,... ) Corrélation de journaux avec le framework Prelude 7/ 41

Le défi de la corrélation les IDS et la corrélation Pour limiter les lacunes des IDS, il nous faut la corrélation : Meta-IDS Architecture distribuée et adaptative pour centraliser l information Définir avec précision chaque alerte et chaque agent Corrélation de journaux avec le framework Prelude 8/ 41

Le défi de la corrélation IDMEF: Intrusion Detection Message Exchange Format Normaliser les alertes des agents sans regarder leur type Une alerte peut-être hétérogène Les environements de détection d intrusions sont différents Les environements d opération sont différents Les capacités des agents sont différentes Fournir un vocabulaire exhaustif pour les développeurs et utilisateurs d IDS IDMEF (RFC 4765) http://www.rfc-editor.org/rfc/rfc4765.txt Corrélation de journaux avec le framework Prelude 9/ 41

Le défi de la corrélation Exemple d alerte : NuFW 1/3 Exemple d alerte IDMEF, avec les champs remarquables. Alerte émise pour une nouvelle connection HTTP utilisant Firefox. messageid: 5478076470 analyzer(1): analyzerid: 2334565015741136 name: nufw manufacturer: http://www.nufw.org/ model: NuFW version: 2.3.0 ($Revision: 3475 $) class: Firewall ostype: Linux osversion: 2.6.20-15-386 process: name: pid: 15197 Corrélation de journaux avec le framework Prelude 10/ 41

Le défi de la corrélation Exemple d alerte : NuFW 2/3 create_time: 29/06/2007 11:26:24.0 +02:00 classification: text: Connection opened detect_time: 29/06/2007 11:32:56.0 +02:00 analyzer_time: 29/06/2007 11:32:56.642005 +02:00 source(0): spoofed: unknown (0) node: category: unknown (0) address(0): category: ipv4-addr (7) address: 192.168.0.2 user: category: application (1) user_id(0): type: current-user (1) name: pollux number: 1000 process: name: firefox path: /usr/bin/firefox service: iana_protocol_number: 6 iana_protocol_name: tcp port: 3489 Corrélation de journaux avec le framework Prelude 11/ 41

Le défi de la corrélation Exemple d alerte : NuFW 3/3 target(0): decoy: unknown (0) node: category: unknown (0) address(0): category: ipv4-addr (7) address: 82.165.85.221 service: iana_protocol_number: 6 iana_protocol_name: tcp port: 80 assessment: impact: severity: low (2) type: user (5) description: Connection state changed Corrélation de journaux avec le framework Prelude 12/ 41

Le défi de la corrélation Prelude IDS Meta-IDS implémentant IDMEF libprelude, libpreludedb Prelude LML: Analyse les logs Prelude Correlator: Correle les alertes des agents Prelude Manager: Centralise, stocke/relaye les alertes Prewikka: Interface graphique Corrélation de journaux avec le framework Prelude 13/ 41

Le défi de la corrélation Prelude IDS Meta-IDS implémentant IDMEF libprelude, libpreludedb Prelude LML: Analyse les logs Prelude Correlator: Correle les alertes des agents Prelude Manager: Centralise, stocke/relaye les alertes Prewikka: Interface graphique Fonctionnalités requises pour la corrélation: Cryptage (GnuTLS) entre agents et managers, de manager à manager Failover, quand votre agent est coupé et ne peut pas envoyer ses alertes Relayer pour centraliser, sauvegarder et filtrer les alertes (permettant aussi la haute disponibilité) Relayage inverse pour sécuriser les DMZ Normaliser vos alertes : compléter le message IDMEF Corrélation de journaux avec le framework Prelude 13/ 41

Le défi de la corrélation Comprendre notre environnement Contexte des vulnérabilités détectées Janvier 1970 - Juin 2008 Recherche de tous les CVE ayant pour mot le language sur http://nvd.nist.gov/ Corrélation de journaux avec le framework Prelude 14/ 41

Le défi de la corrélation Comprendre notre environnement Contexte des vulnérabilités détéctées Janvier 1970 - Juin 2008 Recherche de tous les CVE touchant directement le language sur http://nvd.nist.gov/ Corrélation de journaux avec le framework Prelude 15/ 41

Le défi de la corrélation Ce que nous ne verrons pas aujourd hui Le fonctionnement interne des IDS Les IDS réseaux Les pots de miel La visualisation pour cela, venez aux RMLL à Mont de Marsant Corrélation de journaux avec le framework Prelude 16/ 41

1 Introduction 2 Prelude IDS 3 Correlation Corrélation de journaux avec le framework Prelude 17/ 41

Architecture de Prelude IDS Objectifs de Prelude IDS Détecter les intrusions Combiner un maximum de sources Faciliter l integration d outils existants Gérer les alertes Normalisation Relais, Sauvegardes Assurance d arrivée Permettre le traitement aisé des alertes IHM Prewikka Corrélation de journaux avec le framework Prelude 18/ 41

Architecture de Prelude IDS Exemple d application fonctionnant avec Prelude Corrélation de journaux avec le framework Prelude 19/ 41

Architecture de Prelude IDS Corrélation de journaux avec le framework Prelude 20/ 41

Coder avec Prelude 5 diapositives pour coder un IDS ainsi que le code Prelude Vérifier les modifications sur un fichier Utilisation de MD5 additionné pour chaque octet Construction d une base de données de référence Envoi du message IDMEF à Prelude Corrélation de journaux avec le framework Prelude 21/ 41

Coder avec Prelude Code Python 1/4 Faire une somme md5 d un fichier def sumfile(file): fp = open(file, rb ) sum = md5.new() for char in fp.read(): sum.update(char) fp.close() return sum.hexdigest() Corrélation de journaux avec le framework Prelude 22/ 41

Coder avec Prelude Code Python 2/4 Construction d une base de données dirfiles = os.listdir(".") for fname in dirfiles: if createdb: fpmd5db = open(md5db, "a") data = "%s:%s\n" % (fname,sumfile(fname)) fpmd5db.write(data) fpmd5db.close() Corrélation de journaux avec le framework Prelude 23/ 41

Coder avec Prelude Code Python 3/4 Récupérer les MD5 de la base def getmd5fromdb(file): fp = open(md5db, "r") for line in fp.readlines(): (f,m) = line.split( : ) if file == f: fp.close() return m[:len(m)-1] return -1 Corrélation de journaux avec le framework Prelude 24/ 41

Coder avec Prelude Code Python 4/4 La somme de correspond pas? on alerte m = getmd5fromdb(fname) if m!= sumfile(fname): print "ALERT! File %s was altered" % fname Corrélation de journaux avec le framework Prelude 25/ 41

Coder avec Prelude Code Prelude 1/1 On remplace le print par le code Prelude import PreludeEasy idmef = PreludeEasy.IDMEF() alertext = "File %s was altered" % fname idmef.set("alert.classification.text", alertext) client = PreludeEasy.ClientEasy("JRES sensor") client << idmef Corrélation de journaux avec le framework Prelude 26/ 41

La correlation La correlation Transformation d une ou plusieurs alertes en attaque Corrélation de journaux avec le framework Prelude 27/ 41

La correlation 1. Scan Corrélation de journaux avec le framework Prelude 28/ 41

La correlation 1. Scan 2. Connection Corrélation de journaux avec le framework Prelude 28/ 41

La correlation 1. Scan 2. Connection 3. Connection Corrélation de journaux avec le framework Prelude 28/ 41

La correlation Corrélation de journaux avec le framework Prelude 29/ 41

Enregistrement du correlateur Enregistrement du correlateur 1/4 Sonde : choix des permissions et du manager # prelude-admin register "prelude-correlator" "idmef:rw" localhost Generating 1024 bits RSA private key... This might take a very long time. [Increasing system activity will speed-up the process]. Generation in progress... +++++O+++++O You now need to start "prelude-admin" registration-server on localhost: example: "prelude-admin registration-server prelude-manager" Enter the one-shot password provided on localhost: Corrélation de journaux avec le framework Prelude 30/ 41

Enregistrement du correlateur Enregistrement du correlateur 2/4 Manager : écoute des sondes à enregistrer # prelude-admin registration-server prelude-manager The "zucdhk2g" password will be requested by "prelude-admin register" in order to connect. Please remove the quotes before using it. Generating 1024 bits Diffie-Hellman key for anonymous authentication... Waiting for peers install request on :::5553... Waiting for peers install request on 0.0.0.0:5553... Corrélation de journaux avec le framework Prelude 31/ 41

Enregistrement du correlateur Enregistrement du correlateur 3/4 Sonde : entrer le mot de passe Enter the one-shot password provided on localhost: Confirm the one-shot password provided on localhost: Connecting to registration server (localhost:5553)... Authentication succeeded. Corrélation de journaux avec le framework Prelude 32/ 41

Enregistrement du correlateur Enregistrement du correlateur 4/4 Manager : accepter l enregistrement Connection from ::ffff:127.0.0.1:56106... Registration request for analyzerid="3575424048561519" permission="idmef:rw". Approve registration? [y/n]: y ::ffff:127.0.0.1:56106 successfully registered. quinificated:~# Corrélation de journaux avec le framework Prelude 33/ 41

Enregistrement du correlateur Notre correlateur est enregistré, il ne nous reste plus qu à écrire les règles Corrélation de journaux avec le framework Prelude 34/ 41

Enregistrement du correlateur Règle de correlation Code 1/3 : Données qui nous intéressent function brute_force(input) local is_failed_auth = INPUT:match("alert.classification.text", "[Ll]ogin [Aa]uthentication", "alert.assessment.impact.completion", "failed") local result = INPUT:match("alert.source(*).node.address(*).address", "(.+)", "alert.target(*).node.address(*).address", "(.+)"); Corrélation de journaux avec le framework Prelude 35/ 41

Enregistrement du correlateur Règle de correlation Code 2/3 : Mise à jour du contexte if is_failed_auth and result then for i, source in ipairs(result[1]) do for i, target in ipairs(result[2]) do local ctx = Context.update("BRUTE_ST_".. source.. target, { expire = 2, threshold = 5 }) ctx:set("alert.source(>>)", INPUT:getraw("alert.source")) ctx:set("alert.target(>>)", INPUT:getraw("alert.target")) ctx:set("alert.correlation_alert.alertident(>>).alertident", INPUT:getraw("alert.messageid")) ctx:set("alert.correlation_alert.alertident(-1).analyzerid", INPUT:getAnalyzerid()) Corrélation de journaux avec le framework Prelude 36/ 41

Enregistrement du correlateur Règle de correlation Code 3/3 : Envoi de l alerte if ctx:checkanddecthreshold() then ctx:set("alert.classification.text", "Brute force attack") ctx:set("alert.correlation_alert.name", "Multiple failed login") ctx:set("alert.assessment.impact.severity", "high") ctx:set("alert.assessment.impact.description", "Multiple failed attempts have been made to login to a user account") ctx:alert() ctx:del() end Corrélation de journaux avec le framework Prelude 37/ 41

Enregistrement du correlateur Réactions Raporter le problème (email) Archiver Prépare la visualisation Contre-mesure (essayer de) bloquer une attaque (dangereux!) Collecter plus d informations Envoyer des commandes aux agents Notifier Corrélation de journaux avec le framework Prelude 38/ 41

Conclusion Récupérez les sources svn co http://svn.prelude-ids.org/prelude-correlator/trunk Corrélation de journaux avec le framework Prelude 39/ 41

Conclusion Références : IDS Correlation: A Weapon of Mass Investigation, CanSecWest Vancouver 2008, http://www.wzdftpd.net/downloads/correlation-womicansec2008.pdf Le fabuleux projet Prelude IDS : http://www.prelude-ids.org Remerciements : Pierre Chifflier Yoann Vandoorselaere L équipe INL Corrélation de journaux avec le framework Prelude 40/ 41

Conclusion Questions? Merci de votre attention Contactez moi: <s.tricaud@inl.fr> http://www.gscore.org/blog Corrélation de journaux avec le framework Prelude 41/ 41