LoginSignup
1
0

More than 1 year has passed since last update.

Sysdig Secure の Drift Controlを使ってみた

Posted at

Sysdig Secure の Drift Controlを使ってみた

どんな機能か?
この機能は、コンテナはimutableである特性を活かし、本番環境で変更されないはずのファイルシステムが変更され、実行されたことを検知できます。コンテナのベストプラクティスを実装し、Sysdigを追加することで、攻撃の検知に役立てます。

何を検出できるのか?(検出できるパターン)

Sysdigの公式ブログと設定画面から、以下の3つのパターンで検知することができます。

A. Sysdigの設定画面から、指定されたプログラムの実行
B. パーミッション/アトリビュートが実行可能に変更されたファイルの実行
C. パッケージマネージャでダウンロードまたは更新されたパッケージの実行

それぞれ、A. B. C. と試してみました。

準備と前提

以下の事前準備をしました。

  • Kuberentes Clusterが動いている
  • Sysdig Secureのアカウントがある
  • Sysdig Agentが対象のKubernetesにインストールされている
  • Container Drift機能が使える状態である(Sysdigに連絡し有効化してもらう)

やってみた

設定

まずは、Continer Driftを選択し、新しいRuntime Policyを作成しました。
テストとして、Always Deny/usr/bin/curl を追加しました。

1/ Drift Controlの作成
Screen Shot 2022-08-26 at 15.48.36.png

2/ 設定でEnableにし、設定値を追加
Screen Shot 2022-08-26 at 15.48.26.png

検出テスト

Kubernetesにて、Nginxのpodを走らせました。

kubectl run drift-test --image=nginx
pod/drift-test created

その上で、コンテナにsshします。

kubectl exec -it drift-test -- /bin/bash
root@drift-test:/#

このpodで、以下のパターンを試します。
  A/ curl (= 指定したbinary)
  B/ downlad & chmod
  C/ パッケージインストール

A. curl でkubectlをインストールしてみます

実行:

root@drift-test:/# curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   138  100   138    0     0   3209      0 --:--:-- --:--:-- --:--:--  3209
100 42.9M  100 42.9M    0     0   133M      0 --:--:-- --:--:-- --:--:--  133M
root@drift-test:/#

結果:

Sysdig UIを確認すると、イベントページにて検出され多ことを確認できました。
検出されたイベントを見ると、match_type: deny_list となっています。
Screen Shot 2022-08-26 at 16.11.20.png

B. ダウンロードした、kubectlを叩いてみました

先ほどDownloadした、kubectlに実行権限をつけます。Always Denyに入れていませんが、実行権限をつけたら、Sysdig Agentが自動的に deny listに入れてくれるという仕組みです。

実行:

root@drift-test:/# chmod +x kubectl
root@drift-test:/# ./kubectl help
kubectl controls the Kubernetes cluster manager.

結果:
イベントが検出されました。イベントの詳細を見るとmatch_type dynamic_listとなっています。

Screen Shot 2022-08-26 at 16.12.40.png

C.apt でgitをインストールして叩いてみました

実行:

root@drift-test:/# apt update
root@drift-test:/# apt install git --yes
root@drift-test:/# git help

結果:
イベントが検出されました。イベントの詳細を見ると match_type dynamic_listとなっています。
Screen Shot 2022-08-26 at 16.49.20.png

使ってみた感想

設定が簡単で、コンテナの利点を活かしながら、セキュリティも担保できるため良い機能に感じられる。最初からマイクロサービスとして設計されていない既存のシステムの場合、誤検知が生じると考えられるため、scopeを絞って導入していくのがよさそうです。

今回は試していないが、該当のプログラムを阻止することもできる。しばらくモニターした後、おコラなことを確認したら、悪意のあるプログラムとして、阻止してしまう選択肢も取れる。
Screen Shot 2022-08-29 at 11.27.55.png

1
0
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
1
0