Snortの検査パケットはちょろっと許可しちゃう話

前提

Firepowerのパケット処理はこんな感じ。

FirepowerではLINAとSnortという二つのエンジンが動いており、水色で囲まれた部分(L7)がSnort、そうでない部分(L3-4)がLINAとなる。イメージとしては、簡単な検査をLINAで、より詳細な検査をSnortで行うといった感じ。

今回は参考サイト内の「Scenario 2. Drop Due to Snort Verdict」、つまりSnortでドロップするときの話。

本編

 In order for the Snort engine to determine the application it has to inspect a few packets (usually 3-10 which depends on the application decoder). Thus a few packets are allowed through the FTD and they make it to the destination. 

Clarify Firepower Threat Defense Access Control Policy Rule Actions

要約すると、Snortでブロックするときは当該パケットを検査するため少しだけ許可してしまうという話。

> system support traceでパケットキャプチャしてみるとわかりやすい。

> system support trace
[略]
Monitoring packet tracer debug messages

Tracing enabled by Lina
[略]
192.168.1.40-32791 > 192.168.2.40-80 6 NAP id 1, IPS id 0, Verdict PASS
[略]
192.168.1.40-32791 > 192.168.2.40-80 6 NAP id 1, IPS id 0, Verdict PASS
[略]
192.168.1.40-32791 > 192.168.2.40-80 6 NAP id 1, IPS id 0, Verdict BLOCKLIST
192.168.1.40-32791 > 192.168.2.40-80 6 ===> Blocked by Firewall

ブロックするはずのパケットでもPASSされているのがわかる。

ちなみにこれ、あくまでACPのApplicationに引っかかった場合であって、Portsで引っかかった場合はL4なのでSnortでの処理にはならず、Snort関連のログには出力されないので注意。

参考

Clarify Firepower Threat Defense Access Control Policy Rule Actions

1.9 Policies and rules for traffic control on Cisco ASA and Cisco FTD