IBM Cloud Monitoring: Sysdig Secureを使うとこんなに便利 - 第1回: Activity Audit
IBM Cloud Monitoring: Sysdig Secureを使うとこんなに便利 - 第2回: Runtime Policyのアクション
1. はじめに
IBM Cloudの監視ソリューションの1つとして、IBM Cloud Monitoringが存在するが、その実体はSysdigのソリューションである。一般的にIBM Cloud上でOSの監視やコンテナーの監視をする際にはIBM Cloud Monitoringを利用するが、以下の2番目と3番目のプランの違いがわからず、単なるリソース監視ができれば良いと思って2番目のプランを選択してしまっていることが多いようだ。
-
Lite
(無料プラン) -
Graduated Tier
(Sysdig Monitor) -
Graduated Tier - Sysdig Secure + Monitor
(Sysdig Monitor + Sysdig Secure)
2番目のプランが提供するMonitor機能は、主にリソースモニタリングやKubernetes内での単純なエラーを検知してくれる。
一方で、3番目のSysdig Secureこそ、Sysdigの1番の強みかつ醍醐味であり、セキュリティーにフォーカスされた高度な機能が提供されており、Sysdigの1番の差別化ポイントである。
とはいえ、じゃあSysdig Secureを使うとIBM Cloud上でどんな嬉しいことができるのだと思う人も多いと思うので、これからIBM Cloudで利用できるSysdig Secureの利点を何回かに渡って説明していきたいと思う。今回は、(まずは恩恵として分かりやすそうな)Activity Auditを紹介する。
2. Activity Auditとは
Activity Audit
は、ホストやコンテナー上で行われた操作を確認できる機能であり、VSI(仮想サーバー)上の操作もコンテナー上の操作のどちらにも対応している。
コンテナはVSIと違ってライフサイクルが短い。コンテナが停止するとそのコンテナ上の記録もなくなり、IPアドレスも変わる。その短いライフサイクルの中で内部で行われていたイベントを追いかけるのは難しい。脆弱性・セキュリティーに関するインシデントを、コンテナが停止する前に検知し記録しておかなければいけないこともある。よって、Sysdig Secureは、こうしたコンテナが抱える難題を解決するためのソリューションであることは間違いないのだが、だからと言ってVSI(仮想サーバー)に対しては一切適用できないという訳ではない。VSI(仮想サーバー)も一緒に監視してくれることが可能である。
3. Activity Auditを試してみる
- まだ、Monitorの画面になっている場合は、左上からSecureに切り替える。
- Investigate -> Activity Auditを選択する。
- 直近でVSI上で実行されたコマンドが確認できる。ログが膨大なので、以下では、
z-syasuda
というホスト名でフィルタリング(host.hostnName = z-syasuda
)している。このVSIでは、以下のことが実行されていることがわかる。
この例は、VSIだったが、コンテナー内で実行された操作なども同様に確認できる。任意の時間に遡って操作を確認できるので非常に便利である。ログが膨大なので、以下はcluster名(kubernetes.cluster.name
)やnamespace名(kubernetes.namespace.name
)や、Pod名(kubernetes.pod.name
)でフィルタリングしている。
4. Runtime policyを利用した検知と、Activity Auditを使った解析
上記のActivity Auditは非常に便利なのだが、IBM Cloud Monitoring(Sysdig)監視対象が出力する膨大なActivity Auditのログ全てをチェックするというのは現実的には不可能である。よって、怪しい操作がされた時にはSysdig側で自動で検知して欲しいし、その検知内容をより詳細に確認する必要があると考えた時点でActivity Auditを使ってその詳細をチェックする、という手順を踏むことが望ましい。Sysdigでは、Runtime Policyと呼ばれる「実行時の挙動を検知する際のルールの組み合わせとその際のアクション」が用意されている。利用者はこの中から適切なRuntime Policyを選択して有効にするだけで利用できる。もちろん既存のルールを組み合わせてユーザー独自のRuntime Policyを作ることも可能である。
- Policies -> Thread Detection -> Runtime Policiesからポリシー一覧を確認できる。
- ポリシー一覧。クラウド固有のポリシーもあれば、汎用的に利用できるポリシーも存在する。
例えば、この中にはSuspicious Container Activity
というSeverity Highとして定義されているポリシーが存在するが、その中にはTerminal shell in container
という、コンテナーにログインした場合に検知が行われるルールがある。
このポリシーを有効にしていると、先ほどのようなコンテナーにログインした際には、以下のようにEvents欄にてSeverity High
で検知される。
この検知項目をより詳細に分析したい場合は、詳細画面でView Activity Audit
を選択することで、関連するActivity Auditを確認することができる。