Vous êtes sur la page 1sur 70

Protection de linfrastructure

rseau IP en environnement Cisco


(routeurs et commutateurs)
> Nicolas FISCHBACH
IP Engineering Manager - COLT Telecom
nico@securite.org - http://www.securite.org/nico/

> Sbastien LACOSTE-SERIS

IP R&D Manager, Security Officer - COLT Telecom

kaneda@securite.org - http://www.securite.org/kaneda/
version 1.01

Programme
Scurit rseau
> Les attaques lencontre
- des protocoles des couches liaison et rseau
- des protocoles de routage

> Dtection et prvention des dnis de services et des vers


> Analyse de trafic
> MPLS et IPv6
Scurit des quipements (routeurs et commutateurs)
> SNMP et administration distante
> Authentification, Autorisation et Audit (AAA)
> Listes de contrle daccs (ACLs)
> Vrification dintgrit

2002 Scurit.Org

Les protocoles de la couche liaison


Les protocoles de la couche liaison de donnes
>
>
>
>
>
>

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 Scurit.Org

Attaques contre les protocoles


Les attaques connues (et anciennes)

> Pollution de cache ARP, annonces ARP gratuites, messages


ARP/DHCP falsifis
> Outils : dsniff, hunt, etc.
Les attaques plus rcentes
> Paquets HSRP/VRRP falsifis
> Attaques contre STP/VTP
> Saut de VLAN
Les attaques venir
> Attaques avances contre les protocoles de routage
> Rootkits et modules noyau dynamiques (LKM)

2002 Scurit.Org

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 Scurit.Org

VLANs : partionnement de rseau (1)


Le problme des VLANs
> Les VLANs nont pas t conus pour fournir un mcanisme
de scurit, mais sont utiliss couramment pour le
partitionnement rseau
> Les commutateurs multiniveau (commutateur avec un
module de routage) constituent un point faible dans la
scurit du rseau
> Nutilisez pas le VLAN natif 1

Le problme de VPMS
> VLAN Policy Management Server permet laffectation dun
quipement un VLAN par rapport son adresse MAC

2002 Scurit.Org

VLANs : partionnement de rseau (2)


Saut de VLAN
> Est possible si
- vous utilisez DTP
- un port est dans le mme 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, nest pas bas sur les adresses IP/MAC ou
le VLAN
> Des quipements dans le mme VLAN ne peuvent pas
communiquer directement entre eux
2002 Scurit.Org

Protocoles : VTP
VLAN Trunking Protocol
> Permet une gestion centralise des VLANs (architecture
matre/esclave)
> Format du message : identique CDP (SNAP HDLC 0x2003)
> Communique via les ports en mode trunk

Mesures de scurit
> 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 Scurit.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 dun commutateur sont en mode automatique
par dfaut

Mesures de scurit
> Dsactivez DTP sur tous les ports
set trunk off all

2002 Scurit.Org

Protocoles : CDP (1)


Cisco Discovery Protocol
>
>
>
>

Protocole dvelopp par Cisco


Communique sur tout lien supportant HDLC
Trafic multicast
Informations changes : nom/identifiant de lquipement,
adresse rseau, identifiant du port, fonctionnalits, plateforme, version logicielle, prfixe rseau IP
Format du message

2002 Scurit.Org

10

Protocoles : CDP (2)


Dni de service
> Possibilit dutiliser toute la mmoire (avis de scurit)

Mesures de scurit
> Routeurs
- Dsactivation globale
no cdp run

- Dsactivation par interface


interface xy
no cdp enable

> Commutateurs (globalement ou par port)


set cdp disable <mod/port>

2002 Scurit.Org

11

Les protocoles de la couche rseau


La couche rseau et les protocoles de routage
>
>
>
>
>
>

IP : nintgre pas de mcanisme de scurit


ICMP : fuite/divulgation dinformations et risques associs
HSRP/VRRP : redondance du prochain saut
RIP/RIPv2 : pas dauthentification (v1) et inondation
OSPF : trafic multicast et risques lis aux DR/BDR
BGP : coeur de lInternet (risques lis aux RR et aux
peerings)

Les protocoles mconnus ou peu utiliss


> IS-IS
> (E)IGRP

2002 Scurit.Org

12

Protocoles : BGP (1)


Border Gateway Protocol
>
>
>
>

Version 4
Ecoute sur le port 179/tcp
Authentication : MD5 (trop rarement utilise)
Liaison point--point pour les interfaces directement
connectes ou multi-hop pour les routeurs non-adjacents
> Des outils dinjection de routes BGP existent (dans des
cercles privs)

Format du message BGP UPDATE

2002 Scurit.Org

13

Protocoles : BGP (2)


O se trouvent les risques ?

> Points dchanges (GIX) : les FAI sont souvent connects


sur la mme infrastructure partage (un commutateur par
exemple) : filtrez les AS_path et les prfixes
> Vos clients/fournisseurs directs : filtrez par adresses IP sur
les interfaces
> Configuration multi-hop (attaque par interception)
Que faut-il surveiller ?
> Les AS_path annoncs par les fournisseurs
> Les AS_path reus par dautres 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 Scurit.Org

14

Protocoles : BGP (3)


Mesures de scurit additionnelles
> Nutilisez pas le mme 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 Scurit.Org

15

Protocoles : BGP (4)


Outils dinjection de routes, quel est le challenge ?
> Trouver les partenaires eBGP
-

par interception
grce SNMP
grce aux route-servers et aux looking glasses publiques
adresses IP proches, .1, .254, etc.

> Injectez la mise jour


- par interception (messages ARP falsifis sur les commutateurs
publiques)
- par synchronisation avec la session TCP existante

Mesures de scurit / futur ?


> S-BGP (Secure BGP)

2002 Scurit.Org

16

Prdiction de numro de squence TCP


Le problme des numros de squence initiaux

> IOS vulnrable

> IOS moins vulnrable

> Corrig partir des versions 12.0(15) et 12.1(7)


> Les NSI sont (encore) lis au temps/ lhorloge

Source : http://razor.bindview.com/publish/papers/tcpseq.html

2002 Scurit.Org

17

Protocoles : OSPF (1)


Open Shortest Path First
> Protocole numro 89
> Trafic multicast : facile dinjecter des LSAs

Mesures de scurit
> 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 rseau en mode NBMA


interface xy
ip ospf network non-broadcast
router ospf 1
neighbor x.x.x.x

2002 Scurit.Org

18

Protocoles : OSPF (2)


Mesures de scurit (suite)
> Ne mettez pas les interfaces qui ne doivent pas changer
des LSAs OSPF dans la configuration rseau dOSPF 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 nest 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 lon reoit
router ospf 1
distribute-list <ACL> in
distribute-list <ACL> out

2002 Scurit.Org

19

Protocoles : HSRP/VRRP (1)


Hot Standby Routing Protocol
> Redondance du prochain saut (RFC 2281)
> Fuite dinformation: adresse MAC virtuelle
- 00-00-0c-07-ac-<groupe HSRP>
- linterface virtuelle HSRP nenvoie pas dICMP redirect

> Un groupe HSRP peut contenir plus de deux routeurs, il


nest pas ncessaire de rendre un routeur inactif, il suffit de
devenir le matre

Virtual Router Redundancy Protocol (RFC 2338)


> Supporte lauthentification MD5 (IP Authentication Header)

2002 Scurit.Org

20

Protocoles : HSRP/VRRP (2)


Mesures de scurit
> Activez lauthentification par mot de passe
interface xy
standby 10 priority 200 preempt
standby 10 authentication p4ssw0rd
standby 10 ip x.x.x.x

> Changez ladresse MAC virtuelle


interface xy
standby 10 mac-address <mac-address>

> Utilisez IPsec (recommandation Cisco), mais nest pas trivial


(trafic multicast, ordre des processus, limit un groupe
avec deux routeurs)

2002 Scurit.Org

21

Dnis de services : dtection (1)


La technique ancienne

> ACLs, charge CPU, charge de la ligne, xIDS


Netflow
> Journalisation des donnes rseaux (AS, flux IP, protocoles,
etc)
> Donnes envoyes en clair sur le rseau 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 donnes : sh ip cache flow
> Export des donnes : ip flow-export version 5 origin-as
ip flow-export destination x.x.x.x
interface xy
ip route-cache flow

2002 Scurit.Org

22

Dnis de services : dtection (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 dtecter des changements ou des anomalies

Source : Flowscan from UW-Madison (http://wwwstats.net.wisc.edu/)

2002 Scurit.Org

23

Dnis de services : dtection (3)


Netflow sur les commutateurs-routeurs
> Le mode de flux Netflow par dfaut ne tient compte que de
la destination (ladresse source nest pas enregistre)
> 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 donnes


! MLS in hybrid mode
set mls ent
! MLS in native mode
show mls ip

> Le Netflow du pauvre : ntop ?


2002 Scurit.Org

24

Dnis de services : prvention (1)


Unicast RPF (Reverse-Path Forwarding)
> Ncessite CEF (Cisco Express Forwarding) ou dCEF
> Ncessite IOS 12.x et consomme ~30Mo de mmoire
> Mode strict : les datagrammes IP sont vrifis, la route vers
ladresse IP source doit pointer vers linterface dentre
> Seulement la meilleure route est dans la FIB (si multi-path
ou des routes de mme poids ne sont pas utiliss)
> Les routes asymtriques sont supportes
> Vrifiez les poids et les mtriques
utiliss dans BGP si vous utilisez
le mode strict ou dans une
configuration liens multiples

2002 Scurit.Org

25

Dnis de services : prvention (2)


Unicast RPF (Reverse-Path Forwarding)
> Mode strict (des ACLs peuvent tre utilises 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 prfixe rseau est dans la FIB
ip verify unicast source reachable-via any

2002 Scurit.Org

26

Dnis de services : prvention (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 problme si votre


client est une socit de streaming

2002 Scurit.Org

27

Dnis de services : prvention (4)


TCP Intercept
> Autant daspects positifs, que daspects ngatifs
> Si TCP Intercept est activ le routeur passe en mode
commutation de processus (process switching) et ne reste
pas en mode CEF
> Lhte destination doit renvoyer un RST (un rejet silencieux
engendre un dni de service local)
> Problme 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 Scurit.Org

28

Dnis de services : prvention (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 ide (unreachables, parameter-problem, etc)

2002 Scurit.Org

29

Dnis de services : prvention (6a)


Techniques avances : 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 matre, changez le prochain saut pour le
rseau 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 Scurit.Org

30

Dnis de services : prvention (6b)


Techniques avances : 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 Scurit.Org

31

Dnis de services : prvention (7)


Techniques avances : BGP/CAR/FIB 1/2
> Marquez le rseau dont vous voulez limiter la bande
passante avec une communaut spcifique et redistribuez
ces informations depuis le routeur BGP matre 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 Scurit.Org

32

Dnis de services : prvention (8)


Techniques avances : 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 Scurit.Org

33

Filtrage entrant et sortant (1)


Ce quil 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 rseaux E.T. (E+)
> Les plages dadresses utilises par certains vendeurs
(192.0.0.192 pour certaines imprimantes)
> Les blocs rservs (ARIN - bogon networks)
> Les datagrammes destins ladresse de broadcast ou avec
source == destination

2002 Scurit.Org

34

Filtrage entrant et sortant (2)


Ce quil faudrait voir/laisser passer/router

> Vos plages dadresses 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 Scurit.Org

35

Dtection des vers et protection (1)


Comment dtecter un nouveau vers
> Nombre (inhabituel) de nouveaux flux HTTP/SMTP et
journalisation sur les serveurs

Comment vous protger avec NBAR (Network-Based


Application Recognition)?
> Ncessite CEF
> Disponible partir de 12.1(5)T
> Comme TCP Intercept - en a ton vraiment besoin ?
> Effet de bord: la session TCP est dj tablie mais le
serveur ne reoit pas la requte HTTP GET
> Impact sur les performances: ~20% CPU

2002 Scurit.Org

36

Dtection 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 Scurit.Org

37

Dtection des vers et protection (3)


Classification des flux entrants et politique base 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 Scurit.Org

38

Dtection des vers et protection (4)


Classification des flux entrants et routage en fonction
dune 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 Scurit.Org

39

Dtection 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 dune URL
> Ne gre pas les paquets fragments
> Trafic HTTPS (cest normal ;-)
> Paquet provenant ou destin au routeur (impossible de
protger le serveur HTTP local)
> Ne supporte pas lUnicode (UTF-8/%u)

Optimisez le scheduler et les expirations


ip nbar resources 600 1000 50
scheduler allocate 30000 2000

2002 Scurit.Org

40

DDoS/vers recherche/futur
Le pire est venir
> Recherche trs active, mais trs peu de publications:
les risques sont trop levs
> La plupart des vers existants taient plutt faibles/gentils
> Les prochains vers vont-ils encore sattaquer IIS/Outlook ?
> Quels sont les effets sur la stabilit dInternet ?

Quelles sont les tendances ?


> Routeurs utiliss comme source (CERT)
> De plus en plus complexe et agents plus en plus intelligents
> Utilisation temporaire de blocs non allous (Arbor Networks)

2002 Scurit.Org

41

Capture de trafic rseau (routeurs)


Possibilit daffichage local
> Capture avec des ACLs
access-list 100
debug ip packet detail 100

> Utilisez toujours le tampon et naffichez pas sur la console


logging buffered 64000 debugging

> Impact sur les performances : Vrifiez la charge processeur


avec la commande sh proc cpu
Envoi des informations sur un quipement distant
> Tunnel GRE vers un serveur et rinjection du trafic dans le
tunnel (tunnelx)

2002 Scurit.Org

42

Capture de trafic rseau (commutateurs)


Pas daffichage local
Envoi des informations sur un quipement distant
> Copie du trafic dun 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 dsir (VACL utilisant le


mot cl capture) :
set security acl capture-ports <mod/port>

> RSPAN copie le trafic vers un VLAN (ncessite des Catalyst


6000 de bout en bout)
> 1 or 2 port(s) SPAN en fonction du modle de commutateur
> Impact sur les performances trs faible : vrifiez la charge
laide de la commande ps -c (commande cache)
2002 Scurit.Org

43

Principes de configuration (1)


Dsactivez tous les services non utiliss
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 Scurit.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 linterface
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 dutilisation 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 Scurit.Org

45

Admin : SNMP (1)


Simple Network Management Protocol

> v1 : RFC1157, nom de communaut pour lauthentification


> v2 : RFC1441/1446, scurit amliore (party) et get-bulk
> v3 : RFC2274, apporte la vrification dintgrit, le
chiffrement et lauthentification par utilisateur
Attaques et problmes connus
> Les administrateurs rseaux utilisent des communauts RW
> Nom de communaut facile deviner/trouver
> Attaques par rejeux et dni de service
> Fuite dinformation
> La fonction de dcouverte automatique des outils de gestion
de rseaux peut transmettre la communaut hors de votre
rseau/domaine
2002 Scurit.Org

46

Admin : SNMP (2)


Filtrage au niveau IP
> Dfinissez 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 dappliquer des ACLs sur le RP (S-train)


Filtrage au niveau applicatif
> Dfinissez une ACL et utilisez la pour le contrle daccs
lapplication
> Utilisez des vues pour limiter la porte
snmp-server
snmp-server
snmp-server
snmp-server
snmp-server
snmp-server
access-list

2002 Scurit.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
> Dfinissez 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 scurit rcents


> Communaut ILMI cache (la commande show snmp
community montre toute les communauts)
> Communaut lecture/criture visible depuis une
communaut daccs en lecture seule
> Dni de service (dbordement de tampon)

2002 Scurit.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 ?


> Limplmentation CISCO est base sur SSHv1 et souffre des
mme bogues : possibilit de retrouver la cl de session,
CRC32, analyse de trafic (SSHow), attaques par analyse
temporelle
> Impossible de forcer lutilisation de 3DES ou dutiliser des
cls pour lauthentification des utilisateurs
> Corrig dans 12.0(20)S, 12.1(8a)E, 12.2(3), ...

2002 Scurit.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 Scurit.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>

> Dfinissez une SA (association de scurit): trafic chiffrer


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

> Dfinissez 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 Scurit.Org

51

Admin : IPsec (2)


Configuration IPsec
> Dfinissez le transform-set (mode tunnel recommand, plus
facile dutiliser 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 Scurit.Org

52

Admin : comptes utilisateurs locaux (1)


Utilisateurs locaux

> Le chiffrement de type 7 est rversible


> MD5 disponible depuis 12.1(8a)E
Mot de passe enable
> utilisez MD5 (type 5)
service password-encryption
enable secret 5 <>

Mthode daccs
> 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

> Scurisez laccs la console et au port AUX


2002 Scurit.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 Scurit.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 tapes


> TACACS+ uniquement
aaa accounting commands 15 default start-stop group tacacs+

Autorisation par commande


> TACACS+ uniquement

2002 Scurit.Org

55

AAA : Autorisation
Niveaux de privilges
> 1 : mode utilisateur lecture uniquement
> 15 : mode privilgi enable
> Changez le niveau de privilge de certaines commandes
(limite la fuite dinformation et les rebonds)
> Un utilisateur peut seulement visualiser la configuration quil
est autoris modifier
> Un utilisateur peut avoir uniquement la permission de voir la
configuration et puis tre dconnect
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 Scurit.Org

56

AAA : Kerberos (1)


Routeurs Cisco

> Telnet cerbris et authentification utilisant Kerberos


(telnet, SSH et console)
> Association dune instance un niveau de privilge
(dfinition locale)
> Fonctionnalit Kerberos V client support (Enterprise)
> Non support sur certains modles (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 Scurit.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 Scurit.Org

58

Listes de contrle daccs (1)


Filtrage IP avec les ACLs
> Pas de table dtat, pas de rassemblage des paquets
> log-input enregistre aussi linterface et ladresse MAC source
> Seul le premier fragment est contrl (sauf si utilisation du
mot cl fragment)

Types dACLs connues


> Standard : bases sur ladresse IP source uniquement (1-99,
1300-1999)
> Etendue : contrle sur les adresses IP, ports, protocoles, bit
ACK/RST positionn (connexion tablie), etc. (100-199,
2000-2699, ACLs nommes)

2002 Scurit.Org

59

Listes de contrle daccs (2)


Autre types dACLS
> TurboACL : utilise une table de hashage (gain si 5+ ACEs)
> Reflexives : filtre dynamique pour les rponses (ne
fonctionne pas pour les protocoles de type H.323)
> Dynamiques : ajoute lauthentification des utilisateurs aux
ACLs tendues
> Nommes : permet de supprimer simplement une ACE
> Temporelles : spcification dun 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 Scurit.Org

60

Listes de contrle daccs(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 dfinit au niveau 3 (S/E/R/D) envoy dans la NMP
(TCAM)
> Pas dimpact de performance sur la MSCF si les commandes
log[-input], ip unreachables, TCP Intercept ne sont pas
utilises
> VACLs (VLAN) : Permet de filtrer le trafic au niveau IP et
sont inscrites par la PFC dans le commutateur
2002 Scurit.Org

61

Commutateurs
Commutateurs multiniveau (6509)
> Mode Natif (fonctionnant sous IOS uniquement)
> Mode Hybride (IOS et CatOS)
> ACLs traites rapidement

CatOS 6.2 intgre IOS Firewall feature set


> Relais dauthentification, CBAC, TCP Intercept, RACLs
> Pas de support dIDS, ni de chiffrement
> Roadmap: MAC-layer VACLs (pour le trafic IP)

CatIOS 12.1.x supporte


> IP Unicast-RPF, TCP Intercept, etc

2002 Scurit.Org

62

Vrification dintegrit du routeur (1)


4 tapes pour construire un vrificateur dintegrit pour
IOS/CatOS
> 1. Stockez les configurations des routeurs et commutateurs
dans un environnement sr (CVS par exemple)
> 2. Tlechargez la configuration depuis lquipement:
- script perl ou expect, telnet, ssh, rsh, tftp, scp
- tlchargement via SNMP (accs RW ncessaire)
snmpset -c <community> <routerIP> \
.1.3.6.1.4.1.9.2.1.55.<tftpserverIP> s <filename>

> 3. Vrification : automatique (batch) ou lorsque la


configuration est modifi (message configured by <xyz>
dans les logs ou message SNMP)

2002 Scurit.Org

63

Vrification dintgrit du routeur (2)


4 tapes pour construire un vrificateur dintegrit pour
IOS/CatOS
> 4. Comparez les configurations laide dun script ou utilisez
CVS (ou Rancid)

Limitations et dtails
> Confiance dans le systme (toujours pas de rootkit Cisco)
et dans le rseau utilis (attaques par interception)
> Configuration transmise en clair sur le rseau (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 Scurit.Org

64

Vrification dintgrit du routeur (3)


Cisco IOS rootkit/BoF/FS : est-ce possible ?
> Systme propritaire fonctionnant sur processeurs MIPS
(nouveaux modles) ou Mot68K (anciens modles)
> Programmes au format ELF 32-bit MSB, dition des liens
statique
> Possibilits avec laccs gdb {kernelpid pid-num} ?
> La ROMMON est-elle un intressant point de dpart (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 Scurit.Org

65

Vrification dintgrit du routeur (4)


Cisco IOS rootkit/BoF/FS : problmes ouverts
> Aucune commande/outils documents pour interagir avec le
noyau, la mmoire, les processus, etc.
> Possibilits en mode enable engineer ?
> Possibilit de charger une image IOS modifie et de
lxcuter sans redmarrer le routeur ?
> Le grand nombre dimage disponible rend la tche difficile et
un outil pour modifier les images est requis
> Nouvelle possibilit avec lIOS-NG (support de modules
dynamiques) ?

2002 Scurit.Org

66

MPLS (1)
MultiProtocol Label Switching
>
>
>
>
>
>
>

Circuits virtuels, VPN non chiffrs/authentifis


Equivalent un circuit de niveau 2 (ATM/FR)
IPsec peut tre utilis pour scuriser le trafic
Partitionnement VPN ralis uniquement lors du routage
Une table de routage par VPN sur chaque routeur PE (VRF)
En-tte MPLS ajout chaque paquet pour identifier le VPN
Chaque routeur (LSR) sur le chemin MPLS (LSP) gre une
table locale (LIB)
> Len-tte une signification locale et peut tre chang
chaque saut

2002 Scurit.Org

67

MPLS (2)
Attaques
> Injection de paquets marqus :
- Bloqu par dfaut sur toute les interfaces (CE/PE)
- Simple en ayant accs un routeur MPLS

> Injection de donnes dans le protocole de signalisation


((MP-)BGP et IGPs) pour modifier la topologie du rseau
MPLS

Mesures de scurit
> Configuration correcte de tous les routeurs
> Information MPLS distribue sur tous les routeurs (difficile
rassembler)

2002 Scurit.Org

68

IPv6
IPv6
>
>
>
>

Peu de nouveaux risques


Support IPsec natif
Risque lev plus durant la transition IPv4 -> IPv6
Ladresse MAC peut faire partie de ladresse IP

2002 Scurit.Org

69

Thats all folks :-)


Dernire version de la prsentation
< 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 Scurit.Org

70

Vous aimerez peut-être aussi