이 문서에서는 Cisco FireSight 어플라이언스에서 리미디에이션 모듈을 사용하여 공격을 탐지하고 Cisco ISE(Identity Service Engine)를 정책 서버로 사용하여 공격자를 자동으로 치료하는 방법에 대해 설명합니다.이 문서에서 제공하는 예는 ISE를 통해 인증하는 원격 VPN 사용자의 교정에 사용되는 방법을 설명하지만 802.1x/MAB/WebAuth 유선 또는 무선 사용자에게도 사용할 수 있습니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
시스템을 구성하려면 이 섹션에서 제공하는 정보를 사용하십시오.
이 문서에 설명된 예에서는 이 네트워크 설정을 사용합니다.
이 네트워크 설정에 대한 플로우는 다음과 같습니다.
앞에서 언급한 대로, 이 시나리오는 ISE가 인증에 사용되고 네트워크 액세스 디바이스가 RADIUS CoA(모든 최신 Cisco 디바이스)를 지원하는 경우 모든 유형의 인증된 세션(VPN, 유선 802.1x/MAB/Webauth, 무선 802.1x/MAB/Webauth)에 대해 작동합니다.
VM에는 3개의 인터페이스가 있습니다. 하나는 관리용이고 다른 하나는 인라인 검사용입니다(내부/외부).
VPN 사용자의 모든 트래픽은 FirePower를 통해 이동합니다.
올바른 라이센스를 설치하고 FirePower 디바이스를 추가한 후 Policies(정책) > Access Control(액세스 제어)으로 이동하고 HTTP 트래픽을 172.16.32.1으로 삭제하기 위해 사용되는 액세스 정책을 생성합니다.
다른 모든 트래픽은 허용됩니다.
커뮤니티 포털에서 공유되는 ISE 모듈의 현재 버전은 ISE 1.2 Remediation Beta 1.3.19입니다.
Policies(정책) > Actions(작업) > Remediations(교정) > Modules(모듈)로 이동하여 파일을 설치합니다.
그런 다음 올바른 인스턴스를 만들어야 합니다.Policies(정책) > Actions(작업) > Remediations(교정) > Instances(인스턴스)로 이동하고 REST API에 필요한 ISE 관리 자격 증명과 함께 PAN(정책 관리 노드)의 IP 주소를 제공합니다(ERS Admin 역할을 사용하는 별도의 사용자 권장).
원본 IP 주소(공격자)도 교정에 사용해야 합니다.
이제 특정 상관관계 규칙을 구성해야 합니다.이 규칙은 이전에 구성된 액세스 제어 규칙(DropTCP80)과 일치하는 연결의 시작 시 트리거됩니다. 규칙을 구성하려면 Policies > Correlation > Rule Management로 이동합니다.
이 규칙은 상관관계 정책에서 사용됩니다.새 정책을 생성하려면 Policies > Correlation > Policy Management로 이동한 다음 구성된 규칙을 추가합니다.오른쪽에서 Remediate(교정)를 클릭하고 두 가지 작업을 추가합니다.sourceIP(이전에 구성) 및 syslog에 대한 교정:
상관관계 정책을 활성화해야 합니다.
VPN 게이트웨이로 작동하는 ASA는 인증에 ISE를 사용하도록 구성됩니다.또한 어카운팅 및 RADIUS CoA를 활성화해야 합니다.
tunnel-group SSLVPN-FIRESIGHT general-attributes
address-pool POOL-VPN
authentication-server-group ISE
accounting-server-group ISE
default-group-policy POLICY
aaa-server ISE protocol radius
interim-accounting-update periodic 1
dynamic-authorization
aaa-server ISE (inside) host 172.16.31.202
key *****
webvpn
enable outside
enable inside
anyconnect-essentials
anyconnect image disk0:/anyconnect-win-4.0.00051-k9.pkg 1
anyconnect enable
tunnel-group-list enable
error-recovery disable
Administration(관리) > Network Devices(네트워크 디바이스)로 이동하고 RADIUS 클라이언트로 작동하는 ASA를 추가합니다.
격리 API 및 기능을 활성화하려면 Administration(관리) > System(시스템) > Settings(설정) > Adaptive Network Control(적응형 네트워크 제어)으로 이동합니다.
격리된 호스트에 사용되는 DACL(Downloadable Access Control List)을 생성하려면 Policy(정책) > Results(결과) > Authorization(권한 부여) > Downloadable ACL(다운로드 가능한 ACL)로 이동합니다.
Policy(정책) > Results(결과) > Authorization(권한 부여) > Authorization Profile(권한 부여 프로파일)로 이동하고 새 DACL을 사용하여 권한 부여 프로파일을 생성합니다.
두 개의 권한 부여 규칙을 생성해야 합니다.첫 번째 규칙(ASA-VPN)은 ASA에서 종료되는 모든 VPN 세션에 대한 전체 액세스를 제공합니다.호스트가 이미 격리되어 있는 경우 재인증된 VPN 세션에 대해 규칙 ASA-VPN_quarantine이 적중됩니다(제한된 네트워크 액세스가 제공됨).
이러한 규칙을 생성하려면 Policy(정책) > Authorization(권한 부여)으로 이동합니다.
컨피그레이션이 제대로 작동하는지 확인하려면 이 섹션에 제공된 정보를 사용하십시오.
ASA는 DACL 없이 세션을 생성합니다(전체 네트워크 액세스).
asav# show vpn-sessiondb details anyconnect
Session Type: AnyConnect
Username : cisco Index : 37
Assigned IP : 172.16.50.50 Public IP : 192.168.10.21
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Essentials
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)RC4 DTLS-Tunnel: (1)AES128
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA1 DTLS-Tunnel: (1)SHA1
Bytes Tx : 18706 Bytes Rx : 14619
Group Policy : POLICY Tunnel Group : SSLVPN-FIRESIGHT
Login Time : 03:03:17 UTC Wed May 20 2015
Duration : 0h:01m:12s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : ac10206400025000555bf975
Security Grp : none
......
DTLS-Tunnel:
<some output omitted for clarity>
사용자가 http://172.16.32.1에 액세스하려고 시도하면 액세스 정책이 적중되고, 해당 트래픽이 인라인으로 차단되며, syslog 메시지가 FirePower 관리 IP 주소에서 전송됩니다.
May 24 09:38:05 172.16.31.205 SFIMS: [Primary Detection Engine
(cbe45720-f0bf-11e4-a9f6-bc538df1390b)][AccessPolicy] Connection Type: Start, User:
Unknown, Client: Unknown, Application Protocol: Unknown, Web App: Unknown,
Access Control Rule Name: DropTCP80, Access Control Rule Action: Block,
Access Control Rule Reasons: Unknown, URL Category: Unknown, URL Reputation:
Risk unknown, URL: Unknown, Interface Ingress: eth1, Interface Egress: eth2,
Security Zone Ingress: Internal, Security Zone Egress: External, Security
Intelligence Matching IP: None, Security Intelligence Category: None, Client Version:
(null), Number of File Events: 0, Number of IPS Events: 0, TCP Flags: 0x0,
NetBIOS Domain: (null), Initiator Packets: 1, Responder Packets: 0, Initiator Bytes:
66, Responder Bytes: 0, Context: Unknown, SSL Rule Name: N/A, SSL Flow Status: N/A,
SSL Cipher Suite: N/A, SSL Certificate: 0000000000000000000000000000000000000000,
SSL Subject CN: N/A, SSL Subject Country: N/A, SSL Subject OU: N/A, SSL Subject Org:
N/A, SSL Issuer CN: N/A, SSL Issuer Country: N/A, SSL Issuer OU: N/A, SSL Issuer Org:
N/A, SSL Valid Start Date: N/A, SSL Valid End Date: N/A, SSL Version: N/A, SSL Server
Certificate Status: N/A, SSL Actual Action: N/A, SSL Expected Action: N/A, SSL Server
Name: (null), SSL URL Category: N/A, SSL Session ID:
0000000000000000000000000000000000000000000000000000000000000000, SSL Ticket Id:
0000000000000000000000000000000000000000, {TCP} 172.16.50.50:49415 -> 172.16.32.1:80
FireSight 관리(Defense Center) 상관관계 정책이 적중되었으며, 이는 Defense Center에서 전송되는 syslog 메시지에 의해 보고됩니다.
May 24 09:37:10 172.16.31.206 SFIMS: Correlation Event:
CorrelateTCP80Block/CorrelationPolicy at Sun May 24 09:37:10 2015 UTCConnection Type:
FireSIGHT 172.16.50.50:49415 (unknown) -> 172.16.32.1:80 (unknown) (tcp)
이 단계에서 Defense Center는 ISE에 대한 REST API(격리) 호출을 사용합니다. ISE는 HTTPS 세션이며 Wireshark(SSL(Secure Sockets Layer) 플러그인과 PAN 관리 인증서의 개인 키 사용)에서 해독할 수 있습니다.
공격자의 IP 주소에 대한 GET 요청에서 (172.16.50.50)이 전달되고 해당 호스트는 ISE에 의해 격리됩니다.
Analysis(분석) > Correlation(상관관계) > Status(상태)로 이동하여 성공적인 교정을 확인합니다.
이 단계에서 ISE port-management.log는 CoA를 전송해야 함을 알립니다.
DEBUG [RMI TCP Connection(142)-127.0.0.1][] cisco.cpm.prrt.impl.PrRTLoggerImpl
-::::- send() - request instanceof DisconnectRequest
clientInstanceIP = 172.16.31.202
clientInterfaceIP = 172.16.50.50
portOption = 0
serverIP = 172.16.31.100
port = 1700
timeout = 5
retries = 3
attributes = cisco-av-pair=audit-session-id=ac10206400021000555b9d36
Calling-Station-ID=192.168.10.21
Acct-Terminate-Cause=Admin Reset
런타임(prrt-server.log)은 CoA 종료 메시지를 NAD에 전송하여 세션을 종료합니다(ASA).
DEBUG,0x7fad17847700,cntx=0000010786,CPMSessionID=2e8cdb62-bc0a-4d3d-a63e-f42ef8774893,
CallingStationID=08:00:27:DA:EF:AD, RADIUS PACKET: Code=40 (
DisconnectRequest) Identifier=9 Length=124
[4] NAS-IP-Address - value: [172.16.31.100]
[31] Calling-Station-ID - value: [08:00:27:DA:EF:AD]
[49] Acct-Terminate-Cause - value: [Admin Reset]
[55] Event-Timestamp - value: [1432457729]
[80] Message-Authenticator - value:
[00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00]
[26] cisco-av-pair - value: [audit-session-id=ac10206400021000555b9d36],
RadiusClientHandler.cpp:47
ise.psc는 다음과 유사한 알림을 전송합니다.
INFO [admin-http-pool51][] cisco.cpm.eps.prrt.PrrtManager -:::::- PrrtManager
disconnect session=Session CallingStationID=192.168.10.21 FramedIPAddress=172.16.50.50
AuditSessionID=ac10206400021000555b9d36 UserName=cisco PDPIPAddress=172.16.31.202
NASIPAddress=172.16.31.100 NASPortID=null option=PortDefault
Operations(작업) > Authentication(인증)으로 이동할 때 Dynamic Authorization succeeded(동적 권한 부여 성공)가 표시되어야 합니다.
엔드 유저는 세션 연결이 끊겼음을 알리기 위해 알림을 보냅니다(802.1x/MAB/게스트 유무선, 이 프로세스는 투명함).
Cisco AnyConnect 로그의 세부 정보는 다음과 같습니다.
10:48:05 AM Establishing VPN...
10:48:05 AM Connected to 172.16.31.100.
10:48:20 AM Disconnect in progress, please wait...
10:51:20 AM The secure gateway has terminated the VPN connection.
The following message was received from the secure gateway: COA initiated
Always-On VPN이 구성되었으므로 새 세션이 즉시 구축됩니다.이번에는 ISE ASA-VPN_quarantine 규칙이 적중하여 제한된 네트워크 액세스를 제공합니다.
ASA에서 show vpn-sessiondb detail anyconnect CLI 명령을 사용하여 액세스가 제한된 세션을 확인할 수 있습니다.
asav# show vpn-sessiondb detail anyconnect
Session Type: AnyConnect Detailed
Username : cisco Index : 39
Assigned IP : 172.16.50.50 Public IP : 192.168.10.21
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Essentials
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)RC4 DTLS-Tunnel: (1)AES128
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA1 DTLS-Tunnel: (1)SHA1
Bytes Tx : 11436 Bytes Rx : 4084
Pkts Tx : 8 Pkts Rx : 36
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : POLICY Tunnel Group : SSLVPN-FIRESIGHT
Login Time : 03:43:36 UTC Wed May 20 2015
Duration : 0h:00m:10s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : ac10206400027000555c02e8
Security Grp : none
......
DTLS-Tunnel:
<some output ommited for clarity>
Filter Name : #ACSACL#-IP-DENY_ALL_QUARANTINE-5561da76
이 섹션에서는 컨피그레이션 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.
ISE 교정 스크립트는 다음 위치에 있습니다.
root@Defence:/var/sf/remediations/ISE_1.3.19# ls
_lib_ ise-instance ise-test.pl ise.pl module.template
표준 SF(SourceFire) 로깅 하위 시스템을 사용하는 간단한 perl 스크립트입니다.교정이 실행되면 /var/log/messages를 통해 결과를 확인할 수 있습니다.
May 24 19:30:13 Defence SF-IMS[2414]: ise.pl:SourceIP-Remediation [INFO] [2414]
quar_ip:172.16.50.50 (1->3 sid:1) Starting remediation
May 24 19:30:13 Defence SF-IMS[2414]: ise.pl:SourceIP-Remediation [INFO] [2414]
quar_ip:172.16.50.50 (1->3 sid:1) 172.16.31.202 - Success 200 OK - Quarantined
172.16.50.50 as admin
ISE에서 Adaptive Network Control 서비스를 활성화하는 것이 중요합니다.런타임 프로세스에서 자세한 로그를 보려면(prrt-management.log 및 prrt-server.log) Runtime-AAA에 대한 DEBUG 레벨을 활성화해야 합니다.디버그를 활성화하려면 Administration > System > Logging > Debug Log Configuration으로 이동합니다.
또한 Operations(운영) > Reports(보고서) > Endpoint and Users(엔드포인트 및 사용자) > Adaptive Network Control Audit(적응형 네트워크 제어 감사)로 이동하여 격리 요청의 모든 시도와 결과에 대한 정보를 볼 수 있습니다.
VPN 세션 실패(802.1x/MAB 정상 작동)와 관련된 ISE 버그에 대한 자세한 내용은 Cisco 버그 ID CSCuu41058(ISE 1.4 엔드포인트 격리 불일치와 VPN 실패)을 참조하십시오.
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
17-Nov-2015 |
최초 릴리스 |