简介
本文档介绍如何使用Cisco FireSight设备上的补救模块检测攻击,以及如何使用思科身份服务引擎(ISE)作为策略服务器自动补救攻击者。本文档中提供的示例介绍用于补救通过ISE进行身份验证的远程VPN用户的方法,但它也可用于802.1x/MAB/WebAuth有线或无线用户。
注意:思科不正式支持本文档中引用的补救模块。它在社区门户上共享,任何人都可以使用。在版本5.4及更高版本中,还有一个基于pxGrid协议的更新补救模块。版本6.0不支持此模块,但计划在以后的版本中支持此模块。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科自适应安全设备(ASA) VPN配置
- Cisco AnyConnect安全移动客户端配置
- Cisco FireSight基本配置
- Cisco FirePower基本配置
- Cisco ISE配置
使用的组件
本文档中的信息基于以下软件和硬件版本:
- Microsoft Windows 7
- Cisco ASA 9.3版或更高版本
- 思科ISE软件1.3版及更高版本
- Cisco AnyConnect安全移动客户端3.0版及更高版本
- 思科FireSight管理中心版本5.4
- 思科FirePower版本5.4(虚拟机(VM))
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
配置
使用本部分提供的信息来配置您的系统。
注意:要获取有关本部分中所使用命令的更多信息,可使用命令查找工具(仅限已注册客户)。
网络图
本文档中介绍的示例使用以下网络设置:
以下是此网络设置的流程:
- 用户发起与ASA的远程VPN会话(通过Cisco AnyConnect安全移动版本4.0)。
- 用户尝试访问http://172.16.32.1。(流量通过FirePower移动,FirePower安装在VM上并由FireSight管理。)
- 配置FirePower是为了阻止(内联)特定流量(访问策略),但同时也会触发关联策略。因此,它通过REST应用编程接口(API)(QuarantineByIP方法)启动ISE补救。
- ISE收到REST API呼叫后,会查找会话并将RADIUS授权更改(CoA)发送到ASA,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及更早版本中,此功能称为终端保护服务。
隔离DACL
要创建用于隔离主机的可下载访问控制列表(DACL),请导航到策略>结果>授权>可下载ACL。
隔离的授权配置文件
导航到策略>结果>授权>授权配置文件,使用新的DACL创建授权配置文件:
授权规则
您必须创建两个授权规则。第一条 规则(ASA-VPN)为ASA上终止的所有VPN会话提供完全访问权限。当主机已处于隔离状态时,会为重新进行身份验证的VPN会话点击规则ASA-VPN_quarantine(提供有限的网络访问权限)。
要创建这些规则,请导航到策略>授权:
验证
使用本部分提供的信息验证您的配置是否正常工作。
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)
在此阶段,防御中心使用对ISE的REST API(隔离)调用,该调用是一个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/访客有线/无线,此过程是透明的):
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
具有有限访问权限的VPN会话(隔离)
由于配置了永远在线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),必须启用Runtime-AAA的DEBUG级别。导航到管理>系统>日志记录>调试日志配置以启用调试。
还可以导航到操作>报告>端点和用户>自适应网络控制审核,以查看隔离请求每次尝试和结果的信息:
漏洞
有关与VPN会话故障(802.1x/MAB工作正常)相关的ISE Bug的信息,请参阅思科漏洞ID CSCuu41058(ISE 1.4终端隔离不一致和VPN故障)。
相关信息