先日、MacのParalleles Desktop上にそれぞれ別サーバとして構築したMISPとOpenCTIを連携させてみたのでここにその方法を記載しておきます。
なお、以下に書いたとおり、OpenCTIを構築する場合、コマンドラインから構築する方法と、portainer.io経由で構築する方法があるようです。
私の場合はコマンドラインから構築しました。(portainer.io経由でもやってみましたが、今のところ私の環境では成功していません。)
コマンドラインから構築する場合は、こちらの方のサイトが参考になると思います。
Re:ゼロから始めるOpenCTI 導入編(Zenn) https://zenn.dev/daiya/articles/658a4f4811e2fa
portainer.io 経由で構築したいという方は、こちらのサイトが参考になると思います。
OPENCTI INSTALLATION (blog agood cloud) https://blog.agood.cloud/posts/2020/04/22/opencti-installation/
1.misp接続用のdocker-compose.ymlをコピー
OpenCTIが正常に構築できていることを確認した後、以下のGithubのサイトにmisp接続用のdocker-compose.ymlが置いてありますので、取りに行きます。
https://github.com/OpenCTI-Platform/connectors/blob/master/external-import/misp/docker-compose.yml
そのymlの3行目から最後(47行目)までをコピーします。
1 version: '3' 2 services: 3 connector-misp: 4 image: opencti/connector-misp:5.8.7 5 environment: ・・・ 46 - MISP_INTERVAL=5 # Required, in minutes 47 restart: always
2.OpenCTI用のdocker-compose.ymlに貼り付ける
1.でコピーしたデータを OpenCTI用のdocker-compose.ymlの中に貼り付けます。
なお、docker-compose.ymlの場所は、openctiをどのディレクトリ配下に構築したかに依存しますが、私の場合、/usr/local/openctiというディレクトリを作って構築したので、その下のdockerディレクトリ の中にありました。
docker-compose.ymlをviなどで開いた後、以下のように「connector-import-document」のセクションの直後に先ほどコピーした「connector-misp」のセクションを挿入します。
・・・ connector-import-document: image: opencti/connector-import-document:5.8.3 environment: - OPENCTI_URL=http://opencti:8080 - OPENCTI_TOKEN=${OPENCTI_ADMIN_TOKEN} - CONNECTOR_ID=${CONNECTOR_IMPORT_DOCUMENT_ID} # Valid UUIDv4 ・・・ restart: always depends_on: - opencti connector-misp: image: opencti/connector-misp:5.8.3 environment: - OPENCTI_URL=http://opencti:8080 - OPENCTI_TOKEN=${OPENCTI_ADMIN_TOKEN} - CONNECTOR_ID=(UUIDv4を取得し設定)⭐️ - CONNECTOR_TYPE=EXTERNAL_IMPORT ・・・ - CONNECTOR_LOG_LEVEL=info - MISP_URL=https://(MISPサーバのIPアドレスを設定)⭐️ - MISP_REFERENCE_URL= # Optional, will be used to create external reference to MISP event (default is "url") - MISP_KEY=(MISPのAPIキーを設定)⭐️ - MISP_SSL_VERIFY=false # Required ・・・ - MISP_INTERVAL=1 # Required, in minutes restart: always depends_on: - opencti volumes: esdata: s3data: redisdata: amqpdata:
「connector-misp」のセクションを挿入したら、環境に合わせて修正をしますが、通常は⭐️をつけた3つの部分だけ変更した方がよいです。
なお、最初の⭐️の部分のUUIDv4ってなに?って感じの人(私もそんな1人です)もいると思いますが、以下のサイトから生成した世界に一つ?のIDをコピーしてくるだけで大丈夫です。
Online UUID Generator https://www.uuidgenerator.net/version4
それ以外を編集するとたぶんハマると思います。
たとえば「OPENCTI_URL」「OPENCTI_TOKEN」あたりを変えたくなるかもしれませんが、それを変えてしまった為に私はすこしハマりました。
3.OpenCTIを再ビルドする
上記のymlファイルを編集した後、 OpenCTIを再起動すれば変更が反映されるとおもっていました。
しかし実はそうではなく、再ビルドのコマンドを実行する必要があるようです。そのコマンドがこちらです。
$ docker-compose up -d --build
これを知らなかったが為に、いくらymlファイルを修正してもうまくいかず、かなりハマってしまいました。
以下のZenn様のページが参考になりました、ありがとうございました。
Re:ゼロから始めるOpenCTI External Input Connector編(Zenn) https://zenn.dev/daiya/articles/ce1c3ad92c53aa
4.OpenCTIのダッシュボードを確認してみる
うまく設定できていれば OpenCTIダッシュボードの「Data」-「Connector」に以下のとおりMISPが表示されその横のマークがグリーンになっているはずです。
もしうまくいかない場合は、、、
以下を試してみるといいかもしれません。
A. portainer.ioをインストールしてみる
OpenCTIをインストールしたマシンに、portainer.ioを入れてみましょう。これによりDockerの状態がGUIで見れるようになり、問題点がわかりやすくなります。
B. 以下のコマンドを打って環境を整え直してみる
正直あまり根拠はありません(MISPとの接続にhttps接続が必要だったので関係あるかなと思っているくらいです)が、以下のコマンドをOpenCTIのサーバ上で打ってみるといいかもしれません。
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
それぞれのコマンドの詳しい説明は冒頭に紹介した「OPENCTI INSTALLATION (blog agood cloud)」を見てください。
コメントを残す