PAN-OS: パケット処理 - Live

PAN-OS: パケット処理
PAN-OS のパケットフローシーケンス
パロアルトネットワークス合同会社
www.paloaltonetworks.jp
目次
概要 ...................................................................................................................................................3
入力ステージ (Ingress stage) .............................................................................................................3
パケット構文解析 (Packet Parsing) .................................................................................................5
トンネルのカプセル解除 (Tunnel Decapsulation) ................................................................................6
IP フラグメント解除 (IP Defragmentation)............................................................................................6
ファイアウォールセッション検索 (Firewall Session Lookup) .................................................................6
ファイアウォールセッション確立............................................................................................................7
フラッディングとパケット異常の検知..................................................................................................7
TCP 状態確認 ................................................................................................................................7
フォワーディング セットアップ............................................................................................................8
NAT ポリシー検索 ...........................................................................................................................8
User ID ..........................................................................................................................................8
セキュリティポリシー検索 (Security policy lookup) ...........................................................................8
ポートスキャン/アドレススイープ防御 .............................................................................................9
セッション割当 (Session allocation) .................................................................................................9
ファイアウォールセッション・ファストパス ...............................................................................................9
アプリケーション識別 (App-ID) ............................................................................................................9
まとめ ...............................................................................................................................................10
© 2010 Palo Alto Networks
Page 2
概要
本ドキュメントでは PAN-OS デバイス内部でのパケット処理シーケンスを説明します。「入力」および
「転送/出力」ステージにてネットワーク機能が処理され、パケット毎にパケット転送を行うか決定され
ます。それ以外のステージは App-ID や Content-ID に代表されるフローベースのセキュリティモジュ
ールです。この分離は、アプリケーションレイヤにおけるステートレスなセキュリティ機能、障害復旧し
やすいパケット単位の転送、柔軟な導入トポロジを提供します。
不明アプリケーションから既知アプリケーションへ、またはトンネリングアプリケーションからトンネルさ
れたアプリケーションへ、といったアプリケーション変化があったときはいつでもセキュリティポリシーが
評価されます。
入力ステージ (Ingress stage)
入力ステージはネットワークインタフェースからパケットを受信し、パケット構文解析を行い、パケットが
ファイアウォール処理されるかどうか決定します。パケットがファイアウォール処理される場合、ファイ
アウォールセッション検索を続け、セキュリティ処理ステージ (security processing stage) へ進みます。
そうでない場合はパケットが転送されます。
注意:
パケット処理中、プロトコル違反によってパケットが破棄される場合があります。ファイアウォールの攻
撃防御機能などでは、このようなパケットはエンドホストによって最終的に破棄されるため、設定不可
能なオプションにより破棄されることがあります。
© 2010 Palo Alto Networks
Page 3
© 2010 Palo Alto Networks
Page 4
パケット構文解析 (Packet Parsing)
パケット構文解析はインタフェースから受信したパケットのレイヤ 2 ヘッダから始まります。
レイヤ 2: 入力ポート、802.1q タグ、宛先 MAC アドレスが入力論理インタフェースの検索キーに使わ
れます。インタフェースが見つからない場合、パケットは破棄され、ハードウェアインタフェースカウンタ
の “receive error” とグローバルカウンタ “flow_rcv_dot1q_tag_err” がカウントアップされます。
レイヤ 3: IP ヘッダが解析されます。
IPv4: 以下のいずれかの理由によりパケットは破棄されます。

Ethernet タイプと IP バージョンの不一致

IP ヘッダが途中で切り捨てられている

IP プロトコル番号が 0

TTL が 0

Land 攻撃

Ping of death

Martian IP address (127.0.0.0/8, 255.255.255.255/32 など IANA で予約されたアドレス)
IPv6: 以下のいずれかの理由によりパケットは破棄されます。

Ethernet タイプと IP バージョンの不一致

IPv6 ヘッダが途中で切り捨てられている

IP パケットが途中で切り捨てられている (IP ペイロードバッファ長が IP ペイロードフィールドより
短いもの)

JumboGram 拡張 (RFC 2675)

拡張ヘッダが途中で切り捨てられている
レイヤ 4:
TCP: 以下の場合パケットは破棄されます。

TCP ヘッダが途中で切り捨てられている

data-offset フィールドが 5 より小さい

チェックサムエラー

ポート番号が 0

TCP フラグの組み合わせ異常
UDP: 以下の場合パケットは破棄されます。

UDP ヘッダが途中で切り捨てられている

UDP ペイロードが途中で切り捨てられている (IP フラグメント以外)

UDP buffer length が UDP length フィールドより小さい

チェックサムエラー
© 2010 Palo Alto Networks
Page 5
トンネルのカプセル解除 (Tunnel Decapsulation)
トンネルのカプセル解除や復号化も構文解析ステージで実施されます。解析後、パケットがトンネル
(IPSec、SSL 通信での SSL-VPN) に一致することが判明すると、以下のシーケンスが実行されます。

最初にパケットがカプセル解除され、エラーがあれば破棄されます。

トンネルに関連付けられたトンネルインタフェースが新規入力インタフェースとしてパケットに割り
当てられ、パケットはトンネル種別で定義されたパケットヘッダから構文解析するプロセスに戻り
ます。
現在サポートされるトンネル種別はすべて IP レイヤのトンネリングであるためトンネルされたパケット
に対するパケット構文解析は IP ヘッダから始まります。
IP フラグメント解除 (IP Defragmentation)
IP フラグメントは構文解析され、フラグメント解除プロセスにより再構成 (リアセンブリ) され、IP ヘッダ
から構文解析が再開始されます。フラグメントは tear-drop 攻撃 (フラグメントの重複) により破棄され
る場合もあります。
ファイアウォールセッション検索 (Firewall Session Lookup)
パケット種別やインタフェースモードによってパケットはファイアウォール処理されるか決まります。以
下の表に各インタフェース動作モードとパケット種別に対するパケット処理動作の要約を示します。
パケット種
別
IPv4
ユニキャスト
IP limited
broadcast
IP directed
broadcast
Martian
address
IPv6
Non-IP
レイヤ 3
レイヤ 2
検査と転送
検査と転送
破棄
破棄
破棄
転送(フラッ
ディング)
転送(フラッ
ディング)
破棄
インタフェース動作モード
バーチャルワイヤ
デフォルト
マルチキャ
IPv6 ファイ
ストフォワー アウォール
=ON
ディング
=ON
Tap
検査と転送
検査と転送
検査と転送
検査と破棄
転送
検査と転送
転送
破棄
転送
検査と転送
転送
破棄
破棄
破棄
破棄
破棄
検査と転送
破棄
転送
破棄
破棄
転送
転送
IPv6 ファイ
アウォール
=ON であ
れば検査
可能であれ
ば処理
転送
転送
転送
パケットがファイアウォール検査を受ける場合、パケットのフロー検索が実施されます。ファイアウォー
ルセッションはそれぞれ 6 つの要素キーで識別される 2 つの単方向フローで構成されます。PAN-OS
の実装では、フローは 6 つの要素キーを使ってそれぞれ識別されます。

送信元と宛先アドレス: IP パケットから得られる IP アドレスです。
© 2010 Palo Alto Networks
Page 6



送信元と宛先ポート: TCP/UDP プロトコルヘッダから得られるポート番号。TCP/UDP 以外の場
合、プロトコルの他のフィールドが使用される。ICMP の場合は ICMP 識別子とシーケンス番号、
IPSec の場合は SPI、PPTP の場合は GRE call ID がフロー識別に使われます。
プロトコル: IP ヘッダの IP プロトコル番号がフローキーを得るのに使われます。
セキュリティゾーン: このフィールドはパケットが到達した入力インタフェースから得られます。
アクティブフローはフロー検索テーブルに保持されます。パケットがファイアウォール検査対象であると
判断された場合、6 つの要素のフローキーがパケットから導き出され、既存フローと当該パケットを一
致させるフロー検索が実施されます。各フローにはクライアントとサーバ要素があり、ファイアウォール
から見てセッションの最初のパケットの送信者がクライアントであり、その最初のパケットの受信者が
サーバになります。
注意:
クライアントとサーバの分類はファイアウォールの視点からであり、エンドホストの観点からは同じにな
ることも異なることもあり得ます。上記のクライアントとサーバの分類を基に、C2S (client-to-server) フ
ローと S2C (server-to-client) フローに分けられます。すべてのクライアントからサーバへのパケットは
同じ C2S フローのキーを持ち、同様にサーバからクライアントへのパケットは同じ S2C フローのキー
を持ちます。
ファイアウォールセッション確立
以下の手順によりファイアウォールセッションの確立が行われます。
フラッディングとパケット異常の検知
ファイアウォールインタフェースにパケットが到達すると、入力インタフェース情報が入力ゾーン特定に
使われます。そのゾーンにゾーンプロテクションプロファイルが設定されている場合、ゾーンプロテクシ
ョンプロファイル内に設定された評価が行われます。
TCP 状態確認
SYN ビット設定の無い最初の TCP パケットは破棄されます。ゾーンプロテクションプロファイルで
SYN flood 設定が行われている場合、指定した閾値に SYN の数が到達すると TCP SYN cookie が
トリガされます。SYN cookie は以下のような実装で動作します。

データプレーンがブートアップしたタイミングで、cookie をエンコードするシードが乱数生成器によ
り生成されます。

クライアントから受信した ACK パケットが cookie エンコードと一致しない場合、パケットは nonSYN であると見なされ、パケットを破棄します。

SYN cookie 処理が実施されたセッションは、TCP 3 ウェイ ハンドシェイクでプロキシとして機能
するファイアウォールとして TCP シーケンス番号変換が行われることがあります。
注意:
1. SYN ビット設定の無い最初の TCP パケットをファイアウォールに許可するよう設定することがで
きます。これは推奨されない設定ですが、非対称フローの場合はこれが必要となります。
2. SYN cookie が有効な場合、TCP non-SYN を破棄する設定をファイアウォールに行うことを推奨
します。
© 2010 Palo Alto Networks
Page 7
フォワーディング セットアップ
このステージではパケットのフォワーディングパスを決定します。パケットフォワーディングはファイアウ
ォールインタフェースがどのように設定されているかに依存します。以下の表にパケットフォワーディン
グ動作をまとめます。
インタフェースモード
Tap
バーチャルワイヤ
レイヤ 2
レイヤ 3
フォワーディング動作
出力インタフェース/ゾーンは入力インタフェース/ゾーンと同じです。
パケットは破棄されます。
出力インタフェースはバーチャルワイヤ設定のピア(もう一方の)インタフ
ェースになります。
宛先 MAC に対する出力インタフェースは MAC テーブルによって得られ
ます。この情報が無い場合、入力インタフェースを除く VLAN 内のすべ
てのインタフェースへフレームがフラッディングされます。
ネクストホップの決定にはルートテーブル検索が使われます。
NAT ポリシー検索
レイヤ 3 モードでのみ適用されます。このステージでは入力ゾーンと出力ゾーン情報が利用できます。
NAT ルールはオリジナルパケットに対して適用されます。

宛先 NAT では、出力インタフェースを決定するために変換アドレスに対する 2 回目のルート検
索が実施されます。

送信元 NAT では、出力インタフェース経由でパケットが送出されるときに IP アドレスが変換され
ます。
注意:
NAT に関する詳細は NAT の TechNote を参照してください。
User ID
IP アドレスに対してユーザ情報が利用できない場合で、パケットの宛先が TCP 80 番ポートの場合、
キャプティブポータルルール検索が行われ、パケットがキャプティブポータル認証の対象となるか確認
されます。キャプティブポータルが適用される場合、パケットはキャプティブポータルデーモンへリダイ
レクトされます。
(PAN-OS 4.0 からは 80 番以外のポートも指定可能)
セキュリティポリシー検索 (Security policy lookup)
このステージでは入力ゾーンと出力ゾーン情報が利用されます。セキュリティポリシーのアクションが
パケットを許可する場合、パケットは出力インタフェース経由で送出されます。ポリシーのアクションが
deny の場合、パケットはドロップされます。セキュリティルールに一致しないトラフィックは拒否されま
す。デフォルトでは、ゾーン間トラフィックは許可されます。
注意:
NAT ルールが設定されている場合でも、セキュリティルールはオリジナルパケットの内容に対して適
用されます。
© 2010 Palo Alto Networks
Page 8
ポートスキャン/アドレススイープ防御
入力ゾーンにてゾーンプロテクションプロファイルが設定されている場合、ポートスキャン (port scan)
とアドレススイープ (address sweep) 防御が実施されます。
セッション割当 (Session allocation)
上記すべての手順が正常に完了すると、新規セッションエントリがフリープールから割り当てられます。
このとき以下のリソース制限によりセッション割当エラーが起きえます。

VSYS セッション最大値に到達した

利用可能なすべてのセッションが割り当てられた
セッション割当が成功すると、以下が実施されます。
セッション内容がパケットとフォワーディングポリシーの結果から展開されたフローキーとともに記
録される

セッション状態が INIT (割り当て前) から OPENING (割り当て後) に変わる

アプリケーションが識別されない場合、トランスポート層プロトコルのデフォルト値にセッションタイ
ムアウト値が設定される

ファイアウォールセッション・ファストパス
既存セッションと一致したパケットはファストパス (fast path) へ進みます。このステージはレイヤ 2 か
らレイヤ 4 のファイアウォール処理から始まります。

セッションが破棄状態の場合、パケットは破棄されます。ポリシーのアクションが deny に変更さ
れるか、脅威が検知された場合、セッションは破棄状態としてマークされ得ます。

セッションがアクティブな場合、セッションタイムアウトがリフレッシュされます。

パケットが TCP FIN/RST の場合、セッションタイムアウトは timeout-tcpwait 値に書き換えられ
ます。

NAT が適用される場合、必要に応じて L3/L4 ヘッダを変換します。
以下の条件のいずれかに一致する場合、既存セッションと一致したパケットはレイヤ 7 処理を行おうと
します。

パケットが TCP/UDP データを持つか、TCP/UDP 以外のパケットの場合

セッションアプリケーションがまだ検知されない場合、アプリケーション識別が実施されます。

アプリケーション自体にコンテンツ検査を必要とする場合、ALG が関係する場合、アプリケーショ
ンがトンネルされたアプリケーションの場合、関連するセキュリティプロファイルをセキュリティル
ールが持つ場合、アプリケーション識別されたセッションはコンテンツ検査の対象となります。
アプリケーションがトランスポート層に TCP を使う場合、ストリームデータがレイヤ 7 モジュールへ送ら
れる前に、TCP リアセンブリモジュールによって処理されます。TCP リアセンブリモジュールはウイン
ドウチェック、順序の異なるデータのバッファ、TCP 再送の省略も行われます。
アプリケーション識別 (App-ID)
アプリケーション識別には 2 つのケースがあります。
a) セッションアプリケーションが未定 (undecided) から定義済みのものへと識別される場合
b) 定義済みのあるアプリケーションから、別のものへと識別される場合
最初にアプリケーションオーバライド (application-override) ポリシー検索が行われ一致するルール
が無いか確認されます。ルールがあれば、アプリケーションが決定されます。ルールが無ければ、アプ
© 2010 Palo Alto Networks
Page 9
リケーションシグネチャを使ってアプリケーションが識別されます。アプリケーションが一致すると、可能
であれば以降の検索を高速化するため、アプリケーションを識別する宛先 IP アドレス、宛先ポート、プ
ロトコルが App-ID キャッシュへ保存されます。アプリケーションがあるものから別のものへと変更され
るのは、コンテンツ検査のプロトコルデコーディングによって行われます。
セッションアプリケーションが識別されると、アクセス制御、コンテンツ検査、トラフィック管理、ロギング
が設定に従って開始されます。

セキュリティポリシー検索: 一致するルールを検出するキーとして、識別されたアプリケーションと
ともに、セッションの IP、ポート、プロトコル、ゾーン、ユーザが使われます。

セキュリティポリシーのロギングがセッションスタートで有効な場合、トラフィックログが生成されま
す。

セキュリティポリシーがコンテンツ検査の対象となるプロファイルやアプリケーションを持つ場合、
コンテンツ検査セッションをセットアップします。

セキュリティポリシーのアクションが allow の場合、QoS ポリシー検索を行い、一致する QoS ク
ラスを割り当てます。

セキュリティポリシーのアクションが allow でアプリケーションが SSL の場合、SSL decryption ポ
リシー検索を行い、一致する復号化ルールがあればプロキシコンテキストをセットアップします。
まとめ
パロアルトネットワークスの次世代ファイアウォールは独自のシングルパスパラレルプロセッシング
(SP3) アーキテクチャをベースに、前例のない機能や技術を取り入れながら、高スループットで低遅延
なネットワークセキュリティを実現します。パロアルトネットワークスは、シングルパスソフトウェアとパラ
レルプロセッシングハードウェアという 2 つ補完的コンポーネントを一体化した SP3 アーキテクチャを
用いて今日のセキュリティインフラストラクチャを悩ませるパフォーマンス問題を解決します。
これにより今日のハイパフォーマンスネットワークの要件であるスループット、トランザクション処理、ネ
ットワークセキュリティを完全に統合します。
© 2010 Palo Alto Networks
Page 10