【Security Hub修復手順】[ECS.3] ECS タスクの定義では、ホストのプロセス名前空間を共有しないでください

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2023.01.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、AWS事業本部@福岡オフィスのべこみん(@beco_minn)です。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。

本記事の対象コントロール

[ECS.3] ECS タスクの定義では、ホストのプロセス名前空間を共有しないでください

[ECS.3] ECS task definitions should not share the host's process namespace

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

対象コントロールの説明

Dockerにはホストで実行されているプロセスの名前空間を共有/分離する機能が存在します。ECS on EC2(Windowsコンテナを除く)でも pidMode というパラメータを用いることで同様の機能を利用することが出来ます。

ホストとプロセスの名前空間を共有することで、アプリケーションの開発段階などではデバッグがしやすくなったり開発の効率が上がることもあります。しかし、他のコンテナでもホストのプロセスが見れるようになると権限昇格攻撃を受けるリスクが上がります。そのため、特別な理由がある場合を除きホストのプロセス名前空間を共有することは推奨されません。

本コントロールはタイトルの通り、「ECSタスクの定義でホストとプロセスの名前空間を共有しないようにする」というものです。

修復手順

1. ステークホルダーに連絡

ステークホルダー(リソースの作成者や管理している部署などの関係者)に確認を取った上でホストとのプロセス名前空間の共有を無効にします。

2. JSON形式でタスク定義を修正する

ECSコンソールのJSONエディターよりタスク定義を修正します。

"pidMode": "host",

恐らく現在は pidMode の値が上記のように host になっているかと思いますので、下記対応をどちらかを行なって下さい。

  1. pidMode の行を削除する
    • pidMode のデフォルト値はプライベートな名前空間となります
  2. pidMode の値を task に変更する
    • task を指定すると、task が指定されたコンテナ同士が同じ名前空間を共有します

JSONを編集し、変更点を反映すれば作業は終了です。お疲れ様でした。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

以上、べこみんでした。

クラスメソッドメンバーズをご契約の皆さまに

AWS Security Hub 「基礎セキュリティのベストプラクティス」の各チェック項目(コントロール)に対する弊社としての推奨対応やコメントを記載しているClassmethod Cloud Guidebookを提供しています。 クラスメソッドメンバーズポータルの「お役立ち情報」→「組織的な AWS 活用のためのノウハウ」からご参照ください。