Vous êtes sur la page 1sur 70

Protection de l’infrastructure

réseau IP en environnement Cisco


(routeurs et commutateurs)

> Nicolas FISCHBACH


IP Engineering Manager - COLT Telecom
nico@securite.org - http://www.securite.org/nico/

> Sébastien LACOSTE-SERIS


IP R&D Manager, Security Officer - COLT Telecom
kaneda@securite.org - 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
set port broadcast de type
<mod/port> 0.01% broadcast

© 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
setaffectez un mot de
vtp domain <domaine.vtp> passe
password <mot au domaine VTP
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
set trunk off allDTP sur tous les ports

© 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, plate-forme, 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
no cdp run globale

- Désactivation
interface xy par interface
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 prefix-list ournetworks seq 5 permit z.z.z.z/17


ip prefix-list ournetworks seq 10 deny 0.0.0.0/0 le 32
ip prefix-list theirnetworks seq 5 permit k.k.k.k/19
ip 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 tcp intercept list 100
ip tcp intercept connection-timeout 60
ip tcp intercept watch-timeout 10
ip tcp intercept one-minute low 1500
ip tcp intercept 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>

» Exempleipde filtrage avec routage/forwarding dans


route 10.0.0.0 255.0.0.0 null0
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 ip identd no cdp run no service finger


no tcp-small-servers no ip finger no boot network no service pad
no udp-small-servers service nagle no service config no ip http server
no ip subnet-zero no ip source-route

» Activez syslog
service time log datetime localtime show-timezone msec
service time debug datetime localtime show-timezone msec
logging x.x.x.x
logging trap debugging
logging source loopback0
logging buffered 64000 debugging

» Synchronisez lesntp
horloges avec10NTP
authentication-key
ntp authenticate
(authentifié si
md5 <key>

possible) 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

© 2002 Sécurité.Org 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 community r3ad view cutdown RO 10
snmp-server community wr1te RW 10
snmp-server view cutdown ip.21 excluded
snmp-server enable traps <…>
snmp-server host x.x.x.x
snmp-server source loopback0
access-list 10 permit x.x.x.x

© 2002 Sécurité.Org 47
Admin : SNMP (3)
» SNMP v3
> Définissez des utilisateurs/groupes et leurs droits
snmp-server group engineering v3 priv read cutdown 10
snmp-server user nico engineering v3 auth md5 myp4ss priv des56 mydes56
snmp-server view cutdown ip.21 excluded
access-list 10 permit x.x.x.x
access-list 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
ip scp server enable scp

© 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 à


access-list 110 permit ip x.x.x.x <wildcard> y.y.y.y <wildcard>
chiffrer

crypto isakmp policy 1


> Définissez une politique IKE
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)

» Méthode d’accès
service password-encryption
enable secret 5 <…>
> 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
> Sécurisez l’accès à la console et au port AUX
access-list 10 permit x.x.x.x

© 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 kerberos local-realm COLT.CH
set kerberos clients mandatory
set kerberos credentials forward
set kerberos server COLT.CH 392.568.0.682 88
set kerberos srvtab entry host/...
set authentication login kerberos enable telnet primary
set authentication enable kerberos enable telnet primary
set ntp client enable
set 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) ? Cisco IOS software architecture” - Cisco Press :
“Inside
- “In general, the IOS design emphasizes speed at the expense o
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