Contrast Serverless
Contrast Serverlessは、サーバレスベースのアプリケーションを対象とした、次世代のアプリケーションセキュリティテストツールです。
Contrast Serverlessは、クラウドネイティブアーキテクチャを使用して環境内の全てのリソースをマッピングし、自動的にその結果を検証して優先順位付けを行い、誤検知や不用なアラートを解消します。カスタムコードの脆弱性(インジェクション攻撃など)、依存関係(ライブラリのCVEなど)、および設定のリスク(過剰に権限が設定された関数ポリシー)をスキャンします。
機能
AWSへの容易な接続
2回のクリックと数分で、ContrastのWebインタフェースからAWSアカウントに接続できます。
インベントリの検出
AWSアカウントに接続すると、AWS環境にある関数、リソース、ポリシー、サービスのインベントリが作成されます。
脆弱性の解析
動的スキャンと静的スキャンによってコードが解析され、アプリケーションの弱点やデータフロー、攻撃対象、および脆弱性にさらされている箇所が検出されます。
継続的な監視
Contrastは常にLambda関数を監視し、コードが変更されると、注意が必要な脆弱性を特定します。
攻撃のシミュレーション
動的スキャンは、コードに変更を加えることなく、リソースとデータフローに対して情報収集のための攻撃を生成して実行します。
関数とサービスの関連性を可視化
アカウント内の関数とサービスの関連性を表示するだけでなく、各要素に含まれるリスクの詳細を表示できます。
レポート作成
スキャン結果には、コードにあるCVE、権限違反、脆弱性、およびその他のリスクが一覧表示されます。
利点
導入がスピーディで簡単
Contrastと連携するために、多数の専門家やコンサルタント、また多くの時間は必要ありません。
連携に煩わされることがない
開発プロセスに大幅な変更を加えることなく、サーバレスセキュリティを強化できます。開発フェーズの早い段階で悪用可能な脆弱性を簡単に見つけて修正できるため、アプリケーションを本番環境にデプロイする際に、アプリケーションをより安全な状態にすることができます。
仕組み
Contrastは、AWSアカウントに読み取りモードで接続します。この接続を使用して継続的に環境を監視し、関連情報を収集します。
そして、監視対象の環境内に1つのLambda関数(Cloud Agent)を配置して、コード解析やスキャンしたリソースに関するメタデータをContrastへ送信するなどの処理を実行します。
これらの情報は全て、Contrastのコンテキストエンジンによって使用され、この環境の全てのリソースと変更に合わせた攻撃プロファイルを生成します。攻撃のシミュレーションは、お客様のアカウント内でクラウドエージェント(Cloud Agent)によって実行されます。
全ての検出結果は、内部検証メカニズムによって検証することにより、誤検知をなくし、現実的な優先順位を付けた結果として提供されます。
セキュリティとプライバシー
Contrastは、監視対象のアカウントからコードやコードスニペットを収集することはありません。Contrastは、次のようなメタデータ情報のみを利用します。
確認された脆弱性
関数名とメタデータ(ポリシーハンドラなど)
使用しているライブラリ
使用しているAWSのAPI(例:Boto3、asw-sdk)
サービスの構成(バケット通知、API Gatewayのパスやメソッドなど)
Contrastは、お客様のコードに変更を加えることはありません。ただし、スキャン中に(例えば、関数のデプロイ時や変更時)、スキャンされた関数にレイヤーを一時的に組み込んだり、いくつかの設定変更(例えば、タイムアウトやハンドラ)を行うことがあります。
スキャンが完了すると、レイヤーや設定は元の状態に戻されます。この処理は完全に透過的で影響を与えず、自動的に実行されます。
スキャン中でも、引き続き独自のテスト(関数呼び出し)を実行できます。
動的スキャンでは、Contrastは悪意のあるデータを使用してスキャンする関数を実行します。この処理は、コードには影響を与えません。ただし、関数が行うアクションはトリガーされる可能性があります。
この機能はデフォルトで無効になっています。これは、設定タブを使用して、いつでも有効にできます。
監視対象のAWSアカウントからContrastが受信する全てのデータは、転送中および保存時に暗号化されます。
Contrastは、共有シークレットを用いたAmazon EventBridgeを使用して、全てのデータを送受信します。ContrastがAWSアカウントとの通信に使用するWeb APIやREST APIはありません。
必要となる権限
Contrastを使用してAWSアカウントに接続する場合、次のアクセス許可に同意するものとします。
ContrastのAWSアカウントから監視対象のAWSアカウントへの読み取り専用アクセス権。
このポリシーは、ベータ版の処理を行う際だけ使用されます。
ContrastのAWSアカウントから監視対象のAWSアカウントにデプロイされたLambda関数へのLambda読み取り/書き込みアクセス。
Contrastが監視対象のAWSアカウントにインストールするLambda関数には、次のアクセスポリシーが必要です。
CloudWatchログの読み取り
Lambda Layerバージョンの読み取り
関数の呼び出し
関数設定の変更
イベントバスへのメッセージの書き込み
KMSキーの読み取り
特定のS3バケットへのオブジェクトの読み取り/書き込み(Contrastはこれらのバケットを作成します)