本シリーズでは、ランタイム脅威検知のデファクトスタンダードであるFalcoの検知Ruleを、1つの記事で1つ簡単に紹介していきます。
ランタイムセキュリティやFalco自体の概要を知りたい方はこちらのブログ記事をご参照ください。
今回ご紹介する検知Ruleは「Contact EC2 Instance Metadata Service From Container」です。
Rule記述
- rule: Contact EC2 Instance Metadata Service From Container
desc: Detect attempts to contact the EC2 Instance Metadata Service from a container
condition: outbound and fd.sip="169.254.169.254" and container and not ec2_metadata_containers
output: Outbound connection to EC2 instance metadata service (command=%proc.cmdline connection=%fd.name %container.info image=%container.image.repository:%container.image.tag)
priority: NOTICE
tags: [network, aws, container, mitre_discovery]
Rule概要
コンテナ上からEC2インスタンスのメタデータサービスに問い合わせがあったことを検知します。
EC2インスタンスでは、 169.254.169.254 はメタデータを取得するための特別なIPとして使用されます。
攻撃者はコンテナに侵入した後、ラテラルムーブメントのための情報収集としてメタデータサービスを利用することがありますが、このRuleを使うことで検知可能です。
クラウドにおけるラテラルムーブメントについての詳細は、こちらのブログ記事をご参照ください。
Condition(条件)
outbound and fd.sip="169.254.169.254" and container and
コンテナ上での169.254.169.254に対するアウトバウンド接続で、
かつ
not ec2_metadata_containers
あらかじめ定義した、EC2メタデータへのアクセスを許可したコンテナではない場合
containerマクロの内容は以下となります。
- macro: container
condition: (container.id != host)
container.id != host
コンテナidがhostではない場合
※イベントがコンテナ内部で発生したのでなければ、idはhostと設定されます
Output(出力)
EC2インスタンス・メタデータ・サービスに対するアウトバウンド接続
%proc.cmdline
コマンドライン
%fd.name
接続名
%container.info
コンテナ情報
%container.image.repository
コンテナイメージリポジトリ
%container.image.tag
コンテナイメージタグ