こんにちは。ログとにらめっこしているMiyuです。
Splunkを導入して1年ほど経過したので、少し振り返ってみます。

背景

弊社は原則フルリモートの就業形態で、全てのシステムがクラウドサービスになります。

働きやすさとセキュリティを可能な限り両立するために様々な施策を行っていまが、当然いくら気を付けてもミスが発生したり、想定していない事象が発生したりするものです。そういった際に「調査」をしますが、これがとにかく大変です。IdPを起点として様々なサービスと連携させている関係上、何がトリガーとなってどうなったのかを調べるのに複数のログを見に行くことになります。その場しのぎの対応はすぐできるものですが、原因を特定しないと再発する(かもしれない)ので、この原因特定作業は欠かせません。原因を特定するため、主にログの調査を実施しますが、サービスごとに保存期間がまちまちだったり、エクスポート機能の有無によっては時間が奪われるなど、煩雑な作業の発生となることに課題を感じていました。

更には社員数が増えると同時に、利用されるSaaSとそれらのログが指数関数的に増えて、ログを追うことも難しくなってきており、いよいよログ管理の環境を整備しなければいけないフェーズとなり、SIEMであるSplunk Cloudの導入へと至りました。

SIEMってなんだっけ

ログを一元管理して分析・脅威の検知を行うツールです。ただ複数のログを収集して保存しておくストレージではなく、取り込まれたログから問題はないのか?をリアルタイムでチェックし、必要であればアラートを出したり、ログからわかる動向などの可視化をすることができるものです。

一元管理して必要なログの詳細検索ができるという点でも極めて有用だと感じますが、それだけではない、それがSIEMです。

Splunk Cloudへのログ取り込み

できれば全サービスのログを取り込みたいところですが、以下の制約がありました。 主要なサービスは基本的にログの取得できるので問題なしでしたが、ここは事前に確認しておきたいところです。

  • そもそもサービス側がログを提供していない
  • 上位プランでしかログを提供していない
  • ログは提供されているものの、エクスポート機能等がない

また、Splunkへのログ転送にはSplunkbaseと呼ばれるアドオンストアからアドオンをインストールしてSaaSのログを繋ぎこむのですが、繋ぎこみたいアプリ向けのアドオンがない場合は自前で転送する方法を考える必要がありますので、この辺りも確認が必要でした。

導入による効果

アラート機能による異常の検知通知は期待通りで、日々役に立っています。

ユーザのログイン動作が連続で失敗しているなどの挙動が発生していることをほぼリアルタイムで把握できるようになり、アカウントがロックされる前に事前調査しておくこともできるようになりましたし、実際にロックされた際にも対応がスムーズになりました。

サービスの不審な動作検出に着目しがちですが、サービスの意図しない設定変更等も拾えるようになりました。今まで気が付くことのできなかった情シスが実施する設定上のミスを通知し、即座にリカバリできるような体制も築くことができています。その他にも、スコープの広いファイル共有設定を(誤って)しているユーザーとそのファイルを特定したりなど、幅広い使い方をしています。これに結構助けられたりしています…。

また、MDMのデバイス情報からインストールされているアプリ・利用しているOSバージョン・最終ログイン日などを元にダッシュボードという形で可視化することもできたりで、資産管理の面でも効果があったりしています。ただ、ダッシュボードは自己満足になりがちなので注意が必要です(作って満足して見ることがなくなる)。

Splunk 導入の副作用(いい意味で)

ログを見るようになったことで、各サービスのログの特性を理解できるようになりました。これによって、調査時間がかなり短縮されたと思います。自分の知りたい情報に早くたどり着けるようになったのです。「A情報ならBフィールドから調査可能、Cの情報だけでDが抽出可能」などが分かるようになることで「調査のための調査」をすることが少なくなりました。

多くSaaSを抱えると、そもそもログから取れる情報が何なのか分からなくなりがちです。事故ってしまったときに、知りたい情報がそもそも取れるのか・取れないのかが分かるだけでも大きな違いとなります。

極端な例を出すと、ログ自体に直接ユーザ名やグループ名が記録されずに内部IDで記録されているログがあったりします。ユーザ名等で検索しても辿り着けないことを知っていれば、別のアプローチを予め用意しておいたり、Splunkの場合はLookup機能と呼ばれる別のテーブルデータを検索結果に紐づけることのできる機能があるため、事前にLookupテーブルを用意しておくことで、ユーザ名でも検索できたりします。

おわりに

導入から構築・運用まで担当しましたが、設定自体はそこまで詰まることなくできました。肝はやはりログの検索だと思います。情シスとして張り付くようにログを監視をしている訳ではないので、どうしても検索に慣れるまで時間が掛かった印象です。逆に検索に慣れるといろいろな検出主要(アラート対象となるログ検索構文)が使いこなせるようになりました。

また、(主要なサービスの)ログがXXX日保管されているという安心感から、最悪の事態になったときに「なんとか調査できる」という心の余裕が生まれたような気がします。

現状はなんちゃってSOC体制ではありますが、組織の規模などのフェーズに合わせて見直ししなければいけない部分かなと思っていますので、その時になったら頑張ります。

投稿者 miyu_sakatsuki

関連投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です