簡介
本文檔介紹如何使用Cisco FireSight裝置上的補救模組檢測攻擊,並使用Cisco身份服務引擎(ISE)作為策略伺服器自動補救攻擊者。本文檔中提供的示例描述了用於補救透過ISE進行身份驗證的遠端VPN使用者的方法,但它也可用於802.1x/MAB/WebAuth有線或無線使用者。
注意:本文檔中引用的補救模組未獲得思科的正式支援。它可在社群門戶上共用,任何人都可以使用。在版本5.4及更高版本中,還有一個基於pxGrid協定的較新補救模組。6.0版不支援此模組,但計畫在未來版本中支援。
必要條件
需求
思科建議您瞭解以下主題:
- Cisco Adaptive Security Appliance (ASA) VPN配置
- Cisco AnyConnect安全移動客戶端配置
- Cisco FireSight基本配置
- Cisco FirePower基本配置
- Cisco ISE配置
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- Microsoft Windows 7
- Cisco ASA版本9.3或更高版本
- Cisco ISE軟體版本1.3及更高版本
- Cisco AnyConnect安全移動客戶端3.0版及更高版本
- Cisco FireSight管理中心版本5.4
- Cisco FirePower 5.4版(虛擬機器(VM))
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
設定
使用本節提供的資訊來設定您的系統。
注意:使用命令查詢工具(僅供註冊客戶使用)可獲取有關此部分中所用命令的更多資訊。
網路圖表
本文檔中介紹的示例使用以下網路設定:
以下是此網路設定的流程:
- 使用者啟動與ASA的遠端VPN會話(透過Cisco AnyConnect安全行動版本4.0)。
- 使用者嘗試訪問http://172.16.32.1。(資料流透過FirePower移動,而FirePower安裝在虛擬機器上,並由FireSight管理。)
- 配置FirePower是為了阻止(內聯)特定流量(訪問策略),但它也觸發了關聯策略。因此,它透過REST應用程式設計介面(API)(QuarantineByIP方法)啟動ISE補救。
- 一旦ISE收到REST API呼叫,它將查詢會話並向ASA傳送RADIUS授權更改(CoA),ASA將終止該會話。
- ASA會斷開VPN使用者的連線。由於AnyConnect配置了永遠線上VPN訪問,因此會建立新的會話;不過,這次會匹配其他ISE授權規則(針對隔離主機),並提供有限的網路訪問。在此階段,使用者如何連線和驗證網路並不重要;只要ISE用於身份驗證和授權,由於隔離,使用者只能訪問有限網路。
如前所述,只要ISE用於身份驗證且網路接入裝置支援RADIUS CoA(所有現代思科裝置),此方案適用於任何型別的身份驗證會話(VPN、有線802.1x/MAB/Webauth、無線802.1x/MAB/Webauth)。
提示:為了將使用者移出隔離區,您可以使用ISE GUI。補救模組的未來版本也可能支援該模組。
FirePOWER
註:VM裝置用於本文檔中介紹的示例。透過CLI僅執行初始配置。所有策略均從思科防禦中心配置。有關詳細資訊,請參閱本文檔的相關資訊部分。
VM有三個介面,一個用於管理,兩個用於內聯檢查(內部/外部)。
來自VPN使用者的所有流量透過FirePower移動。
FireSight管理中心(防禦中心)
存取控制原則
安裝正確的許可證並增加FirePower裝置後,導航到策略>訪問控制,建立用於將HTTP資料流丟棄172.16.32.1的訪問策略:
接受所有其他流量。
ISE補救模組
在社群門戶上共用的ISE模組的當前版本是ISE 1.2修正測試版1.3.19:
導航到策略>操作>補救>模組,然後安裝檔案:
然後應建立正確的例項。導航到策略>操作>補救>例項,提供策略管理節點(PAN)的IP地址以及REST API所需的ISE管理憑據(建議使用ERS管理員角色的獨立使用者):
源IP地址(攻擊者)也應用於補救:
關聯策略
現在必須配置特定的關聯規則。此規則會在與之前配置的訪問控制規則(DropTCP80)匹配的連線開始時觸發。要配置規則,請導航到策略>關聯>規則管理:
此規則用於關聯策略中。導航到策略>關聯>策略管理以建立新策略,然後增加配置的規則。點選右側的Remediate並增加兩個操作:remediation for sourceIP (之前配置)和syslog:
確保啟用關聯策略:
ASA
配置充當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
ISE
設定網路存取裝置(NAD)
導航到管理>網路裝置,然後增加作為RADIUS客戶端的ASA。
啟用自適應網路控制
導航到管理>系統>設定>自適應網路控制,啟用隔離API和功能:
注意:在1.3及更低版本中,此功能稱為Endpoint Protection Service。
隔離DACL
要建立用於隔離主機的可下載訪問控制清單(DACL),請導航到策略>結果>授權>可下載ACL。
隔離的授權配置檔案
導航到策略>結果>授權>授權配置檔案,使用新的DACL建立授權配置檔案:
授權規則
您必須建立兩個授權規則。第一條 規則(ASA-VPN)為在ASA上終止的所有VPN會話提供完全訪問許可權。當主機已處於隔離狀態時,會為重新身份驗證的VPN會話點選規則ASA-VPN_quarantine(僅提供有限的網路訪問)。
要建立這些規則,請導航到Policy > Authorization:
驗證
使用本節提供的資訊來驗證您的組態是否正常運作。
AnyConnect起始ASA VPN會話
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後,訪問策略被命中,對應的流量被內聯阻止,並且系統日誌消息從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關聯策略命中
FireSight管理(防禦中心)關聯策略被命中,防禦中心傳送的系統日誌消息會報告該策略:
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)
在此階段,防禦中心使用REST API(隔離)呼叫到ISE,這是一個HTTPS會話,可以在Wireshark中解密(使用安全套接字層(SSL)外掛和PAN管理證書的私鑰):
在GET請求中,攻擊者的IP地址被透過(172.16.50.50),該主機被ISE隔離。
導航到分析>關聯>狀態以確認成功的補救:
ISE執行隔離並傳送CoA
在此階段,ISE prrt-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的terminate消息傳送到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
導航到操作>身份驗證時,應該顯示動態授權成功。
VPN會話已斷開
一般使用者傳送通知以表示作業階段已中斷連線(若是802.1x/MAB/訪客有線/無線,此程式為通透程式):
思科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
有限訪問的VPN會話(隔離)
由於配置了always-on VPN,因此會立即構建新會話。此時,ISE ASA-VPN_quarantine規則命中,提供有限的網路訪問:
注意:DACL是在單獨的RADIUS請求中下載的。
可以在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
疑難排解
本節提供的資訊可用於對組態進行疑難排解。
FireSight(防禦中心)
ISE補救指令碼駐留在此位置:
root@Defence:/var/sf/remediations/ISE_1.3.19# ls
_lib_ ise-instance ise-test.pl ise.pl module.template
這是一個使用標準SourceFire (SF)日誌記錄子系統的簡單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
請務必在ISE上啟用自適應網路控制服務。要檢視運行時進程中的詳細日誌(prrt-management.log和prrt-server.log),必須啟用運行時AAA的DEBUG級別。導航到管理>系統>日誌記錄>調試日誌配置以啟用調試。
還可以導航到操作>報告>端點和使用者>自適應網路控制稽核,以檢視隔離請求每次嘗試和結果的資訊:
錯誤
有關與VPN會話故障(802.1x/MAB工作正常)相關的ISE錯誤的資訊,請參閱思科錯誤ID CSCuu41058(ISE 1.4終端隔離不一致和VPN故障)。
相關資訊