GCP - Compute Instances

ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

基本情報

Google Cloud Compute Instancesは、Googleのクラウドインフラストラクチャ上でカスタマイズ可能な仮想マシンを提供し、幅広いアプリケーションに対してスケーラブルでオンデマンドのコンピューティングパワーを提供します。これらは、グローバル展開、永続的なストレージ、柔軟なOSの選択肢、強力なネットワーキングおよびセキュリティ統合などの機能を提供し、ウェブサイトのホスティング、データ処理、およびクラウドで効率的にアプリケーションを実行するための多目的な選択肢となります。

機密VM

機密VMは、最新世代のAMD EPYCプロセッサが提供するハードウェアベースのセキュリティ機能を使用し、メモリの暗号化やセキュアな暗号化仮想化を含みます。これらの機能により、VMは、それによって処理および保存されるデータを、ホストオペレーティングシステムやハイパーバイザーさえもから保護することができます。

機密VMを実行するには、マシンのタイプ、ネットワークインターフェースブートディスクイメージなどを変更する必要があります。

ディスク&ディスクの暗号化

使用するディスクを選択するか、新しいディスクを作成することが可能です。新しいディスクを選択する場合、以下の操作ができます:

  • ディスクのサイズを選択

  • OSを選択

  • インスタンスが削除されるときにディスクを削除するかどうかを指定

  • 暗号化デフォルトではGoogleが管理するキーが使用されますが、KMSからキーを選択するか、使用する生のキーを指定することもできます。

コンテナのデプロイ

仮想マシン内にコンテナをデプロイすることが可能です。 使用するイメージを構成したり、内部で実行するコマンドを設定したり、引数を設定したり、ボリュームをマウントしたり、環境変数(機密情報?)を設定したりし、このコンテナに対して実行権限を特権モードで設定したり、stdinと擬似TTYを設定したりすることが可能です。

サービスアカウント

デフォルトでは、Compute Engineデフォルトサービスアカウントが使用されます。このSAのメールアドレスは次のようになります:<proj-num>-compute@developer.gserviceaccount.com このサービスアカウントには、プロジェクト全体で**Editorロール(高い権限)**が付与されています。

また、デフォルトのアクセススコープは以下の通りです:

  • https://www.googleapis.com/auth/devstorage.read_only -- バケツへの読み取りアクセス :)

  • https://www.googleapis.com/auth/logging.write

  • https://www.googleapis.com/auth/monitoring.write

  • https://www.googleapis.com/auth/servicecontrol

  • https://www.googleapis.com/auth/service.management.readonly

  • https://www.googleapis.com/auth/trace.append

ただし、1クリックでcloud-platformを付与するか、カスタムのスコープを指定することも可能です。

ファイアウォール

HTTPおよびHTTPSトラフィックを許可することが可能です。

ネットワーキング

  • IPフォワーディング:インスタンスの作成時にIPフォワーディングを有効にすることが可能です。

  • ホスト名:インスタンスに永続的なホスト名を付与することが可能です。

  • インターフェース:ネットワークインターフェースを追加することが可能です。

追加のセキュリティ

これらのオプションはVMのセキュリティを向上させ、推奨されます:

  • セキュアブート:セキュアブートは、VMインスタンスをブートレベルおよびカーネルレベルのマルウェアやルートキットから保護します。

  • vTPMを有効にする:仮想信頼プラットフォームモジュール(vTPM)は、ゲストVMのプリブートおよびブートの整合性を検証し、キーの生成と保護を提供します。

  • 整合性監視:整合性監視により、Stackdriverレポートを使用して、vTPMが有効になっている場合に、シールドされたVMインスタンスのランタイムブート整合性を監視および検証できます。

VMアクセス

VMへのアクセスを有効にする一般的な方法は、特定のSSH公開鍵を許可することです。 ただし、IAMを使用してVMへのアクセスをos-configサービスを介して有効にすることも可能です。さらに、このサービスを使用してVMにアクセスする際に2要素認証を有効にすることも可能です。 このサービス有効になると、SSHキーを介したアクセスが無効になります。

メタデータ

毎回マシンがオンになるか再起動するたびに実行されるシェルコマンドである自動化(AWSのuserdata)を定義することが可能です。

また、メタデータエンドポイントからアクセス可能な追加のメタデータキー値を定義することも可能です。この情報は、環境変数や起動/シャットダウンスクリプトに使用されることが一般的です。これは、列挙セクションのコマンド内の**describeメソッド**を使用して取得できますが、インスタンス内部からメタデータエンドポイントにアクセスして取得することもできます。

# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

さらに、添付されたサービスアカウントの認証トークンインスタンス、ネットワーク、プロジェクトに関する一般情報メタデータエンドポイントから利用可能になります。詳細は以下を参照してください:

暗号化

デフォルトではGoogleが管理する暗号化キーが使用されますが、顧客管理型暗号化キー(CMEK)を構成することもできます。また、使用されているCMEKが取り消された場合の対応も構成できます:何もしないかVMをシャットダウンするか。

htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

最終更新