70
> Nicolas FISCHBACH IP Engineering Manager - COLT Telecom [email protected] - http://www.securite.org/nico/ > Sébastien LACOSTE-SERIS IP R&D Manager, Security Officer - COLT Telecom [email protected] - http://www.securite.org/kaneda/ version 1.01 Protection de l’infrastructure réseau IP en environnement Cisco (routeurs et commutateurs)

> Nicolas FISCHBACH IP Engineering Manager - COLT Telecom

  • Upload
    svein

  • View
    56

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

> Nicolas FISCHBACH IP Engineering Manager - COLT Telecom [email protected] - http://www.securite.org/nico/

> Sébastien LACOSTE-SERIS IP R&D Manager, Security Officer - COLT Telecom [email protected] - http://www.securite.org/kaneda/

version 1.01

Protection de l’infrastructureréseau IP en environnement Cisco

(routeurs et commutateurs)

Page 2: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

2© 2002 Sécurité.Org

Programme

» Sécurité réseau> Les attaques à l’encontre

- des protocoles des couches liaison et réseau- des protocoles de routage

> Détection et prévention des dénis de services et des vers> Analyse de trafic> MPLS et IPv6

» Sécurité des équipements (routeurs et commutateurs)> SNMP et administration distante> Authentification, Autorisation et Audit (AAA)> Listes de contrôle d’accès (ACLs)> Vérification d’intégrité

Page 3: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

3© 2002 Sécurité.Org

Les protocoles de la couche liaison

» Les protocoles de la couche liaison de données> ARP - Address Resolution Protocol> CDP - Cisco Discovery Protocol> VLAN - Virtual LAN> STP - Spanning Tree Protocol> {D/V}TP - Dynamic, VLAN Trunking Protocol> Trafic et adressage unicast, broadcast et multicast

Page 4: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

4© 2002 Sécurité.Org

Attaques contre les protocoles

» Les attaques connues (et anciennes)> Pollution de cache ARP, annonces ARP gratuites,

messages ARP/DHCP falsifiés> Outils : dsniff, hunt, etc.

» Les attaques plus récentes> Paquets HSRP/VRRP falsifiés> Attaques contre STP/VTP> Saut de VLAN

» Les attaques à venir> Attaques avancées contre les protocoles de routage> Rootkits et modules noyau dynamiques (LKM)

Page 5: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

5© 2002 Sécurité.Org

Filtrage STP et par adresse MAC

» Fixez les adresses MAC par port (et si possible la relation adresse IP/adresse MAC)

» Activez BPDU-Guard (Bridge PDU) pour filtrer STP

» Limitez le trafic de type broadcast

! MLS (Multi Layer Switch) in hybrid mode (Sup w/ CatOS, MSFC w/ IOS)set spantree disableset spantree portfast bpdu-guard-enable

! MLS in native mode (CatIOS on the Sup and MSFC)spanning-tree portfast bpduguard

set port security <mod/port> enable 01-02-03-04-05-06 shutdown

set port broadcast <mod/port> 0.01%

Page 6: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

6© 2002 Sécurité.Org

VLANs : partionnement de réseau (1)» Le problème des VLANs

> Les VLANs n’ont pas été conçus pour fournir un mécanisme de sécurité, mais sont utilisés couramment pour 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

Page 7: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

7© 2002 Sécurité.Org

VLANs : partionnement de réseau (2)» Saut de VLAN

> Est possible si- vous utilisez DTP- un port est dans le même VLAN que le VLAN natif du trunk

(injection de trames 802.1q)

> Les ponts entre VLANs (VLAN bridge) permettent de 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

set vlan 2 <mod/port>clear trunk <mod/port> 1

Page 8: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

8© 2002 Sécurité.Org

Protocoles : VTP

» VLAN Trunking Protocol> Permet une gestion centralisée des VLANs

(architecture maître/esclave)> Format du message : identique à CDP (SNAP HDLC

0x2003)> Communique via les ports en mode trunk

» Mesures de sécurité> Placez les commutateurs en mode VTP transparent

et affectez un mot de passe au domaine VTPset vtp domain <domaine.vtp> password <mot de passe>set vtp mode transparent

Page 9: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

9© 2002 Sécurité.Org

Protocoles : DTP

» Dynamic Trunking Protocol> Permet la configuration automatique de ports en

mode trunk> Format du message : identique à CDP (SNAP HDLC

0x2004)> Tous les ports d’un commutateur sont en mode

automatique par défaut

» Mesures de sécurité> Désactivez DTP sur tous les portsset trunk off all

Page 10: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

10© 2002 Sécurité.Org

Protocoles : CDP (1)

» Cisco Discovery Protocol> Protocole développé par Cisco> Communique sur tout lien supportant HDLC> Trafic multicast> Informations échangées : nom/identifiant de

l’équipement, adresse réseau, identifiant du port, fonctionnalités, plate-forme, version logicielle, préfixe réseau IP

» Format du message

Page 11: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

11© 2002 Sécurité.Org

Protocoles : CDP (2)

» Déni de service> Possibilité d’utiliser toute la mémoire (avis de

sécurité)

» Mesures de sécurité> Routeurs

- Désactivation globale

- Désactivation par interface

> Commutateurs (globalement ou par port)

no cdp run

interface xy no cdp enable

set cdp disable <mod/port>

Page 12: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

12© 2002 Sécurité.Org

Les protocoles de la couche réseau

» La couche réseau et les protocoles de routage> IP : n’intègre pas de mécanisme de sécurité> ICMP : fuite/divulgation d’informations et risques

associés> HSRP/VRRP : redondance du prochain saut> RIP/RIPv2 : pas d’authentification (v1) et inondation> OSPF : trafic multicast et risques liés aux DR/BDR> BGP : coeur de l’Internet (risques liés aux RR et aux

peerings)

» Les protocoles méconnus ou peu utilisés> IS-IS> (E)IGRP

Page 13: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

13© 2002 Sécurité.Org

Protocoles : BGP (1)

» Border Gateway Protocol> Version 4> Ecoute sur le port 179/tcp> Authentication : MD5 (trop rarement utilisée)> Liaison point-à-point pour les interfaces directement

connectées ou multi-hop pour les routeurs non-adjacents

> Des outils d’injection de routes BGP existent (dans des cercles privés)

» Format du message BGP UPDATE

Page 14: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

14© 2002 Sécurité.Org

Protocoles : BGP (2)

» Où se trouvent les risques ?> Points d’échanges (GIX) : les FAI sont souvent connectés

sur la même infrastructure partagée (un commutateur 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)

Page 15: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

15© 2002 Sécurité.Org

Protocoles : BGP (3)

» Mesures de sécurité additionnelles> N’utilisez pas le même mot de passe avec tous vos

partenaires> Journalisez les changements et utilisez IPsec

router bgp 65000 bgp log-neighbor-changes network x.x.x.x neighbor y.y.y.y remote-as 65001 neighbor y.y.y.y password <MD5password> neighbor y.y.y.y version 4 neighbor y.y.y.y prefix-list theirnetworks in neighbor y.y.y.y prefix-list ournetworks out neighbor y.y.y.y maximum-prefix 120000 neighbor y.y.y.y route-map ourASpath out

ip prefix-list ournetworks seq 5 permit z.z.z.z/17ip prefix-list ournetworks seq 10 deny 0.0.0.0/0 le 32ip prefix-list theirnetworks seq 5 permit k.k.k.k/19ip as-path access-list permit ^<AS>( <AS>)*$

route-map ourASpath permit 10 match as-path 99

Page 16: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

16© 2002 Sécurité.Org

Protocoles : BGP (4)

» Outils d’injection de routes, quel est le challenge ?> Trouver les partenaires eBGP

- par interception- grâce à SNMP- grâce aux route-servers et aux « looking glasses »

publiques- adresses IP proches, .1, .254, etc.

> Injectez la mise à jour- par interception (messages ARP falsifiés sur les

commutateurs publiques)- par synchronisation avec la session TCP existante

» Mesures de sécurité / futur ?> S-BGP (Secure BGP)

Page 17: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

17© 2002 Sécurité.Org

Prédiction de numéro de séquence TCP» Le problème des numéros de séquence initiaux

> IOS vulnérable > IOS « moins » vulnérable

> « Corrigé » à partir des versions 12.0(15) et 12.1(7)> Les NSI sont (encore) liés au temps/à l’horloge

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

Page 18: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

18© 2002 Sécurité.Org

Protocoles : OSPF (1)

» Open Shortest Path First> Protocole numéro 89> Trafic multicast : « facile » d’injecter des LSAs

» Mesures de sécurité> Authentifiez les échanges OSPF

> Placez le réseau en mode NBMAinterface xy ip ospf network non-broadcast

router ospf 1 neighbor x.x.x.x

interface xy!ip ospf authentication-key <key> ip ospf message-digest-key 1 md5 <key>router ospf 1 area 0 authentication [message-digest]

Page 19: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

19© 2002 Sécurité.Org

Protocoles : OSPF (2)

» Mesures de sécurité (suite)> Ne mettez pas les interfaces qui ne doivent pas

échanger des LSAs OSPF dans la configuration « réseau » d’OSPF ou enlevez les par exclusion via des interfaces passives

> Journalisez les changements

> Il n’est pas possible de filtrer ce qui est annoncé par OSPF (uniquement entre des AS OSPF), le mot clé network est un « faux ami »

> Il est possible de filtrer ce que l’on reçoit

router ospf 1 log-adjacency-changes network x.x.x.x passive-interface default no passive-interface xy

router ospf 1 distribute-list <ACL> in distribute-list <ACL> out

Page 20: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

20© 2002 Sécurité.Org

Protocoles : HSRP/VRRP (1)

» Hot Standby Routing Protocol> Redondance du prochain saut (RFC 2281)> Fuite d’information: adresse MAC virtuelle

- 00-00-0c-07-ac-<groupe HSRP>- l’interface virtuelle HSRP n’envoie pas d’ICMP redirect

> Un groupe HSRP peut contenir plus de deux routeurs, 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)

Page 21: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

21© 2002 Sécurité.Org

Protocoles : HSRP/VRRP (2)

» Mesures de sécurité> Activez l’authentification par mot de passe

> Changez l’adresse MAC virtuelle

> Utilisez IPsec (recommandation Cisco), mais n’est pas trivial (trafic multicast, ordre des processus, limité à un groupe avec deux routeurs)

interface xy standby 10 priority 200 preempt standby 10 authentication p4ssw0rd standby 10 ip x.x.x.x

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

Page 22: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

22© 2002 Sécurité.Org

Dénis de services : détection (1)

» La technique « ancienne »> ACLs, charge CPU, charge de la ligne, xIDS

» Netflow> Journalisation des données réseaux (AS, flux IP,

protocoles, etc)> Données envoyées en clair sur le réseau à un point

central> Avec CEF activé Netflow effectue uniquement la

journalisation et les statistiques> Sans CEF le routeur passe en mode commutation

Netflow> Seul le trafic sortant sur une interface est comptabilisé> Visualisation des données : sh ip cache flow> Export des données :

ip flow-export version 5 origin-asip flow-export destination x.x.x.xinterface xy ip route-cache flow

Page 23: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

23© 2002 Sécurité.Org

Dénis de services : détection (2)

» Distribution (in)habituelle du trafic par protocole> TCP : ~90% (HTTP, FTP, SMTP, outils peer-to-peer)> UDP : ~10% (DNS, SNMP, outils de streaming)> ICMP : < 1%> IGMP : < 1%> Surtout des paquets de 64 octets> RRDtool et Netflow permettent de grapher les

tendances et de détecter des changements ou des anomalies

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

Page 24: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

24© 2002 Sécurité.Org

Dénis de services : détection (3)

» Netflow sur les commutateurs-routeurs> Le mode de flux Netflow par défaut ne tient compte que

de la destination (l’adresse source n’est pas enregistrée)> Activez le mode « full-flow » (impact sur les

performances sur les modules de supervision SE1)

> Visualisation des données

> Le Netflow « du pauvre » : ntop ?

! MLS in hybrid modeset mls flow full

! MLS in native modemls flow ip full

! MLS in hybrid modeset mls ent

! MLS in native modeshow mls ip

Page 25: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

25© 2002 Sécurité.Org

Dénis de services : prévention (1)

» Unicast RPF (Reverse-Path Forwarding)> Nécessite CEF (Cisco Express Forwarding) ou dCEF> Nécessite IOS 12.x et consomme ~30Mo de mémoire> Mode strict : les datagrammes IP sont vérifiés, la

route vers l’adresse IP source doit pointer vers l’interface d’entrée

> Seulement la meilleure route est dans la FIB (si multi-path ou des routes de même poids ne sont pas utilisés)

> Les routes asymétriques sont supportées> Vérifiez les poids et les métriques

utilisés dans BGP si vous utilisez le mode strict ou dans une configuration à liens multiples

Page 26: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

26© 2002 Sécurité.Org

Dénis de services : prévention (2)

» Unicast RPF (Reverse-Path Forwarding)> Mode strict (des ACLs peuvent être utilisées pour la

journalisation et les exceptions)

> Mode non-strict (loose), les datagrammes passent le test si le préfixe réseau est dans la FIB

ip cef [distributed]interface xy ip verify unicast reverse-path [allow-self-ping] [acl]

ip verify unicast source reachable-via any

Page 27: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

27© 2002 Sécurité.Org

Dénis de services : prévention (3)

» Limitation du trafic ICMP, UDP et TCP SYN

> La limitation du trafic UDP peut devenir un problème si votre client est une société de streaming

interface xy rate-limit input access-group 100 8000 8000 8000 \ conform-action transmit exceed-action drop rate-limit output access-group 100 8000 8000 8000 \ conform-action transmit exceed-action drop <…>

access-list 100 deny tcp any host x.x.x.x establishedaccess-list 100 permit tcp any host x.x.x.x

access-list 101 permit icmp any any echoaccess-list 101 permit icmp any any echo-reply

Page 28: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

28© 2002 Sécurité.Org

Dénis de services : prévention (4)

» TCP Intercept> Autant d’aspects positifs, que d’aspects négatifs> Si TCP Intercept est activé le routeur passe en mode

commutation de processus (process switching) et ne 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 100ip tcp intercept connection-timeout 60ip tcp intercept watch-timeout 10ip tcp intercept one-minute low 1500ip tcp intercept one-minute high 6000

access-list 100 permit tcp any x.x.x.0 0.0.0.255

Page 29: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

29© 2002 Sécurité.Org

Dénis de services : prévention (5)

» Filtrage ICMP avancé> Ne laissez passer que les messages ICMP

« critiques »

> Le filtrage ICMP est une source de dispute, à chacun de se faire sa propre idée (unreachables, parameter-problem, etc)

interface xy ip access-group 100 inaccess-list 100 deny icmp any any fragmentsaccess-list 100 permit icmp any any echoaccess-list 100 permit icmp any any echo-replyaccess-list 100 permit icmp any any packet-too-bigaccess-list 100 permit icmp any any source-quenchaccess-list 100 permit icmp any any time-exceededaccess-list 100 deny icmp any anyaccess-list 100 permit ip any any

Page 30: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

30© 2002 Sécurité.Org

Dénis de services : prévention (6a)

» Techniques avancées : BGP/Null0 1/2> Choisissez une adresse du bloc TEST-NET et configurez

une route vers Null0 sur tous les routeurs pour cette adresse

> Sur un routeur BGP maître, changez le prochain saut pour le réseau source à filtrer par cette adresse IP

> Redistribuez ces adresses via BGP dans votre AS et uRPF va supprimer le datagramme (au niveau de la LC, pas du RP)

> Ne redistribuez pas ces informations à vos partenaires : utilisez un AS privé ou une communauté en « no-export »

router bgp <AS> network <sourceOfDDOS> mask <netmask> route-map ddos-nhroute-map ddos-nh set ip next-hop <TEST-NETIPaddr>ip route <TEST-NET> 255.255.255.0 Null0

Page 31: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

31© 2002 Sécurité.Org

Dénis de services : prévention (6b)

» Techniques avancées : BGP/Null0 2/2

Internetor

Customers

Master BGP router(set the next-hop for the DDoS

sources to 192..0.2.10)

Route reflectors

iBGP sessions

NOC

Core/Access Routers(route 192.0.2.10 to Null0)

Propagate the newnext-hop

Page 32: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

32© 2002 Sécurité.Org

Dénis de services : prévention (7)

» Techniques avancées : BGP/CAR/FIB 1/2> Marquez le réseau dont vous voulez limiter la bande

passante avec une communauté spécifique et redistribuez ces informations depuis le routeur BGP maître à tous ses clientsrouter bgp <AS> network <destOfDDOS> mask <netmask> neighbor x.x.x.x route-map ddos-rl out neighbor x.x.x.x send communityaccess-list 10 permit <destOfDDOS>route-map ddos-rl match ip address 10 set community <AS>:66 no-exportip route <destOfDDOS> 255.255.255.0 Null0

Page 33: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

33© 2002 Sécurité.Org

Dénis de services : prévention (8)

» Techniques avancées : BGP/CAR/FIB 2/2> Sur les routeurs changez le QosID dans la FIB par

rapport à cette communauté et limitez la bande passante par rapport à ce QosIDrouter bgp <AS> table-map ddos-rlip community list 1 permit <AS>:66route-map ddos-rl match community 1 set ip qos-group 66interface xy bgp-policy source ip-qos-map rate-limit input qos-group 66 ...

Page 34: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

34© 2002 Sécurité.Org

Filtrage entrant et sortant (1)

» Ce qu’il ne faudrait jamais voir/laisser passer/router> RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)> 0.0.0.0/x, 127.0.0.0/8> 169.254.0.0/16 (auto-configuration quand DHCP est

indisponible)> 192.0.2.0/24 (Netname: TEST-NET, comme

example.com)> Les adresses multicast (classe D) et les réseaux E.T. (E+)> Les plages d’adresses utilisées par certains vendeurs

(192.0.0.192 pour certaines imprimantes)> Les blocs réservés (ARIN - bogon networks)> Les datagrammes destinés à l’adresse de broadcast ou

avec source == destination

Page 35: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

35© 2002 Sécurité.Org

Filtrage entrant et sortant (2)

» Ce qu’il faudrait voir/laisser passer/router> Vos plages d’adresses uniquement

» Exemple de filtrage par ACL (IX, uplinks, CPE)

» Exemple de filtrage avec routage/forwarding dans Null0

interface xy access-group in 100 access-group out 100access-list 100 deny ip host 0.0.0.0 anyaccess-list 100 deny ip 127.0.0.0 0.255.255.255 255.0.0.0 0.255.255.255access-list 100 deny ip 10.0.0.0 0.255.255.255 255.0.0.0 0.255.255.255access-list 100 deny ip 172.16.0.0 0.15.255.255 255.240.0.0 0.15.255.255access-list 100 deny ip 192.168.0.0 0.0.255.255 255.255.0.0 0.0.255.255access-list 100 deny ip 192.0.2.0 0.0.0.255 255.255.255.0 0.0.0.255access-list 100 deny ip 169.254.0.0 0.0.255.255 255.255.0.0 0.0.255.255access-list 100 deny ip 240.0.0.0 15.255.255.255 anyaccess-list 100 permit ip any any! Or permit ip <your network prefixes only>

ip route 10.0.0.0 255.0.0.0 null0ip route 172.16.0.0 255.240.0.0 null0ip route 192.168.0.0 255.255.0.0 null0

Page 36: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

36© 2002 Sécurité.Org

Détection des vers et protection (1)» Comment détecter un nouveau vers

> Nombre (inhabituel) de nouveaux flux HTTP/SMTP et journalisation sur les serveurs

» Comment vous protéger avec NBAR (Network-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

Page 37: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

37© 2002 Sécurité.Org

Détection des vers et protection (2)» Classification des flux entrants avec NBAR et

filtrage des flux sortants avec des ACLs! Class-based inbound markingclass-map match-any http-hacks match protocol http url “*cmd.exe*”! Policy map to mark inboundpolicy-map mark-inbound-http-hacks class http-hacks set ip dscp 1! Apply the service policy to the « attacking » interface int xy service-policy input mark-inbound-http-hacks! Block with an ACL access-list 100 deny ip any any dscp 1 log access-list 100 permit ip any any! Apply the ACL to the « protected » interface int xy ip access-group 100 out

Page 38: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

38© 2002 Sécurité.Org

Détection des vers et protection (3)» Classification des flux entrants et politique basée

sur une classe! Class-based inbound markingclass-map match-any http-hacks match protocol http url “*cmd.exe*”! Policy map to mark inboundpolicy-map drop-inbound-http-hacks class http-hacks policy 8000 4000 2000 conform-action drop exceed-action \ drop violate-action drop! Apply the service policy to the « attacking » interface int xy service-policy input police-inbound-http-hacks

Page 39: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

39© 2002 Sécurité.Org

Détection des vers et protection (4)» Classification des flux entrants et routage en

fonction d’une politique! Class-based inbound markingclass-map match-any http-hacks match protocol http url “*cmd.exe*”! Policy map to mark inboundpolicy-map mark-inbound-http-hacks class http-hacks set ip dscp 1! Apply the service policy to the « attacking » interfaceint xy service-policy input mark-inbound-http-hacks! Create a route-mapaccess-list 100 permit ip any any dscp 1route-map route2null 10 match ip address 100 set interface Null0! Apply the routing policy to the « attacking » interfaceint xy ip policy route-map route2null

Page 40: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

40© 2002 Sécurité.Org

Détection des vers et protection (5)» Restrictions et limitations de NBAR

> Supporte jusqu’à 24 comparaisons concurrentes (URL, machines ou type MIME)

> Ne compare que les 400 premiers octets d’une URL> Ne gère pas les paquets fragmentés> Trafic HTTPS (c’est normal ;-)> Paquet provenant ou destiné au routeur (impossible

de protéger le serveur HTTP local) > Ne supporte pas l’Unicode (UTF-8/%u)

» Optimisez le scheduler et les expirationsip nbar resources 600 1000 50scheduler allocate 30000 2000

Page 41: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

41© 2002 Sécurité.Org

DDoS/vers recherche/futur

» Le pire est à venir> Recherche très active, mais très peu de publications:

“les risques sont trop élevés”> La plupart des vers existants étaient plutôt faibles/gentils> Les prochains vers vont-ils encore s’attaquer à

IIS/Outlook ? > Quels sont les effets sur la stabilité d’Internet ?

» Quelles sont les tendances ?> Routeurs utilisés comme source (CERT) > De plus en plus complexe et agents plus en plus

intelligents> Utilisation temporaire de blocs non alloués (Arbor

Networks)

Page 42: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

42© 2002 Sécurité.Org

Capture de trafic réseau (routeurs)

» Possibilité d’affichage local > Capture avec des ACLs

> Utilisez toujours le tampon et n’affichez pas sur la console

> Impact sur les performances : Vérifiez la charge 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)

access-list 100 …debug ip packet detail 100

logging buffered 64000 debugging

Page 43: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

43© 2002 Sécurité.Org

Capture de trafic réseau (commutateurs)» Pas d’affichage local

» Envoi des informations sur un équipement distant> Copie du trafic d’un port ou VLAN vers un autre port

> Possibilité de ne copier que le trafic désiré (VACL utilisant le mot clé “capture”) :

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

! MLS in hybrid modeset span <source (mod/port or VLAN)> <destination port>! MLS in native modemonitor session <session id> ...

set security acl capture-ports <mod/port>

Page 44: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

44© 2002 Sécurité.Org

Principes de configuration (1)

» Désactivez tous les services non utilisés

» Activez syslog

» Synchronisez les horloges avec NTP (authentifié si possible)

no ip bootp serverno tcp-small-serversno udp-small-servers

service time log datetime localtime show-timezone msecservice time debug datetime localtime show-timezone mseclogging x.x.x.xlogging trap debugginglogging source loopback0logging buffered 64000 debugging

ntp authentication-key 10 md5 <key>ntp authenticatentp trusted-key 10ntp server x.x.x.x [key 10]ntp access-group peer 20access-list 20 permit host x.x.x.xaccess-list 20 deny any

no service fingerno service padno ip http serverno ip source-route

no cdp runno boot networkno service configno ip subnet-zero

no ip identdno ip fingerservice nagle

Page 45: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

45© 2002 Sécurité.Org

Principes de configuration (2)

» Au niveau de l’interface

> En cas d’utilisation de trafic multicast

» Si possible, utilisez les addresses de loopback

interface xy no ip source-route no ip directed-broadcast no ip proxy-arp no ip redirects no ip unreachables ! IP accounting for the traffic that fails the IP ACLs ip accounting access-violations no ip mask-reply no cdp enable

interface xy ! To prevent Auto-RP messages from entering the PIM domain ip multicast boundary 10access-list 10 deny 224.0.1.39access-list 10 deny 224.0.1.40

interface loopback0 ip address x.x.x.x 255.255.255.255

Page 46: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

46© 2002 Sécurité.Org

Admin : SNMP (1)

» Simple Network Management Protocol> v1 : RFC1157, nom de communauté pour l’authentification> v2 : RFC1441/1446, sécurité améliorée (party) et get-bulk> v3 : RFC2274, apporte la vérification d’intégrité, le

chiffrement et l’authentification par utilisateur

» Attaques et problèmes connus> Les administrateurs réseaux utilisent des communautés

RW> Nom de communauté facile à deviner/trouver> Attaques par rejeux et déni de service> Fuite d’information> La fonction de découverte automatique des outils de

gestion de réseaux peut transmettre la communauté hors de votre réseau/domaine

Page 47: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

47© 2002 Sécurité.Org

Admin : SNMP (2)

» Filtrage au niveau IP> Définissez une ACL et activez la sur chaque interface

> Possibilité d’appliquer des ACLs sur le RP (S-train)

» Filtrage au niveau applicatif> Définissez une ACL et utilisez la pour le contrôle

d’accès à l’application> Utilisez des vues pour limiter la portée

interface Ethernet0/0 access-group in 100access-list 100 permit udp host 192.168.1.1 host 192.168.1.2 eq snmpaccess-list 100 permit udp host 192.168.1.2 eq snmp host 192.168.1.1access-list 100 deny udp any any eq snmp log-input

snmp-server community r3ad view cutdown RO 10snmp-server community wr1te RW 10snmp-server view cutdown ip.21 excludedsnmp-server enable traps <…>snmp-server host x.x.x.xsnmp-server source loopback0access-list 10 permit x.x.x.x

Page 48: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

48© 2002 Sécurité.Org

Admin : SNMP (3)

» SNMP v3> Définissez des utilisateurs/groupes et leurs droits

» Trois avis de sécurité récents> Communauté ILMI cachée (la commande show snmp

community montre toute les communautés) > Communauté lecture/écriture visible depuis une

communauté d’accès en lecture seule> Déni de service (débordement de tampon)

snmp-server group engineering v3 priv read cutdown 10snmp-server user nico engineering v3 auth md5 myp4ss priv des56 mydes56snmp-server view cutdown ip.21 excludedaccess-list 10 permit x.x.x.xaccess-list 10 deny any log

Page 49: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

49© 2002 Sécurité.Org

Admin : Secure Shell (1)

» Support SSHv1 (client et serveur)> Routeurs : depuis 12.1(1)T/12.0(10)S (utilisez une

image 3DES), scp depuis 12.2T> Commutateurs : CatOS 6.x

» Quels sont les risques et limitations ?> L’implémentation CISCO est basée sur SSHv1 et

souffre des même bogues : possibilité de retrouver la clé de session, CRC32, analyse de trafic (SSHow), attaques par 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), ...

Page 50: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

50© 2002 Sécurité.Org

Admin : Secure Shell (2)

» Configuration SSH

» Configuration scp

hostname <hostname>ip domain-name <domainname>crypto key generate rsaip ssh timeout 60ip ssh authentication-retries 3

ip scp server enable

Page 51: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

51© 2002 Sécurité.Org

Admin : IPsec (1)

» Configuration IPsec> Interdit tout trafic sauf IPsec et le trafic autorisé

> Définissez une SA (association de sécurité): trafic à chiffrer

> Définissez une politique IKE

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

crypto isakmp policy 1 hash md5 encryption 3des authentication pre-share ! DH group (1024 bits) group 2crypto isakmp key <key> address y.y.y.y

interface xy ip address y.y.y.y 255.255.255.0 ip access-group 100 inaccess-list 100 permit udp host x.x.x.x host y.y.y.y eq 500access-list 100 permit esp host x.x.x.x host y.y.y.yaccess-list 100 permit ahp host x.x.x.x host y.y.y.yaccess-list 100 permit ip <remoteLAN> <localLAN>

Page 52: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

52© 2002 Sécurité.Org

Admin : IPsec (2)

» Configuration IPsec> Définissez le transform-set (mode tunnel

recommandé, plus facile d’utiliser le mode transport pour Win2k)

> Mettez le tout dans une crypto-map

> Et assignez la à une interface

crypto ipsec transform-set 3desmd5 esp-3des esp-md5-hmac

crypto map mycryptomap 10 ipsec-isakmpset peer y.y.y.yset transform-set 3desmd5match address 110

interface xy crypto-map mycryptomap

Page 53: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

53© 2002 Sécurité.Org

Admin : comptes utilisateurs locaux (1)» Utilisateurs locaux

> Le chiffrement de type 7 est réversible> MD5 disponible depuis 12.1(8a)E

» Mot de passe enable> utilisez MD5 (type 5)

» Méthode d’accès> Supprimez telnet et activez SSH

> Sécurisez l’accès à la console et au port AUX

service password-encryptionenable secret 5 <…>

service tcp-keepalives-inline vty 0 4 exec-timeout 0 60 access-class 10 in transport input ssh transport output none \ transport preferred noneaccess-list 10 permit x.x.x.x

Page 54: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

54© 2002 Sécurité.Org

Admin : comptes utilisateurs locaux (2)» Commutateurs

set password <password>set enablepass <password>

! For access via sc0set ip permit enableset ip permit x.x.x.x y.y.y.y telnetset ip permit x.x.x.x y.y.y.y sshset ip permit z.z.z.z y.y.y.y snmp

Page 55: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

55© 2002 Sécurité.Org

AAA : Authentification / Journalisation» Authentification/Audit : RADIUS/TACACS+

» Enregistrement des commandes tapées> TACACS+ uniquement

» Autorisation par commande> TACACS+ uniquement

aaa new-modelaaa authentication login default tacacs+ enableaaa authentication enable default tacacs+ enableaaa accounting exec default start-stop group tacacs+ip tacacs source-interface loopback0tacacs-server host x.x.x.xtacacs-server key K3y

aaa accounting commands 15 default start-stop group tacacs+

Page 56: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

56© 2002 Sécurité.Org

AAA : Autorisation

» Niveaux de privilèges> 1 : mode utilisateur “lecture uniquement”> 15 : mode privilégié “enable”> Changez le niveau de privilège de certaines

commandes (limite la fuite d’information et les rebonds)

> Un utilisateur peut seulement visualiser la configuration qu’il est autorisé à modifier

> Un utilisateur peut avoir uniquement la permission de voir la configuration et puis être déconnectéprivilege exec level 15 connectprivilege exec level 15 telnetprivilege exec level 15 sshprivilege exec level 15 rloginprivilege exec level 15 show loggingprivilege exec level 15 show [ip] access-listsusername seeandgo privilege autocommand show running

Page 57: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

57© 2002 Sécurité.Org

AAA : Kerberos (1)

» Routeurs Cisco> Telnet cerbèrisé et authentification utilisant Kerberos

(telnet, SSH et console)> Association d’une instance à un niveau de privilège

(définition locale)> Fonctionnalité “Kerberos V client support” (Enterprise)> Non supporté sur certains modèles (16xx, GSR, etc)

» Commutateurs Cisco> Telnet uniquement (SSH disponible à partir des

versions 6.1 mais sans support Kerberos)> Version 5.x pour la SE au minimum> Uniquement sur Catalyst 4K, 5K et 6K/6500 (avec SE I,

non supporté par les SE II)

Page 58: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

58© 2002 Sécurité.Org

AAA : Kerberos (2)

» Kerberos sur un routeur

» Kerberos sur un commutateur

aaa authentication login default krb5-telnet localaaa authorization exec default krb5-instance kerberos local-realm COLT.CHkerberos srvtab entry host/...kerberos server COLT.CH 392.568.0.14kerberos instance map engineering 15kerberos instance map support 3kerberos credentials forward line vty 0 4ntp server 392.568.0.626

set kerberos local-realm COLT.CHset kerberos clients mandatoryset kerberos credentials forwardset kerberos server COLT.CH 392.568.0.682 88set kerberos srvtab entry host/... set authentication login kerberos enable telnet primaryset authentication enable kerberos enable telnet primary set ntp client enableset ntp server 392.568.0.11

Page 59: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

59© 2002 Sécurité.Org

Listes de contrôle d’accès (1)

» Filtrage IP avec les ACLs> Pas de table d’état, pas de réassemblage des paquets> log-input enregistre aussi l’interface et l’adresse MAC

source> Seul le premier fragment est contrôlé (sauf si

utilisation du mot clé fragment)

» Types d’ACLs connues> Standard : basées sur l’adresse IP source uniquement

(1-99, 1300-1999)> Etendue : contrôle sur les adresses IP, ports,

protocoles, bit ACK/RST positionné (connexion établie), etc. (100-199, 2000-2699, ACLs nommées)

Page 60: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

60© 2002 Sécurité.Org

Listes de contrôle d’accès (2)

» Autre types d’ACLS> TurboACL : utilise une table de hashage (gain si 5+

ACEs)> Reflexives : filtre dynamique pour les réponses (ne

fonctionne pas pour les protocoles de type H.323)> Dynamiques : ajoute l’authentification des utilisateurs

aux ACLs étendues> Nommées : permet de supprimer simplement une ACE> Temporelles : spécification d’un plage de temps> CBAC : “inspecte” le protocole (helper/proxy/fixup-like),

utilisé en conjonction avec des ACLs> MAC : filtrage basé sur les adresses MAC (700-799 en

standard, 1100-1199 en étendu)> Protocoles: filtrage sur le type de protocole (200-299)

Page 61: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

61© 2002 Sécurité.Org

Listes de contrôle d’accès(3)

» Exemple : ACL étendue sur un routeur

» ACLs sur un commutateur/routeur> Filtrage définit au niveau 3 (S/E/R/D) envoyé dans la

NMP (TCAM)> Pas d’impact de performance sur la MSCF si les

commandes log[-input], ip unreachables, TCP Intercept ne sont pas utilisées

> VACLs (VLAN) : Permet de filtrer le trafic au niveau IP et sont inscrites par la PFC dans le commutateur

no access-list 100access-list 100 permit <…>access-list 100 deny tcp any range 1 65535 any range 0 65535 logaccess-list 100 deny udp any range 1 65535 any range 0 65535 logaccess-list 100 deny ip any any log-input

Page 62: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

62© 2002 Sécurité.Org

Commutateurs

» Commutateurs multiniveau (6509)> Mode Natif (fonctionnant sous IOS uniquement)> Mode Hybride (IOS et CatOS)> ACLs traitées rapidement

» CatOS 6.2 intègre “IOS Firewall feature set”> Relais d’authentification, CBAC, TCP Intercept, RACLs> Pas de support d’IDS, ni de chiffrement> Roadmap: MAC-layer VACLs (pour le trafic IP)

» CatIOS 12.1.x supporte> IP Unicast-RPF, TCP Intercept, etc

Page 63: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

63© 2002 Sécurité.Org

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)

> 3. Vérification : automatique (batch) ou lorsque la configuration est modifié (message “configured by <xyz>” dans les logs ou message SNMP)

snmpset -c <community> <routerIP> \ .1.3.6.1.4.1.9.2.1.55.<tftpserverIP> s <filename>

Page 64: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

64© 2002 Sécurité.Org

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*

Page 65: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

65© 2002 Sécurité.Org

Vérification d’intégrité du routeur (3)» Cisco IOS rootkit/BoF/FS : est-ce possible ?

> Système propriétaire fonctionnant sur processeurs MIPS (nouveaux modèles) ou Mot68K (anciens modèles)

> Programmes au format ELF 32-bit MSB, édition des liens statique

> Possibilités avec l’accès à gdb {kernel¦pid pid-num} ?

> La ROMMON est-elle un intéressant point de départ (gdb local) ?“Inside Cisco IOS software architecture” - Cisco Press :

- “In general, the IOS design emphasizes speed at the expense of extra fault protection”- “To minimize overhead, IOS does not employ virtual memory protection between processes”- “Everything, including the kernel, runs in user mode on the CPU and has full access to system resources”

Page 66: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

66© 2002 Sécurité.Org

Vérification d’intégrité du routeur (4)» Cisco IOS rootkit/BoF/FS : problèmes ouverts

> Aucune commande/outils documentés pour interagir avec le noyau, la mémoire, les processus, etc.

> Possibilités en mode “enable engineer” ?> Possibilité de charger une image IOS modifiée et de

l’éxécuter sans redémarrer le routeur ?> Le grand nombre d’image disponible rend la tâche

difficile et un outil pour modifier les images est requis

> Nouvelle possibilité avec l’IOS-NG (support de modules dynamiques) ?

Page 67: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

67© 2002 Sécurité.Org

MPLS (1)

» MultiProtocol Label Switching> Circuits virtuels, VPN non chiffrés/authentifiés> “Equivalent” à un circuit de niveau 2 (ATM/FR)> IPsec peut être utilisé pour sécuriser le trafic> Partitionnement VPN réalisé uniquement lors du

routage> Une table de routage par VPN sur chaque routeur PE

(VRF)> En-tête MPLS ajouté à chaque paquet pour identifier le

VPN> Chaque routeur (LSR) sur le chemin MPLS (LSP) gère

une table locale (LIB)> L’en-tête à une signification locale et peut être changé

à chaque saut

Page 68: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

68© 2002 Sécurité.Org

MPLS (2)

» Attaques> Injection de paquets marqués :

- Bloqué par défaut sur toute les interfaces (CE/PE)- Simple en ayant accès à un routeur MPLS

> Injection de données dans le protocole de signalisation ((MP-)BGP et IGPs) pour modifier la topologie du réseau MPLS

» Mesures de sécurité> Configuration correcte de tous les routeurs> Information MPLS distribuée sur tous les routeurs

(difficile à rassembler)

Page 69: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

69© 2002 Sécurité.Org

IPv6

» IPv6> Peu de nouveaux risques> Support IPsec “natif” > Risque élevé plus durant la transition IPv4 -> IPv6> L’adresse MAC peut faire partie de l’adresse IP

Page 70: > Nicolas FISCHBACH      IP Engineering Manager - COLT Telecom

70© 2002 Sécurité.Org

That’s all folks :-)

Dernière version de la présentation< http://www.securite.org/presentations/secip/ >

Image: http://www.inforamp.net/~dredge/funkycomputercrowd.html

Merci aux membres du groupe eXpertspour la relecture et les commentaires,

et à vous pour votre participation.