
A live dashboard for a real-time overview of threat intelligence from MISP instances
1つ以上のMISPインスタンスのZMQフィードからライブデータと統計を表示するダッシュボードです。 このダッシュボードは、脅威インテリジェンス情報を収集するためのリアルタイムの状況認識ツールとして使用できます。 misp-dashboardには、各組織の貢献度と時間経過に伴うランキングを表示するゲーミフィケーションツールが含まれています。 このダッシュボードは、SOC(セキュリティ運用センター)、セキュリティチーム、またはサイバー演習中に、さまざまなMISPインスタンスで何が処理されているかを追跡するために使用できます。


表示:
含まれるもの:



インストールする前に、サポートされているシステムはLinuxなどのオープンソースのUnix系オペレーティングシステムのみであることに注意してください。
./install_dependencies.sh を実行します(冪等性あり)config.cfg を更新します
./install_dependencies.sh を再実行しますconfig.cfg.default の変更と比較して、設定ファイル config.cfg を再度更新します⚠️ zmq python3 スクリプトが実行されていないことを確認してください。更新をブロックします。
+ virtualenv -p python3 DASHENV
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/steve/code/misp-dashboard/DASHENV/bin/python3
Traceback (most recent call last):
File "/usr/bin/virtualenv", line 9, in <module>
load_entry_point('virtualenv==15.0.1', 'console_scripts', 'virtualenv')()
File "/usr/lib/python3/dist-packages/virtualenv.py", line 719, in main
symlink=options.symlink)
File "/usr/lib/python3/dist-packages/virtualenv.py", line 942, in create_environment
site_packages=site_packages, clear=clear, symlink=symlink))
File "/usr/lib/python3/dist-packages/virtualenv.py", line 1261, in install_python
shutil.copyfile(executable, py_executable)
File "/usr/lib/python3.5/shutil.py", line 115, in copyfile
with open(dst, 'wb') as fdst:
OSError: [Errno 26] Text file busy: '/home/steve/code/misp-dashboard/DASHENV/bin/python3'
./start_all.sh または ./start_zmq.sh と ./server.py &⚠️ root で実行しないでください。通常の権限で十分です。
redis-server --port 6250. ./DASHENV/bin/activate./zmq_subscriber.py &./zmq_dispatcher.py &./server.py &http://localhost:8001/または、start_all.sh スクリプトを実行して上記のコマンドを実行することもできます。
認証は config/config.cfg で auth_enabled = True に設定することで有効化できます。
ユーザーは MISP にログインする必要があり、MISP ユーザーアカウントの User Setting の dashboard_access が 1 に設定されている場合にアクセスが許可されます。
デバッグは楽しく、問題が発生したときに詳細を把握できます。 Flask をデバッグモードで実行することは本番環境には適していないことに注意してください。有効にすると Python シェルにドロップされるため、さらに調査できます。
./server.py を実行する直前に次の操作を行います:
export FLASK_DEBUG=1
export FLASK_APP=server.py
flask run --host=0.0.0.0 --port=8001 # <- 注意: これによりすべてのIPアドレスに公開されます。ローカルで実行する場合は --host=127.0.0.1 が理想的です。
または、start_all.sh または config.cfg でデバッグフラグを切り替えるだけです。
Happy hacking ;)
最初から再起動し、ダッシュボードからすべてのデータを空にするには、専用のクリーニングスクリプト clean.py を使用できます。
設定ファイルで指定された redis サーバーに保存されたデータをクリーンアップします。
optional arguments:
-h, --help このヘルプメッセージを表示して終了します
-b, --brutal redis データベースで FLUSHALL を実行します。設定されていない場合、MISP-Dashboard によって使用されるキーのみを削除するソフトメソッドを使用します。
misp-dashboard は MISP に関してステートレスであるため、受信したデータのみを処理できます。つまり、MISP がすべての通知を ZMQ に公開していない場合、misp-dashboard はそれらを取得できません。
最も関連性の高い例は、ユーザーログインパンチカードです。MISP に Plugin.ZeroMQ_audit_notifications_enable オプションが true に設定されていない場合、パンチカードは空になります。
misp-dashboard に結果が表示されない場合は、まず MISP 内の zmq モジュールが適切にインストールされているか確認してください。
管理、プラグイン設定、ZeroMQ で Plugin.ZeroMQ_enable が True に設定されているか確認します。
イベントアクション、イベントを ZMQ に公開 から MISP から ZMQ にテストイベントを公開します。
ログファイルを確認します。
${PATH_TO_MISP}/app/tmp/log/mispzmq.error.log
${PATH_TO_MISP}/app/tmp/log/mispzmq.log
ModuleNotFoundError: No module named 'zmq' エラーがある場合は、pyzmq をインストールします。
$SUDO_WWW ${PATH_TO_MISP}/venv/bin/pip install pyzmq
ZMQ サブスクライバーです。ZMQ にサブスクライブし、それを MISP-dashboard に再配信します。
optional arguments:
-h, --help このヘルプメッセージを表示して終了します
-n ZMQNAME, --name ZMQNAME
ZMQ フィード名
-u ZMQURL, --url ZMQURL
接続先の URL
Python3 用の Apache mod-wsgi をインストールします。
sudo apt-get install libapache2-mod-wsgi-py3
注意: すでに Python2 用の mod-wsgi がインストールされている場合は、置き換えられます。
The following packages will be REMOVED:
libapache2-mod-wsgi
The following NEW packages will be installed:
libapache2-mod-wsgi-py3
設定ファイル /etc/apache2/sites-available/misp-dashboard.conf は、misp-dashboard が /var/www/misp-dashboard にクローンされていることを前提としています。この例では misp ユーザーとして実行されます。カスタムフォルダとファイルに応じて権限を変更してください。
<VirtualHost *:8001>
ServerAdmin [email protected]
ServerName misp.local
DocumentRoot /var/www/misp-dashboard
WSGIDaemonProcess misp-dashboard \
user=misp group=misp \
python-home=/var/www/misp-dashboard/DASHENV \
processes=1 \
threads=15 \
maximum-requests=5000 \
listen-backlog=100 \
queue-timeout=45 \
socket-timeout=60 \
connect-timeout=15 \
request-timeout=60 \
inactivity-timeout=0 \
deadlock-timeout=60 \
graceful-timeout=15 \
eviction-timeout=0 \
shutdown-timeout=5 \
send-buffer-size=0 \
receive-buffer-size=0 \
header-buffer-size=0 \
response-buffer-size=0 \
server-metrics=Off
WSGIScriptAlias / /var/www/misp-dashboard/misp-dashboard.wsgi
<Directory /var/www/misp-dashboard>
WSGIProcessGroup misp-dashboard
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
LogLevel info
ErrorLog /var/log/apache2/misp-dashboard.local_error.log
CustomLog /var/log/apache2/misp-dashboard.local_access.log combined
ServerSignature Off
</VirtualHost>
Copyright (C) 2017-2021 CIRCL - Computer Incident Response Center Luxembourg (c/o smile, security made in Lëtzebuerg, Groupement d'Intérêt Economique)
Copyright (c) 2017-2020 Sami Mokaddem
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
画像とロゴは以下のために手作りされています:
注意:
MISPHonorableIcons/1.svg の一部は octicons.github.com (CC0 - 権利放棄) からMISPHonorableIcons/2.svg の一部は Zeptozephyr (CC0 - 権利放棄) からMISPHonorableIcons/3.svg の一部は octicons.github.com (CC0 - 権利放棄) からMISPHonorableIcons/4.svg の一部は Zeptozephyr & octicons.github.com (CC0 - 権利放棄) からMISPHonorableIcons/5.svg の一部は Zeptozephyr & octicons.github.com (CC0 - 権利放棄) から