EUROSEC 2003 Autopsie de routeurs Nicolas FISCHBACH Senior Manager, IP Engineering/Security - COLT Telecom [email protected] - http://www.securite.org/nico/ version 1.01

Download Report

Transcript EUROSEC 2003 Autopsie de routeurs Nicolas FISCHBACH Senior Manager, IP Engineering/Security - COLT Telecom [email protected] - http://www.securite.org/nico/ version 1.01

EUROSEC 2003
Autopsie de routeurs
Nicolas FISCHBACH
Senior Manager, IP Engineering/Security - COLT Telecom
[email protected] - http://www.securite.org/nico/
version 1.01
EUROSEC 2003
Agenda
» Architecture d’un routeur
»
»
»
»
> Physique et mémoire
> IOS
Configuration pré-déploiement
> Journalisation
> Vérification d’intégrité
En cas d’incident
> Informations disponibles
> Environnement
Les dénis de service
Conclusion
© 2003 Nicolas FISCHBACH
2
EUROSEC 2003
Architecture d’un routeur (1)
» Architecture physique d’un routeur
> En fonction des modèles (au minimum)
-
carte mère
processeur (RISC de type MIPS ou Motorola)
mémoire
bus
interface E/S
> Complexité grandissante (GSR par exemple)
- distribution des fonctions (CPU uniquement en charge de la
“maintenance” système et non du routage/forwarding)
- ASICs
© 2003 Nicolas FISCHBACH
3
EUROSEC 2003
Architecture d’un routeur (2)
» Architecture mémoire d’un routeur
> Mémoire Flash (non volatile)
- contient l’image IOS (compressée) ainsi que d’autres fichiers
> Mémoire DRAM/SRAM (volatile)
- contient l’IOS en cours d’éxécution
- stocke également les tables de routage, les statistiques, les
journaux locaux, etc.
- divisée en régions (processor, I/O, I/O 2).
> Mémoire NVRAM (non volatile)
- contient la configuration de démarrage (startup-config)
- boot config <système de fichier><config> indique un
emplacement alternatif pour la configuration à charger
> Mémoire BootROM
- contient le code ROMMON (POST, chargement d’IOS, etc.)
© 2003 Nicolas FISCHBACH
4
EUROSEC 2003
Architecture d’un routeur (3)
» Architecture IOS
> Système propriétaire fonctionnant sur processeurs RISC
> “Closed source” mais proche d’un “port” (plutôt qu’un
“fork”) de (BSD) Unix (bugs zlib, ssh, SNMP, etc.)
> Format ELF 32-bit MSB, édition des liens statique
> IPCs pour les communications entre le RP (Route Processor
et les LCs (Line Cards) sur les architectures GSR
“Inside Cisco IOS software architecture” - Cisco Press :
- “In general, the IOS design emphasizes speed at the expense of
extra fault protection”
- “To minimize overhead, IOS does not employ virtual memory
protection between processes”
- “Everything, including the kernel, runs in user mode on the
CPU and has full access to system resources”
© 2003 Nicolas FISCHBACH
5
EUROSEC 2003
Architecture d’un routeur (4)
» Cisco IOS rootkit/BoF/FS : problèmes et questions
> Aucune commande/outils documentés pour interagir avec le
noyau, la mémoire, les processus, etc.
> Possibilités avec l’accès à gdb {kernel¦pid pid-num} ?
> La ROMMON est-elle un point de départ intéressant (gdb
local) ?
> Possibilités en mode “enable engineer” (Catalyst) ?
> Possibilité de charger une image IOS modifiée et de
l’éxécuter sans redémarrer le routeur ?
> Le grand nombre d’image disponible rend la tâche difficile et
un outil pour modifier les images est requis
> Nouvelles possibilités avec l’IOS-NG (support de modules
dynamiques) ?
© 2003 Nicolas FISCHBACH
6
EUROSEC 2003
Préparation d’un routeur (1)
» Avant la mise en production
> Beaucoup de données sont volatiles: journaliser un
maximum d’informations (impact CPU et/ou mémoire)
- synchronisation (authentifiée) NTP
- exports syslog (tampon circulaire pour les journaux locaux)
- journalisation des événements générés par les services
(protocoles de routage par exemple)
- traps/poll SNMP
- journaux et événements AAA
- flux Netflow
- core dump (téléchargement automatique)
- ACLs (filtrage, accès aux applications/services)
- config-register (Configuration Register) - 0x2102
- debug sanity (vérifications malloc/free, impact sur les perf.)
© 2003 Nicolas FISCHBACH
7
EUROSEC 2003
Préparation d’un routeur (2)
» Eléments et données disponibles
- Syslog
Exporté/mis à disposition
- ACLs avec log[-input] (ACLs de filtrage, uRPF, …)
- Informations “systèmes” (interface flaps, errors,
- Netflow accounting
BGP session flap/MD5 failure, configuration change) - Informations de routage
- Traps et polls SNMP
- Telnet/expect/Perl scripté
- Journaux AAA
- Core dump
Routeur
Besoins
+ Configuration (TFTP)
+ Image IOS locale ou téléchargée
- Synchronisation NTP
- DHCP/BOOTP
Stocké localement
- (Running) IOS
- running and
startup-config
Flash/NVRAM
(non volatile)
© 2003 Nicolas FISCHBACH
- Running IOS &
processus
- Informations de
routage
- Journaux (debug)
- Historique, etc.
(D)RAM
(volatile)
8
EUROSEC 2003
Vérification d’intégrité du routeur (1)
» 4 étapes pour construire un outil de vérification
d’integrité pour IOS/CatOS
> 1. Stockez les configurations des routeurs et commutateurs
dans un environnement sûr (CVS par exemple)
> 2. Téléchargez la configuration depuis l’équipement:
- script perl ou expect, telnet, ssh/scp, tftp, etc.
- téléchargement via SNMP (accès RW nécessaire)
snmpset -c <communauté> <IP routeur> .1.3.6.1.4.1.9.2.1.55.<IP serveur TFTP> s <fichier>
> 3. Vérification : automatique (batch/cron) ou lorsque la
configuration est modifiée (message “configured by <xyz>”
dans les logs ou le trap SNMP “configuration changed”)
> 4. Comparez les configurations à l’aide d’un script ou utilisez
CVS (ou Rancid)
© 2003 Nicolas FISCHBACH
9
EUROSEC 2003
Vérification d’intégrité du routeur (2)
» Limitations
> Confiance dans le système (toujours pas de “rootkit” Cisco)
et dans le réseau utilisé (attaques par interception)
> Configuration transmise en clair sur le réseau (sauf si
chiffrement via scp ou IPsec)
> Il y a deux fichiers : startup-config et running-config
> Sauvergardez également les images IOS/CatOS
> MIBs Cisco : CISCO-CONFIG*
© 2003 Nicolas FISCHBACH
10
EUROSEC 2003
En cas d’incident (1)
» Décisions
> En fonction de l’architecture: effet sur la disponibilité du
réseau
- inhibition des fonctions de routage/forwarding
- disponibilité de spare (carte flash, carte mère/RP, LC, etc)
> Comment se connecter ?
- Telnet/SSH ou via la console/port série ?
> Que faire avant/après le redémarrage
- journaux locaux et commandes à éxécuter
- quel mode (config-register) ?
> S’il n’est plus possible d’accéder au routeur/mode enable ?
- remise à zéro du mot de passe
- nmap, snmpwalk, etc.
- environnement réseau
© 2003 Nicolas FISCHBACH
11
EUROSEC 2003
En cas d’incident (2)
» Commandes à éxécuter
> Pensez à sauvergarder toutes les informations !
> Evitez de passer en mode configuration
> Mode “enable”/”user” EXEC ?
Informations réseaux
Configuration et utilisateurs
show clock detail
show version
show running-config
show startup-config
show reload
show users/who
Journaux locaux, processus et mémoire
show log/debug
show stack : état de la pile
show context : informations sur la pile
show tech-support : incomplet
show processes {cpu, memory}
contenu du fichier bootflash:crashinfo
© 2003 Nicolas FISCHBACH
show ip route
show ip ospf {summary, neighbors, etc)
show ip bgp summary
show cdp neighbors : Cisco Discovery Protocol
show ip arp
show {ip} interfaces
show tcp brief all
show ip sockets
show ip nat translations verbose
show ip cache flow : Netflow
show ip cef : Cisco Express Forwarding
show snmp {user, group, sessions}
Système de fichiers
show file descriptors: lsof limité
show file information <url>: file limité
12
EUROSEC 2003
En cas d’incident (3)
» Mode debug
» Mémoire flash
»
»
> Informations sur le contenu (fichiers, état, type, CRC, etc)
- show <système de fichier>
> Ciscoflash: ftp://ftp.bbc.co.uk/pub/ciscoflash/
Mémoire DRAM/SRAM
> Informations sur les zones mémoire
- show buffers
- show memory
- show region
Mémoire NVRAM
> Informations sur l’environnement de démarrage
- show bootvar
© 2003 Nicolas FISCHBACH
13
EUROSEC 2003
En cas d’incident (4)
» Environnement
> Journaux applicatifs
- syslog, TACACS, NMS, etc.
> Effet de bord sur le trafic réseau et sur les informations de
routage ?
> Traces réseaux
- IDS
- Port mirroir sur un commutateur (en fonction de l’architecture)
- exports Netflow
» Recommandations générales
> Horodatage et annotations détaillées de chaque action
> Communication hors-bande, etc.
© 2003 Nicolas FISCHBACH
14
EUROSEC 2003
Les dénis de service
» Détection et “réduction” de l’attaque (mitigation)
»
»
> Data-center (“in-line”)
> Infrastructure (Netflow)
> ACLs, (re)routage [dans Null0] via BGP, rate-limits
Tendance
> Attaques contre les élements d’infrastructure (routeurs)
> Les réseaux de bots et les communications
> Supervision grâce à un “honeybot net”
Impact des attaques sur l’Internet
> Rapidité de propagation
> Stabilité du routage
> Capacités de filtrage: approche “réseau de transit”/”pare-feu
géant”
© 2003 Nicolas FISCHBACH
15
EUROSEC 2003
Conclusion
» Conclusion
» Voir également
> MISC 5: Protection de l’infrastructure réseau IP - l’autopsie
de routeurs (http://www.miscmag.com/)
» Présentation
> http://www.securite.org/presentations/secip/
» Questions/Réponses
Image: http://www.inforamp.net/~dredge/funkycomputercrowd.html
© 2003 Nicolas FISCHBACH
16