こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
脅威インテリジェンス情報をお届けすることを考えていますが、OpenCTIを導入時(これはまた別で纏める予定)にMISP(これもまた別で纏めます)との連携に時間を食ってしまったので、備忘録を兼ねてかんたんに纏めます。
脅威インテリジェンス連載記事
環境
- OpenCTI: Portainer経由でのDockerによる起動(4.2.4): hogehogeで8080ポートで動作
- MISP: 2.4.146 (外部での別サーバ)
- OpenCTI MISP Connector: GitHubから持ってきた最新(4.5.5)
問題の状況
OpenCTIの単独でのインストールは完了。コネクタのGitHubを参照しながら、CVE、MITREは導入完了し、きちんと起動すること(MITREからの情報を取ってこれること)までを確認済み。
別立てのMISPからOpenCTI MISP Connector経由で情報を取得しようとしたところ、下記のエラーが出てくる(設定でログメッセージをINFO->DEBUGにしてある)。
INFO:root:Listing Threat-Actors with filters null.,
DEBUG:urllib3.connectionpool:Starting new HTTP connection (1): hogehoge:8080,
Traceback (most recent call last):,
File "/opt/opencti-connector-misp/misp.py", line 1514, in <module>,
mispConnector = Misp(),
File "/opt/opencti-connector-misp/misp.py", line 87, in __init__,
self.helper = OpenCTIConnectorHelper(config),
File "/usr/local/lib/python3.9/site-packages/pycti/connector/opencti_connector_helper.py", line 409, in __init__,
self.api = OpenCTIApiClient(,
File "/usr/local/lib/python3.9/site-packages/pycti/api/opencti_api_client.py", line 141, in __init__,
raise ValueError(,
ValueError: OpenCTI API is not reachable. Waiting for OpenCTI API to start or check your configuration...,
コネクタの設定
コネクタの設定は色々試みたがうまく行かず、下記が最終的に「OK」だった設定。TOKENとURL、KEY以外は変えていない。
version: '3'
services:
connector-misp:
image: opencti/connector-misp:4.5.5
environment:
- OPENCTI_URL=http://hogehoge:8080
- OPENCTI_TOKEN=XXXXXXXXXX <--- https://www.uuidgenerator.net/version4で作成したものをOPENCTI(hogehoge)上に割り当てている。WORKERなどでも指定
- CONNECTOR_ID=20XXXX-XXX-XXX-XXX <---- 同上で作成したものを割り当てた
- CONNECTOR_TYPE=EXTERNAL_IMPORT
- CONNECTOR_NAME=MISP
- CONNECTOR_SCOPE=misp
- CONNECTOR_CONFIDENCE_LEVEL=15 # From 0 (Unknown) to 100 (Fully trusted)
- CONNECTOR_UPDATE_EXISTING_DATA=false
- CONNECTOR_LOG_LEVEL=debug <--- infoからdebugに変更
- MISP_URL=https://misp-hogehoge # Required <--- MISPサーバ
- MISP_REFERENCE_URL= # Optional, will be used to create external reference to MISP event (default is "url")
- MISP_KEY=pxxxxxxxxxxxxxxxxxxxxxxxxxxxxt <--- MISPとつなぐ際のAUTH Key
- MISP_SSL_VERIFY=False # Required
- MISP_DATETIME_ATTRIBUTE=timestamp # Required, filter to be used in query for new MISP events
- MISP_CREATE_REPORTS=True # Required, create report for MISP event
- MISP_CREATE_INDICATORS=True # Required, create indicators from attributes
- MISP_CREATE_OBSERVABLES=True # Required, create observables from attributes
- MISP_CREATE_OBJECT_OBSERVABLES=True # Required, create text observables for MISP objects
- MISP_REPORT_CLASS=MISP Event # Optional, report_class if creating report for event
- MISP_IMPORT_FROM_DATE=2000-01-01 # Optional, import all event from this date
- MISP_IMPORT_TAGS=opencti:import,type:osint # Optional, list of tags used for import events
- MISP_IMPORT_TAGS_NOT= # Optional, list of tags to not include
- MISP_IMPORT_CREATOR_ORGS= # Optional, only import events created by this ORG (put the identifier here)
- MISP_IMPORT_OWNER_ORGS= # Optional, only import events owned by this ORG (put the identifier here)
- MISP_IMPORT_DISTRIBUTION_LEVELS=0,1,2,3 # Optional, only import events with the given distribution levels
- MISP_IMPORT_THREAT_LEVELS=1,2,3,4 # Optional only import events with the given threat levels
- MISP_IMPORT_ONLY_PUBLISHED=False
- MISP_IMPORT_WITH_ATTACHMENTS=False # Optional, try to import a PDF file from the attachment attribute
- MISP_IMPORT_TO_IDS_NO_SCORE=40 # Optional, use as a score for the indicator/observable if the attribute to_ids is no
- MISP_INTERVAL=1 # Required, in minutes
restart: always
ちなみにMISPのAUTH Keyの作成方法は下記。下記のメニューから
「Add Authetication key」で作成。同期専用のユーザを作成した。
途中のあがき
途中で色々あがいてみたが、まずホスト側から上述のMISPのAUTH Keyで情報を取ってこれるかを確認。これは
curl --header "Authorization: YOUR API KEY" --header "Accept: application/json" --header "Content-Type: application/json" https://<misp url>/
を用いて確認。きちんとデータが取得できる(かなりの量がながれてきた)ことから、AUTH Keyの設定は間違っていないことを確認。
そもそも、エラーログを見るとコネクタがhogehoge:8080に接続できていない模様。果たしてなぜ・・・
原因と対処方法
ネットで色々探したが、該当するような状況は見つけられず。ただ「Pythonのバージョンが違ってんじゃ・・」みたいな情報があったので「バージョン・・」と思い立ち、OpenCTIのバージョン(4.2.4)とConnectorのバージョン(4.5.5)が一致していないことに気づく。そのため、OpenCTIのdocker.ymlのバージョン番号を書き直して4.5.5で統一したところ、無事にMISPコネクタが起動した。
今回の反省点としては、MITREやCVEのコネクタ(これらも4.5.5)が動いたので大丈夫、と思ってしまったところかな。むしろMITREやCVEのコネクタが問題なく動いてたほうが驚きという。
最後に
皆様はこのようなケースにハマることはないと思いますが、万が一同じ状況に陥った方が居ましたら、こういうケースもあるよ、という事で情報を(備忘録がてら)共有します。まずはバージョン番号を合わせましょう、と(汗
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2018のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。
CM
こちらで小学生の勉強支援サイトをオープンしました。算数のプリント(都度、自動生成)が無料でダウンロードできます。コンテンツは未だ少ないですが、徐々に増やしていきます。
セミナー情報1
2021/09/13 18:30から、OSSセキュリティ技術の会 第九回勉強会を行います。
7/30にリリースされたKeycloak 15で、FAPI(Financial-Grade API)、CIBA(Client Initiated Backchannel Authentication)に対応しました(Certificateはまだですが…)。またDevice Flowにも対応しています。これを記念し、KeycloakのFAPI,CIBAの主要開発者もお招きして、「KeycloakのFAPI CIBA 対応記念の巻」と題して勉強会を行います。
Connpassのこちらがプログラム内容と申し込みの詳細になります。奮ってご参加下さい。
セミナー情報2
コンピュータセキュリティシンポジウム(CSS)2021併設のワークショップ、 OSSセキュリティ技術ワークショップ(OWS) 2021の企画講演セッション及び、 一般論文セッションの発表募集をさせていただきます。
今年もオンラインでの開催となり、OWSトラックの一般論文セッションの論文募集(申込締め切り: 2021年08月02日(月))と企画セッションを行いますので,ご投稿とご参加よろしくお願いいたします。