fatsheep's memo.txt

気になったこと、試したこと、その他もろもろを書いていきます。

OSSのSOAR『Shuffle』 ~Workflow作成~

f:id:fatsheep:20200614161755p:plain

前回の記事では導入部分を記載しました。
本記事では、Workflowの利用方法について記載していこうと思います。

注意点

本記事の内容は2020/6/19現在のものです。
現在頻繁に機能アップデート・プログラム改修が行われており、記事の通り動作しない、または設定できない部分があるかもしれませんので、その点ご了承ください。

SOARのAppsとWorkflowについて

SOARで一連の処理を自動化する際の設定はWorkflowという形で行います(Splunk PhantomではPlaybookと呼ばれる)。
Workflowを構成する要素をShuffleではAppsと呼んでいます。このAppsがほかのシステムとやり取り・連携する機能となります。
ShuffleもSplunk PhantomもあらかじめAppsは用意されており、Workflow作成時、Appsを線でつないでいくだけで簡単に行いたい処理を自動化することができるよう作られています。

Shuffleについては最初から導入されているAppsが20個ほどあり、E-mailでの通知や、MISP・The Hiveとの連携、またHTTPリクエストを実行したりなど、必要最低限の機能は備えています。
またAppsの拡張として、OpenAPIとして公開されているものも利用可能なようで、ざっとみたたけで1000以上の機能が公開されており、それを利用することでかなり機能拡張を図ることが可能なようです。

ShuffleのWorkflow利用

前置きが長くなってしまいましたが、改めてShuffleのWorkflowについて記載していきたいと思います。
※なお詳細は公式ドキュメントに記載されていますので、より詳しく知りたい方はこちらを参照ください。 shuffler.io

基本的な利用手順

ShuffleでWorkflow、Appsを利用するには、以下のような手順で行います。

  1. Workflow作成画面で使いたいAppsをドラッグ&ドロップします。
  2. Appsによっては別途パラメータを設定する必要があり、設置したAppsをクリックすることで細かな設定を行うことができます。
  3. 画面下のフロッピーボタンを押しWorkflowを保存します。
  4. 再生ボタンを押すとWorkflowが実行され、Appsを動作させることができます。

f:id:fatsheep:20200618235217g:plain

Apps間の連携

Appsを連携する方法は、連携元のAppsアイコンをマウスオーバした際に表示される青い丸を、接続したいAppsにドラッグ&ドロップすることで行うことができます。
また連携を解除したい場合は、接続している矢印を選択し、ゴミ箱アイコンをクリックすることで可能です。

f:id:fatsheep:20200619103424g:plain

Apps間のデータのやり取りは、以下のような方法で利用可能です。
$Apps名

またJSON形式のデータの場合は、以下のように「.」(ドット)で区切ることで対象のデータのみ取り出すことができます。
$Apps名.フィールド名.フィールド名.・・・

以下の画像では、http_1の結果の中の、originフィールドの値を取得しています。

f:id:fatsheep:20200619121921p:plain

f:id:fatsheep:20200619121213p:plain

Workflow実行時、最初に実行されるAppsの設定

基本的には一番最初に設置したAppsが、一番最初に実行されるAppsとなります。
最初に実行されるAppsは丸いアイコンになります。また2番目以降に実行されるAppsは四角のアイコンになります。

f:id:fatsheep:20200618234723p:plain

公開されているAppsを追加

最初からいくつかAppsが登録されていますが、それ以外にもOpenAPIという形式で公開されている設定をインポートすることで、Appsの機能拡張が可能です。
Shuffle製作者の@Frikky氏が作成・公開しているものや、OpenAPI directoryというサイトで入手することができます。

github.com apis.guru

追加方法は以下の通りです。

  1. ShuffleトップページのApp Createrの「CREATE FROM OPENAPI」を選択します。
  2. WEB上に公開されているYaml/JSONのURLを入力するか、直でデータを入力します(URLはRepositryのリンク先ではなく、Yaml/JSONデータの直リンクを設定する必要があります)。
  3. 「VALIDATE」をクリックし、内容確認を行います。正常の場合は「SUBMIT」ボタンが有効になるのでクリックします。
  4. 確認画面が表示されるので、適宜設定をカスタマイズし、「SAVE」を選択・保存します。

f:id:fatsheep:20200619142314g:plain

実行トリガー

Workflowを実行するためのトリガーを設定することができます。
現時点では以下の4種があります(そのうち現在利用可能なものは、WebhookとScheduleのみのようです)。
Workflow作成画面の左下にあるタブで、「Triggers」を選択することで、トリガーを選択・設定することができます。

注意点

トリガーを追加する際は、先にAppsを設置している必要があるようです。

f:id:fatsheep:20200619134551p:plain

最後に

本記事ではWorkflow、Appsの基本的な利用方法を記載してみました。
前回からの記事で一通りの利用方法を調べながら見てきましたが、構築方法やWorkflow作成などとてもシンプルで、またOpenAPIも利用可能なので拡張性も高く、今後にとても期待が持てるのではと思っています。
次回の記事では、使ってみたAppsの紹介など補足記事を書く予定です。また本記事は機能追加などに併せ更新していく予定です。

■更新履歴
2020/06/27 一部、表現を修正
2020/06/19 新規