Cisco Secure Application の Runtime ポリシーは、無視、検出、またはブロックするランタイム動作を定義します。ランタイムイベントはすべての攻撃と脆弱性を識別し、定義されたランタイムポリシーに基づいてアクションが実行されます。ランタイムポリシーを作成および設定すると、攻撃と脆弱性を軽減するアクションを指定できます。 

アプリケーションのセキュリティをモニタするには、ポリシーを作成する必要があります。ポリシーを作成するには、Cisco Secure Application の設定権限が必要です。デフォルトでは、Cisco Secure Application には、すべての攻撃と脆弱性を最適に検出して誤検出を減らすランタイムポリシーが含まれています。

Cisco Secure Application は、次のタイプの攻撃と脆弱性をスキャンします。

攻撃タイプ説明

ローカル ファイル インクルード(LFI)

ソフトウェアは、意図された制御領域外のソースから実行可能機能(ライブラリなど)をインポート、要求、または組み込みます。 

式言語インジェクション(EXPR)

ソフトウェアは、アップストリーム コンポーネントからの外部の影響を受けた入力を使用して、コードセグメントのすべてまたは一部を構築します。ただし、意図したコードセグメントの構文または動作を変更する可能性がある特殊な要素を無効化したり、誤って無効化したりはしません。

たとえば、フレームワーク(Spring など)がコマンドの起動やその他の悪意のあるアクティビティの実行に直接使用する URL に引数を含めます。

悪意のある IP(Mal_IP)アプリケーションサービスまたは層と対話して、悪意があるとしてタグ付けされた IP が検出されます。

パストラバーサル(PATH)

外部入力を使用して、制限された親ディレクトリの下にあるファイルまたはディレクトリを識別するためのパス名を作成します。ただし、ソフトウェアはパス名内の特殊な要素を適切に無効化しません。これにより、制限されたディレクトリ外の場所にパス名が解決される可能性があります。 

サーバサイド リクエスト フォージェリ(SSRF)Web サーバは、アップストリーム コンポーネントから URL または同様のリクエストを受信し、URL のコンテンツを取得します。ただし、リクエストが予期された宛先に送信されることは十分には保証されません。
リモートコード実行(RCE)ネットワーク上で任意のコードの実行をトリガーします。これは、XML、JSON、Java シリアル化などのコンテンツを使用して、フレームワークのバックドアを介して行われます。

信頼できない逆シリアル化(DESERIAL)

アプリケーションは、結果のデータが有効であることを十分に検証せずに、信頼できないデータを逆シリアル化します。 

脆弱性のタイプ説明

Cookie:HttpOnly(C_HTTP)

HttpOnly 属性を持つ Cookie は、JavaScript Document.cookie API にアクセスできません。サーバにのみ送信されます。たとえば、サーバ側セッションを保持する Cookie は JavaScript で使用できる必要はなく、HttpOnly 属性が付いている必要があります。この予防措置は、クロスサイト スクリプティング(XSS)攻撃を軽減するのに役立ちます。 

HTTP ヘッダー:X-Content-Type-Options(H_CONTENT)

このヘッダーは、Content-Type ヘッダーでアドバタイズされた MIME タイプを変更すべきではないことを示すためにサーバによって使用されるマーカーです。これにより、MIME タイプスニッフィングをオプトアウトする、つまり、MIME タイプが意図的に設定されていることを示すことができます。 

HTTP ヘッダー:Content-Security-Policy(H_CSP)

このヘッダーにより、Web サイト管理者は、ユーザエージェントが特定のページにロードできるリソースを制御できます。いくつかの例外はありますが、ほとんどの場合、ポリシーにはサーバの発信元とスクリプトエンドポイントの指定が含まれます。 

HTTP ヘッダー:X-Frame-Options(H_FRAME)

このヘッダーは、ブラウザで <frame>、<iframe>、<embed>、または <object> のページのレンダリングを許可するかどうかを示すために使用できます。サイトはこれを使用して、コンテンツが他のサイトに埋め込まれないようにすることで、クリックジャック攻撃を回避できます。 

HTTP ヘッダー:Strict-Transport-Security(H_STS)このヘッダーは、HTTP ではなく HTTPS を使用してのみ Web サイトにアクセスする必要があるという情報をブラウザに送信するために Web サイトで使用されます。このヘッダーは、中間者攻撃や機密データの漏洩を防ぐために使用されます。 

HTTP ヘッダー:X-XSS-Protection(H_XSS)

このレスポンスヘッダーは、Internet Explorer、Chrome、および Safari の機能であり、反射型クロスサイト スクリプティング(XSS)攻撃を検出するとページのロードを停止します。 

不明な例外(EXC)

これは非常に一般的な問題です。通常、ランタイムには、「検出されない」または「記録されない」ことが多い例外形式のセキュリティ検出メカニズムが組み込まれています。つまり、例外の場合、セキュリティ侵害が発生してから数日後または数週間後まで確認されないファイルに埋もれてしまいます。これはランタイム全体ですべてのセキュリティ関連の例外を確認するため、セキュリティポリシーを使用すると、その情報に対してレポートやその他の追加アクションを実行できます。 

脆弱ライブラリ(LIB)

National Vulnerability Database(NVD)で報告されている、アプリケーションのサービスおよび階層に該当するすべての脆弱性を検出します。 

SQL:非パラメータ化クエリ(SQL_PARAM)ソフトウェアは、アップストリーム コンポーネントからの外部の影響を受けた入力を使用して、SQL コマンドのすべてまたは一部を構築します。ただし、ダウンストリーム コンポーネントに送信されるとき、意図された SQL コマンドを変更する可能性がある特殊な要素を無効化したり、誤って無効化したりはしません。

セキュリティポリシーの作成

ランタイムで攻撃または脆弱性のポリシーを作成するには、次の手順を実行します。

  1. [Policies ] > [ Create New Policy] をクリックします。
  2. [Add Policy] ダイアログから、次のフィールドでランタイムに必要な条件を選択します。
    • Type:特定のランタイムアクティビティのポリシーを作成する場合に [Runtime ] を選択します。 
    • Name:必要なランタイムアクティビティを選択します。
    • Application:ポリシーを適用する必要がある階層またはサービスを含むアプリケーションを選択します。
      すべてのアプリケーションの指定された階層またはサービスにポリシーを適用する場合は、[All] を選択します。
    • Tier:ポリシーを適用するために必要なアプリケーション固有の階層またはサービスを選択します。
      すべての階層またはサービスにポリシーを適用する場合は、[All] を選択します。

      AppDynamics では、デフォルトポリシーを確認し、必要に応じて特定のアプリケーションおよび階層のポリシーを作成することを推奨しています。

    • Default Action:このポリシーのデフォルトアクションを選択します。
      • 攻撃をスキャンするランタイムアクティビティの場合、[Ignore] で通知なしを選択できます。攻撃を検出し、[Attacks] ページに詳細を表示するには、[Detect] を選択します。または、特定の攻撃をブロックし、[Attacks] ページに [Blocked] として表示するには、[Block] を選択します。
        [Attacks] をクリックすると、ランタイムポリシーに基づいて無視、検出、ブロックされたすべての攻撃のリストが表示されます。
      • 脆弱性をスキャンするランタイムアクティビティの場合、[None] で [Vulnerabilities] ページでの通知なしを選択できます。脆弱性を検出し、[Vulnerabilities] ページに詳細を表示するには、[Detect] を選択します。セキュリティの問題を修正するには、[Patch] を選択します。
        [Vulnerabilities] をクリックすると、ランタイムポリシーに基づいて検出されたすべての脆弱性のリストが表示されます。

      [Block] は、サポートされている攻撃の一部では使用できず、[Patch] はサポートされている脆弱性の一部では使用できません。

    • Rules:要件に基づいてルールを追加します。ルール内で指定したアクションは、[Default Action] で指定したデフォルトアクションよりも優先されます。
    • Enable Policy:ランタイムポリシーを有効にするには、[Yes] を選択します。
  3. [Save] をクリックします。

[Attacks] をクリックすると、すべての攻撃タイプのリストを表示し、[Vulnerabilities] をクリックすると、すべての脆弱性タイプのリストを表示できます。

セキュリティポリシーの変更

ポリシーを表示して変更するには、次の手順を実行します。

[Search] フィルタを使用すると、[Name] または [Application Name] フィールドの値に基づいて検索できます。[Name] は、ランタイムポリシーの名前です。

  1. [Policies ] > [ Runtime] をクリックします。
    [Show<number of policies>] ドロップダウンのページの右下隅で選択した数字に基づいて、5、10、20、または 50 のポリシーを表示できます。
  2. 必要なポリシーの横にある [Modify] アイコンをクリックします。
  3. 必要なフィールドを変更します。 
  4. 要件に基づいて、[Update] または [Delete Policy] をクリックします。