protection de l’infrastructure réseau ip en environnement...
TRANSCRIPT
> 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
Protection de l’infrastructureréseau IP en environnement Cisco
(routeurs et commutateurs)
2© 2002 Sécurité.Org
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é
3© 2002 Sécurité.Org
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
4© 2002 Sécurité.Org
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)
5© 2002 Sécurité.Org
Filtrage STP et par adresse MAC
» Fixez les adresses MAC par port (et si possible larelation adresse IP/adresse MAC)
» Activez BPDU-Guard (Bridge PDU) pour filtrer STP
» Limitez le trafic de type broadcast
! MLS (Multi Layer Switch) in hybrid mode (Sup w/ CatOS, MSFC w/ IOS)set spantree disableset spantree portfast bpdu-guard-enable
! MLS in native mode (CatIOS on the Sup and MSFC)spanning-tree portfast bpduguard
set port security <mod/port> enable 01-02-03-04-05-06 shutdown
set port broadcast <mod/port> 0.01%
6© 2002 Sécurité.Org
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 lepartitionnement réseau
> Les commutateurs multiniveau (commutateur avec unmodule de routage) constituent un point faible dans lasé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
7© 2002 Sécurité.Org
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)
> Les ponts entre VLANs (VLAN bridge) permettent de fairepasser 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
set vlan 2 <mod/port>clear trunk <mod/port> 1
8© 2002 Sécurité.Org
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 VTPset vtp domain <domaine.vtp> password <mot de passe>set vtp mode transparent
9© 2002 Sécurité.Org
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
10© 2002 Sécurité.Org
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, plate-forme, version logicielle, préfixe réseau IP
» Format du message
11© 2002 Sécurité.Org
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
- Désactivation par interface
> Commutateurs (globalement ou par port)
no cdp run
interface xy no cdp enable
set cdp disable <mod/port>
12© 2002 Sécurité.Org
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
13© 2002 Sécurité.Org
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
14© 2002 Sécurité.Org
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 parexemple) : filtrez les AS_path et les préfixes
> Vos clients/fournisseurs directs : filtrez par adresses IP surles 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)
15© 2002 Sécurité.Org
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 prefix-list ournetworks seq 5 permit z.z.z.z/17ip prefix-list ournetworks seq 10 deny 0.0.0.0/0 le 32ip prefix-list theirnetworks seq 5 permit k.k.k.k/19ip as-path access-list permit ^<AS>( <AS>)*$
route-map ourASpath permit 10 match as-path 99
16© 2002 Sécurité.Org
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)
17© 2002 Sécurité.Org
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
18© 2002 Sécurité.Org
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
> Placez le réseau en mode NBMAinterface xy ip ospf network non-broadcast
router ospf 1 neighbor x.x.x.x
interface xy!ip ospf authentication-key <key> ip ospf message-digest-key 1 md5 <key>router ospf 1 area 0 authentication [message-digest]
19© 2002 Sécurité.Org
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 ouenlevez les par exclusion via des interfaces passives
> Journalisez les changements
> 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 log-adjacency-changes network x.x.x.x passive-interface default no passive-interface xy
router ospf 1 distribute-list <ACL> in distribute-list <ACL> out
20© 2002 Sécurité.Org
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, iln’est pas nécessaire de rendre un routeur inactif, il suffit dedevenir le maître
» Virtual Router Redundancy Protocol (RFC 2338)> Supporte l’authentification MD5 (IP Authentication Header)
21© 2002 Sécurité.Org
Protocoles : HSRP/VRRP (2)
» Mesures de sécurité> Activez l’authentification par mot de passe
> Changez l’adresse MAC virtuelle
> Utilisez IPsec (recommandation Cisco), mais n’est pas trivial(trafic multicast, ordre des processus, limité à un groupeavec deux routeurs)
interface xy standby 10 priority 200 preempt standby 10 authentication p4ssw0rd standby 10 ip x.x.x.x
interface xy standby 10 mac-address <mac-address>
22© 2002 Sécurité.Org
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.xinterface xy ip route-cache flow
23© 2002 Sécurité.Org
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/)
24© 2002 Sécurité.Org
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)
> Visualisation des données
> Le Netflow « du pauvre » : ntop ?
! MLS in hybrid modeset mls flow full
! MLS in native modemls flow ip full
! MLS in hybrid modeset mls ent
! MLS in native modeshow mls ip
25© 2002 Sécurité.Org
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 utilisezle mode strict ou dans uneconfiguration à liens multiples
26© 2002 Sécurité.Org
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)
> Mode non-strict (loose), les datagrammes passent le test sile préfixe réseau est dans la FIB
ip cef [distributed]interface xy ip verify unicast reverse-path [allow-self-ping] [acl]
ip verify unicast source reachable-via any
27© 2002 Sécurité.Org
Dénis de services : prévention (3)
» Limitation du trafic ICMP, UDP et TCP SYN
> La limitation du trafic UDP peut devenir un problème si votreclient est une société de streaming
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 establishedaccess-list 100 permit tcp any host x.x.x.x
access-list 101 permit icmp any any echoaccess-list 101 permit icmp any any echo-reply
28© 2002 Sécurité.Org
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 restepas en mode CEF
> L’hôte destination doit renvoyer un RST (un rejet silencieuxengendre un déni de service local)
> Problème identique si vous utilisez des routes vers Null0(route vers un trou noir)ip tcp intercept list 100ip tcp intercept connection-timeout 60ip tcp intercept watch-timeout 10ip tcp intercept one-minute low 1500ip tcp intercept one-minute high 6000
access-list 100 permit tcp any x.x.x.0 0.0.0.255
29© 2002 Sécurité.Org
Dénis de services : prévention (5)
» Filtrage ICMP avancé> Ne laissez passer que les messages ICMP « critiques »
> Le filtrage ICMP est une source de dispute, à chacun de sefaire sa propre idée (unreachables, parameter-problem, etc)
interface xy ip access-group 100 inaccess-list 100 deny icmp any any fragmentsaccess-list 100 permit icmp any any echoaccess-list 100 permit icmp any any echo-replyaccess-list 100 permit icmp any any packet-too-bigaccess-list 100 permit icmp any any source-quenchaccess-list 100 permit icmp any any time-exceededaccess-list 100 deny icmp any anyaccess-list 100 permit ip any any
30© 2002 Sécurité.Org
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)
> Ne redistribuez pas ces informations à vos partenaires :utilisez un AS privé ou une communauté en « no-export »
router bgp <AS> network <sourceOfDDOS> mask <netmask> route-map ddos-nhroute-map ddos-nh set ip next-hop <TEST-NETIPaddr>ip route <TEST-NET> 255.255.255.0 Null0
31© 2002 Sécurité.Org
Dénis de services : prévention (6b)
» Techniques avancées : BGP/Null0 2/2
Internetor
Customers
Master BGP router(set the next-hop for the DDoS
sources to 192..0.2.10)
Route reflectors
iBGP sessionsNOC
Core/Access Routers(route 192.0.2.10 to Null0)
Propagate the newnext-hop
32© 2002 Sécurité.Org
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 redistribuezces informations depuis le routeur BGP maître à tous sesclientsrouter bgp <AS> network <destOfDDOS> mask <netmask> neighbor x.x.x.x route-map ddos-rl out neighbor x.x.x.x send communityaccess-list 10 permit <destOfDDOS>route-map ddos-rl match ip address 10 set community <AS>:66 no-exportip route <destOfDDOS> 255.255.255.0 Null0
33© 2002 Sécurité.Org
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 QosIDrouter bgp <AS> table-map ddos-rlip community list 1 permit <AS>:66route-map ddos-rl match community 1 set ip qos-group 66interface xy bgp-policy source ip-qos-map rate-limit input qos-group 66 ...
34© 2002 Sécurité.Org
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
35© 2002 Sécurité.Org
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)
» Exemple de filtrage avec routage/forwarding dansNull0
interface xy access-group in 100 access-group out 100access-list 100 deny ip host 0.0.0.0 anyaccess-list 100 deny ip 127.0.0.0 0.255.255.255 255.0.0.0 0.255.255.255access-list 100 deny ip 10.0.0.0 0.255.255.255 255.0.0.0 0.255.255.255access-list 100 deny ip 172.16.0.0 0.15.255.255 255.240.0.0 0.15.255.255access-list 100 deny ip 192.168.0.0 0.0.255.255 255.255.0.0 0.0.255.255access-list 100 deny ip 192.0.2.0 0.0.0.255 255.255.255.0 0.0.0.255access-list 100 deny ip 169.254.0.0 0.0.255.255 255.255.0.0 0.0.255.255access-list 100 deny ip 240.0.0.0 15.255.255.255 anyaccess-list 100 permit ip any any! Or permit ip <your network prefixes only>
ip route 10.0.0.0 255.0.0.0 null0ip route 172.16.0.0 255.240.0.0 null0ip route 192.168.0.0 255.255.0.0 null0
36© 2002 Sécurité.Org
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-BasedApplication 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
37© 2002 Sécurité.Org
Détection des vers et protection (2)
» Classification des flux entrants avec NBAR et filtragedes flux sortants avec des ACLs! Class-based inbound markingclass-map match-any http-hacks match protocol http url “*cmd.exe*”! Policy map to mark inboundpolicy-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
38© 2002 Sécurité.Org
Détection des vers et protection (3)
» Classification des flux entrants et politique basée surune classe! Class-based inbound markingclass-map match-any http-hacks match protocol http url “*cmd.exe*”! Policy map to mark inboundpolicy-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
39© 2002 Sécurité.Org
Détection des vers et protection (4)
» Classification des flux entrants et routage en fonctiond’une politique! Class-based inbound markingclass-map match-any http-hacks match protocol http url “*cmd.exe*”! Policy map to mark inboundpolicy-map mark-inbound-http-hacks class http-hacks set ip dscp 1! Apply the service policy to the « attacking » interfaceint xy service-policy input mark-inbound-http-hacks! Create a route-mapaccess-list 100 permit ip any any dscp 1route-map route2null 10 match ip address 100 set interface Null0! Apply the routing policy to the « attacking » interfaceint xy ip policy route-map route2null
40© 2002 Sécurité.Org
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 expirationsip nbar resources 600 1000 50scheduler allocate 30000 2000
41© 2002 Sécurité.Org
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)
42© 2002 Sécurité.Org
Capture de trafic réseau (routeurs)
» Possibilité d’affichage local> Capture avec des ACLs
> Utilisez toujours le tampon et n’affichez pas sur la console
> Impact sur les performances : Vérifiez la charge processeuravec 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)
access-list 100 …debug ip packet detail 100
logging buffered 64000 debugging
43© 2002 Sécurité.Org
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
> Possibilité de ne copier que le trafic désiré (VACL utilisant lemot clé “capture”) :
> RSPAN copie le trafic vers un VLAN (nécessite des Catalyst6000 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)
! MLS in hybrid modeset span <source (mod/port or VLAN)> <destination port>! MLS in native modemonitor session <session id> ...
set security acl capture-ports <mod/port>
44© 2002 Sécurité.Org
Principes de configuration (1)
» Désactivez tous les services non utilisés
» Activez syslog
» Synchronisez les horloges avec NTP (authentifié sipossible)
no ip bootp serverno tcp-small-serversno udp-small-servers
service time log datetime localtime show-timezone msecservice time debug datetime localtime show-timezone mseclogging x.x.x.xlogging trap debugginglogging source loopback0logging buffered 64000 debugging
ntp authentication-key 10 md5 <key>ntp authenticatentp trusted-key 10ntp server x.x.x.x [key 10]ntp access-group peer 20access-list 20 permit host x.x.x.xaccess-list 20 deny any
no service fingerno service padno ip http serverno ip source-route
no cdp runno boot networkno service configno ip subnet-zero
no ip identdno ip fingerservice nagle
45© 2002 Sécurité.Org
Principes de configuration (2)
» Au niveau de l’interface
> En cas d’utilisation de trafic multicast
» Si possible, utilisez les addresses de loopback
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
interface xy ! To prevent Auto-RP messages from entering the PIM domain ip multicast boundary 10access-list 10 deny 224.0.1.39access-list 10 deny 224.0.1.40
interface loopback0 ip address x.x.x.x 255.255.255.255
46© 2002 Sécurité.Org
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 votreréseau/domaine
47© 2002 Sécurité.Org
Admin : SNMP (2)
» Filtrage au niveau IP> Définissez une ACL et activez la sur chaque interface
> 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
interface Ethernet0/0 access-group in 100access-list 100 permit udp host 192.168.1.1 host 192.168.1.2 eq snmpaccess-list 100 permit udp host 192.168.1.2 eq snmp host 192.168.1.1access-list 100 deny udp any any eq snmp log-input
snmp-server community r3ad view cutdown RO 10snmp-server community wr1te RW 10snmp-server view cutdown ip.21 excludedsnmp-server enable traps <…>snmp-server host x.x.x.xsnmp-server source loopback0access-list 10 permit x.x.x.x
48© 2002 Sécurité.Org
Admin : SNMP (3)
» SNMP v3> Définissez des utilisateurs/groupes et leurs droits
» 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)
snmp-server group engineering v3 priv read cutdown 10snmp-server user nico engineering v3 auth md5 myp4ss priv des56 mydes56snmp-server view cutdown ip.21 excludedaccess-list 10 permit x.x.x.xaccess-list 10 deny any log
49© 2002 Sécurité.Org
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 analysetemporelle
> Impossible de forcer l’utilisation de 3DES ou d’utiliser desclés pour l’authentification des utilisateurs
> Corrigé dans 12.0(20)S, 12.1(8a)E, 12.2(3), ...
50© 2002 Sécurité.Org
Admin : Secure Shell (2)
» Configuration SSH
» Configuration scp
hostname <hostname>ip domain-name <domainname>crypto key generate rsaip ssh timeout 60ip ssh authentication-retries 3
ip scp server enable
51© 2002 Sécurité.Org
Admin : IPsec (1)
» Configuration IPsec> Interdit tout trafic sauf IPsec et le trafic autorisé
> Définissez une SA (association de sécurité): trafic à chiffrer
> Définissez une politique IKE
access-list 110 permit ip x.x.x.x <wildcard> y.y.y.y <wildcard>
crypto isakmp policy 1 hash md5 encryption 3des authentication pre-share ! DH group (1024 bits) group 2crypto isakmp key <key> address y.y.y.y
interface xy ip address y.y.y.y 255.255.255.0 ip access-group 100 inaccess-list 100 permit udp host x.x.x.x host y.y.y.y eq 500access-list 100 permit esp host x.x.x.x host y.y.y.yaccess-list 100 permit ahp host x.x.x.x host y.y.y.yaccess-list 100 permit ip <remoteLAN> <localLAN>
52© 2002 Sécurité.Org
Admin : IPsec (2)
» Configuration IPsec> Définissez le transform-set (mode tunnel recommandé, plus
facile d’utiliser le mode transport pour Win2k)
> Mettez le tout dans une crypto-map
> Et assignez la à une interface
crypto ipsec transform-set 3desmd5 esp-3des esp-md5-hmac
crypto map mycryptomap 10 ipsec-isakmpset peer y.y.y.yset transform-set 3desmd5match address 110
interface xy crypto-map mycryptomap
53© 2002 Sécurité.Org
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)
» Méthode d’accès> Supprimez telnet et activez SSH
> Sécurisez l’accès à la console et au port AUX
service password-encryptionenable secret 5 <…>
service tcp-keepalives-inline vty 0 4 exec-timeout 0 60 access-class 10 in transport input ssh transport output none \ transport preferred noneaccess-list 10 permit x.x.x.x
54© 2002 Sécurité.Org
Admin : comptes utilisateurs locaux (2)
» Commutateursset password <password>set enablepass <password>
! For access via sc0set ip permit enableset ip permit x.x.x.x y.y.y.y telnetset ip permit x.x.x.x y.y.y.y sshset ip permit z.z.z.z y.y.y.y snmp
55© 2002 Sécurité.Org
AAA : Authentification / Journalisation
» Authentification/Audit : RADIUS/TACACS+
» Enregistrement des commandes tapées> TACACS+ uniquement
» Autorisation par commande> TACACS+ uniquement
aaa new-modelaaa authentication login default tacacs+ enableaaa authentication enable default tacacs+ enableaaa accounting exec default start-stop group tacacs+ip tacacs source-interface loopback0tacacs-server host x.x.x.xtacacs-server key K3y
aaa accounting commands 15 default start-stop group tacacs+
56© 2002 Sécurité.Org
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 connectprivilege exec level 15 telnetprivilege exec level 15 sshprivilege exec level 15 rloginprivilege exec level 15 show loggingprivilege exec level 15 show [ip] access-listsusername seeandgo privilege autocommand show running
57© 2002 Sécurité.Org
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)
58© 2002 Sécurité.Org
AAA : Kerberos (2)
» Kerberos sur un routeur
» Kerberos sur un commutateur
aaa authentication login default krb5-telnet localaaa authorization exec default krb5-instance kerberos local-realm COLT.CHkerberos srvtab entry host/...kerberos server COLT.CH 392.568.0.14kerberos instance map engineering 15kerberos instance map support 3kerberos credentials forward line vty 0 4ntp server 392.568.0.626
set kerberos local-realm COLT.CHset kerberos clients mandatoryset kerberos credentials forwardset kerberos server COLT.CH 392.568.0.682 88set kerberos srvtab entry host/... set authentication login kerberos enable telnet primaryset authentication enable kerberos enable telnet primary set ntp client enableset ntp server 392.568.0.11
59© 2002 Sécurité.Org
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)
60© 2002 Sécurité.Org
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)
61© 2002 Sécurité.Org
Listes de contrôle d’accès(3)
» Exemple : ACL étendue sur un routeur
» 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 pasutilisées
> VACLs (VLAN) : Permet de filtrer le trafic au niveau IP etsont inscrites par la PFC dans le commutateur
no access-list 100access-list 100 permit <…>access-list 100 deny tcp any range 1 65535 any range 0 65535 logaccess-list 100 deny udp any range 1 65535 any range 0 65535 logaccess-list 100 deny ip any any log-input
62© 2002 Sécurité.Org
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
63© 2002 Sécurité.Org
Vérification d’integrité du routeur (1)
» 4 étapes pour construire un vérificateur d’integrité pourIOS/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)
> 3. Vérification : automatique (batch) ou lorsque laconfiguration est modifié (message “configured by <xyz>”dans les logs ou message SNMP)
snmpset -c <community> <routerIP> \ .1.3.6.1.4.1.9.2.1.55.<tftpserverIP> s <filename>
64© 2002 Sécurité.Org
Vérification d’intégrité du routeur (2)
» 4 étapes pour construire un vérificateur d’integrité pourIOS/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*
65© 2002 Sécurité.Org
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”
66© 2002 Sécurité.Org
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) ?
67© 2002 Sécurité.Org
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
68© 2002 Sécurité.Org
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éseauMPLS
» Mesures de sécurité> Configuration correcte de tous les routeurs> Information MPLS distribuée sur tous les routeurs (difficile à
rassembler)
69© 2002 Sécurité.Org
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
70© 2002 Sécurité.Org
That’s all folks :-)
Dernière version de la présentation< http://www.securite.org/presentations/secip/ >
Image: http://www.inforamp.net/~dredge/funkycomputercrowd.html
Merci aux membres du groupe eXpertspour la relecture et les commentaires,
et à vous pour votre participation.