2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ECS Fargateの脆弱性管理 ― なぜRuntimeではなくレジストリスキャンが中心になるのか

2
Posted at

ECS Fargateの脆弱性管理 ― なぜRuntimeではなくレジストリスキャンが中心になるのか

Serverless Containerのセキュリティモデルを技術的に理解する


はじめに

ECS Fargateは、EC2インスタンスの管理が不要なサーバレスコンテナ実行環境です。インフラ管理の負荷が大幅に下がる一方で、セキュリティエンジニアの間でよく議論になるのが次の疑問です。

「FargateではRuntimeの脆弱性スキャンができるのか?」

結論から言えば、Fargateの脆弱性管理はRuntimeスキャンではなく、レジストリスキャンが中心になります。

これは単なるツールの制限ではありません。Fargateのアーキテクチャ設計から必然的に導かれる、セキュリティモデルの転換です。

本記事では以下を技術的に解説します。

  • Fargateのアーキテクチャがなぜランタイムスキャンを困難にするのか
  • レジストリスキャンが中心になる理由とその仕組み
  • 実際のAWSサービス・セキュリティツールの構成
  • Serverless Containerにおけるセキュリティ思想の変化

1. ECS Fargateのアーキテクチャ

まず前提として、FargateとEC2ベースのコンテナ実行環境のアーキテクチャの違いを整理します。

EC2やKubernetesでは、ホストOSからコンテナまで すべてがユーザーの管理下 にあります。

Fargateでは、ホストOSとContainer Runtimeは AWSが完全管理 します。ユーザーが管理できるのはコンテナ層のみです。

この設計の結果として、ユーザーはホストノードにSSHもできませんし、エージェントをホストに配置することもできません。


2. 通常のRuntime脆弱性スキャンの仕組み

EC2やKubernetesにおける典型的なランタイム脆弱性スキャンは次のフローです。

エージェントがノードまたはコンテナのファイルシステムに直接アクセスし、インストールされたパッケージ一覧(SBOM)を取得。それをCVEデータベースと照合して脆弱性を検出します。

代表的なツールとしては以下があります。

ツール ランタイムスキャン方式
Sysdig ノードエージェント + rootfs scan
Wiz cloud API + in-node scan
Lacework エージェントベース
Trivy ローカルfsスキャン

これらはすべて、ノードまたはコンテナのファイルシステムへのアクセスを前提としています。


3. FargateでRuntimeスキャンが困難な理由

Fargateでは次の2つの制約により、従来型のランタイムスキャンが構造的に困難です。

制約① ノードアクセス不可

FargateはホストOSをAWSが管理するため、ユーザーはノードにアクセスできません。従来のエージェントをDaemonSetやhost-networkで配置する方式は使えません。

制約② コンテナrootfsへの直接アクセスが制限される

ノードにアクセスできないため、実行中コンテナのルートファイルシステム(/proc/<pid>/root 等)を外部からスキャンすることができません。

なぜeBPFも使えないのか

eBPFはLinuxカーネルのフック機構を利用してsyscallを低オーバーヘッドで追跡します。

$$\text{eBPF程序} \xrightarrow{\text{JITコンパイル}} \text{Kernel VM} \xrightarrow{\text{フック}} \text{syscall追跡}$$

Fargateではカーネルへのアクセスが不可であるため、この経路自体が存在しません。


4. Fargateの脆弱性管理の中心:レジストリスキャン

ではFargateではどのように脆弱性を管理するのか。答えはシンプルです。

コンテナをデプロイする前に、イメージをスキャンする。

レジストリスキャンの特徴は以下の通りです。

  • スキャン対象:コンテナイメージのレイヤー(OCI/Docker image)
  • タイミング:push時 または CI/CDパイプライン内
  • 方式:イメージ内のパッケージ一覧をSBOMとして抽出し、CVE DBと照合
  • ホストアクセス不要:RegistryのAPIまたはイメージのtar展開で完結

5. Runtime Inventory マッピング

レジストリスキャンだけでは「今動いているタスクにどの脆弱性があるか」が見えません。実際のセキュリティツールではこれを解決するために Runtime Workload Mapping を行います。

このマッピングにより、

  • どのFargateタスクが脆弱なイメージで動いているか
  • そのタスクのCVE重大度はいくつか
  • いつデプロイされたか

を可視化できます。ホストに直接アクセスしなくても、イメージのメタデータとECS APIの組み合わせで実現可能です。


6. AWSネイティブサービスの構成

AWSのマネージドサービスでFargate脆弱性管理を構成する場合は以下の組み合わせが標準です。

Amazon Inspector の役割

Amazon Inspectorは2022年のリニューアル後、ECRとの深い統合を実現しています。

機能 説明
継続的スキャン ECRにpushされるたびに自動スキャン
Runtime mapping 稼働中FargateタスクへCVE情報を紐付け
再評価 新しいCVEが公開された際に既存イメージを自動再評価
SBOM出力 CycloneDX / SPDX形式でSBOMをエクスポート

GuardDuty Runtime Monitoringの役割

GuardDuty ECS Runtime Monitoringは脆弱性スキャンではなく 脅威行動の検知 が目的です。

GuardDutyはFargateでもptrace経由でプロセスの振る舞いを監視できます。ただし、eBPFベースではないため検知の深さはEC2より制限されます。


7. 主要サードパーティツールの対応状況

AWSネイティブ以外のセキュリティツールのFargate対応状況を整理します。

ツール Registry Scan Runtime Mapping Runtime Detection Fargate対応
Amazon Inspector
GuardDuty Runtime - -
Wiz
Sysdig
Snyk Container
Trivy ◎(CI用途)
Falco(Fargate) - - △(ptrace)

8. EC2とFargateのスキャン能力の対比

Fargateで失われる能力は ホストレベルの可視性 です。コンテナイメージの検査に関しては、EC2と同等の能力を持ちます。


9. Serverless Containerにおけるセキュリティモデルの転換

これがこの記事で最も重要なポイントです。

従来のコンテナセキュリティは Runtime中心 でした。

Fargateでは Build-time中心 に転換します。

この転換を Shared Responsibility Modelの変化 として捉えることもできます。

Fargateではカスタマーの責任範囲がコンテナ層に集約されます。その結果、セキュリティ対策もコンテナイメージを中心に設計するのが自然な帰結です。


10. 実践的なFargate脆弱性管理のベストプラクティス

① CI/CDパイプラインにスキャンを組み込む

② ベースイメージの選定

ベースイメージ 特徴
scratch パッケージなし。CVEリスク最小
distroless Google製。必要最小限のパッケージ
alpine 軽量。musl libc使用
debian-slim 互換性高い。パッケージ多め

脆弱性の根本的な削減には、ベースイメージを distrolessscratch に変更するのが最も効果的です。

③ SBOMの管理

SBOMを管理することで、新しいCVEが公開された際に過去にデプロイしたイメージへの影響を即座に評価できます。


まとめ

機能 ECS on EC2 ECS Fargate
Host OSパッケージスキャン
Runtime Filesystem Scan
eBPF / kernel hooks
Registry / Image Scan
SBOM管理
Runtime Workload Mapping
Runtime Detection(ptrace)

ECS Fargateでは、ホストへのアクセスができないというアーキテクチャ上の制約から、脆弱性管理の中心はレジストリスキャン(Build-time Security) になります。

これはFargateが「セキュリティを弱くした」のではありません。

セキュリティの責任境界とその実施タイミングが、RuntimeからBuildに移動したのです。


サーバレスはセキュリティを簡単にしたわけではない。

セキュリティの重心を Runtime から Build へ移動させた だけである。


参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?