CBAC ( Context-Based Access Control )



 ◆ CBACとは

 CBAC( Context-Based Access Control )とは、Contextに基づいてACL制御を行う機能のことです。
 Contextとは「状況に応じて異なる動作を行うもの」です。つまり、通常のACLのように、あらかじめ
 決定したポート番号ではなく、CBACでは状況に応じて動的にACL制御と、L7のACL制御が行われます。

 CBACでは、多くの Firewall 製品の基本実装のステートフルインスペクションと同様の動作を実現でき
 内部から発生したトラフィックを検査して、その戻りとなるトラフィックに対して許可するACLを動的
 に作成するので外部とセキュアな通信を行うことができます。reflexive ACLでも似たような動作を実現
 できますが、ポート番号が動的に変更する FTP 通信には対応していませんが、CBACでは対応できます。

 CBACの検査で、アプリケーション特有のコマンドを認識して、アプリケーションレベルの一定の攻撃を
 検知して防ぐことができます。CBACはTCPパケット中のシーケンス番号を追跡し、予測外のシーケンス
 番号を持つパケットを破棄してくれます。攻撃を検知した場合、警告メッセージの生成、パフォーマンス
 の妨げとなるシステムリソースの保護、攻撃者からのパケットのブロックを行います。



 ◆ CBAC - 動作の流れ

 CBACでは、指定された検査対象のプロトコルのみ検査を行います。CiscoルータにCBACを実装させる
 ためには、
検査対象のプロトコルの指定適用I/Fの指定I/FへのInboundまたはoutboundの指定
 が必要になります。また、CBACを適用するI/Fにその他のACLが設定されている場合、そのACLで許可
 されたパケットのみがCBACの検査対象となります。それでは実際にCBACの動きを下図で確認します。


   


 CBACでは、Ciscoルータを通過するトラフィックの内容を検査して、動的にポートの開放、閉鎖します。
 トラフィックの内容を検査すると言っても、CBACは接続の「コントロールチャネル」のみを検査対象と
 するので「データチャネル」は検査されません。例えば、FTPのセッションの間にコントロールとデータ
 チャネルの両方の状態の変化を監視はしますが、検査対象となるのは、コントロールチャネルのみであり、
 FTPコマンドと応答を検査します。

 ちなみに、UDPにセッションは実際には存在しないのですがCBACは送出されるパケットの情報を検査し、
 同じ可能性の送信元、宛先アドレスとポート番号を持っているか等を判断基準として正当性を判断します。




 ◆ CBAC - しきい値・しきい値を越えた時の動作

 CBACでは、セッションのステート情報を管理するのに、タイムアウトとしきい値の2つの値を利用します。
 セッションに対するタイムアウト時間の設定により、特定の時間の後にセッションを破棄することになり、
 システムリソースの開放へとつながります。また、セッションに対するしきい値を設定することによって
 ハーフオープンのセッションに割り当てられるシステムリソースの量を制限することができて、その結果
 DoS攻撃の防止へとつながります。CBACでは、DoS攻撃に対する以下の3つのしきい値を提供しています。

 ・ ハーフオープンのTCPまたはUDPセッション総数
 ・ 定時間内のハーフオープンのセッション数
 ・ ホストごとのハーフオープンセッション数(TCPが対象)


 上記で定められたしきい値を超えた場合、CBACでは以下の2つのアクションを実行することになります。

 ・ CBACは最も古いハーフオープンのセッションの両端にRSTパケットを送信し、新しく着信してくる
 SYNパケットにサービスを提供できるようシステムリソースを利用可能な状態に戻します。

 ・ CBACはハーフオープンコネクションのセッション(TCPが対象)についてはしきい値の一定の時間
 一時的にすべてのSYNパケットをブロックします。これにより正当な接続にリソースを割り当てられます。

 CBACは、セッション層とアプリケーション層の両方についてトラフィックの検査をサポートとしている強力なFirewall機能です。



ACL - 時間ベースACL / ダイナミックACL / 再帰ACL / TCPインターセプト / CBAC / PACL VACL RACL

ネットワークエンジニアとして

Copyright (C) 2002-2019 ネットワークエンジニアとして All Rights Reserved.