このドキュメントでは、Cisco Identity Services Engine(ISE)をポリシー サーバとして使用して攻撃を検出し自動的に是正するために、Cisco FireSight アプライアンスの修復モジュールを使用する方法について説明します。このドキュメントで紹介されている例では ISE 経由で認証するリモート VPN ユーザの修復方法を説明していますが、802.1x/MAB/WebAuth の有線または無線ユーザにも適用できます。
次の項目に関する知識があることが推奨されます。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
この項で説明する情報を使用して、システムを設定します。
このドキュメントで説明されている例では、次のネットワーク設定が使用されています。
このネットワーク設定のフローを次に示します。
前に説明したように、このシナリオは、ISE が認証に使用され、ネットワーク アクセス デバイスが RADIUS CoA(シスコのすべての最新のデバイス)をサポートする限り、認証済みセッション(VPN、有線、ワイヤレス 802.1x/MAB/Webauth 802.1x/MAB/Webauth)の任意のタイプで動作します。
VM には 3 つのインターフェイスがあり、1 つは管理用、あとの 2 つはインライン検査(内部/外部)用です。
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] に移動し、ポリシー管理ノード(PAN)の IP アドレス、および REST API に必要な ISE 管理クレデンシャル(ERS Admin の役割を付与された別個のユーザを推奨)を指定します。
修復には、送信元 IP アドレス(攻撃者の)も使用する必要があります。
ここで、特定の相関ルールを設定する必要があります。このルールは、あらかじめ設定されたアクセス制御ルール(DropTCP80)に一致する接続の開始時にトリガーされます。 ルールを設定するには、[Policies] > [Correlation] > [Rule Management] に移動します。
このルールは、相関ポリシーで使用されます。[Policies] > [Correlation] > [Policy Management] に移動して新しいポリシーを作成し、設定したルールを追加します。右側の [Remediate] をクリックし、remediation for sourceIP(以前に設定)および syslog:
相関ポリシーがイネーブルであることを確認します。
認証に ISE を使用するため、VPN ゲートウェイとして動作する ASA を設定します。また、アカウンティングおよび 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)を作成するには、[Policy] > [Results] > [Authorization] > [Downloadable ACL] の順に移動します。
[Policy] > [Results] > [Authorization] > [Authorization Profile] に移動し、新しい DACL により認可プロファイルを作成します。
2 つの認可ルールを作成する必要があります。最初のルール(ASA-VPN)は ASA で終端する VPN セッションすべてへのフル アクセスを提供します。ASA-VPN_quarantine 規則は、ホストが検疫済みである(制限付きネットワーク アクセスが提供されている)場合に、再認証された VPN セッションにヒットします。
これらのルールを作成するため、[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 にアクセスしようとすると、アクセス ポリシーがヒットし、対応するトラフィックがインラインでブロックされて、FirePower の管理 IP アドレスから syslog メッセージが送信されます。
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 Management(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(隔離)呼び出しを使用します。これは HTTPS セッションであり、(Secure Sockets Layer(SSL)プラグインおよび PAN 管理証明書の秘密鍵を使用して)Wireshark で復号化できます。
GET 要求では、攻撃者の IP アドレス(172.16.50.50)が渡され、そのホストが ISE により隔離されます。
修復か正常に実行されたことを確認するため、[Analysis] > [Correlation] > [Status] に移動します。
この段階で、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終了メッセージを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 ルールがヒットするため、制限されたネットワーク アクセスが提供されます。
アクセスが限られているセッションについては、show vpn-sessiondb detail anyconnect の CLI コマンドを使用して、ASA で確認できます。
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
これは、標準的な 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 で適応型ネットワーク制御サービスを有効化することが重要です。ランタイム プロセスで詳細なログ(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 セッション障害関連の ISE バグ(802.1x/MAB は正常に動作します)についての詳細は、Cisco Bug IDCSCuu41058(「ISE 1.4 エンドポイント検疫の不一致および VPN 障害」)を参照してください。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
17-Nov-2015 |
初版 |