Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

43
Cisco Public 1 © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Public 1 © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Public 1 © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Public 1 Cisco Public 1 © 2012 Cisco and/or its affiliates. All rights reserved. Gaweł Mikołajczyk [email protected] Security Consulting Systems Engineer EMEA Central Core Team CCIE #24987, CISSP-ISSAP, CISA, C|EH Security B-Sides, 12 października 2012, Warszawa, Polska

Transcript of Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

Page 1: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

Cisco Public 1 © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Public 1 © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Public 1 © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Public 1 Cisco Public 1 © 2012 Cisco and/or its affiliates. All rights reserved.

Gaweł Mikołajczyk [email protected] Security Consulting Systems Engineer EMEA Central Core Team CCIE #24987, CISSP-ISSAP, CISA, C|EH

Security B-Sides, 12 października 2012, Warszawa, Polska

Page 2: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 2

Jeżeli uważasz że technologia

rozwiąże Twoje problemy z

bezpieczeństwem, znaczy to, że

nie rozumiesz problemów i nie

rozumiesz technologii.

- Bruce Schneier

CLI

CLI

Page 3: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 3

Page 4: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 4

4

http://www.worldipv6launch.org/

Page 5: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 5

Page 6: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 6

• Domyślne podsieci IPv6 mają 264 adresów

10 Mpps = więcej niż 50 000 lat

Page 7: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 7

• Serwery publiczne w DNS

Więcej informacji kolekcjonowanych przez Google et al.

• Zwiększona zależność od DNS/Dynamic DNS

Wilęcej informacji zawartych w DNS

• Klienci peer-to-peer harvestują adresy IPv6

• Administratorzy będą implementować adres „proste do zapamiętania” (::10,::20,::F00D, ::C5C0, :ABBA:BABE lub po prostu ostatni oktet IPv4 dla Dual-Stack)

• Kompromitacja hostów w sieci stwarza więcej powiększa wiedzę o adresacji.

Page 8: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 8

• Nie ma już potrzeby rekonesansu. Wszystko widać.

• 3 adresy multicastowe site-local (domyślnie nie działają)

FF05::2 all-routers, FF05::FB mDNSv6, FF05::1:3 all DHCP servers

• Kilka adresów multicast link-local (działają domyślnie)

FF02::1 all nodes, FF02::2 all routers, FF02::F all UPnP, …

2001:db8:2

::50

2001:db8:1:

:60

2001:db8:3:

:70

Attacker FF05::1:3

Source Destination Payload

DHCP Attack

http://www.iana.org/assignments/ipv6-multicast-addresses/

Page 9: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 9

X skanuje 2 64 adresów

(ping PFX::a, PFX::b, …PFX::z)

Router

PFX::/64

NS

Dst = Solicited-node multicast address of PFX::a

Query = what is PFX::a ’s link-layer address?

NS

Dst = Solicited-node multicast address of PFX::b

Query = what is PFX::b ’s link-layer address?

NS

Dst = Solicited-node multicast address of PFX::z

Query = what is PFX::z’s link-layer address?

3 sekundy historii

X

Obrona: mechanizmy alokacji adresów, filtrowanie na routerach, Destination Guard na przełącznikach

Page 10: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 10

Użyteczne na routerze last-hop i przełączniku dystrybucyjnym Dropuj pakiety do hostów bez wpisu w cache

X skanuje 2 64 adresów

PFX::a,

PFX::b, …

PFX::z

Router

PFX::/64

X

Forwarduj

Lookup D1

Jest? NIE

L3 switch

Address glean

Binding table Neighbor cache

Page 11: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 11

• Wirusy, zagrożenia e-mail, IM: IPv6 nie przynosi zmian

• Robaki:

IPv4: zależne od skanowania sieci

IPv6: inne techniki (zobacz: rekonesans)

Twórcy malware dostosują się do IPv6

Najlepsze praktyki dla IPv4 pozostają aktualne w środowiskach IPv6

Page 12: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 12

• “IPv6 wymaga implementacji IPSec”

• Niektóre organizacje uważają, że IPSec powinien byc używany do ochrony całego ruchu...

“Ekspert w dziedzinie bezpieczeństwa, W., profesor na

Uniwersytecie Foo w Wielkiej Brytanii, powiedział gazecie Bar,

że nowy protokół IPv6 wymaga z IPSec, który raz na zawsze

rozprawi się z anonimowością w Internecie.

Jeżeli zaadoptujemy IPv6 globalnie, łapanie cyberprzestępców

będzie łatwiejsze, rzekł profesor W.”

Page 13: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 13

• IPv6 początkowo wymagał implementacji IPsec (ale nie użycia!)

• Obecnie RFC 6434:

“IPsec POWINIEN być wspierany przez urządzenia IPv6

• IPSec End-to-end wprowadza interesujące wyzwania –

Skalowalność (n2 z IPsec)

Konieczność zaufania użytkownikom i urządzeniom ponieważ sieć nie jest w stanie poddawać inspekcji ruchu zaszyfrowanego – ACL, IPS, Firewall

Telemetria sieciowa jest oślepiona: NetFlow staje się prawie bezużyteczny

Mechanizmy sieciowe osłabione: co z Quality of Service?

Rekomendacja: nie używaj IPSec end-to-end w obrębie

domeny administracyjnej.

Sugestia: Używaj IPSec w sieci IPv6 dokładnie tak, jak

robiłeś to w sieciach IPv4.

Page 14: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 14

• Nie ma adresów rozgłoszeniowych w IPv6

• Broadcast jest zastąpiony przed odpowiednie adresy multicastowe

Link Local All Nodes Multicast—FF02::1

Link Local All Routers Multicast—FF02::2

Link Local All mDNS Multicast—FF02::FB

• Zalecenia:

Anti-spoofing jest pożądany. Atakujący nie może podszyć się pod ofiarę.

Limituj wiadomości ICMP (egress/rate-limit)

Filtruj ruch multicastowy na wejściu do sieci

http://iana.org/assignments/ipv6-multicast-addresses/

Page 15: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 15

Page 16: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 16

• Jeżeli jedna warstwa OSI ulegnie kompromitacji, warstwy wyższe mogą o tym nawet nie wiedzieć

• Bezpieczeństwo zależy od najsłabszego ogniwa

• Warstwa 2 może być bardzo słabym ogniwem

POP3, IMAP, IM, SSL, SSH

Łącze fizyczne

Adresy IP

Protokoły/Porty

Kompromitacja

Protokół aplikacyjny K

om

pro

mit

ac

ja

Application

Presentation

Session

Transport

Network

Data Link

Physical

Application

Presentation

Session

Transport

Network

Data Link

Physical

Page 17: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 17

A i B mogą teraz się komunikować

• Utworzenie mapowania adresu IPv6 na adres MAC

• Wiadomości ICMPv6: Neighbor Solicitation (NS), Neighbor Advertisement (NA)

A B C

NS

ICMP type = 135 (Neighbor Solicitation)

Src = A

Dst = Solicited-node multicast address of B

Data = B

Option = link-layer address of A

Query = what is B’s link-layer address?

NA

ICMP type = 136 (Neighbor Advertisement) Src = one B’s IF address Dst = A Data = B

Option = link-layer address of B

Page 18: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 18

• Atakujący podszywa się pod adres IPv6 ofiary.

NS

Src = B or any C’s IF address Dst = A

Data = B Option = link-layer address of C

NA

A B C

Dst = Solicited-node multicast address of B

Query = what is B’s link-layer address? NS

Obrona: Statyczny Cache, Address GLEAN, SeND (CGA), Address-Watch.

Page 19: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 19

H1

Binding table

NS [IP source=A1, LLA=MACH1]

DHCP-

server

REQUEST [XID, SMAC = MACH2]

REPLY[XID, IPA21, IPA22]

H2 H3

data [IP source=A3, SMAC=MACH3]

DAD NS [IP source=UNSPEC, target = A3]

NA [IP source=A1, LLA=MACH3]

IPv6 MAC VLAN IF

A1 MACH1 100 P1

A21 MACH2 100 P2

A22 MACH2 100 P2

A3 MACH3 100 P3

DHCP LEASEQUERY

DHCP LEASEQUERY_REPLY

H1 H2 H3

Gleaning oznacza poddawanie inspekcji pod kątem poprawności.

Page 20: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 20

Binding table

IPv6 MAC VLAN IF STATE

A1 MACH1 100 P1 STALE

A21 MACH2 100 P2 REACH

A22 MACH2 100 P2 REACH

A3 MACH3 100 P3 STALE Address

GLEAN

DAD NS [IP source=UNSPEC, target = A1]

DAD NS [IP source=UNSPEC, target = A3]

NA [target = A1LLA=MACH1]

IPv6 MAC VLAN IF STATE

A1 MACH1 100 P1 REACH

A21 MACH2 100 P2 REACH

A22 MACH2 100 P2 REACH

– Utrzymuj informację o stanie hostów

– Aktywnie próbkuj hosty

– Usuwaj wpisy od niewaktywnych hostów

– Zapisuj kreację/usunięcie/zmiany

H1 H2 H3

Page 21: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 21

Binding table

IPv6 MAC VLAN IF

A1 MACA1 100 P1

A21 MACA21 100 P2

A22 MACA22 100 P2

A3 MACA3 100 P3

Address

GLEAN

– Pozwól na ruch

od znanych

IP/SMAC

– Odrzuć ruch od

nieznanych

IP/SMAC

P1:: data, src= A1, SMAC = MACA1

P2:: data src= A21, SMAC = MACA21

P3:: data src= A3, SMAC = MACA3

P3 ::A3, MACA3

DAD NS [IP source=UNSPEC, target = A3]

NA [target = A1LLA=MACA3]

DHCP LEASEQUERY

DHCP LEASEQUERY_REPLY

H1 H2 H3

Page 22: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 22

Page 23: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 23

ICMP Type = 133 (Router Solicitation)

Src = UNSPEC (or Host link-local address)

Dst = All-routers multicast address (FF02::2)

Query = please send RA

RS

ICMP Type = 134 (Router Advertisement)

Src = Router link-local address

Dst = All-nodes multicast address (FF02::1)

Data = router lifetime, retranstime, autoconfig flag

Option = Prefix, lifetime

RA

Użyj B jako bramy domyślnej

• Odnajdywanie bramy domyślnej (routera)

• Odkrywanie prefixów on-link => kto jest sąsiadem?

• Wiadomości ICMPv6: Router Advertisements (RA), Router Solicitations (RS)

B A

Internet

Page 24: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 24

• Atakujący przekonuje ofiarę, że jest bramą domyślną

• Oparty o fałszywe Router Advertisements

• Najczęstszy atak z kategorii „nieświadomych”

Src = C’s link-local address

Dst = All-nodes

Data = router lifetime, autoconfig flag

Options = subnet prefix, slla

RA

Host A wysyła ruch off-link traffic do C

B

C A

Src = B’s link-local address

Dst = All-nodes

Data = router lifetime=0

RA

Internet

Page 25: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 25

Weryfikacja?

Forward RA

Przełącznik selektywnie akceptuje lub odrzuca RA na podstawie różnych kryterów– ACL (konfiguracja), uczy się lub aktywnie pyta stację (SeND). Hosty widza tylko dozwolone RA z odpowiednią zawartością. Więcej mechanizmów obrony: routing statyczny, SeND, segmentacja VLAN, PACL.

A C

“Jestem bramą domyślną” Router Advertisement Option: prefix(s)

RA

Page 26: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 26

• Weryfikacja unikalności adresu IPv6

• Próbkowanie sąsiadów czy nikt nie posiada już adresu

• Wiadomości: Neighbor Solicitation, Neighbor Advertisement

ICMP type = 135 (Neighbor Solicitation)

Src = UNSPEC = 0::0

Dst = Solicited-node multicast address of A

Data = A

Query = Does anybody use A already?

NS

Host A może używać adres IPv6

A B C

Page 27: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 27

• Bezstanowy mechanizm na podstawie prefiksu w RA.

• Wiadomości: Router Advertisements, Router Solicitations

ICMP Type = 133 (Router Solicitation)

Src = UNSPEC (or Host link-local address)

Dst = All-routers multicast address (FF02::2)

Query = please send RA

RS

ICMP Type = 134 (Router Advertisement)

Src = Router link-local address

Dst = All-nodes multicast address (FF02::1)

Data = router lifetime, retranstime, autoconfig flag

Options = Prefix X,Y,Z, lifetime

RA

Wysyłaj ruch z X::x, Y::y, Z::z

Oblicz X::x, Y::y, Z::z i wykonaj DAD NS

A B

Internet

Page 28: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 28

• Atakujący podszywa się pod RA z fałszywym on-link prefix

• Ofiara generuje IP na podstawie złego prefiksu

• Router odrzuca ruch wychodzący ofiary (ingress filtering)

• Ofiara odcięta od sieci zewnętrznych. DoS.

B

Router B filtruje BAD::A

Oblicza BAD::A I wykonuje DAD

RA Src = B’s link-local address

Dst = All-nodes

Options = prefix X Preferred lifetime = 0

Src = B’s link-local address

Dst = All-nodes

Options = prefix BAD, Preferred lifetime

RA Usuwa X::A

Host A wysyła ruch off-link do B jako BAD::A

A C

Internet

Page 29: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 29

• Każde urządzenie posiada parę kluczy RSA (nie wymaga certyfikatu)

• Lekki mechanizm sprawdzania poprawności. RFC 3972 (uproszczony)

• Ochrona przed spoofingiem z pomoca ważnego adresu CGA

SHA-1

Klucze RSA

Priv Pub

Subnet

Prefix

Interface

Identifier

Crypto. Generated Address

Podpis

Wiadomości SeND

Modifier

Public

Key

Subnet

Prefix

CGA Params

Page 30: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 30

Router R host

Certificate Authority CA0 Certificate Authority

Certificate C0

Router

certificate

request

Router certificate CR

Certificate Path Solicit (CPS): I trust CA0, who are you R?

Certificate Path Advertise (CPA): I am R, this is my certificate CR signed by CA0

1

2

3

4

5

6 Verify CR against CA0

7 Insert R as default route

ROUTER ADVERTISEMENT (SRC = R)

provision

provision

A

Każdy host dba sam o swoje bezpieczeństwo

Weryfikacja czy router jest zaufany.

Subject Name

zawiera listę

autoryzowanych

prefiksów IPv6

Page 31: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 31

Hosty muszą posiadać certyfikaty CA

Relacja zaufania jest łatwa do zbudowania w obrębie

kontrolowanej sieci, na zewnątrz – bardzo trudna do osiągnięcia

Bardzo mało stosów TCP/IPv6 wspiera dzisiaj SeND

GRANICA ADMINISTRACYJNA

CA

Router Host

CA

Router Host

CA

Page 32: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 32

• Urządzenia sieciowe integrują mechanizmy o których tu mowa.

1. RA-guard

2. NDP address glean/inspection

3. Address watch/ownership enforcement

4. Device Tracking

5. Address GLEAN (NDP + DHCP + data)

6. DHCP-guard

7. DAD/Resolution proxy

8. Source-guard (SAVI)

9. Destination-guard

10.DHCP L2 relay

• Czytaj dokumentację dla swoich urządzeń sieciowych.

• Upewnij się że Twoje przełączniki i routery potrafią obronić sieć.

Page 33: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 33

Page 34: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 34

Przykład:

ICMPv6 Neigbor discovery / Router advertisements

Page 35: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 35

Service HTTP

Page 36: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 36

• Can detect IPv6 tunnels in IPv4

IPv6 in IPv4

IPv6 in MPLS tunnel

Teredo destination IP address

Teredo source port

Teredo destination port

Teredo data packet

• Więcej?

Detect DNS request for ISATAP

Detect traffic to 6to4 anycast server

Page 37: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 37

• Sygnatury ICMPv6 dla ochrony przed atakami i widoczności ruchu NA, NS, RA, RS.

Page 38: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 38

• Patrz w swój NetFlow.

Protocol 41: IPv6 over IPv4 lub tunele 6to4

IPv4 address: 192.88.99.1 (6to4 anycast server)

UDP 3544, publiczna część Teredo, kolejny mechanizm tunelowania

• Patrz w logi serwera DNS pytające o ISATAP

Twoja sieć IPv4 może być podatna na ataki IPv6 juz dziś.

Page 39: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 39

Page 40: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 40

Page 41: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 41

http://www.cisco.com/security

184 pages

50 pages

Page 42: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

© 2012 Cisco and/or its affiliates. All rights reserved. Cisco Public 42

Page 43: Security B-Sides Warsaw 2012 - Bezpieczenstwo IPv6 - Gawel Mikolajczyk

Cisco Public 43