Integracja ISE z IPS z wykorzystaniem pxGrid Demo aplikacji pxLog Michał Garcarz Krakow TAC AAA Lead CCIE #25272 (R&S, Security, Wireless) Cisco Secure 2014
Agenda API w ISE
REST External RESTful (+ guest)
pxGrid Demo aplikacji pxLog pokazujące możliwości pxGrid © 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
2
API w ISE
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
3
API w ISE
API: Co to jest i po co ?
Partnerzy, środowisko
Cisco
Kompletne rozwiązania zamiast pudełek
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
4
API w ISE 1.3
REST API
External RESTful API
pxGrid
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
5
ISE API - REST
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
6
ISE API - REST
Admin (basic HTTP auth), GET request, transport tcp/443
Session Management (lista wszystkich sesji lub po MAC, IP, User, szczegółowe informacje o każdej sesji)
Troubleshooting (lista błędów wszystkich sesji lub per MAC)
Change of authorization (Reauth, Disconnect: per MAC)
Zmiana URL przy przjeściu z ISE 1.2 do ISE 1.3 (ise/mnt -> admin//API/mnt)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
7
ISE API – REST Session Management User-name Calling-station-id NAS-IP-Address Audit-session-id Framed-IP-Address
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
8
ISE API – REST CoA
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
9
ISE API – REST Błędy
Debugi per węzeł (ERS) pokazują dokładnie każde żądanie oraz wynik (ise-psn.log)
2014-09-19 21:33:34,749 WARN [admin-http-pool5380][] apache.cxf.jaxrs.interceptor.JAXRSInInterceptor -:::::- No root resource matching request path /CoA/Reauth/lise.example.com/C0:4A:00:14:8D:4B/1 has been found.
2014-09-19 21:33:34,749 WARN [admin-http-pool5380][] apache.cxf.jaxrs.impl.WebApplicationExceptionMapper -:::::WebApplicationException has been caught : no cause is available
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
10
ISE API – External RESTful
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
11
ISE API – External RESTful
ERS_Admin (basic HTTP auth), GET/POST/PUT request, CRUD, transport tcp/9060, ISE 1.2 włączane w CLI, ISE 1.3 w GUI
Wiele różnych operacji umożliwiających zmianę konfiguracji (operacje na użytkownikach, endpointach, grupach)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
12
ISE API – External RESTful - włączanie ISE 1.3 ISE 1.2
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
13
ISE API – External RESTful administrator
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
14
ISE API – External RESTful pobranie listy endpointów
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
15
ISE API – External RESTful pobranie listy użytkowników z filtrem
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
16
ISE API – External RESTful usunięcie użytkownika
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
17
ISE API – External RESTful dodanie użytkownika
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
18
ISE API – External RESTful guest
Guest API, nowość w ISE 1.3, dostęp dla sponsorów (nie admin), należy włączyć dla danej grupy sponsorów
Opcja per sponsor group: „Access Cisco ISE guest accounts using the programmatic interface (Guest REST API)” W razie próby dostępu bez uprawnień (ise-psc.log z debugami ERS): „Sponsor does not have permission to access REST Apis”
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
19
ISE API – External RESTful lista gości
API 2.0 ! Sponsor (nie admin)
Podobne zapytania o listę portali wraz z ustawieniami ! © 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
20
ISE API – External RESTful szczegóły o gościu
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
21
ISE API – External RESTful reset hasła gościa
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
22
ISE API – External RESTful weryfikacja nowego hasła gościa
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
23
ISE API – External RESTful błędy
Debugi per węzeł (ERS) pokazują dokładnie każde żądanie oraz wynik (ise-psn.log)
2014-09-19 22:06:41,498 INFO [ers-http-pool21][] cisco.cpm.ers.fw.GenericService -:::::- The GET ALL resources request for resource type 'endpoint' Completed Successfully
[ers-http-pool87][] cpm.ers.api.exception.ERSException -:::::- Validation Error - Mandatory fields missing: [portalId]
[ers-http-pool87][] cpm.ers.fw.schema.ERSSchemaValidator -:::::- At line 3 of null:cvc-complex-type.2.4.a: Invalid content was found starting with element 'password'. One of '{link, customFields}' is expected.
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
24
ISE API – pxGrid
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
25
ISE API – pxGrid
Cel: integracja z wieloma systemami (np.: IPS, SIEM), przesyłanie do ISE informacji o kwarantannie (EPS)+ reakcja na ataki (port bounce, shutdown, terminate)
Transport: XMPP w SSL (tcp/5222), protokół bazujący na XML
Grupy (Session, EPS, inne)
Autentykacja (certyfikaty klienta, serwera + XMPP SASL), rejestracja, akceptacja, bezpieczeństwo
Operacje (publish, subscribe, query, bulk download)
Możliwość ustalenia bezpiecznego kanału p2p out-of-band
Skalowalność do tysięcy węzłów (filtry)
Klastrowanie wielu kontrolerów pxGrid
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
26
pxGrid – API
Rejestracja użytkowników grup session oraz EPS
Shutdown portu (ip lub mac lub session_id)
Ściąganie informacji o aktywnych sesjach
Port bounce (ip lub mac lub session_id)
Ściąganie informacji o aktywnej sesji (ip endpointa)
Przerwanie sesji (ip lub mac lub session_id)
Ściąganie informacji o aktywnych sesjach (username)
Reautentykacja sesji (ip lub mac lub session_id)
Ściąganie informacji o profilach (profiling)
Ściąganie informacji o Trustsec SGT
Sprawdzanie wersji
Kwarantanna (ip lub mac lub session_id)
Koniec Kwarantanny (ip lub mac lub session_id)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
27
pxGrid – wymagania protokołu
Autoryzacja certyfikatami (klient ufa serwerowi, serwer klientowi)
Dla Javy: keystore po stronie klienta (trusted + klient)
Poprawne rekordy DNS typu A (API klienta łączy się do nazwy hosta, nie FQDN po wstępnej autoryzacji) – wymuszone przez SASL XMPP
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
28
ISE API – pxGrid – przykład z sdk (rejestracja)
Rejestracja manualna lub automatyczna:
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
29
ISE API – pxGrid – przykład z sdk (informacje o sesjach)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
30
ISE API – porównanie
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
31
pxLog – demo aplikacji
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
32
pxGrid
Jak zacząć
Co udostępnia Cisco
Przykłady w sdk
Przyszłość
Produkty Cisco
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
33
Demo aplikacji pxLog – po co ?
Proof of concept
Budowanie ekosystemu ISE (Cisco otwartą firmą !)
Testowanie funkcjonalności pxGrid przed CCO/FCS
Dostępna na licencji GPLv3 ( „wolność udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność”)
Aplikacja pxLog nie jest wspierana przez Cisco !
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
34
Demo aplikacji pxLog
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
35
Demo aplikacji pxLog – dlaczego to działa ?
Komunikaty syslog prawie wszystkich systemów bezpieczeństwa mają podobny format (łatwa integracja z czymkolwiek)
Korzystamy ze wszystkich możliwości pxGrid
Natywne wsparcie pxGrid na urządzeniach Cisco (WSA, Sourcefire)
Natychmiastowa zmiana (Use case: zwalniany pracownik, bezpieczeństwo po przepięciu do innego portu/AP -> IPSy bez świadomości kontekstu: IP based, AD user based, compliant ?)
IPS ciągle dobre – do blokowania inline
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
36
Demo aplikacji pxLog – architektura
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
37
Demo aplikacji pxLog – konfiguracja ISE Włączenie EPS (default: wyłączona)
Włączenie persona pxGrid (default: wyłączona)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
38
Demo aplikacji pxLog – konfiguracja ISE
Poprawny łańcuch certyfikatów
Rola pxGrid
Wymagania KU, EKU (nie ClientAuth)
Wymagania hostname
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
39
Demo aplikacji pxLog – regułki authz
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
40
Demo aplikacji pxLog – konfiguracja snort Snort z DAQ pracujący jako inline, przekierowanie ruchu iptables:
iptables -I FORWARD -j ACCEPT iptables -I FORWARD -j NFQUEUE --queue-num 1
Regułka wysyłająca alert dla icmp TTL = 6
alert icmp any any -> any any (itype:8; ttl: 6; sid:100124)
Threshold regułki na 60 s
event_filter gen_id 1, sig_id 100124, type limit, track by_src, count 1, seconds 60
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
41
Demo aplikacji pxLog – GUI
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
42
Demo aplikacji pxLog – Rejestracja użytkowników pxGrid
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
43
Demo aplikacji pxLog – Rejestracja użytkowników pxGrid
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
44
Demo aplikacji pxLog – Rejestracja użytkowników pxGrid
AJAX update
Startuje wątek enforcer (po rejestracji) © 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
45
Demo aplikacji pxLog – Konfiguracja
Sep 8 10:42:13 snort snort[9690]: [1:100124:0] ALERT {ICMP} 10.221.0.240 -> 10.222.0.61 © 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
46
Demo aplikacji pxLog – Intergracja z innymi systemami Cisco ASA inspection
Aug 12 2014 14:36:20: %ASA-5-415006: HTTP - matched Class 23: MS13-025_class in policy-map MS_Mar_2013_policy, URI matched - Dropping connection from inside:192.168.60.88/2135 to outside:192.0.2.63/80
Cisco Sourcefire NGIPS
Aug 28 19:46:19 IDS01 SFIMS: [CA IDS][Policy1][119:15:1] http_inspect: OVERSIZE REQUEST-URI DIRECTORY [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 10.12.253.47:55504 -> 10.15.224.60:80
Juniper JunOS
Jul 16 10:09:39 JuniperJunOS: asp[8265]: ASP_IDS_TCP_SYN_ATTACK: asp 3: proto 6 (TCP), ge-0/0/1.0 10.60.0.123:2280 -> 192.168.1.12:80, TCP SYN flood attack
Linux iptables
Jun 15 23:37:33 netfilter kernel: Inbound IN=lo OUT= MAC=00:13:d3:38:b6:e4:00:01:5c:22:9b:c2:08:00 src=10.0.0.1 DST=10.0.0.100 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=47312 DF PROTO=TCP SPT=40945 DPT=3003 WINDOW=32767 RES=0x00 SYN URGP=0
Freebsd ipfw
Sep 7 15:03:14 delta ipfw: 11400 Deny UDP 10.61.216.50 10.81.199.2 in via fxp0 (frag 52639:519@1480)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
47
Demo aplikacji pxLog – Sesja 802.1x
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
48
Demo aplikacji pxLog – atak i kwarantanna
Regułka snort: alert icmp any any -> any any (itype:8; ttl: 6; sid:100124) Log odebrany przez pxLog: Sep 8 10:42:13 snort snort[9690]: [1:100124:0] ALERT {ICMP} 10.221.0.240 -> 10.222.0.61
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
49
Demo aplikacji pxLog – atak i kwarantanna
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
50
Demo aplikacji pxLog – atak i kwarantanna
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
51
Demo aplikacji pxLog – koniec kwarantanny Kiedy warto skończyć kwarantannę
Manualnie (ISE, pxLog) Automatycznie (IPS, NAC Agent, SIEM, Remediation, inne: pxLog)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
52
Demo aplikacji pxLog – koniec kwarantanny
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
53
Demo aplikacji pxLog – koniec kwarantanny
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
54
Demo aplikacji pxLog – koniec kwarantanny
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
55
Demo aplikacji pxLog – Instalacja
Biblioteki: jQuery(Ajax), JSTL (model MVC), Log4j(logowanie), Mysql connector, Displaytag (renderowanie tablic HTML), pxGrid
Instalacja:
Umieszczenie projektu w katalogu webapp Tomcat-a
Poprawić WEB-INF/web.xml. Zmienna serverip wskazująca na ISE. Generowanie java keystore. Rekord A w DNS dla ISE.
Baza Mysql inicjowana przez skrypt mysql/init.sql.
Wiele ustawień opcjonalnych w WEB-INF/web.xml.
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
56
pxGrid – integracja VPN
ISE 1.3.1 i unifikacja obsługi CoA dla modułu EPS
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
57
pxGrid – Partnerzy i rozwiązania
LogRhythm (SIEM) - REST API
Splunk (SIEM) - REST API
HP Arcsight (SIEM) - REST API
Sentinel NetIQ (SIEM) – plan wsparcia pxGrid
Lancope StealthWatch (SIEM) – plan wsparcia pxGrid
Cisco Sourcefire - wsparcie pxGrid 1HCY15
Cisco WSA - wsparcie pxGrid - kwiecień 2015 (no commitment)
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
58
Podsumowanie API w ISE
REST External RESTful (+ guest) pxGrid
Demo aplikacji pxLog pokazujące możliwości pxGrid
© 2013-2014 Cisco and/or its affiliates. All rights reserved.
Cisco Public
59
Q&A Pytania ?
Dziękuję