
Un tableau de bord en direct pour une vue en temps réel des renseignements sur les menaces provenant d'instances MISP
Un tableau de bord affichant des données en direct et des statistiques issues des flux ZMQ d'une ou plusieurs instances MISP. Le tableau de bord peut être utilisé comme un outil de connaissance de la situation en temps réel pour recueillir des informations sur les menaces. Le misp-dashboard inclut un outil de gamification (ludification) pour montrer les contributions de chaque organisation et leur classement dans le temps. Le tableau de bord peut être utilisé pour les SOC (Security Operation Centers), les équipes de sécurité ou lors d'exercices cybernétiques pour suivre ce qui est traité sur vos différentes instances MISP.


Affiche :
Comprend :



Avant d'installer, considérez que les seuls systèmes pris en charge sont les systèmes d'exploitation open source de type Unix, comme Linux et autres.
./install_dependencies.sh depuis le répertoire MISP-Dashboard (idempotent-ish)config.cfg pour qu'il corresponde à votre système
./install_dependencies.sh pour récupérer les nouvelles dépendances requisesconfig.cfg en comparant les éventuels changements dans config.cfg.default⚠️ Assurez-vous qu'aucun script python3 zmq n'est en cours d'exécution. Ils bloquent la mise à jour.
+ 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 OU ./start_zmq.sh et ./server.py &⚠️ Vous ne devez pas l'exécuter en tant que root. Les privilèges normaux suffisent.
redis-server --port 6250. ./DASHENV/bin/activate./zmq_subscriber.py &./zmq_dispatcher.py &./server.py &http://localhost:8001/Alternativement, vous pouvez exécuter le script start_all.sh pour lancer les commandes décrites ci-dessus.
L'authentification peut être activée dans config/config.cfg en définissant auth_enabled = True.
Les utilisateurs devront se connecter à MISP et seront autorisés à poursuivre s'ils ont le paramètre User Setting dashboard_access défini à 1 pour le compte utilisateur MISP.
Le débogage est amusant et vous donne plus de détails sur ce qui se passe en cas d'échec. Gardez à l'esprit que l'exécution de Flask en mode débogage n'est PAS adaptée à la production ; elle vous renverra vers un shell Python si elle est activée, pour creuser davantage.
Juste avant d'exécuter ./server.py, faites :
export FLASK_DEBUG=1
export FLASK_APP=server.py
flask run --host=0.0.0.0 --port=8001 # <- Attention, cela expose sur TOUTES les adresses IP. Idéalement, si exécuté localement --host=127.0.0.1
OU, basculez simplement le drapeau de débogage dans start_all.sh ou config.cfg.
Bon hacking ;)
Pour redémarrer à partir de zéro et vider toutes les données de votre tableau de bord, vous pouvez utiliser le script de nettoyage dédié clean.py
Clean data stored in the redis server specified in the configuration file
optional arguments:
-h, --help show this help message and exit
-b, --brutal Perfom a FLUSHALL on the redis database. If not set, will use
a soft method to delete only keys used by MISP-Dashboard.
Le misp-dashboard étant sans état vis-à-vis de MISP, il ne peut traiter que les données qu'il reçoit. Cela signifie que si votre MISP ne publie pas toutes les notifications sur son ZMQ, le misp-dashboard ne les aura pas.
L'exemple le plus pertinent pourrait être la carte de pointage des connexions des utilisateurs. Si votre MISP n'a pas l'option Plugin.ZeroMQ_audit_notifications_enable définie sur true, la carte de pointage sera vide.
Lorsque le misp-dashboard n'affiche pas de résultats, vérifiez d'abord si le module zmq dans MISP est correctement installé.
Dans Administration, Plugin Settings, ZeroMQ, vérifiez que Plugin.ZeroMQ_enable est défini sur True.
Publiez un événement de test depuis MISP vers ZMQ via Event Actions, Publish event to ZMQ.
Vérifiez les fichiers journaux
${PATH_TO_MISP}/app/tmp/log/mispzmq.error.log
${PATH_TO_MISP}/app/tmp/log/mispzmq.log
S'il y a une erreur ModuleNotFoundError: No module named 'zmq', alors installez pyzmq.
$SUDO_WWW ${PATH_TO_MISP}/venv/bin/pip install pyzmq
A zmq subscriber. It subscribe to a ZMQ then redispatch it to the MISP-dashboard
optional arguments:
-h, --help show this help message and exit
-n ZMQNAME, --name ZMQNAME
The ZMQ feed name
-u ZMQURL, --url ZMQURL
The URL to connect to
Installez Apache mod-wsgi pour Python3
sudo apt-get install libapache2-mod-wsgi-py3
Attention : Si vous avez déjà mod-wsgi installé pour Python2, il sera remplacé !
The following packages will be REMOVED:
libapache2-mod-wsgi
The following NEW packages will be installed:
libapache2-mod-wsgi-py3
Le fichier de configuration /etc/apache2/sites-available/misp-dashboard.conf suppose que misp-dashboard est cloné dans /var/www/misp-dashboard. Il s'exécute en tant qu'utilisateur misp dans cet exemple. Modifiez les permissions pour votre dossier et vos fichiers personnalisés en conséquence.
<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/>.
Les images et logos sont réalisés à la main pour :
Notez que :
MISPHonorableIcons/1.svg provient de octicons.github.com (CC0 - Pas de droits réservés)MISPHonorableIcons/2.svg provient de Zeptozephyr (CC0 - Pas de droits réservés)MISPHonorableIcons/3.svg provient de octicons.github.com (CC0 - Pas de droits réservés)MISPHonorableIcons/4.svg provient de Zeptozephyr & octicons.github.com (CC0 - Pas de droits réservés)MISPHonorableIcons/5.svg provient de Zeptozephyr & octicons.github.com (CC0 - Pas de droits réservés)