GCP - Cloud Run Enum
Cloud Run
Cloud Runは、Googleのスケーラブルなインフラストラクチャの上でコンテナを直接実行できるサーバーレス管理されたコンピューティングプラットフォームです。
コンテナを実行するか、Go、Node.js、Python、Java、.NET Core、またはRubyを使用している場合は、ソースベースのデプロイメントオプションを使用して、コンテナをビルドできます。
GoogleはCloud Runを他のGoogle Cloudサービスとの連携に適して構築しているため、フル機能のアプリケーションを構築できます。
サービスとジョブ
Cloud Runでは、コードは_サービスまたはジョブ_として連続して実行することができます。サービスとジョブは同じ環境で実行され、他のGoogle Cloudサービスと同じ統合を使用できます。
Cloud Runサービス。 Webリクエストまたはイベントに応答するコードを実行するために使用されます。
Cloud Runジョブ。 作業(ジョブ)を実行し、作業が完了すると終了するコードを実行するために使用されます。
Cloud Runサービス
Google Cloud Runは、環境変数を検索できる別のサーバーレスオファーです。 Cloud Runは、デフォルトでコンテナ内のポート8080で実行される小さなWebサーバーを作成し、HTTP GETリクエストを待機しています。 リクエストを受信すると、ジョブが実行され、ジョブログがHTTPレスポンス経由で出力されます。
関連する詳細
デフォルトでは、Webサーバーへのアクセスは公開されていますが、内部トラフィックに制限することもできます。 また、Webサーバーに連絡する認証はすべて許可するか、IAM経由で認証を要求することもできます。
デフォルトでは、暗号化にはGoogleが管理するキーが使用されますが、KMSからのCMEK(顧客管理型暗号化キー)も選択できます。
デフォルトでは、使用されるサービスアカウントは、プロジェクトに対してEditorアクセス権を持つCompute Engineデフォルトのものであり、**スコープ
cloud-platform
**を持っています。実行用にクリアテキスト環境変数を定義したり、クラウドシークレットをマウントしたり、クラウドシークレットを環境変数に追加したりすることができます。
Cloud SQLとの接続を追加したり、ファイルシステムをマウントしたりすることも可能です。
デプロイされたサービスのURLは**
https://<svc-name>-<random>.a.run.app
**のようになります。Runサービスには1つ以上のバージョンまたはリビジョンを持たせ、複数のリビジョン間でトラフィックを分割することができます。
列挙
Cloud Run ジョブ
Cloud Run ジョブは、完了まで実行されるコンテナに適しています。ジョブはリクエストを処理したりポートでリッスンしたりする機能を持っていません。つまり、Cloud Run サービスとは異なり、ジョブにはウェブサーバーをバンドルするべきではありません。代わりに、ジョブのコンテナは完了した時点で終了すべきです。
列挙
特権昇格
以下のページでは、クラウドランの権限を悪用して特権を昇格させる方法を確認できます:
pageGCP - Run Privesc認証されていないアクセス
pageGCP - Cloud Run Unauthenticated Enum攻撃後の処理
pageGCP - Cloud Run Post Exploitation永続性
pageGCP - Cloud Run Persistence参考文献
最終更新