本シリーズでは、ランタイム脅威検知のデファクトスタンダードであるFalcoの検知Ruleを、1つの記事で1つ簡単に紹介していきます。
ランタイムセキュリティやFalco自体の概要を知りたい方はこちらのブログ記事をご参照ください。
今回ご紹介する検知Ruleは「Launch Privileged Container」です。
Rule記述
- rule: Launch Privileged Container
desc: Detect the initial process started in a privileged container. Exceptions are made for known trusted images.
condition: >
container_started and container
and container.privileged=true
and not falco_privileged_containers
and not user_privileged_containers
and not redhat_image
output: Privileged container started (user=%user.name user_loginuid=%user.loginuid command=%proc.cmdline %container.info image=%container.image.repository:%container.image.tag)
priority: INFO
tags: [container, cis, mitre_privilege_escalation, mitre_lateral_movement]
Rule概要
特権コンテナで最初のプロセスが起動したことを検知します。
セキュリティの基本原則として、「最小特権の原則」があり、コンテナに対しても本来の目的に必要な最低限の権限しか与えないようにすることが重要です。
Sysdig Japanのブログ記事の中で最も人気のある「Dockerfileのベストプラクティス Top 20」の一番最初の項目としても記載されています。
例外として定めていない特権コンテナが起動した場合には、このRuleを使うことで検知可能です。
Condition(条件)
container_started and container
コンテナ内で最初のプロセスが起動し、
and container.privileged=true
特権コンテナが有効となっていて
かつ
and not falco_privileged_containers
Falcoが定義した特権コンテナではなく、
and not user_privileged_containers
ユーザが定義した特権コンテナでもなく、
and not redhat_image
あらかじめ定義されたRed Hatイメージでもない場合
Output(出力)
特権コンテナが起動しました。
%user.name
ユーザー名
%user.loginuid
ユーザーのログインUID
%proc.cmdline
コマンドライン
%container.info
コンテナ情報
%container.image.repository
コンテナイメージリポジトリ
%container.image.tag
コンテナイメージタグ