この記事はSplunk Advent Calendar 2019、10日目の記事です。
はじめに
saeoshiです。今回はちょっとネタに走る記事で恐縮ですが、どうぞよろしくお願いします。
12月に入り、みなさん忘年会のシーズンですね。毎日忘年をし続けている方もいらっしゃるのでは
ないでしょうか。
さてさて年を忘れて、うまい酒と飯を食ってる時に限って、奴はやってくるのです。
Ω「そうです。私がアラートです」
Ω「呼んだ?」
Aさん「PC開くのメンドクセ〜」
Bさん「電車の中でPCひらけない・・・」
Phantom「そんなあなたに朗報です。slackからplaybookを呼び出して実行しちゃいましょう」
A・B「な・・・なんだって・・・・」
#そもそもPhamtomって?
https://www.splunk.com/en_us/software/phantom.html
セキュリティ運用でのタスクの自動化と他製品と連携することによって運用の自動化を実現する製品です。
Security Orchestration and Automated Responseと呼ばれる新しいカテゴリの製品ですね。
セキュリティだけじゃなくて、IT運用でも全然使えるんだよね
例えばメールに含まれるIOCからIPアドレスをチェックして、Firewallルールの更新とか、ipのreputationの処理を行うみたいなことが簡単に実現できます。GUIを使って、処理をつなげていく感じでできるんだなぁ。
playbookのイメージはこんな感じ。
あと、この個別の処理はAppと呼ばれる単位でいろんな製品で使えるコマンドがまとまってるんだよね。
AWSだとinstanceの起動・停止、autoscalingグループへのattachとかが簡単にできるようになってる。
CiscoのASAだとipのblockとかvpnのsessiobn terminateとかできるんだよね。
こんなのがいっぱいある。
Build Phantom Instance
さてさて、前置きは一旦おわりで、まずは、Market PlaceからAMIを使ってサクッと立ち上げましょう。
起動すると、playbookやら、appやらいろいろインストールされるので、少々待ちましょう。
ログインは下記でOK(IDPASSはデフォルトはadmin/INSTANCEIDです)
##SlackのAppとslack botの設定をする
ログイン後、DropdownメニューからAppを選択して、Slackを検索すると、Unconfigure appの箇所に出てくるので
New Configure Assetsを選択して、設定をするんだけど、公式ドキュメントに沿ってやるのが良き。
流れとしては
- SlackのApps作成
- Bot Userの追加
- Phantomでslack appのインストール
- Phantomでユーザ2つ作成
- Slack側にphatomのPost URLを設定
って感じです。
Slack側からPhantomを呼びだす
設定がうまくいくと、こんな感じでbotを呼び出せます。
@phantom_apps get_container
ちなみに、phantomはsplunkのsavedsearchとか、どこぞからのrestをeventとしてこんな感じに記録できるようになっています。
イベントにドリルダウンすると、こんな感じで誰がいつどんなplaybookを実行したかの確認ができます。
イベントのリストを取ってみる
tagがslacktestで設定されてるイベントをとります。
@phantom_apps get_container --tag slacktest
###対象のイベントに対してPlaybookを実行する!
Event(ContainterID) 2095に対して、サンプルのplyabookを実行してみる!
@phantom_apps run_playbook --repo local advent_sample_playbook 2095
##おわりに
ざざっと書いちゃいましたが、playbookは自社のapiとも連携できるとの、自分で書いたpythonコードも埋め込めるので、障害対応用に毎回おこなう処理をplaybook化してあげると、飲みの席にいつつ、一旦slackから呼び出したphantomで一時切り分けとか、障害対応もできると思います!
今年もお疲れ様でした!