このページの目次
IDPポリシーの攻撃オブジェクトとオブジェクトグループ
攻撃オブジェクト、アプリケーションシグネチャオブジェクト、およびサービスオブジェクトは、IDPポリシールールの定義に使用されます。ジュニパーネットワークスは、新たな脆弱性への対応として、攻撃データベースの更新を含むファイルをジュニパーのWebサイトで定期的に提供しています。このファイルをダウンロードして、新しい脅威からネットワークを保護できます。これらの攻撃オブジェクトとグループは、ネットワークトラフィック内の既知の攻撃パターンとプロトコルの異常を検出するように設計されています。攻撃オブジェクトとグループは、IDP ポリシールールの一致条件として設定できます。
詳細については、次のトピックを参照してください。
既知および未知の脆弱性に対処するためのアプローチを理解する
このトピックは、以下のセクションで構成されています。
既知の脆弱性
既知の脆弱性は、インターネット セキュリティ コミュニティで文書化されている脆弱性です。インターネットセキュリティコミュニティは、いくつかのセキュリティ組織、セキュリティアナリスト、およびセキュリティフォーラムで構成されています。セキュリティコミュニティは、インターネットを介して新しい攻撃を継続的に発見および分析し、この情報を交換します。このようにして、攻撃を迅速に特定し、特定し、真に理解することができます。
一部のセキュリティ アドバイザリには、実際の攻撃コードが含まれています。攻撃情報と攻撃コードを使用して、パケット情報とサービス コンテキストをキャプチャできます。この情報を使用して、カスタム署名攻撃オブジェクトを作成できます。
残念ながら、ほとんどのアドバイザリは、攻撃の説明とともに攻撃コードを掲載していません。攻撃コードを取得できない場合は、アドバイザリを注意深く読み、攻撃パケットの基本の再構築を試みます。
不明なソースから取得したコードを分離することを忘れないでください。
次の組織はセキュリティ コミュニティで活動しており、攻撃情報を見つけるための優れたリソースです。
NVD:National Vulnerability Database(http://nvd.nist.gov)。セキュリティコンテンツ自動化プロトコル(SCAP)を使用して表現された脆弱性管理データの米国政府のリポジトリ。
SAN - システム管理者、監査、ネットワーク、セキュリティ研究所(www.sans.org)。セキュリティ アラートを提供する情報セキュリティの研究、認定、および教育組織。また、http://www.incidents.org でインターネットストームセンター(ISC)をホストしています。
CVE—一般的な脆弱性と露出(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 には、重大、メジャー、マイナー、警告、情報の 5 つの重大度レベルがあります。各重大度内で、攻撃オブジェクトはカテゴリ別にグループ化されます。 |
ウェブサービス |
一般的な Web サービスによってオブジェクトを攻撃するグループ。これらのサービスは、重大度レベル (警告、重大、メジャー、マイナー、情報) 別にグループ化されます。 |
雑 |
パフォーマンス レベル別に攻撃オブジェクトをグループ化します。特定のレベルでIDPのパフォーマンスに影響を与える攻撃オブジェクトは、このカテゴリに分類されます。 |
応答 |
グループは、サーバーからクライアント方向に流れるトラフィック内のオブジェクトを攻撃します。 |
カスタム攻撃オブジェクトについて
カスタム攻撃オブジェクトを作成して新しい攻撃を検出したり、ネットワーク固有のニーズに合わせて定義済みの攻撃オブジェクトをカスタマイズしたりできます。
カスタム攻撃オブジェクトを構成するには、一意の名前を指定してから、一般的な説明やキーワードなどの追加情報を指定すると、攻撃オブジェクトの検索と保守が容易になります。
攻撃オブジェクト定義の特定のプロパティは、攻撃名、説明、重大度レベル、サービスまたはアプリケーションのバインド、時間のバインド、推奨されるアクション、プロトコルまたはポートのバインドなど、すべての種類の攻撃に共通です。一部のフィールドは攻撃タイプに固有であり、その特定のアタック定義でのみ使用できます。
IDP機能はデフォルトで有効になっており、ライセンスは必要ありません。IDP ポリシーのカスタム攻撃とカスタム攻撃グループは、有効なライセンスとシグニチャ データベースがデバイスにインストールされていない場合でも、設定およびインストールできます。
このトピックは、以下のセクションで構成されています。
- 攻撃名
- 過酷
- サービスとアプリケーションのバインド
- プロトコルとポートのバインディング
- 時間バインド
- 攻撃プロパティ (シグネチャ攻撃)
- 攻撃プロパティ(プロトコル異常攻撃)
- 攻撃特性(複合攻撃または連鎖攻撃)
攻撃名
オブジェクトの英数字の名前を指定します。攻撃名に、攻撃が使用するプロトコルを含めることができます。
Junos OS リリース 15.1X49-D140 以降、カスタム攻撃オブジェクト名に使用できる最大文字数は 60 文字です。ステートメントを検証するには、 set security idp custom-attack
コマンドを使用します。
過酷
ネットワークに対する攻撃の残忍さを指定します。重大度カテゴリは、残虐行為が多い順に、情報、警告、マイナー、メジャー、クリティカルです。重大な攻撃は最も危険です。通常、これらの攻撃はサーバーをクラッシュさせたり、ネットワークを制御したりしようとします。情報攻撃は最も危険性が低く、通常、ネットワーク管理者がセキュリティ システムの穴を発見するために使用します。
サービスとアプリケーションのバインド
サービスまたはアプリケーションバインディングフィールドは、攻撃がネットワークへの侵入に使用するサービスを指定します。
カスタム攻撃のサービスまたはプロトコル バインディングを指定します。両方を指定した場合は、サービスバインディングが優先されます。
any
- 正しいサービスが不明で、すべてのサービスのシグニチャを照合する場合は、any
を指定します。一部の攻撃では複数のサービスを使用してネットワークを攻撃するため、攻撃が接続に選択するサービスに関係なく、攻撃を検出するためにAny
サービス バインドを選択することをお勧めします。service
- ほとんどの攻撃は、特定のサービスを使用してネットワークを攻撃します。攻撃の実行に使用される特定のサービスをサービス バインドとして選択できます。サービス、サービスバインディング、およびコンテキストのリストについては、 IDPカスタム攻撃オブジェクトのサービスコンテキストについてを参照してください。
プロトコルとポートのバインディング
プロトコルまたはポート バインディングを使用すると、攻撃がネットワークに侵入するために使用するプロトコルを指定できます。ネットワーク プロトコルの名前またはプロトコル番号を指定できます。
カスタム攻撃のサービスまたはプロトコル バインディングを指定します。両方を指定した場合は、サービスバインディングが優先されます。
IP:プロトコル番号を使用して、サポートされているネットワーク層プロトコルのいずれかを指定できます。 表 11 に、さまざまなプロトコルのプロトコル番号を示します。
表 11: サポートされているプロトコルとプロトコル番号 プロトコル名
プロトコル番号
ティッカー
2
IP-IP
4
ティッカー
8
子犬
12
トイレットペーパー
29
IPV6
41
ルーティング
43
断片
44
出欠確認
46
ティッカー
47
ティッカー
50
あら
51
ICMPV6
58
何一つ
59
DSTOPTS
60
ティッカー
92
エンキャップ
98
ピム
103
コンプ
108
生
255
ICMP、TCP、UDP:特定のサービスを使用しない攻撃では、特定のポートを使用してネットワークを攻撃する可能性があります。一部のTCPおよびUDP攻撃は、標準ポートを使用してネットワークに入り、接続を確立します。
RPC - リモート プロシージャ コール(RPC)プロトコルは、プロセス間の対話をリモートで処理するために、分散処理アプリケーションによって使用されます。クライアントが RPC サーバーに対してリモート プロシージャ コールを行うと、サーバーはリモート プログラムで応答します。各リモートプログラムは、異なるプログラム番号を使用します。RPC を使用する攻撃を検出するには、サービス バインドを RPC として構成し、RPC プログラム ID を指定します。
表 12 に、主要なプロトコルのフォーマットの例を示します。
プロトコル名 |
プロトコル番号 |
形容 |
---|---|---|
ティッカー |
|
プロトコル名を指定します。 |
IPアドレス |
|
ネットワーク層のプロトコル番号を指定します。 |
ティッカー |
|
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
に設定されているとします。その場合、シグネチャによって攻撃イベントがトリガーされます。ピア:このオプションを指定すると、セッションの送信元 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
方向ではなく)単一方向を使用すると、パフォーマンスが向上し、誤検知が減り、検出精度が向上します。
クライアントからサーバーへ(クライアントからサーバーへのトラフィックでのみ攻撃を検知)
サーバーからクライアントへ(サーバーからクライアントへのトラフィックでのみ攻撃を検知)
任意(いずれかの方向の攻撃を検知)
攻撃パターン
攻撃パターンは、検出する攻撃のシグネチャです。シグネチャは、攻撃内に常に存在するパターンです。攻撃が存在する場合は、シグネチャも存在します。攻撃パターンを作成するには、まず攻撃を分析してパターン (コードのセグメント、URL、パケット ヘッダーの値など) を検出してから、そのパターンを表す構文式を作成する必要があります。パターンを否定することもできます。パターンの無効化は、攻撃で定義されたパターンが指定されたパターンと not 一致しない場合に、攻撃が一致したと見なされることを意味します。
パターン否定は、パケット、回線、およびアプリケーションベースのコンテキストでのみサポートされ、ストリームおよび正規化されたストリームコンテキストではサポートされません。
プロトコル固有のパラメーター
パケット ヘッダー内に存在する特定の値とオプションを指定します。これらのパラメータは、プロトコルによって異なります。カスタム攻撃定義では、TCP、UDP、または ICMP のいずれかのプロトコルに対してのみフィールドを指定できます。ただし、カスタム攻撃定義で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 フラグを設定する必要があります。 |
ティッカー |
設定されている場合、urgent フラグはパケットデータが緊急であることを示します。 |
ティッカー |
設定すると、確認フラグはパケットの受信を確認します。 |
ティッカー |
プッシュ フラグが設定されている場合、受信側は、シーケンス内の残りのパケットを待たずに、現在のシーケンス内のすべてのデータを宛先アプリケーション (ポート番号で識別) にプッシュする必要があることを示します。 |
ティッカー |
リセット フラグを設定すると、TCP 接続がリセットされ、既存のシーケンス内のすべてのパケットが破棄されます。 |
シン |
設定されている場合、SYN フラグは新しいセッションの要求を示します。 |
鰭 |
設定されている場合、final フラグは、パケット転送が完了し、接続を閉じることができることを示します。 |
R1 |
この予約ビット(1/2)は使用されません。 |
R2 |
この予約ビット(2/2)は使用されません。 |
表 15 に、UDP プロトコルを使用する攻撃に対して設定できるパケット ヘッダー フィールドとフラグを示します。
畑 |
形容 |
---|---|
送信元ポート |
攻撃デバイスのポート番号の値を指定します。 |
宛先ポート |
攻撃対象のポート番号の値を指定します。 |
データ長 |
データペイロードのバイト数の値を指定します。 |
表 16 に、ICMP プロトコルを使用する攻撃に対して設定できるパケット ヘッダー フィールドとフラグを示します。
畑 |
形容 |
---|---|
ICMP タイプ |
要求または応答パケットの機能を識別する基本コードの値を指定します。 |
ICMPコード |
指定されたタイプ内の要求または応答パケットの機能を識別する 2 次コードの値を指定します。 |
シーケンス番号 |
パケットの順序番号の値を指定します。この番号は、シーケンス全体に関連して要求または応答パケットの場所を識別します。 |
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>
攻撃特性(複合攻撃または連鎖攻撃)
複合攻撃オブジェクトまたはチェーン攻撃オブジェクトは、脆弱性を悪用するために複数の方法を使用する攻撃を検出します。このオブジェクトは、複数のシグネチャやプロトコルの異常を1つの攻撃オブジェクトに結合し、トラフィックが攻撃として識別される前に、複合攻撃オブジェクト内のシグネチャと異常を組み合わせたパターンをトラフィックに強制的に一致させます。シグネチャまたは異常が一致する必要がある順序を組み合わせて指定することで、デバイスがトラフィックを攻撃として識別する前に発生する必要があるイベントを非常に具体的に特定できます。
複合攻撃では、最低 2 つのメンバー (攻撃) を指定する必要があります。複合攻撃では最大 32 のメンバーを指定できます。メンバーは、シグネチャ攻撃または異常攻撃のいずれかです。
次のプロパティは、複合攻撃に固有のものです。
スコープ
スコープを使用すると、攻撃をセッション内で一致させるか、セッション内のトランザクション間で一致させるかを指定できます。指定したサービスが 1 つのセッション内の複数のトランザクションをサポートする場合は、一致を 1 つのセッションで実行するか、セッション内の複数のトランザクションで実行できるようにするかを指定することもできます。
session を指定すると、同じセッション内のオブジェクトに対して複数の一致が許可されます。
同じセッション内で発生する複数のトランザクション間でオブジェクトを照合する transaction を指定します。
命令
順序一致を使用して、各メンバーのシグネチャまたはプロトコルの異常に指定した順序で一致する必要がある複合攻撃オブジェクトを作成します。順序一致を指定しない場合、複合攻撃オブジェクトはすべてのメンバーと一致する必要がありますが、攻撃パターンまたはプロトコルの異常がランダムな順序で攻撃に現れる可能性があります。
リセット
同じセッション内で攻撃が検出されるたびに新しいログを生成することを指定します。このフィールドが no
に設定されている場合、攻撃はセッションに対して 1 回だけログに記録されます。
式 (ブール式)
ブール式フィールドを使用すると、順序一致関数が無効になります。ブール式フィールドは、メンバー名またはメンバー インデックス プロパティを使用します。次の 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 プロトコル デコーダーによって生成される一部のサービス コンテキストに対する変更について説明します。 署名更新#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 メソッドに一致する結果を記録した結果を保存する価値がある場合にのみ使用してください。そうでない場合は、パフォーマンスを向上させるために省略します。http-request-method を使用する場合は、複合チェーンで最初に順序付けします。 http-url-parsed コンテキストを使用して、URL で識別可能な攻撃シグネチャと照合します。このコンテキストを使用して、変数パラメーターの前に表示される URL のパターン (疑問符 (?) の前の URL の部分) に一致させます。 1 つ以上の http-variable-parsed コンテキストを使用して、URL 変数パラメーター (疑問符 (?) の後の URL の部分で、通常はアンパサンド (&) で区切られています) と一致させます。 |
例: HTML テキストに表示されるパターンのコンテキストの置換
HTTP 検出エンジンによって生成される各コンテキストには、パフォーマンス コストがあります。コンテキスト http-text-html と http-text-html-body は同じ目的を果たします。コンテキストの数を減らすと、パフォーマンスが向上します。
表 20 は、 Update #1972 以前の署名と更新後の署名のプロパティを示しています。これは単純な変更です。コンテキストのみを変更します。パターンやその他のプロパティを変更する必要はありません。
更新前 |
更新後 |
|
---|---|---|
文脈 |
http-text-html-body |
http-text-html |
パターン |
.*<span></span>.* |
.*<span></span>.* |
例: URL に表示されるパターンのコンテキストを置き換える
このセクションは、次の 2 つの部分で構成されています。
要求方法に一致する署名
以前に要求メソッド GET、POST、または HEAD と一致したカスタム攻撃オブジェクトを変更する場合は、これらの要求メソッド パターンとの一致が効果的であったかどうかを検討してください。生成された各コンテキストにはパフォーマンスコストがあることに注意してください。リクエストメソッドが結果に不可欠でない場合は、この機会にそれなしで署名を作り直してください。
表 21 と 表 22 に、 Update #1972 以前の署名と、更新後の複合署名のプロパティを示します。この例では、要求メソッドに関心を保持します。
更新前の署名 |
|
---|---|
スコープ |
– |
文脈 |
http-get-url-parsed-param |
パターン |
\[/viper/vegaspalms/\].* |
更新後の複合シグネチャ |
||
---|---|---|
|
メートル01 |
メートル02 |
スコープ |
トランザクション |
|
文脈 |
http-request-method |
http-url-parsed |
パターン |
|
\[/viper/vegaspalms/\].* |
URL 文字列と URL 変数に一致するシグネチャ
一般に、1 つのパターンを複数のコンテキストに分割すると、パフォーマンスにプラスまたはマイナスの影響を与える可能性があります。実稼働ネットワークに攻撃オブジェクトを展開する前に、変更をテストしてパフォーマンスへの影響を把握する必要があります。 表 23 および 表 24 に示す例では、URL マッチングを複数のコンテキストに分割しています。セキュリティ チームは、ここで説明する推奨事項のパフォーマンスをテストしました。
更新前の署名 |
|
---|---|
スコープ |
– |
文脈 |
http-get-url-param-parsed-param |
パターン |
|
更新後の複合シグネチャ |
||||
---|---|---|---|---|
メートル01 |
メートル02 |
M03 |
M04 |
|
スコープ |
トランザクション |
|||
文脈 |
http-url-parsed |
http-variable-parsed |
http-variable-parsed |
http-variable-parsed |
パターン |
|
|
|
|
関連項目
例:複合攻撃またはチェーン攻撃の設定
この例では、特定の一致条件に対して複合攻撃または連鎖攻撃を設定する方法を示します。複合攻撃オブジェクトまたはチェーン攻撃オブジェクトは、脆弱性を悪用するために複数の方法を使用する攻撃を検出するように構成できます。
必要条件
開始する前に、デバイスで IDP がサポートされ、有効になっている必要があります。
概要
複合攻撃オブジェクトまたはチェーン攻撃オブジェクトは、シグネチャと異常を組み合わせて 1 つの攻撃オブジェクトを形成することができます。1 つの攻撃オブジェクトには、次のものを含めることができます。
2 つ以上の署名
2 つ以上の異常
シグネチャと異常の組み合わせ
複合または連鎖攻撃オブジェクトは、複数のシグネチャやプロトコル異常を1つの攻撃オブジェクトに結合し、トラフィックが攻撃として識別される前に、複合攻撃オブジェクト内のシグネチャと異常を組み合わせたパターンをトラフィックに強制的に一致させます。これらのオブジェクトは、誤検知を減らし、検出精度を高めるためにも使用されます。これにより、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 つ以上の種類の攻撃オブジェクトを含めることができます。攻撃グループは次のように分類されます。
動的攻撃グループ - 特定の一致条件に基づく攻撃オブジェクトが含まれます。署名の更新中、動的グループ メンバーシップは、そのグループの一致条件に基づいて自動的に更新されます。たとえば、動的攻撃グループ フィルターを使用して、特定のアプリケーションに関連する攻撃を動的にグループ化できます。
カスタム攻撃グループ - 攻撃定義で指定された攻撃の一覧が含まれます。カスタム攻撃グループには、特定の定義済み攻撃、カスタム攻撃、事前定義済み攻撃グループ、または動的攻撃グループを含めることもできます。カスタム攻撃グループは、グループ内で攻撃が指定されるため、本質的に静的です。したがって、セキュリティ データベースが更新されても、攻撃グループは変更されません。メンバーは、シグネチャ データベースからの事前定義攻撃または事前定義攻撃グループ、またはその他のカスタム攻撃および動的攻撃グループです。
この例では、カスタムおよび動的攻撃からFTPまたはTelnetサーバーを保護するために、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-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...世界こんにちは..\B.0.10000\B...世界 一致しない: こんにちは。\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 が 1 回発生するパターン。 |
こんにちは 世界 |
(こんにちは|世界)+ |
hello または world が 1 回以上発生するパターン。 |
こんにちは世界 世界こんにちは こんにちはこんにちは |
\[こんにちは\] |
パターンこんにちは、大文字と小文字は区別されません。 |
こんにちは こんにちは こんにちは |
\uこんにちは\u |
パターンこんにちは、ユニコードは鈍感です。 |
こんにちは 68656c6c6f |
こんにちは\sworld |
パターン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 |
任意の数の文字(ゼロを含む)を含むパターン。その後に1つ以上のb文字が続きます。その後に C 文字が続きます。 |
紀元前 甲乙丙 aaaabbbbc |
ティー[株式会社] |
大文字の T で始まり、大文字と小文字を区別しない k が続くパターン。 |
ティッカー ティッカー |
([Tt])k |
大文字と小文字を区別しない t で始まり、その後に小文字の k が続くパターン。 |
ティッカー ティッカー |
海[インチ] |
Sea で始まり、その後に小文字の l、m、または n が続くパターン。 |
印章 縫い目 ショーン |
([B-D])at |
大文字の B、C、または D で始まり、その後に小文字の at が続くパターン。 |
蝙蝠 猫 ダット |
\0133\[こんにちは\]\0135 |
左大括弧で始まり、大文字と小文字を区別しない hello が続き、右大括弧で終わるパターン。この式は、\0式を使用して、次の式が8進コードであることを意味し、次に左括弧(133)または閉じ括弧(135)の8進コードが続きます。 |
[こんにちは] [HeLLo] |
例: パターン否定の使用
パターン否定を使用して、安全であることがわかっているパターンを除外し、他のすべてのパターンに一致させることができます。
例えば、FTP サーバーへのトラフィックを検査する攻撃オブジェクトを設計しているとします。アカウントのユーザー名とパスワードは、許可されたユーザーのみが内部リソースにアクセスできるように、適切に管理されていることをご存知でしょう。しかし、ネットワークが拡大し、新しいコンポーネントが追加されると、ユーザーアカウントが急増し、特定のコンポーネントへのネットワークアクセスが増加する可能性があります。この例では、内部ネットワーク上に複数のユーザー アカウントが有効になっている FTP サーバーがあります。セキュリティを強化するには、FTP 管理者へのアクセスを制限する必要があります。
FTP サービス、ftp ユーザー名コンテキスト、およびパターン adminの攻撃オブジェクトを作成し、[否定] チェック ボックスをオンにし ます 。その結果、 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 でサポートされているテスト条件を一覧表示し、設定するテスト条件を選択します。サポートされているテスト条件は、CLI の
[edit security idp custom-attack test1 attack-type anomaly]
階層レベルで使用できます。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 メール 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 で実行されることがわかります。次に、攻撃コードを見つける必要があります。このアドバイザリには、攻撃に関する詳細情報へのリンクを含む参照も含まれています。1 つの参照 http://lists.immunitysec.com/pipermail/dailydave/2004-March/000402.html は、攻撃を最初に報告した人物が、攻撃を再現するスクリプトも記述していることを示しています。スクリプトを取得し、テスト ラボ内の攻撃者のコンピューターに移動します。
この攻撃オブジェクトを開発するには:
関連項目
例: ワームの検出
ワームやトロイの木馬は、ファイアウォールやその他の従来のセキュリティ手段を迂回してネットワークに侵入することがよくあります。この例では、カスタム攻撃オブジェクトを作成して、ネットワーク上の 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分以内に一定回数発生する必要があります。これにより、トラフィックは一致と見なされます。
署名と共に time binding パラメーターを使用して、ブルートフォース攻撃の兆候を検出できます。ユーザーがパスワードを変更することは無害なイベントであり、通常はネットワーク上で時折見られます。ただし、1分間に数千回のパスワード変更が行われると疑わしい場合があります。
ブルート フォース攻撃では、攻撃者は、通常、宛先サーバーの容量を圧倒するか、認証資格情報の照合を繰り返し試行することにより、完全な力を使用してシステム防御を突破しようとします。ブルートフォースログイン攻撃では、攻撃者は最初にユーザー名のリストとパスワード辞書を収集します。次に、攻撃者は、リストの最初のユーザーの辞書に最初のパスワードを入力し、一致するまですべてのユーザーのすべてのパスワードを試すツールを使用します。攻撃者がユーザー名とパスワードのすべての組み合わせを試みた場合、常に成功します。ただし、ブルートフォース攻撃は、パスワード辞書が通常制限されており(すべての可能なパスワードが含まれているわけではない)、攻撃ツールがパスワードの順列を実行しないため(文字の反転や大文字と小文字の変更など)、失敗することがよくあります。
この例では、HTTP(Webベースのアプリケーション)を介して認証されたユーザーの過剰な数のパスワード変更を検出する署名攻撃オブジェクトを作成します。
まず、攻撃パターンを構成します。
.*/\[changepassword\.cgi\]
この式では:
ドットの星の組み合わせ (.*) は、ワイルドカードの一致を示します。
文字の前のバックスラッシュは、その文字が正規表現を表しており、エスケープする必要があることを示します。この場合、文字は左括弧です。バックスラッシュは、この式ではファイル拡張子マーカー (ドット) の前と右角かっこの前にも使用されます。
ユーザーパスワードの変更に使用されるcgiスクリプトの名前と、cgi拡張子が含まれています。
コンテキストについては、Web ベースのアプリケーションで発生するパスワードの変更を検出しようとしているため、一覧から [HTTP-URL-PARSED ] を選択します。changepassword.cgiスクリプトを使用すると、URLの一部として表示されますが、名前を見つけるには、IDPシリーズデバイスにURLを解析するように指示する必要があります。
次に、時間バインドを構成します。
これらの設定では:
スコープはピア に設定されているため、 攻撃パターンは送信元または送信先に関係なくイベントと一致する可能性があります。
Count は、誤検知を避けるために大きな数値 (1000 まで) に設定されます。この値は、攻撃オブジェクトが一致する前に、changepassword.cgi スクリプトが URL に 1000 回出現する必要があることを意味します。
関連項目
リファレンス: カスタム攻撃オブジェクトのプロトコル番号
IDP システムで使用されるプロトコル番号を表 26 に示します。
プロトコル名 |
プロトコル番号 |
---|---|
ホポプト |
0 |
ティッカー |
1 |
ティッカー |
2 |
ティッカー |
3 |
IPIP |
4 |
聖 |
5 |
TCP |
6 |
ティッカー |
7 |
ティッカー |
8 |
ティッカー |
9 |
BBN-RCC-MON |
10 |
NVP-II |
11 |
子犬 |
12 |
アーガス |
13 |
エムコン |
14 |
ティッカー |
15 |
カオス |
16 |
ティッカー |
17 |
マルチプレクサ |
18 |
DCN-MEAS |
19 |
ティッカー |
20 |
ティッカー |
21 |
XND-IDP |
22 |
トランク-1 |
23 |
トランク-2 |
24 |
リーフ-1 |
25 |
リーフ-2 |
26 |
ティッカー |
27 |
ティッカー |
28 |
ISO-TP4 |
29 |
ネットブルト |
30 |
MFE-NSP |
31 |
メリットインp |
32 |
9 月 |
33 |
3パソコン |
34 |
ティッカー |
35 |
ティッカー |
36 |
ティッカー |
37 |
TP_PLUS_PLUS |
39 |
イリノイ |
40 |
IPV6 |
41 |
ティッカー |
42 |
IPV6 ルーティング |
43 |
IDV6フラグメント |
44 |
IDRP |
45 |
出欠確認 |
46 |
ティッカー |
47 |
ティッカー |
48 |
ティッカー |
49 |
ティッカー |
50 |
あら |
51 |
I-NLSP |
52 |
くすねる |
53 |
ナープ |
54 |
モビール |
55 |
ティッカー |
56 |
スキップ |
57 |
IPV6-ICMP |
58 |
IPV6-NONXT |
59 |
IPV6-OPTS |
60 |
AHIP |
61 |
ティッカー |
62 |
ティッカー |
63 |
SAT-EXPAK |
64 |
クリプトラン |
65 |
ティッカー |
66 |
ティッカー |
67 |
ティッカー |
68 |
土曜・門 |
69 |
査証 |
70 |
ティッカー |
71 |
ティッカー |
72 |
ティッカー |
73 |
ティッカー |
74 |
ティッカー |
75 |
ブラジル・サット・モン |
76 |
サンドン |
77 |
WB-MON |
78 |
WB-EXPAK |
79 |
ISO-IP |
80 |
ティッカー |
81 |
SECURE-VMTP |
82 |
ブドウ |
83 |
ティッカー |
84 |
NSFNET-IBP |
85 |
DGP |
86 |
ティッカー |
87 |
ティッカー |
88 |
OSPFIGP |
89 |
スプライト-RPC |
90 |
ラープ |
91 |
ティッカー |
92 |
AX_25 |
93 |
IPIP |
94 |
MICP |
95 |
SCC-SP |
96 |
イーサリプ |
97 |
エンキャップ |
98 |
猿 |
99 |
ティッカー |
100 |
ティッカー |
101 |
ティッカー |
102 |
ピム |
103 |
アリス |
104 |
ティッカー |
105 |
ティッカー |
106 |
A / N |
107 |
イプコンプ |
108 |
SNP |
109 |
COMPAT-PEER |
110 |
IPZ-IN-IP |
111 |
ティッカー |
112 |
ティッカー |
113 |
ホップオー |
114 |
L2TP |
115 |
ティッカー |
116 |
ティッカー |
117 |
ティッカー |
118 |
ティッカー |
119 |
ティッカー |
120 |
ティッカー |
121 |
ティッカー |
122 |
ティッカー |
123 |
イシス |
124 |
火事 |
125 |
ティッカー |
126 |
クルップ |
127 |
ティッカー |
128 |
IPLT |
129 |
ティッカー |
130 |
パイプ |
131 |
ティッカー |
132 |
ティッカー |
133 |
RSVP-E2E-無視 |
134 |
該当なし |
|
該当なし |
|
該当なし |
|
引っ込み思案 |
255 |
参考:印刷不可および印刷可能なASCII文字
次の表は、印刷不可文字と印刷可能文字の ASCII 表現の詳細を示しています。
12 月 |
16 進 |
10月 |
焦がす |
コメント |
---|---|---|---|---|
0 |
0 |
000 |
ヌル |
ヌル |
1 |
1 |
001 |
ソー |
見出しの開始 |
2 |
2 |
002 |
ティッカー |
テキストの先頭 |
3 |
3 |
003 |
ティッカー |
テキストの終わり |
4 |
4 |
004 |
EOT |
送信終了 |
5 |
5 |
005 |
英語 |
質問 |
6 |
6 |
006 |
ティッカー |
承認する |
7 |
7 |
007 |
ベル |
鐘 |
8 |
8 |
010 |
理学士 |
バックスペース |
9 |
9 |
011 |
タブ |
水平タブ |
10 |
ある |
012 |
ティッカー |
ラインフィード |
11 |
B |
013 |
ティッカー |
垂直タブ |
12 |
C |
014 |
ティッカー |
フォームフィード |
13 |
D |
015 |
ティッカー |
復帰 |
14 |
E |
016 |
だから |
シフトアウト |
15 |
F |
017 |
SI |
シフトイン |
16 |
10 |
020 |
ティッカー |
データリンクエスケープ |
17 |
11 |
021 |
DC1 |
デバイスコントロール1 |
18 |
12 |
022 |
DC2 |
デバイスコントロール2 |
19 |
13 |
023 |
DC3 |
デバイスコントロール 3 |
20 |
14 |
024 |
DC4 |
デバイスコントロール 4 |
21 |
15 |
025 |
ナック |
否定的認知 |
22 |
16 |
026 |
シン |
同期アイドル |
23 |
17 |
027 |
ティッカー |
送信ブロックの終了 |
24 |
18 |
030 |
缶 |
キャンセル |
25 |
19 |
031 |
全角 |
メディアの終わり |
26 |
1A |
032 |
サブ |
代える |
27 |
1B |
033 |
Esc キー |
逃げる |
28 |
1C |
034 |
ティッカー |
ファイル区切り文字 |
29 |
1D |
035 |
ティッカー |
グループ区切り記号 |
30 |
1E |
036 |
ティッカー |
レコード区切り記号 |
31 |
1F |
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 |
2F |
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 |
3F |
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 |
7F |
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 |
回答1 |
241 |
í |
162 |
A2 |
242 |
ó |
163 |
A3サイズ |
243 |
ú |
164 |
A4サイズ |
244 |
ñ |
165 |
A5サイズ |
245 |
Ñ |
166 |
A6 |
246 |
ª |
167 |
A7サイズ |
247 |
º |
168 |
回答8 |
250 |
¿ |
169 |
A9 |
251 |
¬ |
170 |
AA |
252 |
|
171 |
血液型 |
253 |
1/2 |
172 |
交流 |
254 |
1/4 |
173 |
広告 |
255 |
¡ |
174 |
ティッカー |
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 |
B8クラス |
270 |
+ |
185 |
B9クラス |
271 |
¦ |
186 |
文学士 |
272 |
¦ |
187 |
ティッカー |
273 |
+ |
188 |
紀元前 |
274 |
+ |
189 |
ティッカー |
275 |
+ |
190 |
いる |
276 |
+ |
191 |
ティッカー |
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 |
カナダ |
312 |
- |
203 |
ティッカー |
313 |
- |
204 |
ティッカー |
314 |
¦ |
205 |
ティッカー |
315 |
- |
206 |
西暦 |
316 |
+ |
207 |
ティッカー |
317 |
- |
208 |
D0 |
320 |
- |
209 |
D1 |
321 |
- |
210 |
D2 |
322 |
- |
211 |
D3 |
323 |
+ |
212 |
D4 |
324 |
+ |
213 |
D5 |
325 |
+ |
214 |
D6 |
326 |
+ |
215 |
D7 |
327 |
+ |
216 |
D8 キー |
330 |
+ |
217 |
D9 |
331 |
+ |
218 |
ダ |
332 |
+ |
219 |
デシベル |
333 |
¦ |
220 |
直流 |
334 |
_ |
221 |
ティッカー |
335 |
¦ |
222 |
DE |
336 |
¦ |
223 |
ティッカー |
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 |
E9 |
351 |
T |
234 |
EA |
352 |
O |
235 |
ティッカー |
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 |
ティッカー |
373 |
v |
252 |
ティッカー |
374 |
n |
253 |
ティッカー |
375 |
² |
254 |
ティッカー |
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ディテクタのサポートについて
新しいセキュリティ パッケージを受信すると、攻撃定義とディテクタが含まれています。セキュリティ パッケージのどのバージョンでも、攻撃定義は付属のディテクタの機能に対応します。デバイスでポリシーエージングが無効になっている場合(ポリシーエージングコマンドについては、ポリシーのリセットオンポリシーステートメントを参照)、一度に有効なポリシーは1つだけです。ただし、ポリシーのエージングが有効になっていて、ポリシーの更新がある場合、新しいポリシーが読み込まれても、既存のポリシーはアンロードされません。したがって、両方のポリシーをデバイスで有効にすることができます。この場合、既存のすべてのセッションは引き続き既存のポリシーによって検査され、新しいセッションは新しいポリシーで検査されます。古いポリシーを使用していた既存のセッションがすべて終了または期限切れになると、古いポリシーがアンロードされます。
ポリシーがロードされると、ディテクタにも関連付けられます。ロードされる新しいポリシーに、既存のポリシーですでに使用されているディテクタと一致するディテクタが関連付けられている場合、新しいディテクタはロードされず、両方のポリシーが1つの関連付けられたディテクタを使用します。ただし、新しいディテクタが現在のディテクタと一致しない場合は、新しいディテクタが新しいポリシーとともにロードされます。この場合、読み込まれた各ポリシーは、攻撃の検出に独自の関連付けられたディテクターを使用します。
一度に最大2つの検出器をロードできることに注意してください。2つのディテクタがすでに(2つ以上のポリシーによって)ロードされていて、新しいポリシーをロードするために新しいディテクタもロードする必要がある場合は、新しいディテクタをロードする前に、ロードされたディテクタの少なくとも1つをアンロードする必要があります。ディテクタがアンロードされる前に、対応するディテクタを使用するすべてのポリシーもアンロードされます。
次のコマンドを入力すると、現在のポリシーと対応するディテクタのバージョンを表示できます。
user@host> show security idp status
Junos OS Release 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
コマンドを入力します。コンテンツ圧縮解除カウンターは、圧縮解除処理に関する統計情報を提供します。
IDPシグネチャベース攻撃を理解する
カスタム攻撃オブジェクトを構成するには、一意の名前を指定してから追加情報を指定すると、攻撃オブジェクトの検索と保守が容易になります。
攻撃オブジェクト定義の特定のプロパティは、攻撃名、重大度レベル、サービスまたはアプリケーションのバインド、時間バインド、プロトコルまたはポートのバインドなど、すべての種類の攻撃に共通です。一部のフィールドは攻撃タイプに固有であり、その特定のアタック定義でのみ使用できます。
シグネチャ攻撃オブジェクトは、ステートフル攻撃シグネチャ(攻撃の特定のセクション内に常に存在するパターン)を使用して既知の攻撃を検出します。また、攻撃の実行に使用されたプロトコルまたはサービス、および攻撃が発生したコンテキストも含まれます。次のプロパティはシグニチャ攻撃に固有であり、シグニチャ攻撃(攻撃コンテキスト、攻撃方向、攻撃パターン、およびプロトコル固有のパラメータ(TCP、UDP、ICMP、または IP ヘッダー フィールド)を設定するときに設定できます。
シグネチャベース攻撃を設定するときは、次の点に注意してください。
攻撃のコンテキストと方向は、シグネチャ攻撃定義の必須フィールドです。
パターン否定は、パケット、回線、およびアプリケーションベースのコンテキストでのみサポートされ、ストリームおよび正規化されたストリームコンテキストではサポートされていません。
プロトコル固有のパラメータを設定する場合、IP、TCP、UDP、ICMP、または ICMP のいずれかのプロトコルに対してのみフィールドを指定できます。
プロトコル バインディングを設定する場合、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ルールベースのルールの定義を参照してください。
構成
プロシージャ
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アドレス間の異常を検出します。重大度(情報)- 条件に一致する攻撃に関する情報を提供します。
攻撃方向(任意)- クライアントからサーバーへのトラフィックとサーバーからクライアントのトラフィックの両方向への攻撃を検知します。
サービス(TCP):TCP サービスを使用した攻撃を照合します。
テスト条件(OPTIONS_UNSUPPORTED)- 特定の事前定義済みテスト条件に一致します。この例では、攻撃にサポートされていないオプションが含まれている場合に一致することが条件です。
シェルコード (sparc) - Sparc プラットフォームのシェルコードを検出するためのフラグを設定します。
プロトコル異常ベース攻撃オブジェクトを設定したら、IDPポリシールールの一致条件として攻撃を指定します。 例:IDP IPSルールベースのルールの定義を参照してください。
構成
プロシージャ
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
に表示されます。
変更履歴テーブル
機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。
interval interval-value
ステートメントは、カスタムの時間バインディングを設定するために、
[edit security idp custom-attack attack-name time-binding]
階層に導入されます。
set security idp custom-attack
コマンドを使用します。