新しいAWS App Runnerサービスにおけるセキュリティの確保

By 清水 孝郎 - MAY 24, 2021

SHARE:

本文の内容は、2021年5月24日にEric Carterが投稿したブログ(https://sysdig.com/blog/securing-the-new-aws-app-runner-service)を元に日本語に翻訳・再構成した内容となっております。

アマゾンは、クラウドネイティブアプリケーションのビルドと実行を容易にするために、コンテナアプリケーション専用の新しいサービス「AWS App Runner」を発表しました。

クラウドに移行する多くの企業にとってセキュリティは最重要課題であり、SysdigはAWSと協力してこの新しいプラットフォームでの脅威検知を可能にしました。

この記事では、App Runnerが他のAWSコンテナサービスとどのように違うのかを説明し、SysdigとFalcoを使ってApp Runnerのワークロードを保護する方法を紹介します。

AWS App Runner – インフラストラクチャーのオーバーヘッドがないセキュアなコンピュート

App Runnerでは、サーバー、コンテナオーケストレーター、管理すべきインフラがありません。ソースコード、コンテナイメージ、デプロイメントパイプラインを提供するだけで、App Runnerが自動的にコンテナイメージをビルドしてデプロイします。また、ロードバランシングの設定と管理、暗号化の提供、リクエストのトラフィックに応じたスケールアップやスケールダウンなども行います。つまり、事前にAWSの専門知識や経験がなくても、数回のクリックでコンテナ化されたWebアプリケーション、モバイルバックエンド、APIサービスを構築・実行することができます。
AWS App Runner flow diagram

新しいアプリケーションをデプロイするために、App Runnerは、指定されたコードリポジトリからpullしてソースからビルドするか、パブリックまたはプライベートのイメージリポジトリから既存のイメージをデプロイする選択肢を提供しています。

いずれの場合も、ランタイムやオートスケーリングのパラメータ、環境変数、割り当てられた仮想CPUやメモリなどの定義を含む通常の設定ステップを経て、新しいサービスがすぐに稼働します。
AWS App Runner console

AWS App Runnerの可視性とセキュリティ

ワークロードのセキュリティを確保するためには、クラウドやコンテナのアクティビティを可視化して、予期せぬ、望ましくない、悪意のあるイベントを特定する必要があります。Sysdigは、このミッションを遂行するために、AWS CloudTrailのログを利用して、使用中のクラウドサービス全体の異常を探して警告したり、pullされたイメージをスキャンして既知の脆弱性を探したりする方法を提供しています。

Sysdig Secureを使った例を見てみましょう。下の図は、”App Runner Service Created “が原因でポリシーがトリガーされた例です。これは、アウトオブボックスのSysdig Secureランタイムポリシーに組み込まれたFalcoオープンソースルールの1つに基づいています。
AWS App Runner runtime policies in Sysdig Secure

このポリシーには、新しいApp Runnerサービスが作成されたことを検出するためのルールが含まれています。今回のケースでは、ポリシーのトリガーとなったルールは”Create App Runner Service from Image”でした。

実際のFalcoのルールは以下のようになっています:

- rule: Create App Runner Service from Image Repository
  desc: Detect the deployment of an App Runner service from an image repository.
  condition:
    aws.eventSource="apprunner.amazonaws.com" and
    aws.eventName="CreateService" and
    jevt.value[/requestParameters/sourceConfiguration/imageRepository] exists and
    not aws.errorCode exists
  output:
    An App Runner service has been created from an image pulled from a repository
    (requesting user=%aws.user,
     requesting IP=%aws.sourceIP,
     AWS region=%aws.region,
     service name=%jevt.value[/requestParameters/serviceName],
     image identifier=%jevt.value[/requestParameters/sourceConfiguration/imageRepository/imageIdentifier])
  priority: NOTICE
  tags:
    - cloud
    - aws
    - aws_apprunner
  source: aws_cloudtrail


問題の深堀り(Digging deeper )

アラートに記載されている情報を詳しく見てみましょう:
aws.accountId  845151661675
aws.eventId    ee1a60aa-c013-4643-9597-8334549606d3
aws.region     eu-west-1
aws.requestId  5753033d-baf6-44f9-b8d6-903b34f1b863
aws.sourceIP   90.167.195.62
aws.user       alejandro.villanueva

AWS App Runner events feed in Sysdig Secure 
新しいサービスが作成され、それがどのAWSアカウントにあるのか、さらには作成したユーザーやどのIPアドレスからのものなのかがわかります。

また、これらの情報だけでなく、イメージリポジトリからApp Runnerサービスが作成されると、既知の脆弱性をチェックするためのイメージスキャンが自動的に実行されます。

AWS App Runner scan results in Sysdig Secure

スキャン結果からわかるように、デプロイされたイメージはいくつかのOSの脆弱性でフェイルしています。これは、AWS App Runnerサービスのセキュリティを監査するために使用できる貴重なツールです。

Cloud Activity Insightsで絵を完成させる

Sysdig SecureとFalcoが提供する情報は、問題の調査や今後の予防策を講じる上で、本当に貴重なものとなっています。また、セキュリティインシデントと同時に行われていた他のクラウドアクティビティを確認したり、侵害の原因となった構成上の問題をチェックしたりすることも、しばしば役に立ちます。

先日発表しましたように、Sysdig Secureはクラウドインフラの脅威検知機能を搭載し、さらにクラウドの設定ミスを特定するチェックも行います。このAWSクラウドのCSPM(Cloud Security Posture Management)の情報を活用することで、セキュリティ調査を迅速に行うことができます。

Sysdig Secureのクラウドアクティビティインサイト(Cloud Activity Insights)は、ベストプラクティスや確立したポリシーに違反しているクラウドアクティビティイベントを表示します。例えば、上記の例で指摘されたイベントが発生した時点で、CloudWatchのDelete Alarmsなど、他の疑わしいクラウドアクティビティが行われていたかどうかを確認できます。また、ユーザーがセキュリティグループのルールを作成してSSHの侵入を許可していたり、クラウドの設定が流失してリスクにさらされていたりするかどうかもすぐに把握できます。
AWS App Runner insights in Sysdig Secure

これらの情報があれば、インシデントを明確に把握することができ、設定上の問題やユーザの権限を改善し、再発の可能性を減らすための行動をとることができます。

まとめ

ここでは、App Runner と周辺のクラウドインフラストラクチャーを可視化し、イメージスキャ ンを自動化することで、App Runner のアクティビティを認識し、脆弱性を検出し、インシデン トを修正するための迅速な行動をとることができることを説明しました。

App Runnerのタスクは、他のクラウド資産と同様に保護する必要があります。脅威を検知するためには、コンテナワークロードがどこで実行されているか(Amazon ECS、Amazon EKS、AWS Fargate、またはAWS App Runnerなど)に関わらず、可視性が必要です。ワークロードのインサイトをクラウドのインサイトで補強することで、インシデント対応の準備がさらに進み、問題の切り分けと予防が可能になります。

Sysdig Secureはこのような目的で設計されています。Sysdig Secureは、何が起こったのか、どこで起こったのかという文脈で必要なデータを提供し、周辺のクラウドの活動についても詳細を提供します。このようなレベルの可視性により、アプリケーションやインフラを保護するためのコントロールを確立し、ゼロデイ脅威や侵入などの問題を迅速に特定・診断して、ビジネスのリスクを低減することができます。

これらの機能をご自身で試してみませんか?30日間の無料トライアルをリクエストすると、数分で使い始めることができます。