社内でSOC構築してみた② #MISP構築編

Existの構築に関する記事。
<a href="https://qiita.com/hassy_mossan/items/2b58cbd236761bbe6c5f">社内でSOC構築してみた① #EXIST概要編</a>
<a href="https://qiita.com/hassy_mossan/items/78eec8d85ba140ebe00f">社内でSOC構築してみた② #MISP構築編</a>
<a href="https://qiita.com/hassy_mossan/items/f103987f3415a3ce7de8">社内でSOC構築してみた③ #EXIST構築編</a>
<a href="https://qiita.com/hassy_mossan/items/37e7e9b394f4926e4375">社内でSOC構築してみた④ #EXIST設定編</a>

<h2>MISPについて</h2>
Existの構築の前に、データ取得先として必要なMISPの構築について、ここで簡単に説明します。
詳細については以下のサイトに詳しく記載されているので、ぜひ参考にしてください。

参考：<a href="https://ninoseki.github.io/2018/09/15/head-first-misp.html">https://ninoseki.github.io/2018/09/15/head-first-misp.html</a>

<h3>MISP(マルウェア情報共有プラットフォーム)とは</h3>
OSSのWebアプリケーションで歴史を紐解けば、個人の開発が軍主導による開発となり、
NATOで開発が活発化しました。
現在はルクセンブルクのCERTであるCIRCLにて管理されています。

<h3>MISPの特徴</h3>
脅威情報を内部だけでなく外部のMISPインスタンスと共有し、情報を収集することが可能です。
収集した情報のIPやHash値等から、関連性を確認することができます。

<h2>インストール方法</h2>
インストールはMISPより提供されているインストールシェルを実行することで完了します。

```
#シェルのダウンロード
wget -O /tmp/INSTALL.sh https://raw.githubusercontent.com/MISP/MISP/2.4/INSTALL/INSTALL.sh

#インストールの実行
bash /tmp/INSTALL.sh -c
```

以上で完了ですが、インストール完了までにサーバーのスペックにもよりますが1時間程度かかります。

<h2>設定</h2>
インストールが完了したらhttpsでインストールしたサーバーのIPをしていしてアクセスします。
以下の画面が表示されるので、以下の情報を入力します。
ID:admin@admin.test
PW:admin
![019f4c92-3e90-4843-89fe-392d10ae350c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/9498f68e-3ed2-545d-5ff8-0fe7a3b39bcc.png)
ログイン後はPWの変更からEXISTで使用するための初期設定を行います。

なおMISPにはチートシートがあるので、設定で困った際には是非そちらも参考にしてください。
https://www.misp-project.org/misp-training/cheatsheet.pdf

<h3>1)PWの変更</h3>
以下の画面が表示されるので、新しいPWを設定します。
設定するPWには制約があるので詳しくは「Password」の横にあるiのボタンをクリックして確認してください。
![cf1f4631-0307-4fed-8bdd-cc743cab553c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/d4f4fb57-713a-51e6-8222-3a1ec726c0fc.png)

<h3>2.Organization(組織)の作成方法</h3>
構築したMISPの所有者として、自分の組織情報を登録します。

ヘッダーメニューの「Administration 」→「Add Organization」をクリック。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/84c1af12-38d9-c5cd-28a0-741f1e6a6012.png)

以下の画面が表示されらたら各項目を入力します、入力値の例は画像配下に記載。

![7ec7ae47-2b08-4fa6-a726-9c5868bc40b4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/055b07b8-3870-2d89-fd32-58492ef0c2ca.png)

<b>・Local organisation</b>
OFFの場合は既知のインスタンスのみ情報共有(?)のようなのでひとまずON。
<b>・Organisation Identifier</b>
組織名を記載します。
<b>・UUID</b>
インスタンスのID、共有インスタンス間でユニークでなければならないので無難に「Generate UUID」で生成して入力します。
<b>・A brief description of the organisation</b>
組織の簡単な説明を記載します。
<b>・Bind user accounts to domains (line separated)</b>
インスタンスにアクセス可能なユーザーとドメイン(?)を記載します。
<b>・Logo (48x48 png)</b>
ロゴをアップロードします。
<b>・Nationality</b>
所在する国を選択します。
<b>・Sector</b>
どの様なカテゴリに所属する組織化記載します。
<b>・Type of organisation</b>
カテゴリの中でどのような区分に属するか記載します
<b>・Contact</b>
連絡先の詳細を記載します。

最後に「<b>Submit</b>」を押下して完了。

<h3>3.データの登録</h3>
MISPで扱うイベント等のデータを登録します。

ヘッダーメニューの「Sync Actions」→「List Feeds」をクリック。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/5f78d268-b53c-6da0-e8dd-8d05b955e248.png)
「CIRCL OSINT Feed 」「The Botvrij.eu Data」の2つにチェックをいれ、[Enable selected] ボタンを押します。
![無題 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/f11eb1ae-92b5-4c8b-77a4-4b94464a11e0.png)
確認ダイアログが表示されるので [Yes] を選びます
![03ed4e20-1f8e-4723-82b3-9d872ad563ed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/f9103892-8e53-bb21-1565-a1926b1a08a4.png)
「Fetch and store all feed data」 ボタンを押下し、「Pull queued for background execution.」と表示されれば完了です。
![97813084-5d80-4554-83a2-cc9a338e5652.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/6516e1c2-3e4b-7e87-7623-93e5df4ebc7e.png)
サイドメニューのList Eventsを押下して、取り込んだデータを確認できます。
その他にもAttributes等が取り込まれたことも確認できます。

<h3>4.APIのAuth Key取得</h3>
EXISTからMISPに取り込まれたイベントなどのデータを取得する際に使用する、APIのAuth Keyを取得します。

「Administration」→「List Users」をクリックします。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83071/b29697e1-638c-6f06-9874-bf0e94a90439.png)
ユーザーは作成していないため、今回はadminのAuth keyを取得します。
赤枠の目のマークを押下すると、Auth Keyが表示されますのでそちらをメモしておきます。

以上でMISPの設定は完了となります。