項目一覧
IDP ポリシーの攻撃オブジェクトとオブジェクト グループ
このトピックでは、IDP 攻撃オブジェクトとグループについて詳しく説明します。攻撃オブジェクトやグループを作成、変更、使用して、さまざまな脅威や脆弱性からネットワークを保護する方法について説明します。これにより、堅牢なセキュリティ対策が講じられます。
攻撃オブジェクト、アプリケーション シグネチャ オブジェクト、サービス オブジェクトは、IDP ポリシー ルールの定義に使用されます。新しい脆弱性への対応として、ジュニパーネットワークスは、ジュニパーのWebサイトで攻撃データベースの更新を含むファイルを定期的に提供しています。このファイルをダウンロードして、新しい脅威からネットワークを保護できます。これらの攻撃オブジェクトおよびグループは、ネットワーク トラフィック内の既知の攻撃パターンおよびプロトコル異常を検出するように設計されています。攻撃オブジェクトとグループは、IDP ポリシー ルールの一致条件として設定できます。
詳細については、次のトピックを参照してください。
既知および未知の脆弱性に対処するための当社のアプローチを理解する
このトピックは、以下のセクションで構成されています。
既知の脆弱性
既知の脆弱性は、インターネットセキュリティコミュニティ内で文書化されているものです。インターネットセキュリティコミュニティは、いくつかのセキュリティ組織、セキュリティアナリスト、およびセキュリティフォーラムで構成されています。セキュリティ コミュニティでは、新しい攻撃を継続的に発見して分析し、その情報をインターネット上で交換しています。このようにして、攻撃を迅速に特定し、特定し、真に理解することができます。
一部のセキュリティ アドバイザリには、実際の攻撃コードが含まれています。攻撃情報と攻撃コードを使用して、パケット情報とサービス コンテキストをキャプチャできます。この情報を使用して、カスタムシグネチャ攻撃オブジェクトを作成できます。
残念ながら、ほとんどのアドバイザリは攻撃の説明とともに攻撃コードを掲載していません。攻撃コードを取得できない場合は、アドバイザリを注意深く読み、攻撃パケットの基本を再構築してみてください。
不明なソースから取得したコードを分離することを忘れないでください。
次の組織はセキュリティ コミュニティーで活発に活動しており、攻撃情報を見つけるための優れたリソースです。
NVD:National Vulnerability Database (http://nvd.nist.gov)。Security Content Automation Protocol(SCAP)を使用して表現された脆弱性管理データの米国政府のリポジトリ。
SANS:SysAdmin、Audit、Network、Security Institute(www.sans.org)。セキュリティ アラートを提供する情報セキュリティの研究、認定、および教育組織。また、http://www.incidents.org でインターネットストームセンター(ISC)をホストしています。
CVE—Common Vulnerabilities and Exposures(http://cve.mitre.org)。脆弱性とその他の情報セキュリティ上の弱点の標準化されたリスト。
バグトラック (http://securityfocus.com/archive/1)。Security Focusが主催するモデレートされたメーリングリストで、コンピュータセキュリティの脆弱性について議論し、発表します。
CERTコーディネーションセンター(http://www.cert.org)。連邦政府が資金提供するセキュリティ警告組織で、セキュリティ アドバイザリを提供します。
パケットストームセキュリティ(http://packetstormsecurity.nl)。セキュリティ関連のニュース、アドバイザリ、フォーラム、攻撃コードなどの方法でセキュリティ情報を提供する、セキュリティ専門家の非営利組織です。
メタスプロイト(http://www.metasploit.com)。Metasploitは、ペネトレーションテスト、IDSシグネチャの開発、エクスプロイト調査の実行に役立つ情報を提供します。
FrSIRT—フランスのセキュリティインシデントレスポンスチーム(http://www.frsirt.com)。FrSIRTは、セキュリティ勧告とリアルタイムの脆弱性アラートおよび通知サービスを提供する独立したセキュリティ研究機関です。
ISS—インターネットセキュリティシステム(http://www.iss.net)。アラートとインターネット脅威レベルを提供するインターネット セキュリティ会社。
未知の脆弱性
未知の脆弱性とは、インターネットセキュリティコミュニティアドバイザリで文書化されていない脆弱性です。このような場合、本番環境で生成されたIDPシリーズプロファイラー、ファイアウォール、またはIDPセキュリティイベントログが、不審なアクティビティや異常なトラフィックを警告します。実稼働環境では、パケット ロギング ツールを使用してパケットとサービス コンテキスト情報をキャプチャし、後でラボで分析および実験することができます。
カスタム攻撃オブジェクトのテスト
カスタム攻撃オブジェクトをテストするには、次のワークフローをお勧めします。次の手順は一般的な手順で構成されており、これらのタスクに精通しているエキスパート ユーザーを対象としています。
カスタム攻撃オブジェクトをテストするには:
- 新しいセキュリティ ポリシーと、テストするカスタム攻撃オブジェクトのみを含む新しい IDP ルールベース ルールを作成します。ロギングとパケットロギングを有効にします。
- IDPシリーズのラボデバイスにポリシーをプッシュします。
- 攻撃者のコンピューターから、被害者のコンピューターを標的とした攻撃を再現します。
- Security Directorログビューアを使用して、トラフィックが期待どおりにログを生成したかどうかを確認します。
テストが失敗した場合は、攻撃アドバイザリ、プロトコル RFC、および攻撃コードまたはパケット キャプチャを確認して、設定の微調整に役立つ追加情報を特定します。チューニングを必要とする最も頻繁な問題は、DFA 式の構文です。
署名攻撃オブジェクトの作成
シグニチャ攻撃オブジェクトは、システムに検出させたいパターンです。DFA 式を使用してパターンを表します。設定可能なその他のシグネチャ プロパティ(サービスまたはプロトコルのコンテキスト、方向、その他の制約など)がすべて提供されるため、パターン検出におけるシステムのパフォーマンスを最適化し、誤検知を排除できます。一般に、シグニチャ攻撃オブジェクトの設定を調整して、システムが、それが発生する可能性のあるすべてのコンテキストでそれを検索し、他のコンテキストでは検索しないようにします。
署名攻撃オブジェクトを設定するには:
事前定義されたIDP攻撃オブジェクトとオブジェクトグループについて
侵入検出および防止(IDP)のセキュリティパッケージには、既知および未知の攻撃とトラフィックを照合するためにIDPポリシーで使用できる、事前定義されたIDP攻撃オブジェクトおよびIDP攻撃オブジェクトグループのデータベースが含まれています。ジュニパーネットワークスは、新たに発見された攻撃パターンで、定義済みの攻撃オブジェクトとグループを定期的に更新します。
攻撃オブジェクト データベースの更新には、次のものが含まれます。
既存の攻撃オブジェクトの新しい説明または重大度
新しい攻撃オブジェクト
古い攻撃オブジェクトの削除
このトピックは、以下のセクションで構成されています。
事前定義された攻撃オブジェクト
定義済みの攻撃オブジェクトは、アルファベット順に一覧表示されます。これらの攻撃オブジェクトには、攻撃の識別に役立つ一意の名前が付けられています。名前の最初の部分は、攻撃オブジェクトが属するグループを示します。例えば:
FTP:USER:ROOT
—FTP:USER
グループに属します。root
アカウントを使用したFTPサーバーへのログイン試行を検出します。HTTP:HOTMAIL:FILE-UPLOAD
—HTTP:HOTMAIL
グループに属します。WebメールサービスHotmail
経由で送信されたメールに添付されたファイルを検出します。
事前定義された攻撃オブジェクト グループ
定義済みの攻撃グループリストには、以下で説明するカテゴリの攻撃オブジェクトが表示されます。このリストには、ジュニパーネットワークスが重大な脅威と見なす推奨攻撃オブジェクトのセットも含まれています。推奨される攻撃オブジェクトは、次のカテゴリに分類されます。
攻撃オブジェクトグループ |
形容 |
---|---|
攻撃の種類 |
攻撃オブジェクトをタイプ(異常またはシグネチャ)別にグループ化します。各タイプ内では、攻撃オブジェクトは重大度別にグループ化されます。 |
カテゴリ |
攻撃オブジェクトを定義済みのカテゴリでグループ化します。各カテゴリ内では、攻撃オブジェクトは重大度別にグループ化されます。 |
オペレーティング システム |
攻撃オブジェクトを、適用するオペレーティング・システム(BSD、Linux、Solaris、またはWindows)別にグループ化します。各オペレーティング システム内では、攻撃オブジェクトはサービスおよび重大度によってグループ化されます。 |
過酷 |
攻撃に割り当てられた重大度によって攻撃オブジェクトをグループ化します。IDP には、Critical、Major、Minor、Warning、Info の 5 つの重大度レベルがあります。各重大度内では、攻撃オブジェクトはカテゴリ別にグループ化されます。 |
Webサービス |
攻撃オブジェクトを一般的な Web サービスでグループ化します。これらのサービスは、重大度レベル(警告、重大、メジャー、マイナー、情報)別にグループ化されます。 |
雑 |
パフォーマンス レベル別に攻撃オブジェクトをグループ化します。一定レベル以上のIDPパフォーマンスに影響を与える攻撃オブジェクトは、このカテゴリに分類されます。 |
応答 |
グループは、サーバーからクライアント方向に流れるトラフィックでオブジェクトを攻撃します。 |
カスタム攻撃オブジェクトの理解
カスタム攻撃オブジェクトを作成して新しい攻撃を検出したり、事前定義された攻撃オブジェクトをカスタマイズしてネットワーク固有のニーズを満たすことができます。
カスタム攻撃オブジェクトを設定するには、一意の名前を指定し、一般的な説明やキーワードなどの追加情報を指定すると、攻撃オブジェクトの検索と保守が容易になります。
攻撃オブジェクト定義の特定のプロパティーは、攻撃名、説明、重大度レベル、サービスまたはアプリケーションのバインディング、時間バインディング、推奨アクション、プロトコルまたはポートのバインディングなど、すべてのタイプのアタックに共通です。一部のフィールドは攻撃タイプに固有であり、その特定の攻撃定義でのみ使用できます。
IDP機能はデフォルトで有効になっており、ライセンスは必要ありません。IDP ポリシーのカスタム攻撃およびカスタム攻撃グループは、有効なライセンスと署名データベースがデバイスにインストールされていない場合でも、設定およびインストールできます。
このトピックは、以下のセクションで構成されています。
- 攻撃名
- 過酷
- サービスとアプリケーションのバインディング
- プロトコルとポートのバインディング
- タイムバインディング
- 攻撃プロパティ (シグニチャ攻撃)
- 攻撃プロパティ (プロトコル異常攻撃)
- 攻撃プロパティ(複合攻撃または連鎖攻撃)
攻撃名
オブジェクトの英数字の名前を指定します。攻撃名に攻撃で使用するプロトコルを含めることができます。
Junos OS リリース 15.1X49-D140 以降、カスタム攻撃オブジェクト名に許可される最大文字数は 60 文字です。 set security idp custom-attack
コマンドを使用してステートメントを検証できます。
過酷
ネットワークに対する攻撃の残忍さを指定します。重大度のカテゴリは、残忍さが増す順に、情報、警告、マイナー、メジャー、クリティカルです。重大な攻撃は最も危険で、通常、これらの攻撃はサーバーをクラッシュさせたり、ネットワークを制御したりしようとします。情報攻撃は最も危険性が低く、通常、ネットワーク管理者が自社のセキュリティシステムの欠陥を発見するために使用します。
サービスとアプリケーションのバインディング
サービスまたはアプリケーション バインド フィールドは、攻撃がネットワークに侵入するために使用するサービスを指定します。
カスタム攻撃でサービスまたはプロトコル バインディングを指定します。両方を指定した場合は、サービスバインディングが優先されます。
any
- 正しいサービスが不明で、すべてのサービスのシグニチャを一致させる場合は、any
を指定します。一部の攻撃では複数のサービスを使用してネットワークを攻撃するため、攻撃が接続にどのサービスを選択するかに関係なく、攻撃を検出するためにAny
サービス バインドを選択することをお勧めします。service
—ほとんどの攻撃は、特定のサービスを使用してネットワークを攻撃します。攻撃の実行に使用される特定のサービスをサービスバインディングとして選択できます。サービス、サービスバインディング、およびコンテキストのリストについては、 IDPカスタム攻撃オブジェクトについて、サービスコンテキストを参照してください。
プロトコルとポートのバインディング
プロトコルまたはポート バインドを使用すると、攻撃がネットワークに侵入するために使用するプロトコルを指定できます。ネットワークプロトコルの名前またはプロトコル番号を指定できます。
カスタム攻撃でサービスまたはプロトコル バインディングを指定します。両方を指定した場合は、サービスバインディングが優先されます。
IP—プロトコル番号を使用して、サポートされているネットワーク層プロトコルのいずれかを指定できます。 表 11 に、各プロトコルのプロトコル番号を示します。
表 11: サポートされるプロトコルとプロトコル番号 プロトコル名
プロトコル番号
IGMPの
2
IP-IP
4
EGPの
8
子犬
12
トイレットペーパー
29
IPV6
41
ルーティング
43
断片
44
RSVP
46
GRE
47
ESP
50
あら
51
ICMPV6の
58
何一つ
59
DSTOPTS
60
MTP(平均通信速度)
92
カプセル化
98
PIM
103
カンプ
108
生
255
ICMP、TCP、UDP—特定のサービスを使用しない攻撃では、特定のポートを使用してネットワークを攻撃する可能性があります。一部のTCPおよびUDP攻撃は、標準ポートを使用してネットワークに入り、接続を確立します。
RPC—リモート プロシージャ コール(RPC)プロトコルは、プロセス間の対話をリモートで処理するために分散処理アプリケーションによって使用されます。クライアントが RPC サーバーに対してリモート プロシージャ コールを行うと、サーバーはリモート プログラムで応答します。各リモート・プログラムは、異なるプログラム番号を使用します。RPC を使用する攻撃を検出するには、サービス バインディングを RPC として構成し、RPC プログラム ID を指定します。
表 12 は、主要なプロトコルのフォーマットの例を示しています。
プロトコル名 |
プロトコル番号 |
形容 |
---|---|---|
ICMP |
|
プロトコル名を指定します。 |
IP |
|
ネットワーク層プロトコル番号を指定します。 |
RPC |
|
RPCプログラム番号を指定します。 |
TCPまたはUDP |
|
ポートの指定は、TCPおよびUDPプロトコルではオプションです。たとえば、次のいずれかを指定できます。
|
タイムバインディング
タイムバインディングを使用して、タイムバインディングカスタム攻撃オブジェクトの時間属性を設定します。時間属性は、攻撃オブジェクトが特定の回数繰り返される攻撃を識別する方法を制御します。攻撃の範囲とカウントを設定することで、セッションをまたいで一定期間にわたって同じ攻撃のシーケンスを検知できます。
Junos OS リリース 18.4R1 以降、タイムバインディングカスタム攻撃の任意の 2 つのインスタンス間の最大時間間隔を設定でき、最大時間間隔の範囲は 0 分 0 秒から 60 分 0 秒です。18.4R1より前のJunos OSリリースでは、タイムバインディング攻撃の任意の2つのインスタンス間の最大時間間隔は60秒であり、攻撃トリガーカウントがタイムバインディングで設定されたカウントに達するまでです。 interval interval-value
ステートメントは、カスタムのタイムバインディングを設定するために、 [edit security idp custom-attack attack-name time-binding]
階層で導入されています。
スコープ
攻撃の発生回数の範囲を指定します。
[送信元(Source)]:宛先アドレスに関係なく、指定した回数だけ送信元アドレスからの攻撃を検出するには、このオプションを指定します。これは、特定の攻撃に対して、送信元アドレスからの攻撃ごとにしきい値が維持されることを意味します。宛先アドレスは無視されます。例えば、送信元アドレス
ip-a
は同じで宛先アドレスip-b
とip-c
が異なる2つの異なるペア(ip-a
,ip-b
)と(ip-a
,ip-c
)から異常が検出されます。次に、ip-a
の一致数が2
に増分されます。しきい値またはcountも 2 に設定されている場合、署名によって攻撃イベントがトリガーされます。[宛先(Destination)]:送信元アドレスに関係なく、宛先アドレスに指定された回数だけ送信された攻撃を検出するには、このオプションを指定します。これは、特定の攻撃に対して、宛先アドレスからの攻撃ごとにしきい値が維持されることを意味します。送信元アドレスは無視されます。例えば、宛先アドレス
ip-b
が同じで送信元アドレスip-a
とip-c
が異なる2つの異なるペア(ip-a
,ip-b
)と(ip-c
,ip-b
)から異常が検出された場合などです。次に、ip-b
の一致数が2
に増分されます。しきい値またはcountも2
に設定されている場合、署名によって攻撃イベントがトリガーされます。[ピア(Peer)]:このオプションを指定すると、指定した回数、セッションの送信元 IP アドレスと宛先 IP アドレス間の攻撃が検出されます。これは、しきい値が送信元アドレスと宛先アドレスのペアに適用されることを意味します。2つの異なる送信元と宛先のペア(
ip-a
、ip-b
)と(ip-a
、ip-c
)から異常が検出されたとします。そして、両方のペアが共通の送信元アドレスを持っていても、各ペアの一致数は1
に設定されます。
数える
カウントまたはしきい値は、デバイスが攻撃オブジェクトを攻撃と一致すると見なす前に、指定された範囲内で攻撃オブジェクトが攻撃を検出する必要がある回数を指定します。攻撃オブジェクトを複数のポートにバインドし、攻撃オブジェクトが異なるポートでの攻撃を検出した場合、各ポートに対する各攻撃は個別の発生としてカウントされます。たとえば、攻撃オブジェクトが TCP/80
で攻撃を検出し、次に TCP/8080
で攻撃を検出した場合、カウントは 2 になります。
count
一致に達すると、条件に一致する攻撃ごとに攻撃数が 1 つ増加します。このカウントサイクルは、ユーザーが定義した期間(interval
オプションを使用して設定)継続し、その後サイクルが繰り返されます。
間
間隔 は、時間拘束カスタム攻撃の任意の 2 つのインスタンス間の最大時間間隔を指定します。時間間隔の範囲は 0 秒から 1 時間で、デフォルト値は 60 秒です。
攻撃プロパティ (シグニチャ攻撃)
署名攻撃オブジェクトは、ステートフル攻撃署名 (攻撃の特定のセクション内に常に存在するパターン) を使用して、既知の攻撃を検出します。また、攻撃の実行に使用されたプロトコルやサービス、攻撃が発生するコンテキストも含まれます。次のプロパティは署名攻撃に固有であり、署名攻撃を構成するときに構成できます。
攻撃コンテキスト、フロー・タイプ、および方向は、シグネチャ・アタック定義の必須フィールドです。
攻撃コンテキスト
攻撃コンテキストは、シグネチャの場所を定義します。サービスと特定のサービスコンテキストがわかっている場合は、そのサービスを指定してから、適切なサービスコンテキストを指定します。サービスがわかっているが、特定のサービスコンテキストが不明な場合は、次の一般的なコンテキストのいずれかを指定します。
first-data-packet
—最初のデータ パケットのみで攻撃を検出するには、このコンテキストを指定します。first-packet
—ストリームの最初のパケットのみで攻撃を検出するには、このコンテキストを指定します。攻撃オブジェクトのフロー方向がany
に設定されている場合、デバイスはサーバーからクライアントへのフローとクライアントからサーバーへのフローの両方の最初のパケットをチェックします。攻撃シグネチャがセッションの最初のパケットに表示されることがわかっている場合は、packet
ではなくfirst packet
を選択すると、デバイスが監視する必要があるトラフィック量が減少し、パフォーマンスが向上します。packet
—パケット内の攻撃パターンを照合するために、このコンテキストを指定します。このオプションを選択する場合は、サービス・ヘッダー・オプションを定義するためのサービス・バインディングも指定する必要があります。必須ではありませんが、これらの追加パラメータを指定すると、攻撃オブジェクトの精度が向上し、パフォーマンスが向上します。line
—ネットワーク トラフィック内の特定の回線内のパターン マッチを検出するには、このコンテキストを指定します。normalized-stream
—このコンテキストを指定して、正規化されたストリーム全体で攻撃を検出します。正規化されたストリームは、情報を送信する複数の方法の 1 つです。このストリームでは、一致が実行される前にパケット内の情報が正規化されます。www.yahoo.com/sports
がwww.yahoo.com/s%70orts
と同じであるとします。これらの URL の両方を表す正規化された形式は、www.yahoo.com/sports
場合があります。パターンをその正確な形式で検出する場合を除き、stream
ではなくnormalized stream
を選択します。たとえば、正確なパターンwww.yahoo.com/s%70orts
を検出する場合は、「stream
」を選択します。normalized-stream256
—このコンテキストを指定して、正規化されたストリームの最初の 256 バイトのみで攻撃を検出します。normalized-stream1k
—正規化されたストリームの最初の 1024 バイトのみで攻撃を検出するには、このコンテキストを指定します。normalized-stream-8k
—このコンテキストを指定して、正規化されたストリームの最初の 8192 バイトのみで攻撃を検出します。stream
—パケットを再構成し、パターン一致を検索するデータを抽出するには、このコンテキストを指定します。ただし、デバイスはストリームコンテキストのパケット境界を認識できないため、複数のパケットのデータが結合されます。このオプションは、他のコンテキスト・オプションに攻撃が含まれていない場合にのみ指定します。stream256
—パケットを再構成し、トラフィックストリームの最初の256バイト内でパターンマッチを検索するには、このコンテキストを指定します。フロー方向がany
に設定されている場合、デバイスはサーバーからクライアントへのフローとクライアントからサーバーへのフローの両方の最初の 256 バイトをチェックします。攻撃シグネチャがセッションの最初の 256 バイトに表示されることがわかっている場合は、stream
ではなくstream256
を選択すると、デバイスが監視およびキャッシュする必要があるトラフィックの量が減少し、パフォーマンスが向上します。stream1k
—パケットを再構成し、トラフィックストリームの最初の1024バイト内でパターンマッチを検索します。フロー方向がany
に設定されている場合、デバイスはサーバーからクライアントへのフローとクライアントからサーバーへのフローの両方の最初の 1024 バイトをチェックします。攻撃シグネチャがセッションの最初の 1024 バイトに表示されることがわかっている場合は、stream
ではなくstream1024
を選択すると、デバイスが監視およびキャッシュする必要があるトラフィックの量が減少し、パフォーマンスが向上します。stream8k
—パケットを再構成し、トラフィックストリームの最初の8192バイト内でパターンマッチを検索するには、このコンテキストを指定します。フロー方向がany
に設定されている場合、デバイスはサーバーからクライアントへのフローとクライアントからサーバーへのフローの両方の最初の 8192 バイトをチェックします。攻撃シグネチャがセッションの最初の 8192 バイトに表示されることがわかっている場合は、stream
ではなくstream8192
を選択すると、デバイスが監視およびキャッシュする必要があるトラフィックの量が減少し、パフォーマンスが向上します。
攻撃方向
攻撃の接続方向を指定できます。( Any
ではなく 1 つの方向) を使用すると、パフォーマンスが向上し、誤検知が減り、検出精度が向上します。
クライアントからサーバーへ (クライアントからサーバーへのトラフィックでのみ攻撃を検出します)
サーバーからクライアントへ(サーバーからクライアントへのトラフィックでのみ攻撃を検出します)
任意(どちらの方向からの攻撃も検知)
攻撃のシグネチャ パターン
攻撃パターンは、検出する攻撃のシグネチャです。シグネチャは、攻撃内に常に存在するパターンです。攻撃が存在する場合は、シグネチャも存在します。攻撃パターンを作成するには、まず攻撃を分析してパターン (コードのセグメント、URL、パケット ヘッダーの値など) を検出し、そのパターンを表す構文式を作成する必要があります。また、パターンを否定することもできます。パターンの否定は、攻撃で定義されたパターンが指定されたパターンに一致 not 場合に、攻撃が一致したと見なされることを意味します。
パターン否定は、パケット、回線、およびアプリケーションベースのコンテキストでのみサポートされ、ストリームおよび正規化されたストリームコンテキストではサポートされていません。
プロトコル固有のパラメータ
パケット ヘッダー内に存在する特定の値とオプションを指定します。これらのパラメータは、プロトコルによって異なります。カスタム攻撃定義では、TCP、UDP、または ICMP のいずれか 1 つのプロトコルのフィールドのみを指定できます。ただし、カスタム攻撃定義で TCP または UDP を使用して IPプロトコル フィールドを定義できます。
ヘッダー パラメーターは、パケットまたは最初のパケット コンテキストを使用する攻撃オブジェクトに対してのみ定義できます。回線、ストリーム、ストリーム 256、またはサービス コンテキストを指定した場合は、ヘッダー パラメーターを指定できません。
悪意のあるパケットのオプションまたはフラグ設定が不明な場合は、すべてのフィールドを空白のままにし、侵入検出および防止(IDP)はすべてのヘッダーコンテンツの署名の照合を試みます。
表 13 は、IPプロトコルを使用する攻撃に対して設定できるフィールドとフラグを示しています。
畑 |
形容 |
---|---|
サービスの種類 |
サービスタイプの値を指定します。一般的なサービスの種類は次のとおりです。
|
全長 |
すべてのヘッダーフィールドとデータペイロードを含むパケットのバイト数の値を指定します。 |
身分証明書 |
フラグメント化されたパケットを再構成するために宛先システムが使用する一意の値の値を指定します。 |
存続可能時間 |
パケットの TTL(Time-to-live)値として、0 から 255 の範囲の整数値を指定します。この値は、パケットが通過できるデバイスの数を表します。パケットを処理する各ルーターは、TTLを |
議定書 |
使用するプロトコルの値を指定します。 |
源 |
攻撃デバイスの送信元アドレスを入力します。 |
行き先 |
攻撃対象の宛先アドレスを入力します。 |
予約ビット |
このビットは使用されません。 |
その他のフラグメント |
このオプションが設定されている場合( |
フラグメント化しない |
このオプションが設定されている場合( |
表 14 は、TCP プロトコルを使用する攻撃に対して設定できるパケット ヘッダー フィールドとフラグを示しています。
畑 |
形容 |
---|---|
送信元ポート |
攻撃デバイス上のポート番号の値を指定します。 |
宛先ポート |
攻撃対象のポート番号の値を指定します。 |
シーケンス番号 |
パケットのシーケンス番号の値を指定します。この番号は、データ・シーケンス全体に対するデータの位置を識別します。 |
ACK番号 |
パケットの ACK 番号の値を指定します。この番号は、次のシーケンス番号を識別します。このフィールドを有効にするには、ACK フラグを設定する必要があります。 |
ヘッダー長 |
TCPヘッダーのバイト数の値を指定します。 |
データ長 |
データペイロードのバイト数の値を指定します。SYN、ACK、および FIN パケットの場合、このフィールドは空である必要があります。 |
ウィンドウ サイズ |
TCPウィンドウサイズのバイト数の値を指定します。 |
緊急ポインタ |
緊急ポインターの値を指定します。この値は、パケット内のデータが緊急であることを示します。このフィールドをアクティブにするには、URG フラグを設定する必要があります。 |
URGの |
緊急フラグを設定すると、パケット データが緊急であることを示します。 |
ACKの |
設定すると、確認応答フラグがパケットの受信を確認します。 |
PSH |
プッシュフラグを設定すると、受信側はシーケンス内の残りのパケットを待たずに、現在のシーケンス内のすべてのデータを宛先アプリケーション(ポート番号で識別)にプッシュする必要があることを示します。 |
RST |
リセットフラグを設定すると、TCP接続がリセットされ、既存のシーケンス内のすべてのパケットが破棄されます。 |
SYN |
設定されている場合、SYN フラグは新しいセッションの要求を示します。 |
鰭 |
設定すると、最後のフラグは、パケット転送が完了し、接続を閉じることができることを示します。 |
R1 |
この予約ビット (1/2) は使用されません。 |
R2の |
この予約ビット (2/2) は使用されません。 |
表 15 は、UDP プロトコルを使用する攻撃に対して設定できるパケット ヘッダー フィールドとフラグを示しています。
畑 |
形容 |
---|---|
送信元ポート |
攻撃デバイス上のポート番号の値を指定します。 |
宛先ポート |
攻撃対象のポート番号の値を指定します。 |
データ長 |
データペイロードのバイト数の値を指定します。 |
表 16 は、ICMP プロトコルを使用する攻撃に対して設定できるパケット ヘッダー フィールドとフラグを示しています。
畑 |
形容 |
---|---|
ICMPタイプ |
要求パケットまたは応答パケットの機能を識別するプライマリ コードの値を指定します。 |
ICMP コード |
指定されたタイプ内の要求パケットまたは応答パケットの機能を識別するセカンダリ コードの値を指定します。 |
シーケンス番号 |
パケットのシーケンス番号の値を指定します。この番号は、シーケンス全体に関連する要求または応答パケットの場所を特定します。 |
ICMP ID |
識別番号の値を指定します。識別番号は、要求パケットと応答パケットを関連付けるために宛先システムが使用する一意の値です。 |
データ長 |
データペイロードのバイト数の値を指定します。 |
シグネチャ攻撃の定義の例
以下は、署名攻撃の定義の例です。
<Entry> <Name>sample-sig</Name> <Severity>Major</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>dst</Scope></TimeBinding> <Application>FTP</Application> <Type>signature</Type> <Context>packet</Context> <Negate>true</Negate> <Flow>Control</Flow> <Direction>any</Direction> <Headers><Protocol><Name>ip</Name> <Field><Name>ttl</Name> <Match>==</Match><Value>128</Value></Field> </Protocol><Name>tcp</Name> <Field><Name><Match><</Match> <value>1500</Value> </Field></Protocol></Headers> </Attack></Attacks> </Entry>
攻撃プロパティ (プロトコル異常攻撃)
プロトコル異常攻撃オブジェクトは、プロトコル仕様(RFC および一般的な RFC 拡張)に違反する未知の攻撃または高度な攻撃を検出します。新しいプロトコル異常を作成することはできませんが、新しい攻撃オブジェクトを設定して、検出されたときにデバイスが事前定義されたプロトコル異常を処理する方法を制御することはできます。
サービスまたはアプリケーションのバインドは、プロトコル異常攻撃の必須フィールドです。
次のプロパティは、プロトコル異常攻撃に固有です。攻撃方向とテスト条件の両方が、異常攻撃定義を構成するための必須フィールドです。
攻撃方向
「攻撃方向」では、攻撃の接続方向を指定できます。( Any
ではなく)一方向を使用すると、パフォーマンスが向上し、誤検知が減り、検出精度が向上します。
クライアントからサーバーへ (クライアントからサーバーへのトラフィックでのみ攻撃を検出します)
サーバーからクライアントへ(サーバーからクライアントへのトラフィックでのみ攻撃を検出します)
任意(どちらの方向からの攻撃も検知)
試験条件
テスト条件は、異常攻撃に一致する条件です。ジュニパーネットワークスは、事前に定義された特定のテスト条件をサポートしています。次の例では、条件は長すぎるメッセージです。メッセージのサイズが、このテスト条件で事前に構成された値よりも長い場合、攻撃が一致します。
<Attacks> <Attack> <Type>anomaly</Type> ... <Test>MESSAGE_TOO_LONG</Test> <Value>yes</Value> ... </Attack> </Attacks>
プロトコル異常攻撃の定義の例
以下は、プロトコル異常攻撃の定義の例です。
<Entry> <Name>sample-anomaly</Name> <Severity>Info</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>peer</Scope></TimeBinding> <Application>TCP</Application> <Type>anomaly</Type> <Test>OPTIONS_UNSUPPORTED</Test> <Direction>any</Direction> </Attack></Attacks> </Entry>
攻撃プロパティ(複合攻撃または連鎖攻撃)
複合攻撃オブジェクトまたはチェーン攻撃オブジェクトは、脆弱性を悪用するために複数の方法を使用する攻撃を検出します。このオブジェクトは、複数のシグニチャやプロトコル異常を単一の攻撃オブジェクトに組み合わせ、トラフィックが攻撃として識別される前に、複合攻撃オブジェクト内で結合されたシグニチャと異常のパターンを一致させるようにトラフィックを強制します。組み合わせて、シグニチャまたは異常が一致する必要がある順序を指定することで、デバイスがトラフィックを攻撃として識別する前に発生させる必要があるイベントを非常に具体的に特定できます。
複合攻撃では、最低でも 2 つのメンバー (攻撃) を指定する必要があります。複合攻撃では最大 32 のメンバーを指定できます。メンバーは、シグニチャ攻撃または異常攻撃のいずれかである可能性があります。
次のプロパティは、複合攻撃に固有です。
スコープ
スコープでは、攻撃がセッション内で一致するか、セッション内のトランザクション間で一致するかを指定できます。指定したサービスが 1 つのセッション内の複数のトランザクションをサポートしている場合は、一致を 1 つのセッションで行うか、セッション内の複数のトランザクションで行うかを指定することもできます。
sessionを指定すると、同じセッション内でオブジェクトに対して複数の一致が許可されます。
同じセッション内で発生する複数のトランザクション間でオブジェクトを照合するための transaction を指定します。
命令
順序一致を使用して、指定した順序で各メンバーの署名またはプロトコル異常に一致する必要がある複合攻撃オブジェクトを作成します。順序一致を指定しない場合でも、複合攻撃オブジェクトはすべてのメンバーに一致する必要がありますが、攻撃パターンまたはプロトコル異常はランダムな順序で攻撃に現れる可能性があります。
リセット
同じセッション内で攻撃が検出されるたびに新しいログが生成されることを指定します。このフィールドが no
に設定されている場合、攻撃は 1 つのセッションで 1 回だけ記録されます。
Expression (ブール式)
ブール式フィールドを使用すると、順序付き一致関数が無効になります。ブール式フィールドは、メンバー名またはメンバー インデックス プロパティを使用します。次の 3 つのブール演算子は、優先順位の決定に役立つ括弧とともにサポートされています。
or
—メンバー名のパターンのいずれかが一致する場合、式は一致します。and
- 両方のメンバー名パターンが一致する場合、式は一致します。メンバーがどの順序で表示されるかは関係ありません。oand (ordered and)
- 両方のメンバー名パターンが一致し、ブール式で指定された順序と同じ順序で表示される場合、式は一致します。
s1
-s5
というラベルの付いた 5 つの署名メンバーを作成したとします。攻撃には常に s1
のパターンが含まれ、その後に s2
または s3
が続くことがわかっているとします。また、攻撃には常にs4
とs5
が含まれていますが、攻撃におけるそれらの位置はさまざまです。この場合、次のブール式を作成できます。
((s1 oand s2) or (s1 oand s3)) and (s4 and s5)
カスタム攻撃定義では、順序付けされた一致または式 (両方ではない) のいずれかを定義できます。
メンバー インデックス
メンバーインデックスは、メンバー(攻撃)を一意に識別するためにチェーン攻撃で指定されます。次の例では、メンバー インデックスを使用して、定義された式でメンバー m01
と m02
を識別します。
<Expression>m02 AND m01</Expression> <Order>no</Order> <Reset>no</Reset> <ScopeOption/> <Members> <Attack> <Member>m01</Member> <Type>Signature</Type> ... <Pattern><!CDATA[.*/getlatestversion]]></Pattern> <Regex/> </Attack> <Attack><Member>m02</Member> <Type>Signature</Type> ... <Pattern><!CDATA[\[Skype\'.*]]></Pattern> <Regex/> </Attack> <Attack>
式を定義するときは、すべてのメンバーのメンバー索引を指定する必要があります。
複合攻撃の定義の例
以下は、複合攻撃の定義の例です。
<Entry> <Name>sample-chain</Name> <Severity>Critical</Severity> <Attacks><Attack> <Application>HTTP</Application> <Type>Chain</Type> <Order>yes</Order> <Reset>yes</Reset> <Members><Attack> <Type>Signature</Type> <Context>packet</Context> <Pattern><![CDATA[Unknown[]></Pattern> <Flow>Control</Flow> <Direction>cts</Direction> </Attack><Attack> <Type>anomaly</Type> <Test>CHUNK_LENGTH_OVERFLOW</Test> <Direction>any</Direction> </Attack></Members> </Attack></Attacks> </Entry>
複合攻撃オブジェクトの作成
複合攻撃オブジェクトは、次の場合に使用します。
攻撃は脆弱性を悪用するために複数の方法を使用しますが、個別に調べると、個々のコンテキストは無害に見えます。
複数のコンテキストを一致させることで、誤検知を減らすことができます。
プロトコル異常とシグネチャを組み合わせることで、誤検知を減らすことができます。
シグネチャ攻撃オブジェクトまたは事前定義された異常を複合オブジェクトの「メンバー」として選択し、ブール式を使用して一致ロジックを指定します。
複合攻撃オブジェクトを設定するには:
参照
シグネチャの更新で導入された変更によるカスタム攻撃オブジェクトの変更
このトピックでは、HTTP プロトコル デコーダーによって生成される一部のサービス コンテキストに対する変更について説明します。 Signature Update #1972 以降、HTTP プロトコル デコーダーは一部のコンテキストを生成しなくなりました。IDP セキュリティ ポリシーに、削除されたコンテキストを使用するカスタム署名が含まれている場合は、ポリシーのコンパイル エラーを回避するために、以下で説明するように攻撃オブジェクト定義を変更する必要があります。このトピックでは、次の情報を提供します。
リファレンス: 削除されたコンテキスト
パフォーマンスを向上させるために、HTTP プロトコル デコーダーは、 表 19 の最初の列にリストされているコンテキストを生成しなくなりました。カスタム攻撃オブジェクトのコンテキストを置き換える際のガイドラインについては、この表を確認してください。
削除 |
置換後の文字列 |
ガイドライン |
---|---|---|
http-text-html-body |
http-text-html |
コンテキスト http-text-html-body を使用する署名を http-text-html に変更します。シグネチャパターンやその他のプロパティを変更する必要はありません。 |
|
以下のコンテキストを組み合わせて使用します。
|
ブール AND で複合シグネチャを使用して、シグネチャパターンを複数の部分に分割します。[スコープ] フィールドが [トランザクション] に設定されていることを確認します。 http-request-method コンテキストの使用はオプションです。http-request-methodコンテキストを使用して、検出をhttp GET、POST、またはHEADトランザクションにバインドします。GETメソッドでは、パターン\[GET\](大文字と小文字を区別しないGET)を使用します。http-request-method は、以前に [Request Method] で一致したログに記録した結果を保持する価値がある場合にのみ使用してください。そうでない場合は、パフォーマンスを向上させるために省略します。http-request-method を使用する場合は、複合チェーンで最初に順序付けします。 http-url-parsed コンテキストを使用して、URL で識別可能な攻撃シグネチャを照合します。このコンテキストを使用して、変数パラメーターの前に表示される URL のパターン (URL の疑問符 (?) の前の部分) を照合します。 1 つ以上の http-variable 解析コンテキストを使用して、URL 変数パラメータ(通常はアンパサンド (&)で区切られた疑問符 (?) の後の URL の部分) を照合します。 |
例: HTML テキストに表示されるパターンのコンテキストの置換
HTTP 検出エンジンによって生成される各コンテキストには、パフォーマンス コストがあります。コンテキスト http-text-html と http-text-html-body は同じ目的を果たします。コンテキストの数を減らすと、パフォーマンスが向上します。
表 20 は、 Update #1972 以前の署名と Update #1972 後の署名のプロパティを示しています。これは簡単な変更です。変更するのはコンテキストのみです。パターンやその他のプロパティを変更する必要はありません。
アップデート前 |
アップデート後 |
|
---|---|---|
文脈 |
http-text-html-body |
http-text-html |
パターン |
.*<span></span>.* |
.*<span></span>.* |
例: URL に表示されるパターンのコンテキストの置換
このセクションは、次の 2 つの部分で構成されています。
要求メソッドに一致するシグネチャ
以前に要求メソッド GET、POST、または HEAD と一致したカスタム攻撃オブジェクトを変更する場合は、これらの要求メソッド パターンとの一致が効果的かどうかを検討してください。生成された各コンテキストにはパフォーマンスコストがかかることに注意してください。リクエスト方法が結果に必須でない場合は、この機会にリクエスト方法なしで署名を書き直してください。
表 21 と 表 22 は、 Update #1972 以前の署名と Update #1972 以降の複合署名のプロパティを示しています。この例では、request メソッドへの関心を保持します。
更新前の署名 |
|
---|---|
スコープ |
– |
文脈 |
http-get-url-parsed-param |
パターン |
\[/viper/vegaspalms/\].* |
更新後の複合署名 |
||
---|---|---|
|
M01 (英語) |
M02さん |
スコープ |
トランザクション |
|
文脈 |
HTTP リクエストメソッド |
http-url 解析済み |
パターン |
|
\[/viper/vegaspalms/\].* |
URL 文字列と URL 変数に一致するシグネチャ
一般に、1 つのパターンを複数のコンテキストに分割すると、パフォーマンスにプラスまたはマイナスの影響を与える可能性があります。実稼働ネットワークに攻撃オブジェクトを展開する前に、変更をテストしてパフォーマンスへの影響を理解する必要があります。 表 23 と 表 24 に示す例では、URL マッチングを複数のコンテキストに分割しています。当社のセキュリティ チームは、ここで説明する推奨事項のパフォーマンスをテストしました。
更新前の署名 |
|
---|---|
スコープ |
– |
文脈 |
http-get-url-param-parsed-param |
パターン |
|
更新後の複合署名 |
||||
---|---|---|---|---|
M01 (英語) |
M02さん |
M03さん |
M04さん |
|
スコープ |
トランザクション |
|||
文脈 |
http-url 解析済み |
HTTP 変数の解析 |
HTTP 変数の解析 |
HTTP 変数の解析 |
パターン |
|
|
|
|
参照
例:複合攻撃またはチェーン攻撃の設定
この例では、特定の一致条件に対して複合攻撃またはチェーン攻撃を設定する方法を示しています。複合攻撃または連鎖攻撃オブジェクトは、脆弱性を悪用するために複数の方法を使用する攻撃を検出するように構成できます。
必要条件
開始する前に、IDP がサポートされ、デバイスで有効になっている必要があります。
概要
複合攻撃オブジェクトまたはチェーン攻撃オブジェクトは、シグネチャと異常を組み合わせて 1 つの攻撃オブジェクトを形成できます。1 つの攻撃オブジェクトには、次のものを含めることができます。
2 つ以上の署名
2 つ以上の異常
シグネチャと異常の組み合わせ
複合攻撃オブジェクトまたはチェーン攻撃オブジェクトは、複数のシグニチャやプロトコル異常を単一の攻撃オブジェクトに組み合わせ、トラフィックが攻撃として識別される前に、複合攻撃オブジェクト内で結合されたシグネチャと異常のパターンをトラフィックに強制的に一致させます。これらのオブジェクトは、誤検知を減らし、検出精度を高めるためにも使用されます。これにより、IDPがトラフィックを攻撃として識別する前に発生する必要があるイベントを特定できます。
構成
プロシージャ
CLIクイック構成
この例を迅速に設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit]
階層レベルのCLIにコピー&ペーストして、設定モードから commit
を入力します。
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attacks ftpchain set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack ftpchain severity info set security idp custom-attack ftpchain attack-type chain protocol-binding application ftp set security idp custom-attack ftpchain attack-type chain scope session set security idp custom-attack ftpchain attack-type chain order set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature context ftp-banner set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature pattern .*vsFTPd.* set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature direction server-to-client set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature context ftp-username set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature pattern .*root.* set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature direction client-to-server set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly test LOGIN_FAILED set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly direction any set security idp traceoptions file idpd set security idp traceoptions flag all
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、CLIユーザー ガイドの 設定モードにおけるCLIエディターの使用を参照してください。
特定の一致条件に対して複合攻撃または連鎖攻撃を設定するには:
IDP ポリシーを作成します。
[edit] user@host# set security idp idp-policy idpengine
ルールベースをポリシーに関連付けます。
[edit security idp idp-policy idpengine] user@host# edit rulebase-ips
ルールベースにルールを追加します。
[edit security idp idp-policy idpengine rulebase-ips] user@host# edit rule 1
ルールの一致条件を定義します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
ルールの基準に一致するアプリケーションセット名を指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
一致攻撃オブジェクトと攻撃オブジェクトの名前を指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attacks ftpchain
ルールのアクションを指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
ルールの通知またはログのオプションを指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
IDP ポリシーを有効化します。
[edit] user@host# set security idp active-policy idpengine
カスタム攻撃の名前を指定します。
[edit security idp] user@host# set custom-attack ftpchain
カスタム攻撃の重大度を設定します。
[edit security idp custom-attack ftpchain] user@host# set severity info
カスタム攻撃の攻撃の種類とアプリケーション名を設定します。
[edit security idp custom-attack ftpchain] user@host# set attack-type chain protocol-binding application ftp
攻撃を定義する範囲と順序を設定します。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set scope session user@host# set order
チェイン・アタック・オブジェクトの最初のメンバーの名前を指定します。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m1
チェーン攻撃オブジェクトの最初のメンバーのコンテキスト、パターン、および方向を設定します。
[edit security idp custom-attack ftpchain attack-type chain member m1] user@host# set attack-type signature context ftp-banner user@host# set attack-type signature pattern .*vsFTPd.* user@host# set attack-type signature direction server-to-client
チェイン・アタック・オブジェクトの 2 番目のメンバーの名前を指定します。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m2
連鎖攻撃オブジェクトの 2 番目のメンバーのコンテキスト、パターン、および方向を設定します。
[edit security idp custom-attack ftpchain attack-type chain member m2] user@host# set attack-type signature context ftp-username user@host# set attack-type signature pattern .*root.* user@host# set attack-type signature direction client-to-server
チェイン・アタック・オブジェクトの 3 番目のメンバーの名前を指定します。
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m3
チェイン・アタック・オブジェクトの3番目のメンバーのアタック・タイプと方向を指定します。
[edit security idp custom-attack ftpchain attack-type chain member m3] user@host# set attack-type anomaly direction any
IDP サービスのトレース オプションとトレース ファイル情報を指定します。
[edit] user@host# set security idp traceoptions file idpd
トレース出力に含める必要のあるイベントやその他の情報を指定します。
[edit] user@host# set security idp traceoptions flag all
業績
設定モードから、 show security idp
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security idp idp-policy idpengine { rulebase-ips { rule 1 { match { from-zone any; source-address any; to-zone any; destination-address any; application default; attacks { custom-attacks ftpchain; } } then { action { no-action; } notification { log-attacks; } } } } } active-policy idpengine; custom-attack ftpchain { severity info; attack-type { chain { protocol-binding { application ftp; } scope session; order; member m1 { attack-type { signature { context ftp-banner; pattern .*vsFTPd.*; direction server-to-client; } } } member m2 { attack-type { signature { context ftp-username; pattern .*root.*; direction client-to-server; } } } member m3 { attack-type { anomaly { test LOGIN_FAILED; direction any; } } } } } } traceoptions { file idpd; flag all; }
デバイスの設定が完了したら、設定モードから commit
を入力します。
設定モードで commit
を入力すると、設定は内部で検証され、コミットされます。エラーが発生した場合、コミットは失敗し、エラーが報告されます。
検証
チェーン攻撃設定が正しく機能していることを確認するには、次のタスクを実行します。
設定の確認
目的
チェーン攻撃の構成が正しいことを確認します。
アクション
動作モードから、 show security idp policy-commit-status
コマンドを入力して、ポリシーのコンパイルまたはロード ステータスを確認します。
show security idp policy-commit-status
コマンドの出力は動的であるため、このコマンドの出力は 1 つではありません。
設定に従って攻撃が検出されていることを確認し、デバイスを介してトラフィックを渡して攻撃一致をトリガーします。たとえば、 show security idp status
コマンドを入力して、ポリシーが読み込まれているかどうかをチェックします。
user@host>
show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
show security idp attack table
コマンドを入力して攻撃トラフィックを通過させ、攻撃が検出されていることを確認します。
コマンドは、攻撃が検出された場合にのみ出力を表示します。
user@host>
show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
例:動的攻撃グループとカスタム攻撃グループを使用した攻撃グループの設定
この例では、FTP または Telnet サーバーを保護するために、IDP ポリシーで動的攻撃グループとカスタム攻撃グループを使用して攻撃グループを設定する方法を示します。
必要条件
開始する前に、以下の条件のいずれかに該当する場合にのみ、デバイスにセキュリティ パッケージをインストールしてください。
動的攻撃グループが設定されます。
カスタム攻撃グループには、事前定義された攻撃または攻撃グループが含まれます。
カスタム攻撃グループにカスタム攻撃のみが含まれている場合、セキュリティ パッケージ ライセンスは必要なく、セキュリティ パッケージをデバイスにインストールする必要はありません。セキュリティ パッケージをインストールするには、IDP セキュリティ パッケージ ライセンスが必要です。
概要
IDP には、多数の事前定義された攻撃オブジェクトが含まれています。IDPポリシーを管理および整理するために、攻撃オブジェクトをグループ化できます。攻撃オブジェクト グループには、2 つ以上のタイプの攻撃オブジェクトを含めることができます。攻撃グループは以下のように分類されます。
動的攻撃グループ - 特定のポリシーの一致基準を定義に基づいて攻撃オブジェクトを含みます。署名の更新時に、動的グループメンバーシップは、そのグループのポリシーの一致基準を定義に基づいて自動的に更新されます。例えば、動的攻撃グループ・フィルターを使用して、特定のアプリケーションに関連する攻撃を動的にグループ化できます。
カスタム攻撃グループ - 攻撃定義で指定されている攻撃のリストが含まれます。カスタム攻撃グループには、特定の事前定義攻撃、カスタム攻撃、事前定義攻撃グループ、または動的攻撃グループを含めることもできます。カスタム攻撃グループは、攻撃がグループ内で指定されているため、本質的に静的です。したがって、セキュリティ データベースが更新されても攻撃グループは変更されません。メンバーは、事前定義された攻撃、シグネチャ データベースからの事前定義された攻撃グループ、またはその他のカスタム攻撃および動的攻撃グループです。
この例では、IDPポリシーで攻撃グループを設定して、FTPまたはTelnetサーバーをカスタムおよび動的攻撃から保護します。
構成
プロシージャ
CLIクイック構成
この例を迅速に設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit]
階層レベルのCLIにコピー&ペーストして、設定モードから commit
を入力します。
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attack-groups cust-group set security idp idp-policy idpengine rulebase-ips rule 1 match attacks dynamic-attack-groups dyn2 set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack customftp severity info set security idp custom-attack customftp attack-type signature context ftp-username set security idp custom-attack customftp attack-type signature pattern .*guest.* set security idp custom-attack customftp attack-type signature direction client-to-server set security idp custom-attack-group cust-group group-members customftp set security idp custom-attack-group cust-group group-members ICMP:INFO:TIMESTAMP set security idp custom-attack-group cust-group group-members "TELNET - Major" set security idp custom-attack-group cust-group group-members dyn1 set security idp dynamic-attack-group dyn1 filters category values TROJAN set security idp dynamic-attack-group dyn2 filters direction expression and set security idp dynamic-attack-group dyn2 filters direction values server-to-client set security idp dynamic-attack-group dyn2 filters direction values client-to-server set security idp dynamic-attack-group dyn2 filters age-of-attack less-than value 7 set security idp dynamic-attack-group dyn2 filters vulnerability-type values Injection set security idp dynamic-attack-group dyn2 filters vendor Microsoft set security idp dynamic-attack-group dyn2 filters cvss-score less-than value 7 set security idp traceoptions file idpd set security idp traceoptions flag all
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、CLIユーザー ガイドの 設定モードにおけるCLIエディターの使用を参照してください。
動的攻撃グループとカスタム攻撃グループで攻撃グループを設定するには:
IDP ポリシーを作成します。
[edit] user@host# set security idp idp-policy idpengine
ルールベースをポリシーに関連付けます。
[edit security idp idp-policy idpengine] user@host# set rulebase-ips
ルールベースにルールを追加します。
[edit security idp idp-policy idpengine rulebase-ips] user@host# set rule 1
ルールの一致条件を定義します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
ルールの基準に一致するアプリケーションセット名を指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
カスタム攻撃グループの一致を指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attack-groups cust-group
動的攻撃グループの一致を指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks dynamic-attack-groups dyn2
ルールのアクションを指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
ルールの通知またはログのオプションを指定します。
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
IDP ポリシーを有効化します。
[edit] user@host# set security idp active-policy idpengine
カスタム攻撃の名前を指定します。
[edit security idp] user@host# set custom-attack customftp
カスタム攻撃の重大度を設定します。
[edit security idp custom-attack customftp] user@host# set severity info
攻撃の種類とコンテキストを設定します。
[edit security idp custom-attack customftp] user@host# set attack-type signature context ftp-username
攻撃のパターンを指定します。
[edit security idp custom-attack customftp] user@host# set attack-type signature pattern .*guest.*
攻撃の方向を指定します。
[edit security idp custom-attack customftp] user@host# set attack-type signature direction client-to-server
カスタム攻撃グループの名前を指定します。
[edit security idp] user@host# set custom-attack-group cust-group
カスタム攻撃グループに属する攻撃または攻撃グループのリストを指定します。
[edit security idp custom-attack-group cust-group] user@host# set group-members customftp user@host# set group-members ICMP:INFO:TIMESTAMP user@host# set group-members "TELNET - Major" user@host# set group-members dyn1
最初の動的攻撃グループの名前を指定します。
[edit security idp] user@host# set dynamic-attack-group dyn1
フィルターを構成し、フィルターのカテゴリ値を設定します。
[edit security idp dynamic-attack-group dyn1 ] user@host# set filters category values TROJAN
2 番目の動的攻撃グループの名前を指定します。
[edit security idp] user@host# set dynamic-attack-group dyn2
2 番目の動的攻撃グループのフィルターを構成し、このフィールドの方向とその値を設定します。
[edit security idp dynamic-attack-group dyn2 ] user@host# set filters direction expression and user@host# set filters direction values server-to-client user@host# set filters direction values client-to-server user@host# set filters age-of-attack less-than value 7 user@host# set filters cvss-score less-than value 7 user@host# set filters file-type MPEG user@host# set filters vendor Microsoft user@host# set filters vulnerability-type values Injection
IDP サービスのトレース オプションとトレース ファイル情報を指定します。
[edit] user@host# set security idp traceoptions file idpd
トレース出力に含める必要のあるイベントやその他の情報を指定します。
[edit] user@host# set security idp traceoptions flag all
業績
設定モードから、 show security idp
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security idp idp-policy idpengine { rulebase-ips { rule 1 { match { from-zone any; source-address any; to-zone any; destination-address any; application default; attacks { custom-attack-groups cust-group; dynamic-attack-groups dyn2; } } then { action { no-action; } notification { log-attacks; } } } } } active-policy idpengine; custom-attack customftp { severity info; attack-type { signature { context ftp-username; pattern .*guest.*; direction client-to-server; } } } custom-attack-group cust-group { group-members [ customftp ICMP:INFO:TIMESTAMP "TELNET - Major" dyn1 ]; } dynamic-attack-group dyn1 { filters { category { values TROJAN; } } } dynamic-attack-group dyn2 { filters { direction { expression and; values [ server-to-client client-to-server ]; } age-of-attack less-than { value 7; } vulnerability-type { values Injection; } vendor Microsoft; cvss-score less-than { value 7; } } } traceoptions { file idpd; flag all; }
デバイスの設定が完了したら、設定モードから commit
を入力します。
設定モードで commit
を入力すると、設定は内部で検証され、コミットされます。エラーが発生した場合、コミットは失敗し、エラーが報告されます。
検証
設定の確認
目的
設定が正しいことを確認します。
アクション
動作モードから、 show security idp policy-commit-status
コマンドを入力して、ポリシーのコンパイルまたはロード ステータスを確認します。
show security idp policy-commit-status
コマンドの出力は動的であるため、このコマンドの出力は 1 つではありません。
攻撃が構成に従って検出されていることを確認し、攻撃一致をトリガーするデバイスを介してトラフィックを渡します。たとえば、 show security idp status
コマンドを入力して、ポリシーが読み込まれているかどうかをチェックします。
user@host>
show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
show security idp attack table
コマンドを入力して攻撃トラフィックを通過させ、攻撃が検出されていることを確認します。
コマンドは、攻撃が検出された場合にのみ出力を表示します。
user@host>
show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
カスタム攻撃オブジェクト DFA 式
表 25 に、攻撃パターンを照合するための構文の例を示します。
構文例 |
形容 |
一致例 |
---|---|---|
こんにちは。。\B.0.1..00\B...世界 |
マッチングには 2 つの側面があります。 ビットマスク パターン \B.0.0.1 と一致する必要があります。00\B ビットマスク パターンの前後のバイト数 (. で表される) と一致する必要があります。 |
一致: こんにちは。。\B.0.11100\B...worldこんにちは..\B.0.10000\B...世界 一致しない: Hello.\B.0.1..00\B.worldこんにちは..\B.0.1..11\B...世界 |
\X01 86 A5 00 00\X |
指定された 5 バイトのパターンをそのまま使用します。 |
01 86 A5 00 00 |
(hello|world) |
hello または world が 1 回出現するパターン。 |
こんにちは 世界 |
(hello|world)+ |
hello または world が 1 回以上出現するパターン。 |
ハローワールド ワールドハロー こんにちはこんにちは |
\[こんにちは\] |
パターン こんにちは、大文字と小文字を区別しません。 |
こんにちは こんにちは こんにちは |
\uこんにちは\u |
パターンこんにちは、Unicodeは無神経です。 |
こんにちは 68656c6c6f |
hello\sワールド |
hello world というパターンで、2 つの単語を空白で区切ります。 |
ハローワールド |
[c-e]a(d|t) |
c、d、または e の最初の文字を持つパターン。真ん中の文字a;dまたはtで終わります。 |
猫 お父さん 食べる |
[^c-d]a(d|t) |
c、d、または e 以外の文字で始まるパターン。2 番目の文字 a があります。d または t で終わります。 |
流行 ザド |
A*B+C |
任意の数の文字 (0 を含む) のパターン。その後に 1 つ以上の B 文字が続きます。その後に C 文字が続きます。 |
紀元前 甲乙丙 aaaabbbbc |
T[株式会社] |
大文字の T で始まり、その後に大文字と小文字を区別しない k が続くパターン。 |
TKの Tkの |
([Tt])k |
大文字と小文字を区別しない t で始まり、その後に小文字の k が続くパターン。 |
Tkの Tkの |
海[で] |
Sea で始まり、その後に小文字の l、m、または n が続くパターン。 |
印章 縫い目 ショーン |
([B-D])を |
大文字の B、C、または D で始まり、その後に小文字の at が続くパターン。 |
蝙蝠 猫 ダット |
\0133\[こんにちは\]\0135 |
左角かっこで始まり、大文字と小文字を区別しない hello が続き、閉じ括弧で終わるパターン。この式では、\0 式を使用して、次の式が 8 進符号であることを示すと、左角かっこ (133) または右角かっこ (135) の 8 進符号が続きます。 |
[こんにちは] [HeLLo] |
例: パターン否定の使用
パターン否定を使用して、安全であることがわかっているパターンを除外し、他のすべてのパターンに一致させることができます。
たとえば、FTP サーバーへのトラフィックを検査する攻撃オブジェクトを設計しているとします。アカウントのユーザー名とパスワードは、許可されたユーザーのみが内部リソースにアクセスできるように適切に管理されていることがわかっています。しかし、ネットワークが成長し、新しいコンポーネントが追加されると、ユーザーアカウントが増加し、特定のコンポーネントへのネットワークアクセスが増加する可能性があります。この例では、内部ネットワーク上にFTPサーバーがあり、複数のユーザーアカウントが有効になっています。セキュリティを強化するには、FTP 管理者へのアクセスを制限します。
FTP サービス、ftp-username コンテキスト、およびパターン adminの攻撃オブジェクトを作成し、[ 否定(Negate )] チェックボックスをオンにします。その結果、 admin 以外のユーザーによるログイン試行にフラグを立てることができる攻撃オブジェクトが作成されます。この攻撃オブジェクトは、一致するトラフィックをログに記録またはドロップするルールで使用できます。
参照
例: ファイル拡張子の一致
この例では、拡張子 .emf (Windows 拡張メタファイル) と .wmf (Microsoft Windows メタファイル) を使用する Microsoft Windows メタファイルを検出します。
これらのファイルタイプのいずれかに一致させるには、単純な DFA 式を使用します。
.*\.\[w|emf\]
この式では、次のようになります。
ピリオドとアスタリスク (.*) の組み合わせは、1 つ以上の文字が必要であることを示します (ワイルドカード一致)。
バックスラッシュとピリオド文字(\.)の組み合わせは、ピリオド文字がエスケープされていることを示します(ピリオドはパターンに表示されます)。
式 ( ) の先頭と末尾の括弧は、グループを示します。e と w の間のパイプ文字 (e|w) は、文字間の OR 関係を示します。この式では、e または w がこの式と一致するようにパターンに出現する必要があります。存在は 1 つだけです。
左角かっこ (\[) は、右角かっこ (\]) が表示されるまで、すべての文字の大文字と小文字を区別しない一致の開始を示します。
閉じ括弧(\])は、大文字と小文字を区別しない一致の終了を示します。
参照
例:Apache Tomcat のサービス拒否攻撃
この例では、Apache Tomcat を実行している Web サーバーがあることを前提としています。セキュリティー管理者から Apache Tomcat の脆弱性が報告されたことが通知されたので、サーバーにパッチを適用するためのダウンタイムをスケジュールできるようになるまで、ネットワークを保護するためのカスタム攻撃オブジェクトを作成することにしました。
脆弱性(http://nvd.nist.gov/nvd.cfm?cvename=CAN-2002-0682)に対するCVEアドバイザリには、次の引用が含まれています。
A cross-site scripting vulnerability in Apache Tomcat 4.0.3 allows remote attackers to execute script as other web users via script in a URL with the /servlet/ mapping, which does not filter the script when an exception is thrown by the servlet.
この情報から、攻撃がHTTPを使用していることがわかります。次に、攻撃コードを見つける必要があります。このアドバイザリには、攻撃に関する詳細情報にリンクする参照も含まれています。残念ながら、参照されている Web ページには悪用コードは含まれていません。CVEアドバイザリから学習した情報を使用してWebを検索した後、 http://packetstormsecurity.nl/0210-exploits/neuter.c でいくつかの悪用コードを見つけます。スクリプトをコピーし、テスト ラボ内の攻撃者のコンピューターに移動します。
この攻撃オブジェクトを開発するには、次のようにします。
参照
特定のプロトコルの IDP テスト条件の一覧表示
IDP カスタム攻撃を設定する場合、特定のプロトコルのリスト テスト条件を指定できます。ICMP のテスト条件を一覧表示するには:
ICMP でサポートされているテスト条件を一覧表示し、設定する条件を選択します。サポートされているテスト条件は、
[edit security idp custom-attack test1 attack-type anomaly]
階層レベルのCLIで使用できます。user@host#set test icmp? Possible completions: <test> Protocol anomaly condition to be checked ADDRESSMASK_REQUEST DIFF_CHECKSUM_IN_RESEND DIFF_CHECKSUM_IN_RESPONSE DIFF_LENGTH_IN_RESEND
テスト条件を設定するサービスを設定します。
user@host# set service ICMP
テスト条件を設定します(プロトコル名の指定は不要です)。
user@host# set test ADDRESSMASK_REQUEST
デバイスの設定が完了したら、設定モードから
commit
を入力します。
IDPプロトコルデコーダーについて
プロトコルデコーダーは、侵入検出および防止(IDP)によって使用され、異常を探し、RFC標準が満たされていることを確認することで、プロトコルの整合性とプロトコルコンテキスト情報をチェックします。異常は、ヘッダー、メッセージ本文、またはそのプロトコルの RFC 標準から逸脱するその他の個々のフィールドなど、プロトコルの任意の部分である可能性があります。たとえば、SMTP の場合、SMTP MAIL TO が SMTP HELO の前にある場合、それは SMTP プロトコルの異常です。
プロトコルのコンテキスト情報が利用可能な場合、プロトコル デコーダーはそれらのコンテキスト内の攻撃をチェックします。たとえば、SMTP の場合、電子メールが user@company.com に送信される場合、user@company.com がコンテキスト情報であり、SMTP MAIL TO がコンテキストです。プロトコル デコーダーは、攻撃の検出にパケット全体ではなく、プロトコルのコンテキスト データを使用することで、全体的なパフォーマンスと精度を向上させます。
SMTP のプロトコル デコーダー チェックに一致するルールで構成されたポリシーがある場合、ルールがトリガーされ、適切なアクションが実行されます。
IDP モジュールには、構成済みのプロトコル デコーダーのセットが付属しています。これらのプロトコル デコーダーには、実行するさまざまなプロトコル固有のコンテキスト チェックのデフォルト設定があります。これらのデフォルトを使用することも、サイト固有のニーズに合わせて調整することもできます。使用可能なプロトコル デコーダーの一覧を表示するには、以下のコマンドを入力します。
user@host # show security idp sensor-configuration detector protocol-name ?
プロトコル デコーダーの現在のセットとその既定のコンテキスト値の詳細については、デバイスの /ar/db/idpd/sec-download フォルダーにあるdetector-capabilities.xml ファイルを表示できます。新しいセキュリティ パッケージをダウンロードすると、現在のプロトコルと既定のデコーダー コンテキスト値を一覧表示するこのファイルも受け取ります。
例:UNIX CDE/dtlogin の脆弱性
この例では、ネットワークにはUNIXを実行する複数のユーザーワークステーションとサーバーが含まれています。多くの UNIX オペレーティング・システムは、グラフィカル・ユーザー・インターフェースとして共通デスクトップ環境 (CDE) を使用します。セキュリティー管理者は、CDE の dtlogin プロセスに新しい脆弱性があることを通知します (dtlogin プロセスは CDE への GUI ログイン・プロセスを処理します)。
脆弱性(http://www.kb.cert.org/vuls/id/179804)に対するCERTアドバイザリには、次の情報が含まれています。
...The dtlogin program contains a "double-free" vulnerability that can be triggered by a specially crafted X Display Manager Control Protocol (XDMCP) packet... Block XDMCP traffic (177/udp) from untrusted networks such as the Internet...
この情報から、攻撃がXDMCPプロトコルパケットを使用し、UDP/177で実行されていることがわかります。次に、攻撃コードを見つける必要があります。このアドバイザリには、攻撃に関する詳細情報にリンクする参照も含まれています。http://lists.immunitysec.com/pipermail/dailydave/2004-March/000402.html の 1 つの参照は、攻撃を最初に報告した人物が攻撃を再現するスクリプトも作成していることを示しています。スクリプトを入手し、テスト ラボ内の攻撃者のコンピューターに移動します。
この攻撃オブジェクトを開発するには、次のようにします。
参照
例:ワームの検出
ワームやトロイの木馬は、ファイアウォールやその他の従来のセキュリティ対策を迂回してネットワークに侵入することがよくあります。この例では、ネットワーク上の Blaster ワームを検出するためのカスタム攻撃オブジェクトを作成します。
BlasterワームのCERTアドバイザリ(http://www.cert.org/advisories/CA-2003-20.html)には、次の情報が記載されています。
The W32/Blaster worm exploits a vulnerability in Microsoft's DCOM RPC interface...”
この情報から、この攻撃は以前に特定されたセキュリティ ホールである DCOM エクスプロイトを使用していることがわかります。次に、攻撃コードを見つける必要があります。このアドバイザリには、攻撃に関する詳細情報にリンクする参照も含まれています。残念ながら、参照されている Web ページには悪用コードは含まれていません。CERTアドバイザリから学習した情報を使用してWebを検索した後、PacketStorm(http://packetstormsecurity.com/0307-exploits/dcom.c)でエクスプロイトコードを見つけます。
この攻撃オブジェクトを開発するには、次のようにします。
参照
例:HTTP 脆弱性のエクスプロイトを検出するための複合シグネチャ
一部の攻撃は、パケット単位で見ると無害に見えるように細工されています。これらの攻撃では、複数のコンテキスト(サービス、非サービス、またはその両方)で複数のシグニチャパターンを検出する複合シグネチャを作成できます。
この例では、Microsoft FrontPage Server 拡張機能を使用する Web サーバーがあります。セキュリティ管理者は、FrontPage Server 拡張機能に新しいバッファ オーバーフローの脆弱性があることを通知します。
脆弱性 (http://www.securityfocus.com/bid/9007/discussion/) に対する BugTraq アドバイザリには、次の情報が含まれています。
Microsoft FrontPage Server Extensions are prone to a remotely exploitable buffer overrun vulnerability ... It is possible to trigger this condition with a chunked-encoded HTTP POST request...
次の概念実証の例も提供されています。
POST /_vti_bin/_vti_aut/fp30reg.dll HTTP/1.1 Transfer-Encoding: chunked PostLength PostData 0
さらに、コンパイルされたエクスプロイトへのリンクが含まれています。
この情報から、攻撃が HTTP プロトコルを使用しており、攻撃の少なくとも一部が POST メソッドを使用していることがわかります。コンパイルされたエクスプロイトへのリンクを使用してスクリプトを取得し、テストラボ内の攻撃者のコンピューターに移動します。
この攻撃オブジェクトを開発するには、次のようにします。
参照
例:タイムバインディングパラメータを使用したブルートフォース攻撃の検出
タイムバインディング制約では、トラフィックが一致しているとみなされるために、パターンが1分間に一定回数発生する必要があります。
時間バインディングパラメーターを署名と共に使用して、ブルートフォース攻撃の兆候を検出できます。ユーザーがパスワードを変更することは無害なイベントであり、通常はネットワーク上で時折見られます。しかし、1分間に何千ものパスワード変更を行うのは疑わしいものです。
ブルートフォース攻撃では、攻撃者はシステムの防御を突破しようとします。通常、宛先サーバーの容量を圧倒するか、認証資格情報の照合を試行錯誤を繰り返します。ブルートフォースログイン攻撃では、攻撃者は最初にユーザー名のリストとパスワード辞書を収集します。次に、攻撃者はツールを使用して、リスト内の最初のユーザーの辞書に最初のパスワードを入力し、一致するまですべてのユーザーのすべてのパスワードを試します。攻撃者がユーザー名とパスワードのすべての組み合わせを試みた場合、それらは常に成功します。ただし、通常、パスワード辞書は制限されており(すべての可能なパスワードが含まれているわけではありません)、攻撃ツールがパスワードの順列(文字の逆や大文字と小文字の変更など)を実行しないため、ブルートフォース攻撃はしばしば失敗します。
この例では、HTTP (Web ベースのアプリケーション) を介して認証されたユーザーの過剰な数のパスワード変更を検出する署名攻撃オブジェクトを作成します。
まず、攻撃パターンを設定します。
.*/\[changepassword\.cgi\]
この式では、次のようになります。
ドット スターの組み合わせ (.*) は、ワイルドカードの一致を示します。
文字の前のバックスラッシュは、その文字が正規表現を表しており、エスケープする必要があることを示します。この場合、文字は左括弧です。バックスラッシュは、この式では、ファイル拡張子マーカー (ドット) の前と右角かっこの前でも使用されます。
ユーザー・パスワードの変更に使用される cgi スクリプトの名前と、cgi 拡張モジュールが含まれています。
[コンテキスト] では、Web ベースのアプリケーションで発生するパスワードの変更を検出しようとしているため、一覧から [HTTP-URL-PARSED] を選択します。changepassword.cgi スクリプトを使用すると、URL の一部として表示されますが、名前を検索するには、URL を解析するように IDP シリーズ デバイスに指示する必要があります。
次に、タイムバインディングを設定します。
これらの設定では、次のようになります。
スコープは ピア に設定されているため、攻撃パターンは送信元または宛先に関係なくイベントに一致できます。
Count は、誤検知を避けるために大きな数値 (1000 まで) に設定されます。この値は、攻撃オブジェクトが一致する前に、changepassword.cgiスクリプトがURLに1000回出現する必要があることを意味します。
参照
参照: カスタム攻撃オブジェクト プロトコル番号
IDP システムで使用される表 26 プロトコル番号。
プロトコル名 |
プロトコル番号 |
---|---|
HOPOPT |
0 |
ICMP |
1 |
IGMPの |
2 |
GGPの |
3 |
IPIPの |
4 |
聖 |
5 |
TCPの |
6 |
CBT(アルコール飲料検査) |
7 |
EGPの |
8 |
IGPの |
9 |
BBN-RCC-月 |
10 |
NVP-II |
11 |
子犬 |
12 |
アーガス |
13 |
エムコン |
14 |
XNETの |
15 |
カオス |
16 |
UDP |
17 |
マルチプレクサ |
18 |
DCN-測定 |
19 |
HMPの |
20 |
PRMの |
21 |
XND-IDP |
22 |
TRUNK-1 (トランク 1) |
23 |
トランク-2 |
24 |
リーフ-1 |
25 |
LEAF-2 (葉-2) |
26 |
RDP(リモートデスクトッププロトコル) |
27 |
IRTPの |
28 |
ISO-TP4認証取得 |
29 |
NETBLT (ネットブルト) |
30 |
MFE-NSP |
31 |
メリットイン |
32 |
9 月 |
33 |
3パソコン |
34 |
IDPRの |
35 |
XTPの |
36 |
DDPの |
37 |
TP_PLUS_PLUS |
39 |
イリノイ |
40 |
IPV6 |
41 |
SDRP |
42 |
IPV6ルーティング |
43 |
IDV6 フラグメント |
44 |
IDRP |
45 |
RSVP |
46 |
GRE |
47 |
MHRP |
48 |
BNAの |
49 |
ESP |
50 |
あら |
51 |
I-NLSP |
52 |
くすねる |
53 |
ナープ |
54 |
モビール |
55 |
TLSPの |
56 |
スキップ |
57 |
IPV6-ICMP |
58 |
IPV6-NONXT |
59 |
IPV6-OPTS |
60 |
AHIPの |
61 |
CFTP |
62 |
ALNPの |
63 |
土-EXPAK |
64 |
クリプトラン |
65 |
RVDの |
66 |
IPPC |
67 |
ADFSP |
68 |
土・月曜 |
69 |
査証 |
70 |
IPCV |
71 |
CPNXの |
72 |
CPHBの |
73 |
WSNの |
74 |
PvPの |
75 |
BR-土-月 |
76 |
サンノースダコタ |
77 |
WB-モン |
78 |
WB-EXPAK社 |
79 |
ISO-IP |
80 |
VMTP |
81 |
セキュアVMTP |
82 |
ブドウ |
83 |
TTP(固定時間) |
84 |
NSFNET - IBPの |
85 |
DGPの |
86 |
TCFの |
87 |
EIGRPの |
88 |
OSPFIGP |
89 |
スプライトRPC |
90 |
LARP |
91 |
MTP(平均通信速度) |
92 |
AX_25 |
93 |
IPIPの |
94 |
MICP |
95 |
SCC-SPの |
96 |
イーサネット |
97 |
カプセル化 |
98 |
猿 |
99 |
グリニッジ標準時(GMTP) |
100 |
IFMPの |
101 |
PNNI |
102 |
PIM |
103 |
アリス |
104 |
SCPSの |
105 |
QNXの |
106 |
A/N |
107 |
IPCOMPの |
108 |
SNPの |
109 |
COMPAT-PEER |
110 |
IPZ-IN-IP |
111 |
VRRP |
112 |
PGMの |
113 |
HOP-O(ホップオー) |
114 |
L2TP |
115 |
DDXの |
116 |
IATPの |
117 |
STP |
118 |
SRP |
119 |
UTIの |
120 |
SMPの |
121 |
SSMの |
122 |
PTP(総合情報インターフェース) |
123 |
イシス |
124 |
火事 |
125 |
CRTPの |
126 |
CRUDPの |
127 |
SSCOPMCEの |
128 |
IPLTの |
129 |
SPSの |
130 |
パイプ |
131 |
SCTPの |
132 |
FC |
133 |
RSVP-E2E-無視 |
134 |
該当なし |
|
該当なし |
|
該当なし |
|
引っ込み思案 |
255 |
参照: 印刷不可および印刷可能なASCII文字
以下の表は、印刷不能文字と印刷可能文字のASCII表現についての詳細を示しています。
12 月 |
16 進 |
10月 |
焦がす |
コメント |
---|---|---|---|---|
0 |
0 |
000 |
ヌル |
ヌル |
1 |
1 |
001 |
SOH (ソー) |
見出しの開始 |
2 |
2 |
002 |
STXの |
テキストの先頭 |
3 |
3 |
003 |
ETXの |
テキストの終わり |
4 |
4 |
004 |
EOT |
送信終了 |
5 |
5 |
005 |
ENQ |
質問 |
6 |
6 |
006 |
ACKの |
承認する |
7 |
7 |
007 |
ベル |
鐘 |
8 |
8 |
010 |
理学士 |
バックスペース |
9 |
9 |
011 |
タブ |
水平タブ |
10 |
ある |
012 |
LFの |
改行 |
11 |
B |
013 |
VTの |
垂直タブ |
12 |
C |
014 |
フフ |
フォームフィード |
13 |
D |
015 |
CRの |
復帰 |
14 |
E |
016 |
だから |
シフトアウト |
15 |
F |
017 |
SIの |
シフトイン |
16 |
10 |
020 |
DLEの |
データリンクエスケープ |
17 |
11 |
021 |
DC1 |
デバイスコントロール1 |
18 |
12 |
022 |
DC2 |
デバイスコントロール2 |
19 |
13 |
023 |
DC3 |
デバイスコントロール 3 |
20 |
14 |
024 |
DC4 |
デバイスコントロール 4 |
21 |
15 |
025 |
NAKの |
否定的肯定応答 |
22 |
16 |
026 |
SYN |
同期アイドル |
23 |
17 |
027 |
ETB(イー・リーベルト) |
伝送ブロックの終了 |
24 |
18 |
030 |
缶 |
キャンセル |
25 |
19 |
031 |
全角 |
中期末 |
26 |
1A |
032 |
サブ |
代える |
27 |
1B |
033 |
Esc キー |
逃げる |
28 |
1Cの |
034 |
FSの |
ファイルセパレータ |
29 |
1D |
035 |
GSの |
グループセパレータ |
30 |
1E |
036 |
RS |
レコードセパレータ |
31 |
1階 |
037 |
私達 |
ユニットセパレータ |
12 月 |
16 進 |
10月 |
焦がす |
---|---|---|---|
32 |
20 |
040 |
間 |
33 |
21 |
041 |
! |
34 |
22 |
042 |
|
35 |
23 |
043 |
# |
36 |
24 |
044 |
$ |
37 |
25 |
045 |
% |
38 |
26 |
046 |
& |
39 |
27 |
047 |
|
40 |
28 |
050 |
( |
41 |
29 |
051 |
) |
42 |
2Aの場合 |
052 |
* |
43 |
2Bの |
053 |
+ |
44 |
2Cの |
054 |
, |
45 |
2D |
055 |
- |
46 |
2E(英語) |
056 |
. |
47 |
2階 |
057 |
/ |
48 |
30 |
060 |
0 |
49 |
31 |
061 |
1 |
50 |
32 |
062 |
2 |
51 |
33 |
063 |
3 |
52 |
34 |
064 |
4 |
53 |
35 |
065 |
5 |
54 |
36 |
066 |
6 |
55 |
37 |
067 |
7 |
56 |
38 |
070 |
8 |
57 |
39 |
071 |
9 |
58 |
3Aの |
072 |
: |
59 |
3Bの |
073 |
; |
60 |
3C |
074 |
< |
61 |
3D |
075 |
= |
62 |
3E(英語) |
076 |
> |
63 |
3階 |
077 |
? |
64 |
40 |
100 |
@ |
65 |
41 |
101 |
ある |
66 |
42 |
102 |
B |
67 |
43 |
103 |
C |
68 |
44 |
104 |
D |
69 |
45 |
105 |
E |
70 |
46 |
106 |
F |
71 |
47 |
107 |
G |
72 |
48 |
110 |
H |
73 |
49 |
111 |
私 |
74 |
4Aの |
112 |
J |
75 |
図4B |
113 |
K |
76 |
4Cの |
114 |
L |
77 |
4D |
115 |
M |
78 |
4E |
116 |
N |
79 |
4階 |
117 |
O |
80 |
50 |
120 |
P |
81 |
51 |
121 |
Q |
82 |
52 |
122 |
R |
83 |
53 |
123 |
S |
'84年 |
54 |
124 |
T |
85 |
55 |
125 |
U |
86 |
56 |
126 |
V |
87 |
57 |
127 |
W |
88 |
58 |
130 |
X |
89 |
59 |
131 |
Y |
90 |
5Aの |
132 |
Z |
91 |
5Bの |
133 |
[ |
92 |
5C |
134 |
\ |
93 |
5D |
135 |
] |
94 |
5E(英語) |
136 |
^ |
95 |
5階 |
137 |
_ |
96 |
60 |
140 |
` |
97 |
61 |
141 |
ある |
98 |
62 |
142 |
b |
99 |
63 |
143 |
c |
100 |
64 |
144 |
d |
101 |
65 |
145 |
e |
102 |
66 |
146 |
f |
103 |
67 |
147 |
g |
104 |
68 |
150 |
h |
105 |
69 |
151 |
私 |
106 |
図6A |
152 |
j |
107 |
6Bの |
153 |
k |
108 |
6C |
154 |
l |
109 |
6D |
155 |
m |
110 |
6E: |
156 |
n |
111 |
6階 |
157 |
o |
112 |
70 |
160 |
p |
113 |
71 |
161 |
q |
114 |
72 |
162 |
r |
115 |
73 |
163 |
s |
116 |
74 |
164 |
t |
117 |
75 |
165 |
u |
118 |
76 |
166 |
v |
119 |
77 |
167 |
w |
120 |
78 |
170 |
x |
121 |
79 |
171 |
y |
122 |
図7A |
172 |
z |
123 |
7Bの |
173 |
{ |
124 |
7Cの |
174 |
| |
125 |
7D |
175 |
} |
126 |
7Eの |
176 |
~ |
127 |
7階 |
177 |
デル |
128 |
80 |
200 |
Ç |
129 |
81 |
201 |
ü |
130 |
82 |
202 |
é |
131 |
83 |
203 |
â |
132 |
84 |
204 |
ä |
133 |
85 |
205 |
à |
134 |
86 |
206 |
å |
135 |
87 |
207 |
ç |
136 |
88 |
210 |
ê |
137 |
89 |
211 |
ë |
138 |
8Aの |
212 |
è |
139 |
8Bの |
213 |
ï |
140 |
8C |
214 |
î |
141 |
8D |
215 |
ì |
142 |
8Eの |
216 |
Ä |
143 |
8階 |
217 |
Å |
144 |
90 |
220 |
É |
145 |
91 |
221 |
æ |
146 |
92 |
222 |
Æ |
147 |
93 |
223 |
ô |
148 |
94 |
224 |
ö |
149 |
95 |
225 |
ò |
150 |
96 |
226 |
û |
151 |
97 |
227 |
ù |
152 |
98 |
230 |
ÿ |
153 |
99 |
231 |
Ö |
154 |
9Aの |
232 |
Ü |
155 |
9Bの |
233 |
¢ |
156 |
9C |
234 |
£ |
157 |
9D |
235 |
¥ |
158 |
9E |
236 |
P |
159 |
9階 |
237 |
ƒ |
160 |
A0の場合 |
240 |
á |
161 |
A1 (日本語) |
241 |
í |
162 |
A2:日本語 |
242 |
ó |
163 |
A3 (英語) |
243 |
ú |
164 |
A4型 |
244 |
ñ |
165 |
A5.さん |
245 |
Ñ |
166 |
A6 (日本語) |
246 |
ª |
167 |
A7のように |
247 |
º |
168 |
A8の |
250 |
¿ |
169 |
A9の |
251 |
¬ |
170 |
AAの |
252 |
|
171 |
血液型 |
253 |
1/2 |
172 |
交流 |
254 |
1/4 |
173 |
広告 |
255 |
¡ |
174 |
AEの |
256 |
" |
175 |
AFの |
257 |
" |
176 |
B0の |
260 |
¦ |
177 |
B1の |
262 |
¦ |
178 |
B2の |
262 |
¦ |
179 |
B3の |
263 |
¦ |
180 |
B4の |
264 |
¦ |
181 |
B5の |
265 |
¦ |
182 |
B6の |
266 |
¦ |
183 |
B7の |
267 |
+ |
184 |
キ8 |
270 |
+ |
185 |
B9の |
271 |
¦ |
186 |
文学士 |
272 |
¦ |
187 |
ビービー |
273 |
+ |
188 |
紀元前 |
274 |
+ |
189 |
BDの |
275 |
+ |
190 |
いる |
276 |
+ |
191 |
BFの |
277 |
+ |
192 |
C0の |
300 |
+ |
193 |
C1の |
301 |
- |
194 |
C2の |
302 |
- |
195 |
C3の |
303 |
+ |
196 |
C4の |
304 |
- |
197 |
C5の |
305 |
+ |
198 |
C6の |
306 |
¦ |
199 |
C7の |
307 |
¦ |
200 |
C8の |
310 |
+ |
201 |
C9の |
311 |
+ |
202 |
CA |
312 |
- |
203 |
シービー |
313 |
- |
204 |
CCの |
314 |
¦ |
205 |
CDの |
315 |
- |
206 |
西暦 |
316 |
+ |
207 |
CFの |
317 |
- |
208 |
D0の |
320 |
- |
209 |
D1の |
321 |
- |
210 |
D2の |
322 |
- |
211 |
D3の |
323 |
+ |
212 |
D4の |
324 |
+ |
213 |
D5の |
325 |
+ |
214 |
D6の |
326 |
+ |
215 |
デ7 |
327 |
+ |
216 |
D8の |
330 |
+ |
217 |
D9の |
331 |
+ |
218 |
DA |
332 |
+ |
219 |
DB |
333 |
¦ |
220 |
直流 |
334 |
_ |
221 |
DDの |
335 |
¦ |
222 |
DE |
336 |
¦ |
223 |
DF |
337 |
¯ |
224 |
E0 |
340 |
ある |
225 |
E1の |
341 |
ß |
226 |
E2の |
342 |
G |
227 |
E3の |
343 |
p |
228 |
E4 |
344 |
S |
229 |
E5の |
345 |
s |
230 |
E6 |
346 |
μ |
231 |
E7の |
347 |
t |
232 |
E8の |
350 |
F |
233 |
東9 |
351 |
T |
234 |
EA |
352 |
O |
235 |
EBの |
353 |
d |
236 |
欧州共同体 |
354 |
8 |
237 |
拘束形態素 |
355 |
f |
238 |
EEの |
356 |
e |
239 |
エフ |
357 |
n |
240 |
F0 キー |
360 |
= |
241 |
F1 |
361 |
+/- |
242 |
F2 キー |
362 |
= |
243 |
F3 キー |
363 |
= |
244 |
F4 キー |
364 |
( |
245 |
F5キー |
365 |
) |
246 |
F6 キー |
366 |
÷ |
247 |
F7キー |
367 |
˜ |
248 |
F8 キー |
370 |
° |
249 |
F9キー |
371 |
﹒ |
250 |
ファ |
372 |
﹒ |
251 |
FBの |
373 |
v |
252 |
FC |
374 |
n |
253 |
FDの |
375 |
² |
254 |
FEの |
376 |
¦ |
255 |
フフ |
377 |
|
例:IDP プロトコル デコーダーの設定
この例では、IDP プロトコル デコーダー調整可能を構成する方法を説明します。
必要条件
開始する前に、IDP プロトコル デコーダー機能を確認してください。 IDP プロトコル デコーダーについてを参照してください。
概要
Junos IDPモジュールには、設定済みのプロトコルデコーダのセットが同梱されています。これらのプロトコル デコーダーには、実行するさまざまなプロトコル固有のコンテキスト チェックのデフォルト設定があります。デフォルト設定を使用することも、サイト固有のニーズに合わせて調整することもできます。この例では、FTP のプロトコル デコーダーを調整する方法を示します。
構成
プロシージャ
手順
IDP プロトコル デコーダーのチューナブルを設定するには、次のようにします。
調整可能なパラメーターを持つプロトコルのリストを表示します。
[edit] user@host# edit security idp sensor-configuration detector protocol-name FTP
FTP プロトコルの調整可能なパラメーターを設定します。
[edit security idp sensor-configuration-detector protocol-name FTP] user@host# set tunable-name sc_ftp_failed_logins tunable-value 4 user@host# set tunable-name sc_ftp_failed_flags tunable value 1 user@host# set tunable-name sc_ftp_line_length tunable-value 1024 user@host# set tunable-name sc_ftp_password_length tunable-value 64 user@host# set tunable-name sc_ftp_sitestring_length tunable-value 512 user@host# set tunable-name sc_ftp_username_length tunable-value 32
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
検証
設定が正常に機能していることを確認するには、 show security idp status
コマンドを入力します。
複数のIDPディテクタのサポートについて
新しいセキュリティ パッケージを受信すると、攻撃定義と検出機能が含まれています。セキュリティ パッケージの任意のバージョンでは、攻撃定義は含まれている検出機能に対応します。デバイスでポリシー エージングが無効になっている場合(ポリシー エージング コマンドについては ステートメントを reset-on-policy 参照)、一度に有効なポリシーは 1 つだけです。ただし、ポリシーのエージングが有効になっていて、ポリシーの更新がある場合、新しいポリシーがロードされても、既存のポリシーはアンロードされません。したがって、両方のポリシーをデバイス上で有効にすることができます。この場合、既存のすべてのセッションは引き続き既存のポリシーで検査され、新しいセッションは新しいポリシーで検査されます。古いポリシーを使用している既存のセッションがすべて終了または期限切れになると、古いポリシーがアンロードされます。
ポリシーがロードされると、そのポリシーはディテクタにも関連付けられます。ロードされる新しいポリシーに、既存のポリシーですでに使用されているディテクタと一致するディテクタが関連付けられている場合、新しいディテクタはロードされず、両方のポリシーで 1 つの関連付けられたディテクタが使用されます。ただし、新しいディテクタが現在のディテクタと一致しない場合は、新しいディテクタが新しいポリシーとともにロードされます。この場合、読み込まれた各ポリシーは、攻撃検出に独自の関連する検出機能を使用します。
一度に最大 2 つの検出器をロードできることに注意してください。2 つのディテクタが(2 つ以上のポリシーによって)すでにロードされており、新しいポリシーをロードするには新しいディテクタもロードする必要がある場合、新しいディテクタをロードする前に、ロードされたディテクタの少なくとも 1 つをアンロードする必要があります。ディテクタがアンロードされる前に、対応するディテクタを使用するすべてのポリシーもアンロードされます。
次のコマンドを入力すると、現在のポリシーと対応するディテクタのバージョンを表示できます。
user@host> show security idp status
Junos OS リリース 18.4R1 以降、新しい IDP ポリシーが読み込まれると、新しく読み込まれたポリシーを使用して既存のセッションが検査され、既存のセッションは IDP 処理で無視されません。IDP インスペクションは、新しい IDP ポリシーがロードされた後もディテクタによって作成されたコンテキストベースの攻撃に対して続行されますが、新しいディテクタがロードされた新しいポリシーは例外です。
コンテンツの解凍について
HTTPなどのアプリケーションプロトコルでは、コンテンツを圧縮してからネットワーク経由で送信できます。署名パターンはエンコードされていないトラフィック データと一致するように書き込まれるため、パターンは圧縮されたコンテンツと一致しません。この場合、IDP 検出は回避されます。HTTP 圧縮コンテンツでの IDP 検出回避を回避するために、プロトコル コンテンツを解凍する IDP サブモジュールが追加されました。シグネチャパターンの照合は、解凍されたコンテンツに対して行われます。
すべての IPS カウンター値のステータスを表示するには、以下のコマンドを入力します。
user@host> show security idp counters ips
一部の攻撃は、圧縮されたコンテンツを介して導入されます。コンテンツが解凍されると、非常に大きなサイズに膨張し、貴重なシステムリソースを占有し、サービス拒否を引き起こす可能性があります。このタイプの攻撃は、圧縮されたデータサイズに対する圧縮解除されたデータサイズの比率によって認識できます。content-decompress-ratio-over-limit カウンタは、この比率を超えたインシデントの数を識別します。デフォルトの比率は、一般的な環境と一致していると見なされます。ただし、場合によっては、 content-decompress-ratio-over-limit
値をリセットしてこの比率を調整する必要があります。ただし、比率が高いほど、この種の攻撃が検出される可能性は低くなることに注意してください。
content-decompress-memory-over-limit カウンタは、圧縮解除されたデータの量が割り当てられたメモリを超えたインシデントの数を識別します。デフォルトのメモリ割り当てでは、同時に圧縮解除が必要なセッションの平均数に対して、セッションあたり 33 KB が提供されます。この値が環境と一致しているかどうかを判断するには、圧縮解除関連のカウンターからの値と、デバイスを通過する IDP セッションの総数を分析し、同時に圧縮解除が必要なセッションの数を推定します。これらの各セッションが圧縮解除に 33 KB のメモリを必要とすると仮定して、推定ニーズをデフォルト値と比較します。必要に応じて、 content-decompression-max-memory-kb
値をリセットすることでメモリ割り当てを調整できます。コンテンツの圧縮解除には大量のメモリ割り当てが必要なため、圧縮解除用の最大メモリ割り当てを増やすと、システムのパフォーマンスが影響を受けることに注意してください。
例:IDP コンテンツ圧縮解除の設定
この例では、IDP コンテンツの解凍を設定する方法を示しています。
必要条件
開始する前に、IDP コンテンツの解凍機能を確認してください。「コンテンツの圧縮解除について」を参照してください
概要
圧縮解除機能はデフォルトで無効になっています。この例では、ディテクタを有効にし、最大メモリを 50,000 キロバイトに設定し、最大解凍比を 16:1 に設定します。
解凍を有効にすると、デバイスのパフォーマンスが低下します。
構成
プロシージャ
手順
IDP コンテンツの解凍を設定するには:
ディテクタを有効にします。
[edit] user@host# set security idp sensor‑configuration detector protocol‑name HTTP tunable‑name sc_http_compress_inflating tunable‑value 1
手記:ディテクタを無効にするには、
tunable‑value
を 0 に設定します。必要に応じて、最大メモリをキロバイト単位で変更します。
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-memory-kb 50000
必要に応じて、最大減圧率を設定します。
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-ratio 16
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
検証
設定が正常に機能していることを確認するには、 show security idp status ips
コマンドを入力します。content-decompress カウンターは、圧縮解除処理に関する統計情報を提供します。
IDPシグネチャベース攻撃について
カスタム攻撃オブジェクトを設定するには、一意の名前を指定し、追加情報を指定すると、攻撃オブジェクトの検索と保守が容易になります。
攻撃オブジェクト定義の特定のプロパティーは、攻撃名、重大度レベル、サービスまたはアプリケーションのバインド、時間バインディング、プロトコルまたはポートのバインディングなど、すべてのタイプのアタックに共通です。一部のフィールドは攻撃タイプに固有であり、その特定の攻撃定義でのみ使用できます。
署名攻撃オブジェクトは、ステートフル攻撃署名 (攻撃の特定のセクション内に常に存在するパターン) を使用して、既知の攻撃を検出します。また、攻撃の実行に使用されたプロトコルやサービス、攻撃が発生するコンテキストも含まれます。次のプロパティはシグニチャ攻撃に固有であり、シグニチャ攻撃を構成するときに構成できます—攻撃コンテキスト、攻撃方向、攻撃パターン、およびプロトコル固有のパラメーター (TCP、UDP、ICMP、または IP ヘッダー フィールド)。
シグネチャベース攻撃を設定する場合、次の点に注意してください。
攻撃コンテキストと方向は、シグネチャ攻撃定義の必須フィールドです。
パターン否定は、パケット、回線、およびアプリケーションベースのコンテキストでのみサポートされ、ストリームおよび正規化されたストリームコンテキストではサポートされません。
プロトコル固有のパラメーターを設定する場合、フィールドを指定できるのは、IP、TCP、UDP、ICMP のいずれか 1 つのプロトコルのみです。
プロトコル バインディングを設定する場合、指定できるのは、IP、ICMP、TCP、UDP、RPC、またはアプリケーションの 1 つだけです。
IP—プロトコル番号は必須フィールドです。
TCPおよびUDP—単一ポート(
minimum-port
)またはポート範囲(minimum-port
およびmaximum-port
)のいずれかを指定できます。ポートを指定しない場合は、デフォルト値(0-65535
)が使用されます。RPC:プログラム番号は必須フィールドです。
Junos OS リリース 19.1R1 以降、HyperScan 拡張パラメーターを使用してシグネチャ ベースの攻撃を設定できます。Hyperscan拡張パラメータに最適な値を設定することで、攻撃パターンマッチングプロセスを大幅に強化できます。
拡張パラメーターを構成するには、[edit security idp custom-attack attack-name attack-type signature]
階層レベルで optional-parameters
オプションを含めます。optional-parameters
オプションでは、以下のパラメーターを設定できます。
min-offset
max-offset
min-length
Hyperscan APIの簡単な動作原理 – Hyperscanは、高性能と柔軟性を提供するように設計されたソフトウェア正規表現マッチングエンジンです。パターンのある署名が IDP ポリシーの一部として設定されている場合、そのパターンは正規表現として識別されます。ルーティングエンジンでは、Hyperscanはこの正規表現を入力として受け取り、それをコンパイルしてデータベースを形成し、パケット転送エンジンにプッシュします。パケットがパケット転送エンジンに入ると、パケット内のデータが検査され、データベースを使用して正規表現に一致するかどうかが判断されます。
IDP ポリシーが一連の署名で設定されている場合、決定論的有限オートマトン(DFA)グループが形成されます。DFA グループ内のすべてのシグネチャのパターンが HyperScan に渡され、パケット内のすべての攻撃を一度にチェックするために使用できる単一のデータベースが形成されます。攻撃ごとに個別のデータベースではなく、単一のデータベースが使用されるため、パターンマッチングプロセスは効率的です。
シグニチャーが拡張パラメーターで構成されている場合、Hyperscan API は構成されたパラメーターを考慮してデータベースを形成します。パターンマッチングプロセスは、この新しいデータベースを使用してパケット転送エンジンで発生します。これらのパラメーターを使用すると、実行時に不要な一致を処理するアプリケーションに依存するのではなく、パターンによって生成される一致のセットをコンパイル時に制限できます。
参照
例:IDP シグネチャベース攻撃の設定
この例では、シグネチャベースの攻撃オブジェクトを作成する方法を示しています。
必要条件
開始する前に、ネットワークインターフェイスを設定します。
概要
この例では、sig1 というシグニチャ攻撃を作成し、次のプロパティを割り当てます。
推奨アクション(パケットのドロップ):一致するパケットが宛先に到達する前にドロップしますが、接続は閉じません。
タイムバインディング—範囲を
source
に指定し、カウントを10
に指定します。スコープがsource
の場合、同じソースからのすべての攻撃がカウントされ、攻撃の数が指定された数(10
)に達すると、攻撃がログに記録されます。この例では、同じソースからの 10 回目の攻撃ごとにログに記録されます。攻撃コンテキスト(パケット)—パケット内の攻撃パターンを照合します。
攻撃方向(任意)—クライアントからサーバーへのトラフィックとサーバーからクライアントへのトラフィックの両方の方向からの攻撃を検出します。
[プロトコル(TCP)]:TTL 値 128 を指定します。
[シェルコード(Intel)]:Intel プラットフォームのシェルコードを検出するフラグを設定します。
プロトコルバインディング—TCPプロトコルとポート50〜100を指定します。
シグネチャベースの攻撃オブジェクトを設定した後、IDP ポリシー ルールの一致条件として攻撃を指定します。 例:IDP IPS RuleBase のルールの定義を参照してください。
構成
プロシージャ
CLIクイック構成
この例を迅速に設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit]
階層レベルのCLIにコピーアンドペーストして、設定モードから commit
を入力します。
set security idp custom-attack sig1 severity major set security idp custom-attack sig1 recommended-action drop-packet set security idp custom-attack sig1 time-binding scope source count 10 set security idp custom-attack sig1 attack-type signature context packet set security idp custom-attack sig1 attack-type signature shellcode intel set security idp custom-attack sig1 attack-type signature protocol ip ttl value 128 match equal set security idp custom-attack sig1 attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100 set security idp custom-attack sig1 attack-type signature direction any
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、CLIユーザー ガイドの 設定モードにおけるCLIエディターの使用を参照してください。
シグネチャベースの攻撃オブジェクトを作成するには:
攻撃の名前を指定します。
[edit] user@host# edit security idp custom-attack sig1
攻撃の共通プロパティを指定します。
[edit security idp custom-attack sig1] user@host# set severity major user@host# set recommended-action drop-packet user@host# set time-binding scope source count 10
攻撃の種類とコンテキストを指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature context packet
攻撃方向とシェルコードフラグを指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature shellcode intel
プロトコルとそのフィールドを設定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol ip ttl value 128 match equal
プロトコルバインディングとポートを指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100
方向を指定します。
[edit security idp custom-attack sig1] user@host# set attack-type signature direction any
業績
設定モードから、 show security idp
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security idp custom-attack sig1 { recommended-action drop-packet; severity major; time-binding { count 10; scope source; } attack-type { signature { protocol-binding { tcp { minimum-port 50 maximum-port 100; } } context packet; direction any; shellcode intel; protocol { ip { ttl { match equal; value 128; } } } } } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
IDPプロトコル異常ベース攻撃について
プロトコル異常攻撃オブジェクトは、プロトコル仕様(RFC および一般的な RFC 拡張)に違反する未知の攻撃または高度な攻撃を検出します。新しいプロトコル異常を作成することはできませんが、新しい攻撃オブジェクトを設定して、検出されたときにデバイスが事前定義されたプロトコル異常を処理する方法を制御することはできます。
次のプロパティは、プロトコル異常攻撃に固有です。
攻撃方向
試験条件
プロトコル異常ベース攻撃を設定する際は、以下の点に留意してください。
サービスまたはアプリケーションのバインドは、プロトコル異常攻撃の必須フィールドです。サポートされているアプリケーション以外にも、サービスにはIP、TCP、UDP、ICMP、およびRPCが含まれます。
攻撃方向とテスト条件のプロパティは、異常攻撃定義を構成するための必須フィールドです。
例:IDP プロトコル異常ベース攻撃の設定
この例では、プロトコル異常ベースの攻撃オブジェクトを作成する方法を示しています。
必要条件
開始する前に、ネットワークインターフェイスを設定します。
概要
この例では、anomaly1 というプロトコル異常攻撃を作成し、次のプロパティを割り当てます。
タイムバインディング—範囲を
peer
、カウントを2
に指定して、指定された回数、セッションの送信元IPアドレスと宛先IPアドレス間の異常を検出します。重大度(情報):条件に一致する攻撃に関する情報を提供します。
攻撃方向(任意)—クライアントからサーバーへのトラフィックとサーバーからクライアントへのトラフィックの両方の方向からの攻撃を検出します。
サービス(TCP)—TCPサービスを使用して攻撃を照合します。
テスト条件(OPTIONS_UNSUPPORTED)—特定の事前定義されたテスト条件に一致します。この例では、攻撃にサポートされていないオプションが含まれている場合、条件は一致することです。
シェルコード (sparc) - Sparc プラットフォームのシェルコードを検出するフラグを設定します。
プロトコル異常ベース攻撃オブジェクトを設定した後、IDP ポリシー ルールの一致条件として攻撃を指定します。 例:IDP IPS RuleBase のルールの定義を参照してください。
構成
プロシージャ
CLIクイック構成
この例を迅速に設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを [edit]
階層レベルのCLIにコピーアンドペーストして、設定モードから commit
を入力します。
set security idp custom-attack anomaly1 severity info set security idp custom-attack anomaly1 time-binding scope peer count 2 set security idp custom-attack anomaly1 attack-type anomaly test OPTIONS_UNSUPPORTED set security idp custom-attack sa set security idp custom-attack sa attack-type anomaly service TCP set security idp custom-attack sa attack-type anomaly direction any set security idp custom-attack sa attack-type anomaly shellcode sparc
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、CLIユーザー ガイドの 設定モードにおけるCLIエディターの使用を参照してください。
プロトコル異常ベース攻撃オブジェクトを作成するには:
攻撃の名前を指定します。
[edit] user@host# edit security idp custom-attack anomaly1
攻撃の共通プロパティを指定します。
[edit security idp custom-attack anomaly1] user@host# set severity info user@host# set time-binding scope peer count 2
攻撃の種類とテスト条件を指定します。
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly test OPTIONS_UNSUPPORTED
異常攻撃の他のプロパティを指定します。
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly service TCP user@host# set attack-type anomaly direction any user@host# attack-type anomaly shellcode sparc
業績
設定モードから、 show security idp
コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit] user@host# show security idp custom-attack anomaly1 { severity info; time-binding { count 2; scope peer; } attack-type { anomaly { test OPTIONS_UNSUPPORTED; service TCP; direction any; shellcode sparc; } } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
IDP ポリシー設定の概要
Junos OS の侵入検出および防止(IDP)ポリシーを使用すると、IDP 対応デバイスを通過するネットワーク トラフィックに対して、さまざまな攻撃検出および防御技術を選択的に適用できます。ゾーン、ネットワーク、アプリケーションに基づいて、トラフィックの一部を一致させるポリシールールを定義し、そのトラフィックに対してアクティブまたはパッシブな予防措置を講じることができます。
IDP ポリシーは、デバイスがネットワーク トラフィックを処理する方法を定義します。これにより、ネットワークを通過するトラフィックにさまざまな攻撃検出および防御技術を適用できます。
ポリシーはルールベースで構成され、各ルールベースには一連のルールが含まれています。トラフィックの一致条件、アクション、ロギング要件などのルールパラメータを定義し、そのルールをルールベースに追加します。1 つ以上のルール ベースにルールを追加して IDP ポリシーを作成した後、そのポリシーをデバイスのアクティブなポリシーとして選択できます。
IDP ポリシーを設定するには、次の手順を実行します。
セキュリティ ポリシーで IDP を有効にします。
IDPポリシールール、IDPルールベース、IDPルールアクションを設定します。例:IDP ルールベースへのルールの挿入、例:IDP IPS ルールベースのルールの定義、および例:セキュリティ デバイスへの書き換えルールの設定と適用のトピックを参照してください。
IDPカスタム署名を設定します。 「IDP シグニチャ ベース攻撃について 」および 「例:IDP シグネチャ ベース攻撃の設定 」のトピックを参照してください。
IDP 署名データベースを更新します。「 IDP 署名データベースの更新の概要」を参照してください。
IPv6秘密チャネルの概要
秘密チャネルは、既存の情報チャネルを介してオブジェクトを不正または違法な方法で転送することにより、情報の通信を可能にする攻撃手法です。秘密のチャネルの助けを借りて、攻撃者はネットワーク内で悪意のある活動を実行することができます。
Junos OS リリース 19.1R1 以降、IPv6 拡張ヘッダーの隠れチャネル識別と緩和が IDP(侵入検出および防止)でサポートされます。これは、既存のセキュリティシステムに違反する情報の転送です。IDP のセキュリティ パッケージには、IDP ポリシーで使用してトラフィックを攻撃と照合できる隠れチャネルの事前定義された IDP 攻撃オブジェクトのデータベースが含まれています。
このサポートの一環として、IPv6 拡張ヘッダーの異常を検出してフラグを立てることで、隠れチャネルを確立し、ポリシーで指定されたアクションを実行できます。隠れチャネル攻撃は、他の攻撃とともに Show security idp attack table
に表示されます。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。
interval interval-value
ステートメントは、カスタムのタイムバインディングを設定するために、
[edit security idp custom-attack attack-name time-binding]
階層で導入されています。
set security idp custom-attack
コマンドを使用してステートメントを検証できます。