[レポート] AWSセキュリティサービスによるコンテナの脅威検出と対応 #TDR372 #AWSreInforce

AWS re:Inforce 2024 TDR372 Container threat detection and response with AWS security services のセッションレポートです。 AWSにおけるコンテナのセキュリティ対策を総ざらいで体験できる、ハンズオン形式のセッションでした。

こんにちは! AWS 事業本部コンサルティング部のトクヤマシュンです。

フィラデルフィアで開催されている AWS re:Inforce 2024 に参加しています。

本記事は AWS re:Inforce 2024 のセッション「Container threat detection and response with AWS security services」のセッションレポートです。
さまざまなサービス・ツールを使って多層的なコンテナ脅威検知・対応を行うため、参加すればひと通りのコンテナセキュリティ対策を体験できるハンズオン形式のセッション(Workshop)でした。

セッション概要

Join AWS experts for an immersive container security workshop using AWS threat detection and response services. This workshop simulates scenarios and security events that may arise while using Amazon ECS and Amazon EKS. The workshop also demonstrates how to use different AWS security services to detect and respond to potential security threats, as well as suggesting how you can improve your security practices. Dive in and learn how to improve your security posture when running workloads on AWS container orchestration services. You must bring your laptop to participate.

このWorkshopは次のようなModuleで構成されていました。

  • Module1. Monitoring EKS configurations with AWS Config
  • Module2. Integrate Kubescape into AWS Security Hub
  • Module3. Monitoring container compliance with AWS Security Hub
  • Module4. Working with Amazon Inspector
  • Module5. Working with Amazon GuardDuty for Containers
  • Module6. Working with Amazon Detective for Containers

時間は2時間。
AWSサービスだけではなく、オープンソースであるKubescapeまで含まれる、てんこ盛りの内容ですね。それぞれどのようなハンズオンを行ったか説明します。

Module1. Monitoring EKS configurations with AWS Config

ワークショップ参加者にはそれぞれハンズオン用のアカウントが与えられます。
そのアカウントはAmazon EKSやAmazon ECSなど、ハンズオンのための環境や各種セキュリティサービスがプロビジョニングされています。

本章では、AWS Configを利用してAmazon EKSの脅威検知を行います。

はじめに、AWS管理Config Ruleの1つであるeks-cluster-oldest-supported-versionを有効化します。

このときoldestVersionSupportedというパラメータを1.28に設定します。

これにより、1.28よりも古いバージョンのEKSクラスターがあればNON_COMPLIANTなリソースとして検知できるようになります。

ハンズオンでは他にもeks-endpoint-no-public-accesseks-secrets-encryptedといったAWS管理Config Ruleを有効にしました。

他にも利用可能なルールはたくさんありますので、こちらをご確認ください。

Module2. Integrate Kubescape into AWS Security Hub

Kubescapeはオープンソースで提供されるKubernetesのセキュリティチェックツールです。
NSA-CISAやMITRE ATT&CK®、CIS Benchmarkといったフレームワークに対応しており、Kubernetessの設定ミスや脆弱性をスキャンすることが可能です。

本章で利用する環境は次の通りです。

はじめにEC2にKubescapeをインストールしてAmazon EKSのスキャンを行います。
次にKubescapeのスキャン結果をjsonファイルに整形してS3に保存し、AWS LambdaでAWS Security Finding Format (ASFF)形式に加工してAWS Security Hubにインポートしました。

はじめてKubescapeを使ったのですが、簡単なコマンドを打つだけで脆弱性スキャンを実行することができました。 たとえば、各種環境変数が設定された上でMITREフレームワークに基づくスキャンをするだけなら下記コマンドを実行するだけです。

kubescape scan framework mitre

とても良いツールで、Amazon EKSを採用する環境では導入を検討する価値があると思いました。 また、今回はKubescapeを使ったハンズオンでしたが、同様の仕組みをつかえば他のセキュリティツールもSecurity Hubに連携することが可能ですので、ご参考まで。

Module3. Monitoring container compliance with AWS Security Hub

本章ではAWS Security Hubを利用した検知を行います。
AWS Security Hubは、大きく下記の2つの機能を持ちます。

  • 種々のセキュリティサービスの情報を集約するハブとしての機能
    • Module2ではKubescapeの情報を集約
  • CSPM(Cloud Security Posture Management)サービスの機能
    • クラウド上のセキュリティ設定を監視

このCSPM機能を使うことで、Amazon ECR、Amazon ECS、Amazon EKSといったコンテナサービスを含むAWSサービスのセキュリティの設定状況を可視化し、不適切な設定やコンプライアンス違反などのチェックを行うことが可能です。

ハンズオンで用意されたアカウントは、すでにAWS Security HubのCSPM機能が有効となっている状態となっています。
ここでは下記2つのセキュリティ標準が有効化され、それぞれのチェック結果がスコアとして表示されていました。

  • CIS AWS Foundation Benchmark v1.2.0
  • AWS Foundational Security Best Practices v1.0.0

個々のコントロールを確認することで、どのような設定が違反検知されているか確認できます。
たとえばECR.2 ECR private repositories should have tag immutability configuredだと、タグのイミュータビリティが有効になっていないAmazon ECR プライベートリポジトリが1つ存在していることがわかります。

このように、AWS Security Hubを用いてコンテナに関わるAWSサービスのコンプライアンスチェックを行うことができました。

Module4. Working with Amazon Inspector

この章ではAmazon ECRの拡張スキャンによってAmazon Inspectorを使った脆弱性スキャンを行いました。
さらに、それをCICDパイプラインに組み込み、スキャン結果が問題なかった場合のみデプロイを行う仕組みを構築しました。

本章で利用する環境は次の通りです。

パイプラインを実行すると、スキャンの結果CriticalHighの脆弱性が見つかり、パイプライン失敗によってデプロイまで進めません。 Amazon Inspectorの画面を確認すると、CVE番号とともにどのような脆弱性が発見されているか確認できます。

ハンズオンではDockerfileに下記を追加してパッケージを最新化し、脆弱性をなくしてデプロイを成功させるところまで行いました。

RUN apt-get update && apt-get upgrade -y

脆弱性スキャンとCICDパイプラインを組み合わせる体験ができました。

Module5. Working with Amazon GuardDuty for Containers

Amazon GuardDutyではコンテナ保護のための下記のような機能があります。

  • EKS Audit Log Protection
  • EKS on EC2 Runtime Monitoring
  • ECS on EC2 Runtime Monitoring
  • ECS on Fargate Runtime Monitoring

本章ではこれらのすべてを試しました。

たとえば、ECS Runtime Monitoringでは不正なECSタスク定義が用意されており、それをもとにタスクを起動してGuardDutyで検知することを試しました。
例はCryptoCurrency:Runtime/BitcoinTool.B!DNSというFinding Typeで、仮想通貨マイニングに関連するドメインに接続しようとしたことを検知しています。

さまざまなAmazon GuardDutyのコンテナ保護機能を用いた脅威検知・対応を体験することができました。

Module6. Working with Amazon Detective for Containers

Amazon Detectiveを使えば、Amazon GuardDutyの検出結果(Finding)をグルーピング・可視化できます。
本章では下記のように、いくつかのFindingが相互にどのように関連しているか、グラフ形式で表示されることを確認しました。

以上でハンズオンは終了でした。

終わりに

「Container threat detection and response with AWS security services」のセッションレポートをお届けしました。
AWSにおけるコンテナのセキュリティ対策を総ざらいできる内容でした。
机上で知っていた機能も実際に画面を見ながら体験することでより理解が深まりました。これは現地参加ならではですね。

本レポートがどなたかのお役に立てば幸いです。