このドキュメントでは、Security Command Center の脅威の検出結果のタイプについて説明します。脅威の検出結果は、クラウド リソースで潜在的な脅威が検出されたときに、脅威検出機能によって生成されます。使用可能な脅威の検出結果の一覧については、脅威の検出結果のインデックスをご覧ください。
概要
Base64 でエンコードされたシェル スクリプトである引数を含むプロセスが実行されました。エンコードされたシェル スクリプトの実行が検出された場合、それは攻撃者が ASCII 専用のコマンドラインに転送するためにバイナリデータをエンコードしようとしていることを示すシグナルです。攻撃者がこの手法を使用して、検出を回避し、シェル スクリプトに埋め込まれた悪意のあるコードを実行する可能性があります。
この検出結果のソースは Container Threat Detection です。
対処方法
この検出結果に対応する手順は次のとおりです。
ステップ 1: 検出結果の詳細を確認する
- 検出結果の確認の説明に従って、 - Defense Evasion: Base64 Encoded Shell Script Executedの検出結果を開きます。検出結果の詳細パネルが開き、[概要] タブが表示されます。
- [概要] タブで、次のセクションの情報を確認します。 - 検出された内容(特に次のフィールド):
- プログラム バイナリ: 変更されたバイナリの絶対パス。
- 引数: バイナリ実行時に渡される引数。
 
- 影響を受けているリソース(特に次のフィールド):
- リソースの完全な名前: プロジェクト番号、ロケーション、クラスタ名を含むクラスタの完全なリソース名。
 
 
- 検出された内容(特に次のフィールド):
- 検出結果の詳細ビューで、[JSON] タブをクリックします。 
- [JSON] で、次のフィールドを確認します。 - resource:- project_display_name: クラスタを含むプロジェクトの名前。
 
- finding:- processes:
- binary:- path: 実行されたバイナリのフルパス。
 
- args: バイナリの実行時に提供された引数。
 
- sourceProperties:- Pod_Namespace: Pod の Kubernetes Namespace の名前。
- Pod_Name: GKE Pod の名前。
- Container_Name: 影響を受けるコンテナの名前。
- Container_Image_Uri: デプロイされているコンテナ イメージの名前。
- VM_Instance_Name: Pod が実行された GKE ノードの名前。
 
 
- このコンテナで同様のタイミングで発生した他の検出結果を特定します。関連する検出結果は、このアクティビティがベスト プラクティスに従っていないのではなく、悪意のあるものであることを示している可能性があります。 
ステップ 2: クラスタとノードを確認する
- Google Cloud コンソールで [Kubernetes クラスタ] ページに移動します。 
- Google Cloud コンソールのツールバーで、必要に応じて - resource.project_display_nameに表示されているプロジェクトを選択します。
- 検出結果の詳細の [概要] タブにある [リソースの完全な名前] 行のクラスタを選択します。クラスタとそのオーナーに関するメタデータをメモします。 
- [ノード] タブをクリックします。 - VM_Instance_Nameに表示されているノードを選択します。
- [詳細] タブをクリックし、 - container.googleapis.com/instance_idアノテーションをメモします。
ステップ 3: Pod を確認する
- Google Cloud コンソールで [Kubernetes ワークロード] ページに移動します。 
- Google Cloud コンソールのツールバーで、必要に応じて - resource.project_display_nameに表示されているプロジェクトを選択します。
- 必要に応じて、検出結果の詳細の [概要] タブにある [リソースの完全な名前] 行のクラスタと、[ - Pod_Namespace] に表示されている Pod の名前空間でフィルタリングします。
- Pod_Nameに表示されている Pod を選択します。Pod とそのオーナーに関するメタデータをメモします。
ステップ 4: ログを確認する
- Google Cloud コンソールで、[ログ エクスプローラ] に移動します。 
- Google Cloud コンソールのツールバーで、必要に応じて - resource.project_display_nameに表示されているプロジェクトを選択します。
- [期間の選択] を目的の期間に設定します。 
- 読み込まれたページで、次の操作を行います。 - 次のフィルタを使用して、Pod_Nameの Pod ログを検索します。- resource.type="k8s_container"
- resource.labels.project_id="RESOURCE.PROJECT_DISPLAY_NAME"
- resource.labels.location="LOCATION"
- resource.labels.cluster_name="CLUSTER_NAME"
- resource.labels.namespace_name="POD_NAMESPACE"
- resource.labels.pod_name="POD_NAME"
 
- 次のフィルタを使用して、クラスタの監査ログを検索します。
- logName="projects/RESOURCE.PROJECT_DISPLAY_NAME/logs/cloudaudit.googleapis.com%2Factivity"
- resource.type="k8s_cluster"
- resource.labels.project_id="RESOURCE.PROJECT_DISPLAY_NAME"
- resource.labels.location="LOCATION"
- resource.labels.cluster_name="CLUSTER_NAME"
- POD_NAME
 
- 次のフィルタを使用して、GKE ノード コンソールのログを検索します。
- resource.type="gce_instance"
- resource.labels.instance_id="INSTANCE_ID"
 
 
- 次のフィルタを使用して、
ステップ 5: 実行中のコンテナを調査する
コンテナがまだ実行中の場合は、コンテナ環境を直接調査できる場合があります。
- Google Cloud コンソールに移動します。 
- Google Cloud コンソールのツールバーで、必要に応じて - resource.project_display_nameに表示されているプロジェクトを選択します。
- [Cloud Shell をアクティブにする - ] をクリックします。 
- 次のコマンドを実行して、クラスタの GKE 認証情報を取得します。 - ゾーンクラスタの場合: - gcloud container clusters get-credentials CLUSTER_NAME \ --zone LOCATION \ --project PROJECT_NAME- リージョン クラスタの場合: - gcloud container clusters get-credentials CLUSTER_NAME \ --region LOCATION \ --project PROJECT_NAME- 次のように置き換えます。 - CLUSTER_NAME:- resource.labels.cluster_nameに表示されているクラスタ
- LOCATION:- resource.labels.locationに表示されているロケーション
- PROJECT_NAME:- resource.project_display_nameに表示されているプロジェクト名
 
- 実行されたバイナリを取得します。 - kubectl cp \ POD_NAMESPACE/POD_NAME:PROCESS_BINARY_FULLPATH \ -c CONTAINER_NAME \ LOCAL_FILE- local_fileは、追加されたバイナリを格納するローカル ファイルのパスに置き換えます。
- 次のコマンドを実行して、コンテナ環境に接続します。 - kubectl exec \ --namespace=POD_NAMESPACE \ -ti POD_NAME \ -c CONTAINER_NAME \ -- /bin/sh- このコマンドを実行するには、コンテナの - /bin/shにシェルがインストールされている必要があります。
ステップ 6: 攻撃とレスポンスの手法を調査する
- この検出結果タイプに対応する MITRE ATT&CK フレームワーク エントリ(防御回避: 難読化されたファイル / 情報)を確認します。
- 対応計画を策定するには、独自の調査結果と MITRE の調査を組み合わせる必要があります。
ステップ 7: レスポンスを実装する
次の対応計画は、この検出結果に適切な場合もありますが、運用に影響する可能性もあります。調査で収集した情報を慎重に評価して、検出結果を解決する最適な方法を判断してください。
次のステップ
- Security Command Center で脅威の検出結果を操作する方法を学習する。
- 脅威の検出結果のインデックスを参照する。
- Google Cloud コンソールで検出結果を確認する方法を学習する。
- 脅威の検出結果を生成するサービスについて学習する。