はじめに
前回、EXISTをインストールしました。
今回は脅威情報を取り込む設定をしていきます。
調査不足の部分が多いですが覚書として投稿いたします。
insert2dbの初期設定
EXISTの設定は./scripts/insert2db/conf/insert2db.conf
に行います。
ここでは、その設定手順を記載します。
templateのコピー
templateが用意されているのでコピーします。
# cd /opt/exist
# cp ./scripts/insert2db/conf/insert2db.conf.template ./scripts/insert2db/conf/insert2db.conf
EXISTのパスを設定
syspathにEXISTのパスを設定します。
[exist]
syspath = /opt/exist
データ収集設定
reputation,exploit,vuln
insert2db.confの[exist]を記載していれば、とりあえずreputation,exploit,vulnは集めることができます。
MalshareとabuseのAPIキーをscript/conf/insert2db.confファイルに設定することで、それぞれのサイトからも情報収集できるようになるとのことです。(未実施)
以下のコマンドを叩くと、EXSITに情報が反映されるようになります。
python3 scripts/insert2db/reputation/insert2db.py
python3 scripts/insert2db/exploit/insert2db.py
python3 scripts/insert2db/vuln/insert2db.py
実行した結果です。
Vuln以外は取得できました。
Vulnはjvnを参照しているようなのですが、ログでエラーを吐いているようでした。(原因は追求できておりません。)
2020-09-14 00:05:12,234 root <module> [INFO]: insert2db.py start
2020-09-14 00:05:12,306 root <module> [ERROR]: local variable 'res' referenced before assignment
2020-09-14 00:05:12,306 root <module> [ERROR]: name 'queries' is not defined
2020-09-14 00:05:12,307 root <module> [INFO]: insert2db.py done
回避策として後述するnewsで、jvnのrssを取得し更新したほうがよいかもしれません。
threat
misp(脅威情報を共有する基盤)を構築する必要があるため割愛いたします。
連携方法は下記の参考サイトに詳しいです。
こちらも割愛いたします。
同じく、連携方法は参考サイトに記載させていただいたサイトに詳しいです。
興味があるので実施した場合は別記事を書いてみたいと思います。
news
inoreaderと連携して、feedを取得することができます。
取得したフィードはEXISTのトップページから閲覧することができます。
inoreaderと連携するにはAPIキーが必要です。
登録からAPI取得まで
- inoreaderに登録します。
- 右上の設定メニューをクリックします。
- 「設定」をクリックします。
- 「アプリ開発」をクリックします。
- 「新規アプリケーション」をクリックします。
- 全体情報を埋めます。
- 名前は任意です。
- プラットフォームは「Web」にしました。
- それ以外はいじらず保存しました。
- App IDとApp Keyが発行されます。
App IDとApp Keyを発行したあとはconfファイルに設定を書き込みます。
[inoreader]
AppID = 上記のApp ID
AppKey = 上記のApp Key
Email = 登録したemail
Passwd = 登録したときのパスワード
設定したあとpythonを実行すると、データを取得します。
python3 scripts/insert2db/news/insert2db.py
JPCERT/CCのRSSを取得してみたところ無事に取得できました。
cronの設定
定期的にデータを収集するようにcronに記載します。
APIの実行制限があると取得できなくなってしまうので、あまり短時間で回すとまずそうです。(それぞれどれぐらいまで行けるか未調査)
とりあえず1時間おきに動くようにしてみたいと思います。
# crontab -e
0 * * * * /usr/bin/python3 /opt/exist/scripts/insert2db/reputation/insert2db.py
0 * * * * /usr/bin/python3 /opt/exist/scripts/insert2db/exploit/insert2db.py
0 * * * * /usr/bin/python3 /opt/exist/scripts/insert2db/vuln/insert2db.py
0 * * * * /usr/bin/python3 /opt/exist/scripts/insert2db/news/insert2db.py
終わりに
EXISTにデータを取り込む設定を行い、各種サイトから情報が収集できる状態になりました。
今後の課題として、未調査部分の追加調査およびEXISTの拡張を行うためreputationで収集するサイトを増やしてみたいと思います。