内容

概要

前提条件

要件

使用するコンポーネント

背景説明

Snort機能を持つルールは、Permit Any Anyとして展開されます

Lina側とSnort側でのルールの処理方法の確認

結論

関連情報

概要

このドキュメントでは、LinaルールをFTDに導入する方法と、LinaおよびSnortによる処理について説明します。この情報は、オンボックス(FDM)管理とオフボックス(FMC)管理の両方で役立ちます。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Firepower Management Center（FMC）

- Firepower Device Manager(FDM)

- Firepower Threat Defense Virtual（FTDv）

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- FTDv 7.0.4

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

FMCは、Threat Defenseデバイス用のオフボックスマネージャです。

FDMは、Threat Defenseデバイス用のオンボックスマネージャです。

Snort機能を持つルールは、Permit Any Anyとして展開されます

位置情報、URL(Universal Resource Locator)フィルタ、アプリケーション検出など、Snort側で実行される機能を持つルールを作成すると、それらはpermit anyルールとしてLina側に展開されます。

これは一見すると混乱を招き、FTDがそのルール上のすべてのトラフィックを許可し、その後に続くルールに対するルール一致検証を停止すると考えてしまいます。

この例では、アプリケーション検出、URLフィルタ、および位置情報ブロックルールがあります。

次に、Snortで表示されるGUIで設定されたパラメータを使用した正しいルールステートメントを示します。

access-list NGFW_ONBOX_ACL remark rule-id 268435458: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435458: L7 RULE: testappid

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435458 ifc outside any ifc inside any rule-id 268435458

access-list NGFW_ONBOX_ACL remark rule-id 268435459: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435459: L7 RULE: testurl

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435459 any any rule-id 268435459

access-list NGFW_ONBOX_ACL remark rule-id 268435461: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435461: L5 RULE: testgeo

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435461 any any rule-id 268435461

Snort側のルールは次のようになります。

268435458 deny 1 any any 2 any any any any (appid 948:5, 1079:5) (ip_protos 6)

# End rule 268435458

268435459 deny any any any any any any any any (urlcat 2027) (urlrep le 0) (urlrep_unknown 1)

268435459 deny any any any any any any any any (urlcat 2006) (urlrep le 0) (urlrep_unknown 1)

# End rule 268435459

268435461 deny 1 any any any any any any any (dstgeo 643)

# End rule 268435461

Lina側とSnort側でのルールの処理方法の確認

packet-tracerコマンドはこれらの種類のルールを正しく処理しないため、system support traceまたはsystem support firewall-engine-debugを使用してこのワイルドライブトラフィックをテストする必要があります。

これは、位置情報ブロックルールをヒットする例です。

> system support trace

Enable firewall-engine-debug too? [n]: y

Please specify an IP protocol:

Please specify a client IP address:

Please specify a client port:

Please specify a server IP address:

Please specify a server port:

Monitoring packet tracer and firewall debug messages

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Packet 7: TCP 12****S*, 09/21-17:17:13.483709, seq 957225459, dsize 0

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Session: new snort session

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 AppID: service: (0), client: (0), payload: (0), misc: (0)

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Firewall: starting rule matching, zone 1 -> 1, geo 0(0) -> 643, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, user 9999997, no url or host, no xff

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Firewall: block rule, 'testgeo', force_block

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Stream: pending block, drop

10.130.65.192 52459 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Policies: Network 0, Inspection 0, Detection 3

10.130.65.192 52459 -> <Geolocation block IP address>

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 New firewall session

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 app event with app id no change, url no change, tls host no change, bits 0x1

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Starting with minimum 3, 'testurl', and SrcZone first with zones 1 -> 1, geo 0 -> 643, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, svc 0, payload 0, client 0, misc 0, user 9999997

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 pending rule order 3, 'testurl', AppID for URL

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 rule order 3, 'testurl', action Block continue eval of pending deny

10.130.65.192 52460 ->

443 6 AS=0 ID=1 GR=1-1 match rule order 4, 'testgeo', action Block

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 MidRecovery data sent for rule id: 268435461, rule_action:4, rev id:1095042657, rule_match flag:0x0

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 deny action

10.130.65.192 52460 -> <Geolocation block IP address> 443 6 AS=0 ID=1 GR=1-1 Deleting Firewall session

これらの出力からわかるように、Snortはパケットパラメータをルールに照らしてチェックし、それが位置情報ブロックルールに一致すると、フローが拒否され、フローのセッションが削除されます。

Linaキャプチャのトレースでは、ACCESS-LISTフェーズで、最初にヒットしたpermit any anyルールが、ヒットすると予想される地理位置情報ルールではなく見えていることがわかります。しかし、SNORTフェーズでは、Snortがルール268435461をヒットしたという判定、つまり地理位置情報ブロックルールが見られます。

testftd# show cap test trace packet 1

9 packets captured

1: 17:36:52.082011 10.130.65.192.53336 > <Geolocation block IP address>.443: SWE 316839441:316839441(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>

Phase: 1

Type: CAPTURE

Subtype:

Result: ALLOW

Config:

Additional Information:

MAC Access list

Phase: 2

Type: ACCESS-LIST

Subtype:

Result: ALLOW

Config:

Implicit Rule

Additional Information:

MAC Access list

Phase: 3

Type: INPUT-ROUTE-LOOKUP

Subtype: Resolve Egress Interface

Result: ALLOW

Config:

Additional Information:

Found next-hop 10.130.65.188 using egress ifc outside(vrfid:0)

Phase: 4

Type: ACCESS-LIST

Subtype: log

Result: ALLOW

Config:

access-group NGFW_ONBOX_ACL global

access-list NGFW_ONBOX_ACL advanced permit object-group |acSvcg-268435459 any any rule-id 268435459

access-list NGFW_ONBOX_ACL remark rule-id 268435459: ACCESS POLICY: NGFW_Access_Policy

access-list NGFW_ONBOX_ACL remark rule-id 268435459: L7 RULE: testurl

object-group service |acSvcg-268435459

service-object ip

Additional Information:

This packet will be sent to snort for additional processing where a verdict will be reached

Phase: 5

Type: NAT

Subtype: per-session

Result: ALLOW

Config:

Additional Information:

Phase: 6

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Config:

Additional Information:

Phase: 7

Type: NAT

Subtype: per-session

Result: ALLOW

Config:

Additional Information:

Phase: 8

Type: IP-OPTIONS

Subtype:

Result: ALLOW

Config:

Additional Information:

Phase: 9

Type: FLOW-CREATION

Subtype:

Result: ALLOW

Config:

Additional Information:

New flow created with id 6902, packet dispatched to next module

Phase: 10

Type: EXTERNAL-INSPECT

Subtype:

Result: ALLOW

Config:

Additional Information:

Application: 'SNORT Inspect'

Phase: 11

Type: SNORT

Subtype:

Result: DROP

Config:

Additional Information:

Snort Trace:

00:50:56:96:D0:48 -> 00:50:56:B3:8C:E3 0800

10.130.65.192:53336 -> <Geolocation block IP address>:443 proto 6 AS=0 ID=1 GR=1-1

Packet 22: TCP 12****S*, 09/21-17:36:52.073696, seq 316839441, dsize 0

Session: new snort session

AppID: service: (0), client: (0), payload: (0), misc: (0)

Firewall: starting rule matching, zone 1 -> 1, geo 0(0) -> 643, vlan 0, src sgt: 0, src sgt type: unknown, dst sgt: 0, dst sgt type: unknown, user 9999997, no url or host, no xff

Firewall: block rule, id 268435461, force_block

Stream: pending block, drop

Policies: Network 0, Inspection 0, Detection 3

Verdict: blacklist

Snort Verdict: (black-list) black list this flow

Result:

input-interface: outside(vrfid:0)

input-status: up

input-line-status: up

output-interface: outside(vrfid:0)

output-status: up

output-line-status: up

Action: drop

Drop-reason: (firewall) Blocked or blacklisted by the firewall preprocessor, Drop-location: frame 0x000055b8a176d7b2 flow (NA)/NA

結論

設定とライブトラフィックログからわかるように、LinaがこれらのルールをPermit any anyと表示し、Lina側でこのルールにヒットした場合でも、パケットはSnortに送信され、詳細な検査が行われます。

その後、Snortがトラフィックを期待されたルールに一致させるまでルールを通過し続けることを確認できます。

関連情報

Firepower Management Centerコンフィギュレーションガイド、アクセスコントロールルール

『Cisco Firepower Threat Defense Configuration Guide for Firepower Device Manager, Access Control』

Cisco Bug ID CSCwd00446:ENH:Packet-tracerでは、ACLフェーズの位置情報ルールの代わりに実際のルールヒットが表示されません