Security Command Center のセキュリティ グラフは、クラウド リソース、その構成、関連するリスク指標(脆弱性、アクセス権限、データの機密性、ネットワークへの露出など)をマッピングする関係認識型のデータベースです。グラフには、クラウド アセットとその関係の全体像が表示されます。
このドキュメントでは、カスタムクエリを作成してセキュリティ グラフを探索し、環境内の潜在的なセキュリティ上の懸念事項の特定に役立つ「グラフ検索」機能について説明します。
クエリ コンポーネント
セキュリティ グラフのクエリは、次の 3 つの主要なコンポーネント タイプで構成されます。
- ノード: セキュリティ検出結果またはクラウド リソース。
- WHERE 句(フィルタ): ノードに適用され、ノードの特定のプロパティに基づいてクエリを絞り込むフィルタ。
- 接続: 2 つのノード間の方向性のある関係。
これらのコンポーネントを使用して Google Cloud コンソールに表示されるクエリの例を次に示します。
このクエリ構造の例では、セキュリティ エンティティ間の関係を特定して、リスクを特定します。まず、クエリは調査の主要な対象(ノード)である CVE 脆弱性と仮想マシン(GCE)を確立します。「影響する」というフレーズで識別される接続は、これら 2 つのノードを明示的にリンクします。最後に、各ノードで複数の属性(WHERE 句またはフィルタ)を使用してクエリが微調整されます。ここで使用されるフィルタには、脆弱性の重大度や VM のネットワーク到達性などがあります。これらのコンポーネントは、環境内の潜在的なリスクの特定に役立ちます。
ノード
ノードは、セキュリティ検出結果またはクラウド リソースを表します。
Google Cloud コンソールのノードの例を次に示します。
- CVE 脆弱性: MITRE Corporation によって定義された共通脆弱性識別子(CVE)の脆弱性。
- 仮想マシン(GCE): Compute Engine インスタンス。
- GKE Deployment: Google Kubernetes Engine リソース。
- IAM サービス アカウント: Identity and Access Management(IAM)のサービス アカウント。
- BigQuery データセット: BigQuery のデータコンテナ。詳細については、データセットの概要をご覧ください。
ノードは、コンピューティング、Kubernetes、ID、データベースなどのカテゴリでグループ化されます。クエリを作成するときに、Google Cloud コンソールで利用可能なすべてのノードタイプを参照または検索できます。
Where 句(フィルタ)
Where 句は、ノードに適用されるフィルタで、ノードに関連付けられた特定のプロパティに基づいてクエリを絞り込みます。
次にフィルタの例を示します。
- Severity = Critical: 重大度が重大の項目(CVE など)。
- Has Full API Access = True: ノードがすべての Google Cloud API への完全アクセス権を含んで構成されていることを示します。
- Exploitation Activity = Confirmed: 脆弱性が実際に悪用されていることが判明している、そのように報告されている、またはそのように予測されているケースがあることを示します。
Google Cloud コンソールに表示されるフィルタはコンテキスト認識型であり、選択したノードのタイプによって異なります。
接続
接続は、2 つのノード間の方向性のある関係です。
接続の例を次に示します。
- that affects: 選択した 2 つのノード間の関係を定義します(例: 仮想マシン(GCE)に関連する CVE 脆弱性)。
- that uses: 選択した 2 つのノード間の関係を定義します(例: IAM サービス アカウントに関連する仮想マシン(GCE))。
接続はコンテキストを認識し、選択したノードタイプに対して有効な関係のみが表示されます。
クエリを作成する
セキュリティ グラフに対してクエリを実行して、重要な基準に基づいてクラウド環境を調べることができます。グラフに対してクエリを実行して絞り込むと、モニタリングする特定のセキュリティの脆弱性を識別できます。
プレミアム
セキュリティ グラフのクエリページを開くには、Security Command Center の [グラフ検索] ページに移動します。
[クエリ] ペインでクエリエディタを作成します。
次のいずれかを選択します。
- 事前定義済みの検索候補を選択してそのまま使用する。
- ニーズに合わせてクエリを変更する。
クエリを実行します。
表でクエリ結果を確認します。表示する列を選択して、結果ビューをカスタマイズできます。各列を昇順または降順で並べ替えることもできます。
[CSV 形式でダウンロード] オプションを使用して、クエリ結果を CSV ファイルとしてエクスポートします。
エンタープライズ
セキュリティ グラフのクエリページを開くには、Security Command Center の [リスクの概要> グラフ検索] ページに移動します。
[クエリ] ペインでクエリエディタを作成します。
次のいずれかを選択します。
- 事前定義済みの検索候補を選択してそのまま使用する。
- ニーズに合わせてクエリを変更する。
クエリを実行します。
表でクエリ結果を確認します。表示する列を選択して、結果ビューをカスタマイズできます。各列を昇順または降順で並べ替えることもできます。
[CSV 形式でダウンロード] オプションを使用して、クエリ結果を CSV ファイルとしてエクスポートします。
カスタムクエリを作成する
カスタムクエリを定義して、環境に固有のセキュリティの脆弱性を特定できます。
カスタムクエリを作成するには、次の手順に沿って新しいクエリを開始するか、既存の検索候補をカスタマイズします。
プレミアム
Google Cloud コンソールで、Security Command Center の [グラフ検索] ページに移動します。
[表示] フィールドで をクリックし、クエリのプライマリ ノードとしてリソースまたは検出結果を選択して、[選択] をクリックします。
クエリを絞り込むには、フィルタまたは接続の切り替えをクリックして、選択したノードで有効にします。有効にする各フィルタの値を定義し、[選択] をクリックします。
Security Command Center グラフ検索ウィジェット(クリックして拡大) さらに変更を加えるには、ノードまたは接続に関連付けられているプラスアイコン()をクリックして更新します。 をクリックして、クエリからコンポーネントを削除します。
[クエリを実行] を選択します。
グラフスキーマが進化すると、使用可能なノード、フィルタ、接続が Google Cloud コンソールで更新されます。
エンタープライズ
Google Cloud コンソールで、Security Command Center の [グラフ検索] ページに移動します。
[表示] フィールドで をクリックし、クエリのプライマリ ノードとしてリソースまたは検出結果を選択して、[選択] をクリックします。
クエリを絞り込むには、フィルタまたは接続の切り替えをクリックして、選択したノードで有効にします。有効にする各フィルタの値を定義し、[選択] をクリックします。
Security Command Center グラフ検索ウィジェット(クリックして拡大) クエリをさらに変更するには、ノードまたは接続に関連付けられているプラスアイコン()をクリックして更新します。 をクリックして、クエリからコンポーネントを削除します。
[クエリを実行] を選択します。
グラフスキーマが進化すると、使用可能なノード、フィルタ、接続が Google Cloud コンソールで更新されます。
検索候補を使用またはカスタマイズする
検索候補が最初のステップとしていくつか表示されます。これらの候補はそのまま使用することも、特定の要件に合わせてカスタマイズすることもできます。
プレミアム
Google Cloud コンソールで、Security Command Center の [グラフ検索] ページに移動します。
検索候補を選択すると、クエリに関する詳細情報が表示されます。
[候補を使用] をクリックします。
省略可: 必要に応じて、エディタでクエリの詳細を変更します。詳細については、カスタムクエリを作成するをご覧ください。
[クエリを実行] をクリックします。
エンタープライズ
Google Cloud コンソールで、Security Command Center の [リスクの概要] > [グラフ検索] ページに移動します。
検索候補を選択すると、クエリに関する詳細情報が表示されます。
[候補を使用] をクリックします。
省略可: 必要に応じて、エディタでクエリの詳細を変更します。詳細については、カスタムクエリを作成するをご覧ください。
[クエリを実行] をクリックします。
結果が返されないクエリのトラブルシューティング
クエリが結果を返さない場合は、次の手順でトラブルシューティングと調整を行います。
事前定義済みの検索候補を使用する
提供される事前定義済みの検索候補は、さまざまな環境に関連する結果を返すように設計された例です。検索候補は、特定のニーズに合わせて変更できます。
クエリを簡素化または調整する
フィルタを削除または削減して、クエリの範囲を広げます。
単一のアセットタイプまたはプロパティをクエリして、データが返されることを確認します。
制約を過度に組み合わせないようにしてください。そうした場合、意図せず結果が除外される可能性があります。
アクセス権限を確認する
クエリを実行するデータを表示するために必要な権限があることを確認します。適切なアクセス権がないと、一部のアセットや関係が非表示になる、または結果から除外される可能性があります。
データ同期の時間を考慮する
最近作成または更新されたリソースがグラフに表示されるまでに数分から数時間かかることがあります。たとえば、リソースを追加した場合や、IAM ポリシーを更新した場合に、遅延が発生することがあります。クラウド環境を変更した後には、しばらくしてからクエリをもう一度実行してみてください。
グラフの対象範囲
環境とサポートされているデータ型によっては、一部のデータ型または関係がセキュリティ グラフで使用できない場合があります。期待されるデータが表示されない場合は、グラフで利用できない可能性があります。
その他の参考情報
上記の手順を試しても期待される結果が得られない場合は、プロジェクト管理者に問い合わせるか、サポートの利用を参照して、クエリ構成と権限の確認を依頼してください。