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