De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
De Identity Services Engine (ISE) versie 1.3 ondersteunt een nieuwe API met de naam pxGrid. Dit moderne en flexibele protocol dat verificatie, encryptie en privileges (groepen) ondersteunt, maakt een eenvoudige integratie met andere beveiligingsoplossingen mogelijk. Dit document beschrijft het gebruik van pxLog applicatie die is geschreven als een bewijs van het concept. pxLog kan syslog berichten ontvangen van Inbraakpreventiesysteem (IPS) en pxGrid berichten verzenden naar de ISE om de aanvaller in quarantaine te plaatsen. Als gevolg daarvan gebruikt ISE RADIUS Change of Authorisation (CoA) om de autorisatiestatus te wijzigen van het eindpunt dat de netwerktoegang beperkt. Dit alles gebeurt transparant voor de eindgebruiker.
In dit voorbeeld is Snort gebruikt als IPS, maar een andere oplossing zou kunnen worden gebruikt. Eigenlijk hoeft het geen IPS te zijn. Het enige dat nodig is is om het syslog bericht naar pxLog met het IP adres van de aanvaller te verzenden. Dit schept een mogelijkheid voor de integratie van een groot aantal oplossingen.
Dit document presenteert ook hoe u pxGrid-oplossingen kunt oplossen en testen, met de typische problemen en beperkingen.
Vrijwaring: de applicatie pxLog wordt niet ondersteund door Cisco. Dit artikel is geschreven als een bewijs van het concept. Het belangrijkste doel was om het te gebruiken tijdens het verbeteren van de implementatie van pxGrid op de ISE.
Cisco raadt u aan ervaring te hebben met Cisco ISE-configuratie en basiskennis van deze onderwerpen:
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
Hier is de verkeersstroom, zoals wordt geïllustreerd in het netwerkdiagram:
De oplossing is om een set toepassingen te installeren op een Linux-machine:
De applicatie pxLog gebruikt deze bibliotheken:
Al die bibliotheken zijn al in de lib directory van het project, dus er is geen noodzaak om nog meer Java ARchive (JAR) bestanden te downloaden.
Zo installeert u de toepassing:
Dit artikel richt zich niet op een specifiek IPS, wat de reden is dat slechts een korte uitleg wordt gegeven.
Snort is ingesteld als inline met DAQ-ondersteuning. Traffic wordt omgeleid met iptables:
iptables -I FORWARD -j ACCEPT
iptables -I FORWARD -j NFQUEUE --queue-num 1
Vervolgens wordt het na inspectie geïnjecteerd en doorgestuurd volgens standaard iptable regels.
Er zijn een aantal aangepaste Snortregels geconfigureerd (het /etc/snort/rules/test.rules-bestand is opgenomen in de globale configuratie).
alert icmp any any -> any any (itype:8; dsize:666<>686; sid:100122)
alert icmp any any -> any any (itype:8; ttl: 6; sid:100124)
Snort verstuurt een syslog bericht wanneer de Time To Live (TTL) van het pakket gelijk is aan 6 of de grootte van de payload tussen 666 en 686 ligt. Het verkeer wordt niet geblokkeerd door Snort.
Ook moeten drempels worden vastgesteld om te voorkomen dat de waarschuwingen te vaak worden geactiveerd (/etc/snort/threshold.conf):
event_filter gen_id 1, sig_id 100122, type limit, track by_src, count 1, seconds 60
event_filter gen_id 1, sig_id 100124, type limit, track by_src, count 1, seconds 60
Vervolgens wijst de syslog server naar de pxLog machine (/etc/snort/snort.conf):
output alert_syslog: host=10.222.0.61:514, LOG_AUTH LOG_ALER
Voor sommige versies van Snort, zijn er bugs met betrekking tot de syslog configuratie, en dan de standaardinstellingen kunnen worden gebruikt dat punt aan de localhost en syslog-ng kan worden geconfigureerd om specifieke berichten door te sturen naar de pxLog host.
EPS moet zijn ingeschakeld (standaard uitgeschakeld) vanuit Beheer > Instellingen:
Hierdoor kunt u de quarantaine/unquarantaine-functie gebruiken.
De eerste regel wordt alleen aangetroffen als het eindpunt in quarantaine wordt geplaatst. Dan wordt de beperkte toegang dynamisch afgedwongen door RADIUS CoA. De switch moet ook worden toegevoegd aan Netwerkapparaten met het juiste gedeelde geheim.
De status pxGrid kan met de CLI worden geverifieerd:
lise/admin# show application status ise
ISE PROCESS NAME STATE PROCESS ID
--------------------------------------------------------------------
Database Listener running 6717
Database Server running 51 PROCESSES
Application Server running 9486
Profiler Database running 7804
AD Connector running 10058
M&T Session Database running 7718
M&T Log Collector running 9752
M&T Log Processor running 9712
Certificate Authority Service running 9663
pxGrid Infrastructure Service running 14979
pxGrid Publisher Subscriber Service running 15281
pxGrid Connection Manager running 15248
pxGrid Controller running 15089
Identity Mapping Service running 9962
Er zijn ook afzonderlijke debugs voor pxGrid (Beheer > Vastlegging > Debug Log Configuration > pxGrid). Debug-bestanden worden opgeslagen in de pxGrid-map. De belangrijkste gegevens zijn te vinden op de website pxgrid/pxgrid-jabberd.log en op de website pxgrid/pxgrid-controller.log.
De pxLog applicatie wordt automatisch geïmplementeerd wanneer Tomcat start.
pxLog moet syslog berichten verwerken en acties uitvoeren op basis daarvan. Als u een nieuwe regel wilt toevoegen, selecteert u Regels beheren:
Nu zoekt de handhavingsmodule naar deze Regular Expression (RegExp) in het syslog bericht: "snort[". Indien gevonden, zoekt het alle IP-adressen en selecteert het de vorige. Dit komt overeen met de meeste beveiligingsoplossingen. Raadpleeg het gedeelte Syslog voor meer informatie. Dat IP-adres (aanvaller) wordt via pxGrid in quarantaine geplaatst. Er kan ook een korreliger regel worden gebruikt (bijvoorbeeld het handtekeningsnummer).
Het Microsoft Windows 7-station start een bekabelde dot1x-sessie. Cisco AnyConnect NAM is gebruikt als aanvrager. De Extensible Verification Protocol-Protected EAP (EAP-PEAP)-methode wordt geconfigureerd.
Het volledige profiel voor ISE Dot1x-toegang wordt geselecteerd. De switch downloadt de toegangslijst om volledige toegang te verlenen:
3750#show authentication sessions interface g0/17
Interface: GigabitEthernet0/17
MAC Address: 0050.b611.ed31
IP Address: 10.221.0.240
User-Name: cisco
Status: Authz Success
Domain: DATA
Security Policy: Should Secure
Security Status: Unsecure
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: N/A
ACS ACL: xACSACLx-IP-PERMIT_ALL-53fc9dbe
Session timeout: N/A
Idle timeout: N/A
Common Session ID: 0A01000C000037E6BAB267CF
Acct Session ID: 0x00003A70
Handle: 0xA100080E
Runnable methods list:
Method State
dot1x Authc Success
3750#show ip access-lists interface g0/17
permit ip any any
Dit toont wat er gebeurt als u vanuit een Microsoft Windows-pakket met TTL = 7 verzendt:
c:\> ping 10.222.0.61 -i 7 -n 1
Die waarde wordt verlaagd op Snort in de Forwarding-keten en er wordt een alarmmelding weergegeven. Dientengevolge, wordt een syslogbericht naar pxLog verzonden:
Sep 6 22:10:31 snort snort[6310]: [1:100124:0] ALERT {ICMP} 10.221.0.240 ->
10.222.0.61
De pxLog ontvangt het syslog bericht, verwerkt het, en vraagt om dat IP adres in quarantaine te plaatsen. Dit kan worden bevestigd als u de logbestanden controleert:
De ISE meldt dat het IP-adres in quarantaine is geplaatst:
Als gevolg daarvan herziet het het vergunningsbeleid, kiest quarantaine, en verzendt RADIUS CoA om de vergunningsstatus op de switch voor dat specifieke eindpunt bij te werken.
Dat is het bericht van de CoA dat de aanvrager dwingt om een nieuwe sessie te starten en beperkte toegang te krijgen (Permit_ICMP):
Het resultaat kan op de switch worden bevestigd (beperkte toegang voor het eindpunt):
3750#show authentication sessions interface g0/17
Interface: GigabitEthernet0/17
MAC Address: 0050.b611.ed31
IP Address: 10.221.0.240
User-Name: cisco
Status: Authz Success
Domain: DATA
Security Policy: Should Secure
Security Status: Unsecure
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: N/A
ACS ACL: xACSACLx-IP-PERMIT_ICMP-53fc9dc5
Session timeout: N/A
Idle timeout: N/A
Common Session ID: 0A01000C000037E7BAB7D68C
Acct Session ID: 0x00003A71
Handle: 0xE000080F
Runnable methods list:
Method State
dot1x Authc Success
3750#show ip access-lists interface g0/17
permit icmp any any
In dit stadium besluit de beheerder om dat eindpunt te verwijderen:
De zelfde verrichting kan direct van ISE worden uitgevoerd:
De ISE herziet de regels en werkt de autorisatiestatus van de switch bij (volledige netwerktoegang wordt verleend):
Het rapport bevestigt:
De pxLog applicatie is geschreven om de functionaliteit van de pxGrid API aan te tonen. Hiermee kunt u:
In de toekomst is meer functionaliteit gepland.
Hier zijn een paar voorbeelden van screenshots van pxLog:
De client (gebruiker) kan tegelijkertijd lid zijn van één groep. De twee meest gebruikte groepen zijn:
Zoals eerder vermeld, moeten zowel client-toepassingen, pxLog en pxGrid controller (ISE), certificaten geconfigureerd hebben om te communiceren. De pxLog toepassing houdt die in de Java KeyStore bestanden:
Bestanden worden beveiligd met een wachtwoord (standaard: cisco123). De locatie en wachtwoorden van het bestand kunnen worden gewijzigd in WEB-INF/web.xml.
Hier zijn de stappen om een nieuwe Java KeyStore te genereren:
pxgrid store # keytool -import -alias ca -keystore root.jks -file cert-ca.der
pxgrid store # keytool -import -alias mnt -keystore root.jks -file cert-mnt.der
pxgrid store # keytool -import -alias ca -keystore client.jks -file cert-ca.der
pxgrid store # keytool -genkey -alias clientcert -keyalg RSA -keystore client.jks -
keysize 2048
pxgrid store # keytool -certreq -alias clientcert -keystore client.jks -
file cert-client.csr
pxgrid store # keytool -import -alias clientcert -keystore client.jks -file cert-
client.der
pxgrid store # keytool -list -v -keystore client.jks
pxgrid store # keytool -list -v -keystore root.jks
Waarschuwing: wanneer het ISE 1.3-knooppunt wordt bijgewerkt, is er een optie om het identiteitscertificaat te behouden, maar CA-ondertekening is verwijderd. Als gevolg hiervan gebruikt de geüpgradede ISE een nieuw certificaat, maar voegt nooit het CA-certificaat toe aan het SSL/ServerHello-bericht. Dit leidt tot het falen op de client die verwacht (volgens RFC) een volledige keten te zien.
De pxGrid API voor verschillende functies (zoals sessiedownload) voert aanvullende validatie uit. De client neemt contact op met de ISE en ontvangt de ISE hostname, die wordt gedefinieerd door de hostname-opdracht in de CLI. Vervolgens probeert de client DNS-resolutie uit te voeren voor die hostnaam en probeert gegevens te contacteren en te halen van dat IP-adres. Als de DNS-resolutie voor de ISE-hostnaam mislukt, probeert de client geen gegevens te verkrijgen.
Waarschuwing: Merk op dat alleen de hostnaam wordt gebruikt voor deze resolutie, die in dit scenario wordt vermeld, niet de volledig gekwalificeerde domeinnaam (FQDN), die lise.example.com in dit scenario is.
Cisco publiceert en ondersteunt de PxGrid API. Er is één pakket met deze naam:
pxgrid-sdk-1.0.0-167
Daarin bevinden zich:
Hier is de lijst van veiligheidsoplossingen die syslog berichten met het aanvaller IP adres verzenden. Deze kunnen eenvoudig worden geïntegreerd met pxLog zolang u de juiste RegExp regel in de configuratie gebruikt.
Snort verstuurt syslog-waarschuwingen in deze indeling:
host[id] [sig_gen, sig_id, sig_sub] [action] [msg] [proto] [src] [dst]
Hierna volgt een voorbeeld:
snort[6310]: [1:100124:0] ALERT {ICMP} 10.221.0.240 -> 10.222.0.61
Het IP-adres van de aanvaller is altijd het tweede adres voor het laatste adres (bestemming). Het is eenvoudig om een granulaire RegExp voor een specifieke handtekening te bouwen en het aanvaller IP adres te halen. Hier is een voorbeeld RegExp voor de 100124 en het bericht Internet Control Message Protocol (ICMP):
snort[\.*:100124:.*ICMP.*
Wanneer de ASA is geconfigureerd voor HTTP-inspectie (bijvoorbeeld), ziet het bijbehorende syslogbericht er zo uit:
Mar 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
Opnieuw zou een korrelige RegExp kunnen worden gebruikt om die berichten te filteren en het aanvaller IP-adres te halen, de tweede vóór de laatste.
Hier is een voorbeeldbericht dat door de Sourcefire-sensor wordt verstuurd:
Jan 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
Dus nogmaals, het is eenvoudig om het aanvaller IP-adres te halen omdat dezelfde logica van toepassing is. Ook de naam van het beleid en de handtekening worden verstrekt, zodat kan de pxLog regel korrelig zijn.
Hier is een voorbeeldbericht dat is verzonden door de oudere Juniper Inbraakdetectie en -preventie (IDP):
dayId="20061012" recordId="0" timeRecv="2006/10/12
21:52:21" timeGen="2006/10/12 21:52:21" domain="" devDomVer2="0"
device_ip="10.209.83.4" cat="Predefined" attack="TROJAN:SUBSEVEN:SCAN"
srcZn="NULL" srcIntf="NULL" srcAddr="192.168.170.20" srcPort="63396"
natSrcAddr="NULL" natSrcPort="0" dstZn="NULL" dstIntf="NULL"
dstAddr="192.168.170.10" dstPort="27374" natDstAddr="NULL" natDstPort="0"
protocol="TCP" ruleDomain="" ruleVer="5" policy="Policy2" rulebase="IDS"
ruleNo="4" action="NONE" severity="LOW" alert="no" elaspedTime="0" inbytes="0"
outbytes="0" totBytes="0" inPak="0" outPak="0" totPak="0" repCount="0"
packetData="no" varEnum="31" misc="<017>'interface=eth2" user="NULL"
app="NULL" uri="NULL"
Het IP-adres van de aanvaller kan op dezelfde manier worden afgeleid.
JunOS is vergelijkbaar:
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
Hier zijn een paar voorbeelden van Linux-tabellen.
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
U kunt syslog informatie voor om het even welk type van pakket met de geavanceerde functionaliteit verzenden die door de instelbare modules zoals verbinding het volgen, xtables, rpfilters, patroonaanpassing, etc. wordt verstrekt.
Hier is een voorbeeldbericht voor het blokkeren van IPFW-fragmenten:
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)
De ISE is in staat om het type sessies te herkennen in termen van de afhandeling van de CoA.
De EPS-module is eenvoudig. Wanneer het een quarantaine uitvoert, stuurt het altijd een CoA eindigingspakket. Voor bekabelde/draadloze sessies is het geen probleem (alle 802.1x-applicaties kunnen op een transparante manier een tweede EAP-sessie starten). Maar wanneer de ASA de CoA ontvangt, wordt de VPN-sessie beëindigd en wordt de eindgebruiker met dit gepresenteerd:
Er zijn twee mogelijke oplossingen om AnyConnect VPN automatisch opnieuw aan te sluiten (geconfigureerd in het XML-profiel):
Zelfs wanneer de nieuwe sessie is ingesteld, kiest de ASA de nieuwe audit-sessie-id. Vanuit het ISE-gezichtspunt is dit een nieuwe sessie en is er geen kans om de quarantaineregel te ontmoeten. Ook voor VPN’s is het niet mogelijk om het MAC-adres van het eindpunt als identiteit te gebruiken, in tegenstelling tot bekabelde/draadloze dot1x.
De oplossing is om de EPS te dwingen zich te gedragen als de ISE en het juiste type CoA te sturen op basis van de sessie. Deze functionaliteit wordt geïntroduceerd in ISE versie 1.3.1.
Hier is een lijst van pxGrid-partners en -oplossingen:
Hier zijn andere partners en oplossingen:
Raadpleeg de Marketplace Solutions Catalog voor de volledige lijst met beveiligingsoplossingen.
Er zijn drie soorten API beschikbaar op ISE versie 1.3.
Hier is een vergelijking:
RUST | Externe RUSTvol | PXGrid | |
---|---|---|---|
Clientverificatie | gebruikersnaam + wachtwoord (basis HTTP-autorisatie) |
gebruikersnaam + wachtwoord (basis HTTP-autorisatie) |
akte |
Scheiding van rechten | nee |
beperkt (ERS-beheerder) |
ja (Groepen) |
Toegang | Mnt | Mnt | Mnt |
Vervoer | TCP/443 (HTTPS) | TCP/9060 (HTTPS) | TCP/5222 (XMPP) |
HTTP-methode | KRIJGEN | GET/POST/PUT | GET/POST |
Standaard ingeschakeld | ja | nee | nee |
Aantal concrete acties | weinig | vele | weinig |
CoA-einde | ondersteund | nee | ondersteund |
CoA opnieuw authenticeren | ondersteund | nee | ondersteund * |
Gebruikersbewerkingen | nee | ja | nee |
Endpoint bewerkingen | nee | ja | nee |
Endpoint Identity Group Operations | nee | ja | nee |
Quarantaine (IP, MAC) | nee | nee | ja |
Quarantaine uitschakelen (IP, MAC) | nee | nee | ja |
PortBounce/afsluiten | nee | nee | ja |
Gastgebruikersbewerkingen | nee | ja | nee |
Bediening van het gastportaal | nee | ja | nee |
Bewerkingen van netwerkapparaten | nee | ja | nee |
Bewerkingen van netwerkapparaatgroepen | nee | ja | nee |
* Quarantine maakt gebruik van Unified CoA ondersteuning van ISE versie 1.3.1.
pxLog kan worden gedownload van Sourceforge .
De Software Development Kit (SDK) is al inbegrepen. Neem voor de nieuwste SDK- en API-documentatie voor PxGrid contact op met uw partner of het Cisco-accountteam.
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
23-Dec-2014 |
Eerste vrijgave |