AWS Serverless Function Runtime Protection

実行時にサーバレス機能にCloudGuardプロテクションを適用できます。これにより、機能が悪意のある入力や攻撃から保護されますが、異常な動作については機能の動作が監視され、悪意のあるソースからの入力のワークロードファイアウォールとして機能します。関数のソースコードは変更されず、関数の実行時パフォーマンスへの影響は最小限に抑えられます。

Runtime Protection をサーバ レス機能に適用するには、AWS environment をオンボードしてサーバ レスプロテクションを適用する必要があります。以下の を参照してください。

Serverless Function Runtime Protectionを使用すると、次のことができます。

  • 入力にワークロードファイアウォールを適用し、入力ペイロードを分析して悪意のある攻撃パターンを検出します。

  • 異常なランタイム動作を検出し、オプションで防止します。

  • 実際の関数行動の関数固有のプロファイルを用いて、規範的活動(ベースライン)の許可リストを構築する。

  • 異常な行動に基づく攻撃を検出または防止する

  • プロセス起動、ネットワークアクティビティ、API呼び出しの監視など、アプリケーションコードが実行している処理の可視性を得る

  • 関数実行時パフォーマンスへの影響を最小限に抑える

保護モジュール

各サーバレス機能に個別に保護を適用し、保護が問題のみを検出するか、またはそれらを防止するかを選択できます。

プロテクションを適用すると、CloudGuard は、実行時にロードされる関数に、関数と一緒に小さなモジュールを追加します。このモジュールは小型であり、関数コードとは別であるため、関数の動作には影響しません。関数は監視されますが、実行時のオーバーヘッドは非常に少なくなります。また、完全に透過的です。すべてのレポートは関数ログを使用して行われるため、収集したメタデータを確認できます。

実行時保護は、パターンマッチング、フロー分析、登録解除、アロウリスティングなどのメカニズムを使用して、関数のフロー内のさまざまなポイントを動的に検査し、疑わしいアクティビティに応じてレポートやブロックなどのポリシーを適用します。

許可リスト

サーバレス機能に対して実行時保護を有効にすると、CloudGuard は機械学習テクニックを使用して、実行時に関数をプロファイルし、その標準的な(許可された) アクションのAllowlist を作成します。これには以下の項目が含まれます。

  • プロセス

  • アクセスするファイルとローカルストレージ

  • API 関数(コード解析によって決定されるもの、コードインジェクションのケースを含むランタイム監視によって決定されるもの)

  • 外部ホストのアクセス

  • 機能と通信するネットワークアドレス

Runtime Protection タブには、関数のAllowlist が表示されます。 を定義するときには、手動でAllowlist にアクティビティを追加できます。 を定義するときには、アクションを削除できます。

ルールと除外

Allowlist にアクションを手動で追加または削除できます。このようにして、関数のプロファイル作成時に自動的に生成されるAllowlist を微調整できます。

ルールはallowlist からアクションを削除し、除外によってアクションが追加されます。

Rules & Exclusions タブには、関数に定義されたルールと除外が表示されます。

-これらの規則と除外は、サーバレス機能にのみ適用されます。ポスチャー管理 レベルで定義するルールと除外は、すべての関数と環境全体に適用されます。

イベント

CloudGuard は、異常な実行時動作または不正な入力を検出すると、イベント通知を生成します。これらの通知は、機能ごとに、またはイベントページで、他の機能や他のCloudGuard元からの通知とともに表示できます。

アクション

サーバレスプロテクションの有効化

サーバレス保護が有効な場合:

  • CloudGuard は、サーバレス機能の脆弱性と危険性を継続的にスキャンします。 Serverless Risk Assessment

  • 関数の呼び出し時に実行時保護を適用できます。 AWS Serverless Function Runtime Protection

AWSアカウントはすでにCloudGuardにオンボードされている必要があります。これを行う方法の詳細については、AWS 環境のオンボード を参照してください。

サーバレス関数でCloudGuardプロテクションを有効にするには、アカウントのこれらのアセットにアクセスするためのアクセス権限をCloudGuardに付与する必要があります。これらは、アカウントオンボードプロセスでCloudGuard に付与されたアクセス許可に追加されます。以下に説明するプロセスでは、アカウントで実行するAWS CloudFormation (CFT) スタックを使用します。アカウントにデプロイされたCFT リソースの詳細については、AWS サーバ レスプロテクションのリソースとアクセス許可 を参照してください。

CI/CD パイプラインでのランタイム保護の有効化

ランタイムプロテクションは、サーバレスCI/CDツールを使用して、クラウドアカウントに関数をデプロイする前に、CI/CDパイプラインで有効にすることもできます。パイプラインプラグインは、セキュリティポリシーをチェックして、ランタイム保護モジュールが挿入されるように構成されている関数を判別します。挿入は、関数の動作と実行に対して透過的です。

サーバレス機能でのランタイムプロテクションの有効化

検出時のアクションのブロック

実行時保護が有効になっている場合、CloudGuard は、関数の動作がプロファイリング中に決定された許可された動作から逸脱した場合、または既知の悪意のあるサイトから入力を受信した場合に、実行時警告を生成します。

また、CloudGuard を設定して、allowlist にないファイルへのアクセス試行や入力など、操作を遮断することもできます。

除外の作成

特定の基準を手動で除外して、関数のアクティビティをブロックしないようにすることができます(または、関数が検出時にブロックするように設定されていない場合は、イベントを発生させるようにすることもできます)。これにより、Serverless Runtime Protectionが関数のランタイムアクティビティを監視するために使用する基準を調整できます。これらの除外は、それらを変更または削除し、関数が呼び出されるたびに適用されるまで、そのまま保持されます。

ルールの作成

関数のアクティビティをブロックする特定の基準を手動で追加できます(または、関数が検出時にブロックするように設定されていない場合はアラートを発生させます)。これにより、関数のランタイムアクティビティを監視するときに、Serverless Runtime Protectionが使用する基準を「微調整」することができます。これらのルールは、変更または削除されるまでそのまま保持され、関数が呼び出されるたびに適用されます。

AWS IAM アクセス許可の表示

Protected Assets ページのIAM Policies タブでは、関数コードスキャンの結果を確認できます。重大度(重大、高、中、低)の異なるさまざまな問題を見つけることができます。Suggested Policy リンクをクリックして、クリップボードにコピーして後で使用できる推奨されたポリシー修正を表示します。

サーバの少ない実行時間の結果の表示

Assets メニューのProtected Assets ページから、表示する関数のPosture Findings タブに移動します。これは、ランタイム保護によって検出されたランタイム結果のテーブルを示します。または、ポスチャの検索とセキュリティイベントページのPosture Findingsページで結果を確認できます(このビューには、すべてのCloudGuard機能の結果テーブルが表示されます。ただし、特定のサーバレス機能をフィルタリングできます)。