Protection de l’infrastructure réseau IP en environnement Cisco (routeurs et commutateurs) > Nicolas FISCHBACH IP Engineering Manager - COLT Telecom [email protected] - http://www.securite.org/nico/ > Sébastien LACOSTE-SERIS IP.
Download ReportTranscript Protection de l’infrastructure réseau IP en environnement Cisco (routeurs et commutateurs) > Nicolas FISCHBACH IP Engineering Manager - COLT Telecom [email protected] - http://www.securite.org/nico/ > Sébastien LACOSTE-SERIS IP.
Protection de l’infrastructure réseau IP en environnement Cisco (routeurs et commutateurs) > Nicolas FISCHBACH IP Engineering Manager - COLT Telecom [email protected] - http://www.securite.org/nico/ > Sébastien LACOSTE-SERIS IP R&D Manager, Security Officer - COLT Telecom [email protected] - http://www.securite.org/kaneda/ version 1.01 Programme » Sécurité réseau > Les attaques à l’encontre - des protocoles des couches liaison et réseau - des protocoles de routage » > Détection et prévention des dénis de services et des vers > Analyse de trafic > MPLS et IPv6 Sécurité des équipements (routeurs et commutateurs) > SNMP et administration distante > Authentification, Autorisation et Audit (AAA) > Listes de contrôle d’accès (ACLs) > Vérification d’intégrité © 2002 Sécurité.Org 2 Les protocoles de la couche liaison » Les protocoles de la couche liaison de données > ARP - Address Resolution Protocol > CDP - Cisco Discovery Protocol > VLAN - Virtual LAN > STP - Spanning Tree Protocol > {D/V}TP - Dynamic, VLAN Trunking Protocol > Trafic et adressage unicast, broadcast et multicast © 2002 Sécurité.Org 3 Attaques contre les protocoles » Les attaques connues (et anciennes) » » > Pollution de cache ARP, annonces ARP gratuites, messages ARP/DHCP falsifiés > Outils : dsniff, hunt, etc. Les attaques plus récentes > Paquets HSRP/VRRP falsifiés > Attaques contre STP/VTP > Saut de VLAN Les attaques à venir > Attaques avancées contre les protocoles de routage > Rootkits et modules noyau dynamiques (LKM) © 2002 Sécurité.Org 4 Filtrage STP et par adresse MAC » Fixez les adresses MAC par port (et si possible la relation adresse IP/adresse MAC) set port security <mod/port> enable 01-02-03-04-05-06 shutdown » Activez BPDU-Guard (Bridge PDU) pour filtrer STP ! MLS (Multi Layer Switch) in hybrid mode (Sup w/ CatOS, MSFC w/ IOS) set spantree disable set spantree portfast bpdu-guard-enable ! MLS in native mode (CatIOS on the Sup and MSFC) spanning-tree portfast bpduguard » Limitez le trafic de type broadcast set port broadcast <mod/port> 0.01% © 2002 Sécurité.Org 5 VLANs : partionnement de réseau (1) » Le problème des VLANs > Les VLANs n’ont pas été conçus pour fournir un mécanisme de sécurité, mais sont utilisés couramment pour le partitionnement réseau > Les commutateurs multiniveau (commutateur avec un module de routage) constituent un point faible dans la sécurité du réseau > N’utilisez pas le VLAN natif 1 » Le problème de VPMS > VLAN Policy Management Server permet l’affectation d’un équipement à un VLAN par rapport à son adresse MAC © 2002 Sécurité.Org 6 VLANs : partionnement de réseau (2) » Saut de VLAN > Est possible si - vous utilisez DTP - un port est dans le même VLAN que le VLAN natif du trunk (injection de trames 802.1q) set vlan 2 <mod/port> clear trunk <mod/port> 1 » > Les ponts entre VLANs (VLAN bridge) permettent de faire passer des protocoles non routables entre les VLANs Private VLAN (4k, 6k) et Edge Ports (29xx, 35xx) > Isolation du port, n’est pas basé sur les adresses IP/MAC ou le VLAN > Des équipements dans le même VLAN ne peuvent pas communiquer directement entre eux © 2002 Sécurité.Org 7 Protocoles : VTP » VLAN Trunking Protocol > Permet une gestion centralisée des VLANs (architecture maître/esclave) > Format du message : identique à CDP (SNAP HDLC 0x2003) > Communique via les ports en mode trunk » Mesures de sécurité > Placez les commutateurs en mode VTP transparent et affectez un mot de passe au domaine VTP set vtp domain <domaine.vtp> password <mot de passe> set vtp mode transparent © 2002 Sécurité.Org 8 Protocoles : DTP » Dynamic Trunking Protocol > Permet la configuration automatique de ports en mode trunk > Format du message : identique à CDP (SNAP HDLC 0x2004) > Tous les ports d’un commutateur sont en mode automatique par défaut » Mesures de sécurité > Désactivez DTP sur tous les ports set trunk off all © 2002 Sécurité.Org 9 Protocoles : CDP (1) » Cisco Discovery Protocol » > Protocole développé par Cisco > Communique sur tout lien supportant HDLC > Trafic multicast > Informations échangées : nom/identifiant de l’équipement, adresse réseau, identifiant du port, fonctionnalités, plateforme, version logicielle, préfixe réseau IP Format du message © 2002 Sécurité.Org 10 Protocoles : CDP (2) » Déni de service > Possibilité d’utiliser toute la mémoire (avis de sécurité) » Mesures de sécurité > Routeurs - Désactivation globale no cdp run - Désactivation par interface interface xy no cdp enable > Commutateurs (globalement ou par port) set cdp disable <mod/port> © 2002 Sécurité.Org 11 Les protocoles de la couche réseau » La couche réseau et les protocoles de routage > IP : n’intègre pas de mécanisme de sécurité > ICMP : fuite/divulgation d’informations et risques associés > HSRP/VRRP : redondance du prochain saut > RIP/RIPv2 : pas d’authentification (v1) et inondation > OSPF : trafic multicast et risques liés aux DR/BDR > BGP : coeur de l’Internet (risques liés aux RR et aux peerings) » Les protocoles méconnus ou peu utilisés > IS-IS > (E)IGRP © 2002 Sécurité.Org 12 Protocoles : BGP (1) » Border Gateway Protocol > Version 4 > Ecoute sur le port 179/tcp > Authentication : MD5 (trop rarement utilisée) > Liaison point-à-point pour les interfaces directement connectées ou multi-hop pour les routeurs non-adjacents > Des outils d’injection de routes BGP existent (dans des cercles privés) » Format du message BGP UPDATE © 2002 Sécurité.Org 13 Protocoles : BGP (2) » Où se trouvent les risques ? » > Points d’échanges (GIX) : les FAI sont souvent connectés sur la même infrastructure partagée (un commutateur par exemple) : filtrez les AS_path et les préfixes > Vos clients/fournisseurs directs : filtrez par adresses IP sur les interfaces > Configuration multi-hop (attaque par interception) Que faut-il surveiller ? > Les AS_path annoncés par les fournisseurs > Les AS_path reçus par d’autres FAI qui contiennent votre ASN (via des serveurs de routes) > Si les routes/chemins changent (surtout la/le meilleur(e)) > Les changements ARP (commutateurs publiques dans les IX) © 2002 Sécurité.Org 14 Protocoles : BGP (3) » Mesures de sécurité additionnelles > N’utilisez pas le même mot de passe avec tous vos partenaires > Journalisez les changements et utilisez IPsec router bgp 65000 bgp log-neighbor-changes network x.x.x.x neighbor y.y.y.y remote-as 65001 neighbor y.y.y.y password <MD5password> neighbor y.y.y.y version 4 neighbor y.y.y.y prefix-list theirnetworks in neighbor y.y.y.y prefix-list ournetworks out neighbor y.y.y.y maximum-prefix 120000 neighbor y.y.y.y route-map ourASpath out ip ip ip ip prefix-list ournetworks seq 5 permit z.z.z.z/17 prefix-list ournetworks seq 10 deny 0.0.0.0/0 le 32 prefix-list theirnetworks seq 5 permit k.k.k.k/19 as-path access-list permit ^<AS>( <AS>)*$ route-map ourASpath permit 10 match as-path 99 © 2002 Sécurité.Org 15 Protocoles : BGP (4) » Outils d’injection de routes, quel est le challenge ? > Trouver les partenaires eBGP - par interception grâce à SNMP grâce aux route-servers et aux « looking glasses » publiques adresses IP proches, .1, .254, etc. > Injectez la mise à jour - par interception (messages ARP falsifiés sur les commutateurs publiques) - par synchronisation avec la session TCP existante » Mesures de sécurité / futur ? > S-BGP (Secure BGP) © 2002 Sécurité.Org 16 Prédiction de numéro de séquence TCP » Le problème des numéros de séquence initiaux > IOS vulnérable > IOS « moins » vulnérable > « Corrigé » à partir des versions 12.0(15) et 12.1(7) > Les NSI sont (encore) liés au temps/à l’horloge Source : http://razor.bindview.com/publish/papers/tcpseq.html © 2002 Sécurité.Org 17 Protocoles : OSPF (1) » Open Shortest Path First > Protocole numéro 89 > Trafic multicast : « facile » d’injecter des LSAs » Mesures de sécurité > Authentifiez les échanges OSPF interface xy !ip ospf authentication-key <key> ip ospf message-digest-key 1 md5 <key> router ospf 1 area 0 authentication [message-digest] > Placez le réseau en mode NBMA interface xy ip ospf network non-broadcast router ospf 1 neighbor x.x.x.x © 2002 Sécurité.Org 18 Protocoles : OSPF (2) » Mesures de sécurité (suite) > Ne mettez pas les interfaces qui ne doivent pas échanger des LSAs OSPF dans la configuration « réseau » d’OSPF ou enlevez les par exclusion via des interfaces passives > Journalisez les changements router ospf 1 log-adjacency-changes network x.x.x.x passive-interface default no passive-interface xy > Il n’est pas possible de filtrer ce qui est annoncé par OSPF (uniquement entre des AS OSPF), le mot clé network est un « faux ami » > Il est possible de filtrer ce que l’on reçoit router ospf 1 distribute-list <ACL> in distribute-list <ACL> out © 2002 Sécurité.Org 19 Protocoles : HSRP/VRRP (1) » Hot Standby Routing Protocol > Redondance du prochain saut (RFC 2281) > Fuite d’information: adresse MAC virtuelle - 00-00-0c-07-ac-<groupe HSRP> - l’interface virtuelle HSRP n’envoie pas d’ICMP redirect > Un groupe HSRP peut contenir plus de deux routeurs, il n’est pas nécessaire de rendre un routeur inactif, il suffit de devenir le maître » Virtual Router Redundancy Protocol (RFC 2338) > Supporte l’authentification MD5 (IP Authentication Header) © 2002 Sécurité.Org 20 Protocoles : HSRP/VRRP (2) » Mesures de sécurité > Activez l’authentification par mot de passe interface xy standby 10 priority 200 preempt standby 10 authentication p4ssw0rd standby 10 ip x.x.x.x > Changez l’adresse MAC virtuelle interface xy standby 10 mac-address <mac-address> > Utilisez IPsec (recommandation Cisco), mais n’est pas trivial (trafic multicast, ordre des processus, limité à un groupe avec deux routeurs) © 2002 Sécurité.Org 21 Dénis de services : détection (1) » La technique « ancienne » » > ACLs, charge CPU, charge de la ligne, xIDS Netflow > Journalisation des données réseaux (AS, flux IP, protocoles, etc) > Données envoyées en clair sur le réseau à un point central > Avec CEF activé Netflow effectue uniquement la journalisation et les statistiques > Sans CEF le routeur passe en mode commutation Netflow > Seul le trafic sortant sur une interface est comptabilisé > Visualisation des données : sh ip cache flow > Export des données : ip flow-export version 5 origin-as ip flow-export destination x.x.x.x interface xy ip route-cache flow © 2002 Sécurité.Org 22 Dénis de services : détection (2) » Distribution (in)habituelle du trafic par protocole > TCP : ~90% (HTTP, FTP, SMTP, outils peer-to-peer) > UDP : ~10% (DNS, SNMP, outils de streaming) > ICMP : < 1% > IGMP : < 1% > Surtout des paquets de 64 octets > RRDtool et Netflow permettent de grapher les tendances et de détecter des changements ou des anomalies Source : Flowscan from UW-Madison (http://wwwstats.net.wisc.edu/) © 2002 Sécurité.Org 23 Dénis de services : détection (3) » Netflow sur les commutateurs-routeurs > Le mode de flux Netflow par défaut ne tient compte que de la destination (l’adresse source n’est pas enregistrée) > Activez le mode « full-flow » (impact sur les performances sur les modules de supervision SE1) ! MLS in hybrid mode set mls flow full ! MLS in native mode mls flow ip full > Visualisation des données ! MLS in hybrid mode set mls ent ! MLS in native mode show mls ip > Le Netflow « du pauvre » : ntop ? © 2002 Sécurité.Org 24 Dénis de services : prévention (1) » Unicast RPF (Reverse-Path Forwarding) > Nécessite CEF (Cisco Express Forwarding) ou dCEF > Nécessite IOS 12.x et consomme ~30Mo de mémoire > Mode strict : les datagrammes IP sont vérifiés, la route vers l’adresse IP source doit pointer vers l’interface d’entrée > Seulement la meilleure route est dans la FIB (si multi-path ou des routes de même poids ne sont pas utilisés) > Les routes asymétriques sont supportées > Vérifiez les poids et les métriques utilisés dans BGP si vous utilisez le mode strict ou dans une configuration à liens multiples © 2002 Sécurité.Org 25 Dénis de services : prévention (2) » Unicast RPF (Reverse-Path Forwarding) > Mode strict (des ACLs peuvent être utilisées pour la journalisation et les exceptions) ip cef [distributed] interface xy ip verify unicast reverse-path [allow-self-ping] [acl] > Mode non-strict (loose), les datagrammes passent le test si le préfixe réseau est dans la FIB ip verify unicast source reachable-via any © 2002 Sécurité.Org 26 Dénis de services : prévention (3) » Limitation du trafic ICMP, UDP et TCP SYN interface xy rate-limit input access-group 100 8000 8000 8000 \ conform-action transmit exceed-action drop rate-limit output access-group 100 8000 8000 8000 \ conform-action transmit exceed-action drop <…> access-list 100 deny tcp any host x.x.x.x established access-list 100 permit tcp any host x.x.x.x access-list 101 permit icmp any any echo access-list 101 permit icmp any any echo-reply > La limitation du trafic UDP peut devenir un problème si votre client est une société de streaming © 2002 Sécurité.Org 27 Dénis de services : prévention (4) » TCP Intercept > Autant d’aspects positifs, que d’aspects négatifs > Si TCP Intercept est activé le routeur passe en mode commutation de processus (process switching) et ne reste pas en mode CEF > L’hôte destination doit renvoyer un RST (un rejet silencieux engendre un déni de service local) > Problème identique si vous utilisez des routes vers Null0 (route vers un trou noir) ip ip ip ip ip tcp tcp tcp tcp tcp intercept intercept intercept intercept intercept list 100 connection-timeout 60 watch-timeout 10 one-minute low 1500 one-minute high 6000 access-list 100 permit tcp any x.x.x.0 0.0.0.255 © 2002 Sécurité.Org 28 Dénis de services : prévention (5) » Filtrage ICMP avancé > Ne laissez passer que les messages ICMP « critiques » interface xy ip access-group 100 in access-list 100 deny icmp any any fragments access-list 100 permit icmp any any echo access-list 100 permit icmp any any echo-reply access-list 100 permit icmp any any packet-too-big access-list 100 permit icmp any any source-quench access-list 100 permit icmp any any time-exceeded access-list 100 deny icmp any any access-list 100 permit ip any any > Le filtrage ICMP est une source de dispute, à chacun de se faire sa propre idée (unreachables, parameter-problem, etc) © 2002 Sécurité.Org 29 Dénis de services : prévention (6a) » Techniques avancées : BGP/Null0 1/2 > Choisissez une adresse du bloc TEST-NET et configurez une route vers Null0 sur tous les routeurs pour cette adresse > Sur un routeur BGP maître, changez le prochain saut pour le réseau source à filtrer par cette adresse IP > Redistribuez ces adresses via BGP dans votre AS et uRPF va supprimer le datagramme (au niveau de la LC, pas du RP) router bgp <AS> network <sourceOfDDOS> mask <netmask> route-map ddos-nh route-map ddos-nh set ip next-hop <TEST-NETIPaddr> ip route <TEST-NET> 255.255.255.0 Null0 > Ne redistribuez pas ces informations à vos partenaires : utilisez un AS privé ou une communauté en « no-export » © 2002 Sécurité.Org 30 Dénis de services : prévention (6b) » Techniques avancées : BGP/Null0 2/2 NOC iBGP sessions Master BGP router (set the next-hop for the DDoS sources to 192..0.2.10) Route reflectors Propagate the new next-hop Core/Access Routers (route 192.0.2.10 to Null0) Internet or Customers © 2002 Sécurité.Org 31 Dénis de services : prévention (7) » Techniques avancées : BGP/CAR/FIB 1/2 > Marquez le réseau dont vous voulez limiter la bande passante avec une communauté spécifique et redistribuez ces informations depuis le routeur BGP maître à tous ses clients router bgp <AS> network <destOfDDOS> mask <netmask> neighbor x.x.x.x route-map ddos-rl out neighbor x.x.x.x send community access-list 10 permit <destOfDDOS> route-map ddos-rl match ip address 10 set community <AS>:66 no-export ip route <destOfDDOS> 255.255.255.0 Null0 © 2002 Sécurité.Org 32 Dénis de services : prévention (8) » Techniques avancées : BGP/CAR/FIB 2/2 > Sur les routeurs changez le QosID dans la FIB par rapport à cette communauté et limitez la bande passante par rapport à ce QosID router bgp <AS> table-map ddos-rl ip community list 1 permit <AS>:66 route-map ddos-rl match community 1 set ip qos-group 66 interface xy bgp-policy source ip-qos-map rate-limit input qos-group 66 ... © 2002 Sécurité.Org 33 Filtrage entrant et sortant (1) » Ce qu’il ne faudrait jamais voir/laisser passer/router > RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) > 0.0.0.0/x, 127.0.0.0/8 > 169.254.0.0/16 (auto-configuration quand DHCP est indisponible) > 192.0.2.0/24 (Netname: TEST-NET, comme example.com) > Les adresses multicast (classe D) et les réseaux E.T. (E+) > Les plages d’adresses utilisées par certains vendeurs (192.0.0.192 pour certaines imprimantes) > Les blocs réservés (ARIN - bogon networks) > Les datagrammes destinés à l’adresse de broadcast ou avec source == destination © 2002 Sécurité.Org 34 Filtrage entrant et sortant (2) » Ce qu’il faudrait voir/laisser passer/router » > Vos plages d’adresses uniquement Exemple de filtrage par ACL (IX, uplinks, CPE) interface xy access-group in 100 access-group out 100 access-list 100 deny ip host 0.0.0.0 any access-list 100 deny ip 127.0.0.0 0.255.255.255 255.0.0.0 0.255.255.255 access-list 100 deny ip 10.0.0.0 0.255.255.255 255.0.0.0 0.255.255.255 access-list 100 deny ip 172.16.0.0 0.15.255.255 255.240.0.0 0.15.255.255 access-list 100 deny ip 192.168.0.0 0.0.255.255 255.255.0.0 0.0.255.255 access-list 100 deny ip 192.0.2.0 0.0.0.255 255.255.255.0 0.0.0.255 access-list 100 deny ip 169.254.0.0 0.0.255.255 255.255.0.0 0.0.255.255 access-list 100 deny ip 240.0.0.0 15.255.255.255 any access-list 100 permit ip any any ! Or permit ip <your network prefixes only> » Exemple de filtrage avec routage/forwarding dans Null0 ip route 10.0.0.0 255.0.0.0 null0 ip route 172.16.0.0 255.240.0.0 null0 ip route 192.168.0.0 255.255.0.0 null0 © 2002 Sécurité.Org 35 Détection des vers et protection (1) » Comment détecter un nouveau vers > Nombre (inhabituel) de nouveaux flux HTTP/SMTP et journalisation sur les serveurs » Comment vous protéger avec NBAR (Network-Based Application Recognition)? > Nécessite CEF > Disponible à partir de 12.1(5)T > Comme TCP Intercept - en a t’on vraiment besoin ? > Effet de bord: la session TCP est déjà établie mais le serveur ne reçoit pas la requête HTTP GET > Impact sur les performances: ~20% CPU © 2002 Sécurité.Org 36 Détection des vers et protection (2) » Classification des flux entrants avec NBAR et filtrage des flux sortants avec des ACLs ! Class-based inbound marking class-map match-any http-hacks match protocol http url “*cmd.exe*” ! Policy map to mark inbound policy-map mark-inbound-http-hacks class http-hacks set ip dscp 1 ! Apply the service policy to the « attacking » interface int xy service-policy input mark-inbound-http-hacks ! Block with an ACL access-list 100 deny ip any any dscp 1 log access-list 100 permit ip any any ! Apply the ACL to the « protected » interface int xy ip access-group 100 out © 2002 Sécurité.Org 37 Détection des vers et protection (3) » Classification des flux entrants et politique basée sur une classe ! Class-based inbound marking class-map match-any http-hacks match protocol http url “*cmd.exe*” ! Policy map to mark inbound policy-map drop-inbound-http-hacks class http-hacks policy 8000 4000 2000 conform-action drop exceed-action \ drop violate-action drop ! Apply the service policy to the « attacking » interface int xy service-policy input police-inbound-http-hacks © 2002 Sécurité.Org 38 Détection des vers et protection (4) » Classification des flux entrants et routage en fonction d’une politique ! Class-based inbound marking class-map match-any http-hacks match protocol http url “*cmd.exe*” ! Policy map to mark inbound policy-map mark-inbound-http-hacks class http-hacks set ip dscp 1 ! Apply the service policy to the « attacking » interface int xy service-policy input mark-inbound-http-hacks ! Create a route-map access-list 100 permit ip any any dscp 1 route-map route2null 10 match ip address 100 set interface Null0 ! Apply the routing policy to the « attacking » interface int xy ip policy route-map route2null © 2002 Sécurité.Org 39 Détection des vers et protection (5) » Restrictions et limitations de NBAR > Supporte jusqu’à 24 comparaisons concurrentes (URL, machines ou type MIME) > Ne compare que les 400 premiers octets d’une URL > Ne gère pas les paquets fragmentés > Trafic HTTPS (c’est normal ;-) > Paquet provenant ou destiné au routeur (impossible de protéger le serveur HTTP local) > Ne supporte pas l’Unicode (UTF-8/%u) » Optimisez le scheduler et les expirations ip nbar resources 600 1000 50 scheduler allocate 30000 2000 © 2002 Sécurité.Org 40 DDoS/vers recherche/futur » Le pire est à venir > Recherche très active, mais très peu de publications: “les risques sont trop élevés” > La plupart des vers existants étaient plutôt faibles/gentils > Les prochains vers vont-ils encore s’attaquer à IIS/Outlook ? > Quels sont les effets sur la stabilité d’Internet ? » Quelles sont les tendances ? > Routeurs utilisés comme source (CERT) > De plus en plus complexe et agents plus en plus intelligents > Utilisation temporaire de blocs non alloués (Arbor Networks) © 2002 Sécurité.Org 41 Capture de trafic réseau (routeurs) » Possibilité d’affichage local > Capture avec des ACLs access-list 100 … debug ip packet detail 100 > Utilisez toujours le tampon et n’affichez pas sur la console logging buffered 64000 debugging » > Impact sur les performances : Vérifiez la charge processeur avec la commande sh proc cpu Envoi des informations sur un équipement distant > Tunnel GRE vers un serveur et réinjection du trafic dans le tunnel (tunnelx) © 2002 Sécurité.Org 42 Capture de trafic réseau (commutateurs) » Pas d’affichage local » Envoi des informations sur un équipement distant > Copie du trafic d’un port ou VLAN vers un autre port ! MLS in hybrid mode set span <source (mod/port or VLAN)> <destination port> ! MLS in native mode monitor session <session id> ... > Possibilité de ne copier que le trafic désiré (VACL utilisant le mot clé “capture”) : set security acl capture-ports <mod/port> > RSPAN copie le trafic vers un VLAN (nécessite des Catalyst 6000 de bout en bout) > 1 or 2 port(s) SPAN en fonction du modèle de commutateur > Impact sur les performances très faible : vérifiez la charge à l’aide de la commande ps -c (commande cachée) © 2002 Sécurité.Org 43 Principes de configuration (1) » Désactivez tous les services non utilisés no ip bootp server no tcp-small-servers no udp-small-servers no ip identd no ip finger service nagle no no no no cdp run boot network service config ip subnet-zero no no no no service finger service pad ip http server ip source-route » Activez syslog service service logging logging logging logging time log datetime localtime show-timezone msec time debug datetime localtime show-timezone msec x.x.x.x trap debugging source loopback0 buffered 64000 debugging » Synchronisez les horloges avec NTP (authentifié si possible) © 2002 Sécurité.Org ntp authentication-key 10 md5 <key> ntp authenticate ntp trusted-key 10 ntp server x.x.x.x [key 10] ntp access-group peer 20 access-list 20 permit host x.x.x.x access-list 20 deny any 44 Principes de configuration (2) » Au niveau de l’interface interface xy no ip source-route no ip directed-broadcast no ip proxy-arp no ip redirects no ip unreachables ! IP accounting for the traffic that fails the IP ACLs ip accounting access-violations no ip mask-reply no cdp enable > En cas d’utilisation de trafic multicast interface xy ! To prevent Auto-RP messages from entering the PIM domain ip multicast boundary 10 access-list 10 deny 224.0.1.39 access-list 10 deny 224.0.1.40 » Si possible, utilisez les addresses de loopback interface loopback0 ip address x.x.x.x 255.255.255.255 © 2002 Sécurité.Org 45 Admin : SNMP (1) » Simple Network Management Protocol » > v1 : RFC1157, nom de communauté pour l’authentification > v2 : RFC1441/1446, sécurité améliorée (party) et get-bulk > v3 : RFC2274, apporte la vérification d’intégrité, le chiffrement et l’authentification par utilisateur Attaques et problèmes connus > Les administrateurs réseaux utilisent des communautés RW > Nom de communauté facile à deviner/trouver > Attaques par rejeux et déni de service > Fuite d’information > La fonction de découverte automatique des outils de gestion de réseaux peut transmettre la communauté hors de votre réseau/domaine © 2002 Sécurité.Org 46 Admin : SNMP (2) » Filtrage au niveau IP > Définissez une ACL et activez la sur chaque interface interface Ethernet0/0 access-group in 100 access-list 100 permit udp host 192.168.1.1 host 192.168.1.2 eq snmp access-list 100 permit udp host 192.168.1.2 eq snmp host 192.168.1.1 access-list 100 deny udp any any eq snmp log-input » > Possibilité d’appliquer des ACLs sur le RP (S-train) Filtrage au niveau applicatif > Définissez une ACL et utilisez la pour le contrôle d’accès à l’application > Utilisez des vues pour limiter la portée snmp-server snmp-server snmp-server snmp-server snmp-server snmp-server access-list © 2002 Sécurité.Org community r3ad view cutdown RO 10 community wr1te RW 10 view cutdown ip.21 excluded enable traps <…> host x.x.x.x source loopback0 10 permit x.x.x.x 47 Admin : SNMP (3) » SNMP v3 > Définissez des utilisateurs/groupes et leurs droits snmp-server snmp-server snmp-server access-list access-list group engineering v3 priv read cutdown 10 user nico engineering v3 auth md5 myp4ss priv des56 mydes56 view cutdown ip.21 excluded 10 permit x.x.x.x 10 deny any log » Trois avis de sécurité récents > Communauté ILMI cachée (la commande show snmp community montre toute les communautés) > Communauté lecture/écriture visible depuis une communauté d’accès en lecture seule > Déni de service (débordement de tampon) © 2002 Sécurité.Org 48 Admin : Secure Shell (1) » Support SSHv1 (client et serveur) > Routeurs : depuis 12.1(1)T/12.0(10)S (utilisez une image 3DES), scp depuis 12.2T > Commutateurs : CatOS 6.x » Quels sont les risques et limitations ? > L’implémentation CISCO est basée sur SSHv1 et souffre des même bogues : possibilité de retrouver la clé de session, CRC32, analyse de trafic (SSHow), attaques par analyse temporelle > Impossible de forcer l’utilisation de 3DES ou d’utiliser des clés pour l’authentification des utilisateurs > Corrigé dans 12.0(20)S, 12.1(8a)E, 12.2(3), ... © 2002 Sécurité.Org 49 Admin : Secure Shell (2) » Configuration SSH hostname <hostname> ip domain-name <domainname> crypto key generate rsa ip ssh timeout 60 ip ssh authentication-retries 3 » Configuration scp ip scp server enable © 2002 Sécurité.Org 50 Admin : IPsec (1) » Configuration IPsec > Interdit tout trafic sauf IPsec et le trafic autorisé interface xy ip address y.y.y.y 255.255.255.0 ip access-group 100 in access-list 100 permit udp host x.x.x.x host y.y.y.y eq 500 access-list 100 permit esp host x.x.x.x host y.y.y.y access-list 100 permit ahp host x.x.x.x host y.y.y.y access-list 100 permit ip <remoteLAN> <localLAN> > Définissez une SA (association de sécurité): trafic à chiffrer access-list 110 permit ip x.x.x.x <wildcard> y.y.y.y <wildcard> > Définissez une politique IKE crypto isakmp policy 1 hash md5 encryption 3des authentication pre-share ! DH group (1024 bits) group 2 crypto isakmp key <key> address y.y.y.y © 2002 Sécurité.Org 51 Admin : IPsec (2) » Configuration IPsec > Définissez le transform-set (mode tunnel recommandé, plus facile d’utiliser le mode transport pour Win2k) crypto ipsec transform-set 3desmd5 esp-3des esp-md5-hmac > Mettez le tout dans une crypto-map crypto map mycryptomap 10 ipsec-isakmp set peer y.y.y.y set transform-set 3desmd5 match address 110 > Et assignez la à une interface interface xy crypto-map mycryptomap © 2002 Sécurité.Org 52 Admin : comptes utilisateurs locaux (1) » Utilisateurs locaux » > Le chiffrement de type 7 est réversible > MD5 disponible depuis 12.1(8a)E Mot de passe enable > utilisez MD5 (type 5) service password-encryption enable secret 5 <…> » Méthode d’accès > Supprimez telnet et activez SSH service tcp-keepalives-in line vty 0 4 exec-timeout 0 60 access-class 10 in transport input ssh transport output none \ transport preferred none access-list 10 permit x.x.x.x > Sécurisez l’accès à la console et au port AUX © 2002 Sécurité.Org 53 Admin : comptes utilisateurs locaux (2) » Commutateurs set password <password> set enablepass <password> ! For access via sc0 set ip permit enable set ip permit x.x.x.x y.y.y.y telnet set ip permit x.x.x.x y.y.y.y ssh set ip permit z.z.z.z y.y.y.y snmp © 2002 Sécurité.Org 54 AAA : Authentification / Journalisation » Authentification/Audit : RADIUS/TACACS+ aaa new-model aaa authentication login default tacacs+ enable aaa authentication enable default tacacs+ enable aaa accounting exec default start-stop group tacacs+ ip tacacs source-interface loopback0 tacacs-server host x.x.x.x tacacs-server key K3y » Enregistrement des commandes tapées > TACACS+ uniquement aaa accounting commands 15 default start-stop group tacacs+ » Autorisation par commande > TACACS+ uniquement © 2002 Sécurité.Org 55 AAA : Autorisation » Niveaux de privilèges > 1 : mode utilisateur “lecture uniquement” > 15 : mode privilégié “enable” > Changez le niveau de privilège de certaines commandes (limite la fuite d’information et les rebonds) > Un utilisateur peut seulement visualiser la configuration qu’il est autorisé à modifier > Un utilisateur peut avoir uniquement la permission de voir la configuration et puis être déconnecté privilege exec level 15 connect privilege exec level 15 telnet privilege exec level 15 ssh privilege exec level 15 rlogin privilege exec level 15 show logging privilege exec level 15 show [ip] access-lists username seeandgo privilege autocommand show running © 2002 Sécurité.Org 56 AAA : Kerberos (1) » Routeurs Cisco » > Telnet cerbèrisé et authentification utilisant Kerberos (telnet, SSH et console) > Association d’une instance à un niveau de privilège (définition locale) > Fonctionnalité “Kerberos V client support” (Enterprise) > Non supporté sur certains modèles (16xx, GSR, etc) Commutateurs Cisco > Telnet uniquement (SSH disponible à partir des versions 6.1 mais sans support Kerberos) > Version 5.x pour la SE au minimum > Uniquement sur Catalyst 4K, 5K et 6K/6500 (avec SE I, non supporté par les SE II) © 2002 Sécurité.Org 57 AAA : Kerberos (2) » Kerberos sur un routeur aaa authentication login default krb5-telnet local aaa authorization exec default krb5-instance kerberos local-realm COLT.CH kerberos srvtab entry host/... kerberos server COLT.CH 392.568.0.14 kerberos instance map engineering 15 kerberos instance map support 3 kerberos credentials forward line vty 0 4 ntp server 392.568.0.626 » Kerberos sur un commutateur set set set set set set set set set kerberos local-realm COLT.CH kerberos clients mandatory kerberos credentials forward kerberos server COLT.CH 392.568.0.682 88 kerberos srvtab entry host/... authentication login kerberos enable telnet primary authentication enable kerberos enable telnet primary ntp client enable ntp server 392.568.0.11 © 2002 Sécurité.Org 58 Listes de contrôle d’accès (1) » Filtrage IP avec les ACLs > Pas de table d’état, pas de réassemblage des paquets > log-input enregistre aussi l’interface et l’adresse MAC source > Seul le premier fragment est contrôlé (sauf si utilisation du mot clé fragment) » Types d’ACLs connues > Standard : basées sur l’adresse IP source uniquement (1-99, 1300-1999) > Etendue : contrôle sur les adresses IP, ports, protocoles, bit ACK/RST positionné (connexion établie), etc. (100-199, 2000-2699, ACLs nommées) © 2002 Sécurité.Org 59 Listes de contrôle d’accès (2) » Autre types d’ACLS > TurboACL : utilise une table de hashage (gain si 5+ ACEs) > Reflexives : filtre dynamique pour les réponses (ne fonctionne pas pour les protocoles de type H.323) > Dynamiques : ajoute l’authentification des utilisateurs aux ACLs étendues > Nommées : permet de supprimer simplement une ACE > Temporelles : spécification d’un plage de temps > CBAC : “inspecte” le protocole (helper/proxy/fixup-like), utilisé en conjonction avec des ACLs > MAC : filtrage basé sur les adresses MAC (700-799 en standard, 1100-1199 en étendu) > Protocoles: filtrage sur le type de protocole (200-299) © 2002 Sécurité.Org 60 Listes de contrôle d’accès(3) » Exemple : ACL étendue sur un routeur no access-list 100 access-list 100 permit <…> access-list 100 deny tcp any range 1 65535 any range 0 65535 log access-list 100 deny udp any range 1 65535 any range 0 65535 log access-list 100 deny ip any any log-input » ACLs sur un commutateur/routeur > Filtrage définit au niveau 3 (S/E/R/D) envoyé dans la NMP (TCAM) > Pas d’impact de performance sur la MSCF si les commandes log[-input], ip unreachables, TCP Intercept ne sont pas utilisées > VACLs (VLAN) : Permet de filtrer le trafic au niveau IP et sont inscrites par la PFC dans le commutateur © 2002 Sécurité.Org 61 Commutateurs » Commutateurs multiniveau (6509) > Mode Natif (fonctionnant sous IOS uniquement) > Mode Hybride (IOS et CatOS) > ACLs traitées rapidement » CatOS 6.2 intègre “IOS Firewall feature set” > Relais d’authentification, CBAC, TCP Intercept, RACLs > Pas de support d’IDS, ni de chiffrement > Roadmap: MAC-layer VACLs (pour le trafic IP) » CatIOS 12.1.x supporte > IP Unicast-RPF, TCP Intercept, etc © 2002 Sécurité.Org 62 Vérification d’integrité du routeur (1) » 4 étapes pour construire un vérificateur d’integrité pour IOS/CatOS > 1. Stockez les configurations des routeurs et commutateurs dans un environnement sûr (CVS par exemple) > 2. Télechargez la configuration depuis l’équipement: - script perl ou expect, telnet, ssh, rsh, tftp, scp - téléchargement via SNMP (accès RW nécessaire) snmpset -c <community> <routerIP> \ .1.3.6.1.4.1.9.2.1.55.<tftpserverIP> s <filename> > 3. Vérification : automatique (batch) ou lorsque la configuration est modifié (message “configured by <xyz>” dans les logs ou message SNMP) © 2002 Sécurité.Org 63 Vérification d’intégrité du routeur (2) » 4 étapes pour construire un vérificateur d’integrité pour IOS/CatOS > 4. Comparez les configurations à l’aide d’un script ou utilisez CVS (ou Rancid) » Limitations et détails > 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* © 2002 Sécurité.Org 64 Vérification d’intégrité du routeur (3) » Cisco IOS rootkit/BoF/FS : est-ce possible ? > Système propriétaire fonctionnant sur processeurs MIPS (nouveaux modèles) ou Mot68K (anciens modèles) > Programmes au format ELF 32-bit MSB, édition des liens statique > Possibilités avec l’accès à gdb {kernel¦pid pid-num} ? > La ROMMON est-elle un intéressant point de départ (gdb local) ? “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” © 2002 Sécurité.Org 65 Vérification d’intégrité du routeur (4) » Cisco IOS rootkit/BoF/FS : problèmes ouverts > Aucune commande/outils documentés pour interagir avec le noyau, la mémoire, les processus, etc. > Possibilités en mode “enable engineer” ? > 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 > Nouvelle possibilité avec l’IOS-NG (support de modules dynamiques) ? © 2002 Sécurité.Org 66 MPLS (1) » MultiProtocol Label Switching > Circuits virtuels, VPN non chiffrés/authentifiés > “Equivalent” à un circuit de niveau 2 (ATM/FR) > IPsec peut être utilisé pour sécuriser le trafic > Partitionnement VPN réalisé uniquement lors du routage > Une table de routage par VPN sur chaque routeur PE (VRF) > En-tête MPLS ajouté à chaque paquet pour identifier le VPN > Chaque routeur (LSR) sur le chemin MPLS (LSP) gère une table locale (LIB) > L’en-tête à une signification locale et peut être changé à chaque saut © 2002 Sécurité.Org 67 MPLS (2) » Attaques > Injection de paquets marqués : - Bloqué par défaut sur toute les interfaces (CE/PE) - Simple en ayant accès à un routeur MPLS > Injection de données dans le protocole de signalisation ((MP-)BGP et IGPs) pour modifier la topologie du réseau MPLS » Mesures de sécurité > Configuration correcte de tous les routeurs > Information MPLS distribuée sur tous les routeurs (difficile à rassembler) © 2002 Sécurité.Org 68 IPv6 » IPv6 > Peu de nouveaux risques > Support IPsec “natif” > Risque élevé plus durant la transition IPv4 -> IPv6 > L’adresse MAC peut faire partie de l’adresse IP © 2002 Sécurité.Org 69 That’s all folks :-) Dernière version de la présentation < http://www.securite.org/presentations/secip/ > Merci aux membres du groupe eXperts pour la relecture et les commentaires, et à vous pour votre participation. Image: http://www.inforamp.net/~dredge/funkycomputercrowd.html © 2002 Sécurité.Org 70