Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
exist — EXISTは、サイバー脅威インテリジェンスを集約・分析するためのWebアプリケーションです。 | Kitploit
ツール/GitHubGitHub/nict-csl/exist
侵害指標 (IOC) 管理OSINT (オープンソースインテリジェンス)脅威フィードとアグリゲーター脆弱性分析情報収集脅威インテリジェンス学習と教育インシデントレスポンスログ分析Archived
GitHubnict-csl/exist

exist

EXISTは、サイバー脅威インテリジェンスを集約・分析するためのWebアプリケーションです。

152295ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

EXIST(外部情報統合システム:EXternal Information aggregation System against cyber Threat)

⚠️ このリポジトリはメンテナンス終了/アーカイブされています。セキュリティ問題は修正されません。

EXISTは、CTI(サイバー脅威インテリジェンス)を集約・分析するためのWebアプリケーションです。

EXISTは以下のソフトウェアで記述されています。

  • Python 3
  • Django 1.11

コンセプト

EXISTは、セキュリティオペレーターが関連する指標に基づいてインシデントを調査する際に役立つCTIを集約するWebアプリケーションです。

EXISTは、複数のCTIサービスやTwitterからAPIおよびフィードを介して自動的にデータを取得します。 WebインターフェースおよびAPIを介して、指標を横断検索できます。

DNSやHTTPプロキシサーバーのログなど、クライアントのネットワーク動作をログに記録するサーバーをお持ちであれば、EXIST上のデータと関連付けてログを分析できます。 APIを使用してプログラムを実装すれば、自動化されたCTI駆動型セキュリティ運用センターを実現できます。

overview

ユースケース

ケース1: IDSで検出されたドメインを調査

検索フォームにドメインを入力するだけです。

lookup_domain

ケース2: ユーザーに代わって悪意のあるURLにアクセスし、ブラウザの表示画像とダウンロードされるコンテンツを取得

検索フォームにURLを入力するだけです。

lookup_url

ケース3: サイバー脅威を監視

Threat HunterまたはTwitter Hunterにキーワードを追加するだけです。

twitter_hunter

機能

Tracker(トラッカー)

Trackerは、複数のCTIサービスからデータフィードを自動収集します。

  • Threat Tracker
  • Reputation Tracker
  • Twitter Tracker
  • Exploit Tracker
  • News Tracker
  • Vuln Tracker

Hunter(ハンター)

Hunterは、複数のCTIサービスやTwitterからデータを収集するためのクエリを設定できます。

  • Twitter Hunter
  • Threat Hunter
  • News Hunter

Lookup(ルックアップ)

Lookupは、特定の情報(IPアドレス、ドメインなど)に関連する情報を、複数のインターネットサービス(whoisなど)から取得します。

  • IPアドレス
  • ドメイン
  • URL
  • ファイルハッシュ

ツール

twitter trackerからのツイートに注釈を付けるためのツール。

  • アノテーションツール

Web API

EXISTデータベースに保存されたデータをWeb APIで提供します。

  • reputation
  • twitter
  • exploit
  • threatEvent
  • threatAttribute
  • news
  • vuln

はじめに

以降はCentOS 7またはUbuntu 18.04 LTSの環境を想定しています。他の環境にデプロイする場合はご自身の責任で行ってください。

Pythonモジュールのインストール

root@kitploit:~
$ sudo pip install -r requirements.txt

MariaDBのインストール

  • CentOS 7
root@kitploit:~
$ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
$ sudo yum install MariaDB-server MariaDB-client
  • Ubuntu 18.04 LTS
root@kitploit:~
$ sudo apt install mariadb-server mariadb-client

データベースの起動

root@kitploit:~
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

データベースの設定

  • データベースとユーザーを作成します。
  • .env.exampleを参考に.envを作成します。データベースの設定に合わせて編集してください。

Django用秘密鍵の生成

Django用の秘密鍵は.envファイルに記述する必要があります。

まず、鍵生成プログラムを実行します。

root@kitploit:~
$ python keygen.py
(例)> 70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@

そして、秘密鍵を.envファイルに記述します。

root@kitploit:~
...
# EXIST Application Settings
EXIST_SECRET_KEY="70mm6h)()h3r&*b9xq$e52=-7($p=5983gfoyz%$d-j-gd7u5@"
...

データベースのマイグレーション

root@kitploit:~
$ python manage.py makemigrations exploit reputation threat threat_hunter twitter twitter_hunter news news_hunter vuln
$ python manage.py migrate

Redisサーバーのインストール

Reputation trackerは、Celeryのキャッシュサーバーバックエンドとしてredisを使用します。

  • CentOS 7
root@kitploit:~
$ sudo yum install redis
$ sudo systemctl start redis
$ sudo systemctl enable redis
  • Ubuntu 18.04 LTS
root@kitploit:~
$ sudo apt install redis-server
$ sudo systemctl start redis-server
$ sudo systemctl enable redis-server

Celeryのセットアップ

Reputation trackerは、非同期タスクジョブキューとしてCeleryを使用します。

  • Celery設定ファイルを作成します。推奨パスは以下の通りです。
    • CentOS 7: /etc/sysconfig/celery
    • Ubuntu 18.04 LTS: /etc/celery.conf
root@kitploit:~
# Name of nodes to start
# here we have a single node
CELERYD_NODES="w1"
# or we could have three nodes:
#CELERYD_NODES="w1 w2 w3"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/path/to/your/celery"

# App instance to use
# comment out this line if you don't use an app
CELERY_APP="intelligence"
# or fully qualified:
#CELERY_APP="proj.tasks:app"

# How to call manage.py
CELERYD_MULTI="multi"

# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=300 --concurrency=8"

# - %n will be replaced with the first part of the nodename.
# - %I will be replaced with the current child process index
# and is important when using the prefork pool to avoid race conditions.
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_LOG_LEVEL="INFO"
  • /etc/systemd/system/celery.serviceにCeleryサービス管理スクリプトを作成します。また、Celery設定ファイルのパスをEnvironmentFileに設定する必要があります。
root@kitploit:~
[Unit]
Description=Celery Service
After=network.target

[Service]
Type=forking
User=YOUR_USER
Group=YOUR_GROUP
EnvironmentFile=/etc/sysconfig/celery
WorkingDirectory=/path/to/your/exist
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
--pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'

[Install]
WantedBy=multi-user.target
  • Celeryのログディレクトリと実行ディレクトリを作成します。
root@kitploit:~
$ sudo mkdir /var/log/celery; sudo chown YOUR_USER:YOUR_GROUP /var/log/celery
$ sudo mkdir /var/run/celery; sudo chown YOUR_USER:YOUR_GROUP /var/run/celery
  • /etc/tmpfiles.d/exist.confに設定ファイルを作成します。
root@kitploit:~
#Type  Path               Mode  UID        GID         Age  Argument
d      /var/run/celery    0755  YOUR_USER  YOUR_GROUP  -
  • Celeryを起動します。
root@kitploit:~
$ sudo systemctl start celery.service
$ sudo systemctl enable celery.service

Webサーバーの起動

root@kitploit:~
$ python manage.py runserver 0.0.0.0:8000
  • ブラウザで http://[YourWebServer]:8000 にアクセスします。
  • WebAPI: http://[YourWebServer]:8000/api/

注意: 本番環境で実行する場合は、NginxとuWSGIを使用することを推奨します。

フィードの収集

データベースにフィードを挿入するスクリプトは scripts/insert2db/*/insert2db.py にあります。

insert2dbの設定

  • 設定ファイルは scripts/insert2db/conf/insert2db.conf です。 insert2db.conf.template を参考に作成してください。
  • MISPを使用する場合は、MISPのURLとAPIキーをinsert2db.confに記述します。
  • Malshareを使用する場合は、APIキーをinsert2db.confに記述します。
  • EXISTで追跡するために、https://developer.twitter.com/ でTwitter APIアカウントを作成します。
  • EXIST用のアプリを作成します。
  • Consumer API key (CA)、Consumer API secret key (CS)、Access token (AT)、access token secret (AS)を取得します。
  • CA、CS、AT、ASをinsert2db.confに記述します。

スクリプトの実行

root@kitploit:~
$ python scripts/insert2db/reputation/insert2db.py
$ python scripts/insert2db/twitter/insert2db.py
$ python scripts/insert2db/exploit/insert2db.py
$ python scripts/insert2db/threat/insert2db.py
$ python scripts/insert2db/news/insert2db.py
$ python scripts/insert2db/vuln/insert2db.py

注意: 情報収集を自動化するには、これらをcronに記述してください。

Hunterの設定

Twitter Hunter

Twitter Hunterは、特定のキーワードやユーザーIDを含むツイートを検出できます。必要に応じてSlackに通知することも可能です。

  • 設定ファイルは scripts/hunter/conf/hunter.conf です。 hunter.conf.template を参考に作成してください。
  • Slackを使用する場合は、Slackトークンをhunter.confに記述します。
  • https://developer.twitter.com/ でTwitter APIアカウントを作成します。
  • EXIST用に18個のアプリを作成します。
  • 18組のConsumer API key (CA)、Consumer API secret key (CS)、Access token (AT)、access token secret (AS)を取得します。
  • CA、CS、AT、ASをhunter.confのauth-hunter[00-18]に記述します。
  • Twitter Hunterを永続的に動作させるため、scripts/hunter/twitter/tw_watchhunter.py をcronで1分ごとに実行するように設定します。

Threat Hunter

Threat Hunterは、特定のキーワードを含む脅威イベントを検出できます。必要に応じてSlackに通知することも可能です。

  • 設定ファイルは scripts/hunter/conf/hunter.conf です。 hunter.conf.template を参考に作成してください。
  • Slackを使用する場合は、Slackトークンをhunter.confに記述します。
  • Threat Hunterを永続的に動作させるため、scripts/hunter/threat/th_watchhunter.py をcronで1分ごとに実行するように設定します。

その他の必要なツールと設定

VirusTotal API

EXISTは VirusTotal API を使用します。

  • VirusTotalアカウントを作成します。
  • APIキーをconf/vt.confに記述します。

注意: プライベートAPIキーをお持ちの場合は、より多くの情報を取得できます。

GeoIP DB

Lookup IP / Domainは GeoLite2 Database を使用します。

  • http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz からGeoIP DBをダウンロードします。
  • conf/geoip.confにGeoLite2-City.mmdbのパスを記述します。

wkhtmltopdf と Xvfb

Lookup URLは wkhtmltopdf と Xvfb を使用します。

  • https://wkhtmltopdf.org/downloads.html からwkhtmltopdfをダウンロードしてインストールします。
  • Xvfbをインストールします。
root@kitploit:~
$ sudo yum install xorg-x11-server-Xvfb

EXISTをUbuntu 18.04 LTSにデプロイする場合は、aptを使用してこれらのパッケージをインストールできます。

root@kitploit:~
$ sudo apt install wkhtmltopdf xvfb

古いデータの削除

  • 設定ファイルは scripts/url/url.conf です。 url.conf.template を参考に作成してください。
  • 古いLookup URLデータを削除するため、scripts/url/delete_webdata.sh をcronで毎日実行するように設定します。
  • 古いCeleryデータを削除するため、scripts/url/delete_oldtaskresult.sh をcronで毎日実行するように設定します。

アノテーションツール

ツイートのトレーニングデータを作成するためのアノテーションツールです。このツールは機械学習研究者向けです。

使用方法

  1. アノテーション対象を確認します。 annotation_target
  2. アノテーションボタンをクリックします。 annotation_button
  3. ラベル付けする単語を選択します。 annotation_labeled
  4. ラベルボタンをクリックします。
  5. 保存します。

脆弱性の報告

脆弱性を発見された場合は、メールでご連絡ください。

脆弱性報告テンプレート

クレジット

この製品には、MaxMindが作成したGeoLite2データが含まれており、https://www.maxmind.comから入手可能です。

ライセンス

MIT License © Cybersecurity Laboratory, NICT

ツールをダウンロード