LoginSignup
0
0

More than 3 years have passed since last update.

EXISTにデータを取り込む設定をする

Posted at

はじめに

前回、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のパスを設定します。

/opt/exist/scripts/insert2db/conf/insert2db.conf
[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

実行した結果です。

Reputetion
Screenshot 2020-09-13 23.38.01.png

Exploit
Screenshot 2020-09-13 23.38.18.png

Vuln以外は取得できました。
Vulnはjvnを参照しているようなのですが、ログでエラーを吐いているようでした。(原因は追求できておりません。)

/opt/exist/scripts/insert2db/vuln/logs/insert2db.log
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(脅威情報を共有する基盤)を構築する必要があるため割愛いたします。
連携方法は下記の参考サイトに詳しいです。

twitter

こちらも割愛いたします。
同じく、連携方法は参考サイトに記載させていただいたサイトに詳しいです。
興味があるので実施した場合は別記事を書いてみたいと思います。

news

inoreaderと連携して、feedを取得することができます。
取得したフィードはEXISTのトップページから閲覧することができます。
inoreaderと連携するにはAPIキーが必要です。

登録からAPI取得まで

  1. inoreaderに登録します。
  2. 右上の設定メニューをクリックします。
  3. 「設定」をクリックします。
  4. 「アプリ開発」をクリックします。
  5. 「新規アプリケーション」をクリックします。
  6. 全体情報を埋めます。
    • 名前は任意です。
    • プラットフォームは「Web」にしました。
    • それ以外はいじらず保存しました。
  7. App IDとApp Keyが発行されます。

App IDとApp Keyを発行したあとはconfファイルに設定を書き込みます。

/opt/exist/scripts/insert2db/conf/insert2db.conf
[inoreader]
AppID = 上記のApp ID
AppKey = 上記のApp Key
Email = 登録したemail
Passwd = 登録したときのパスワード

設定したあとpythonを実行すると、データを取得します。

python3 scripts/insert2db/news/insert2db.py

JPCERT/CCのRSSを取得してみたところ無事に取得できました。

Screenshot 2020-09-13 23.24.33.png

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で収集するサイトを増やしてみたいと思います。

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0