
Ein Live-Dashboard für eine Echtzeit-Übersicht von Bedrohungsinformationen aus MISP-Instanzen
Ein Dashboard, das Live-Daten und Statistiken aus den ZMQ-Feeds einer oder mehrerer MISP-Instanzen anzeigt. Das Dashboard kann als Echtzeit-Lagebewusstseinswerkzeug genutzt werden, um Informationen zur Bedrohungsanalyse zu sammeln. Das MISP-Dashboard enthält ein Gamification-Werkzeug, um die Beiträge jeder Organisation und deren Rangfolge im Zeitverlauf anzuzeigen. Das Dashboard kann für SOCs (Security Operation Centers), Sicherheitsteams oder während Cyber-Übungen verwendet werden, um zu verfolgen, was auf Ihren verschiedenen MISP-Instanzen verarbeitet wird.


Zeigt:
Enthält:



Vor der Installation beachten Sie, dass die einzigen unterstützten Systeme quelloffene Unix-ähnliche Betriebssysteme wie Linux und andere sind.
./install_dependencies.sh aus dem MISP-Dashboard-Verzeichnis aus (idempotent-ähnlich)config.cfg, damit sie Ihrem System entspricht
./install_dependencies.sh erneut aus, um neue erforderliche Abhängigkeiten abzurufenconfig.cfg erneut, indem Sie eventuelle Änderungen in config.cfg.default vergleichen⚠️ Stellen Sie sicher, dass keine zmq-Python3-Skripte ausgeführt werden. Sie blockieren das Update.
+ 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 ODER ./start_zmq.sh und ./server.py &⚠️ Sie sollten es nicht als root ausführen. Normale Berechtigungen sind ausreichend.
redis-server --port 6250. ./DASHENV/bin/activate./zmq_subscriber.py &./zmq_dispatcher.py &./server.py &http://localhost:8001/ zuAlternativ können Sie das Skript start_all.sh ausführen, um die oben beschriebenen Befehle auszuführen.
Die Authentifizierung kann in config/config.cfg aktiviert werden, indem auth_enabled = True gesetzt wird.
Benutzer müssen sich bei MISP anmelden und können fortfahren, wenn die Benutzereinstellung dashboard_access für das MISP-Benutzerkonto auf 1 gesetzt ist.
Debuggen macht Spaß und liefert mehr Details darüber, was passiert, wenn etwas schiefgeht. Beachten Sie, dass die Ausführung von Flask im Debug-Modus NICHT für die Produktion geeignet ist; wenn aktiviert, gelangen Sie in eine Python-Shell, um weitere Untersuchungen durchzuführen. Führen Sie unmittelbar vor der Ausführung von ./server.py Folgendes aus:
export FLASK_DEBUG=1
export FLASK_APP=server.py
flask run --host=0.0.0.0 --port=8001 # <- Be careful here, this exposes it on ALL ip addresses. Ideally if run locally --host=127.0.0.1
ODER schalten Sie einfach das Debug-Flag in start_all.sh oder config.cfg um.
Happy Hacking ;)
Um von Grund auf neu zu starten und alle Daten Ihres Dashboards zu leeren, können Sie das spezielle Bereinigungsskript clean.py verwenden
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.
Da das MISP-Dashboard in Bezug auf MISP zustandslos ist, kann es nur die empfangenen Daten verarbeiten. Das bedeutet: Wenn Ihr MISP nicht alle Benachrichtigungen an seinen ZMQ veröffentlicht, werden sie im MISP-Dashboard nicht angezeigt.
Das relevanteste Beispiel könnte die Benutzer-Anmeldestempelkarte sein. Wenn Ihr MISP die Option Plugin.ZeroMQ_audit_notifications_enable nicht auf true gesetzt hat, bleibt die Stempelkarte leer.
Wenn das MISP-Dashboard keine Ergebnisse anzeigt, überprüfen Sie zunächst, ob das zmq-Modul in MISP korrekt installiert ist.
In Administration, Plugin-Einstellungen, ZeroMQ überprüfen Sie, ob Plugin.ZeroMQ_enable auf True gesetzt ist.
Veröffentlichen Sie ein Testereignis von MISP über ZMQ unter Ereignisaktionen, Ereignis an ZMQ veröffentlichen.
Überprüfen Sie die Logdateien
${PATH_TO_MISP}/app/tmp/log/mispzmq.error.log
${PATH_TO_MISP}/app/tmp/log/mispzmq.log
Wenn ein Fehler ModuleNotFoundError: No module named 'zmq' auftritt, installieren Sie pyzmq.
$SUDO_WWW ${PATH_TO_MISP}/venv/bin/pip install pyzmq
Ein zmq-Abonnent. Er abonniert einen ZMQ und leitet ihn dann an das MISP-Dashboard weiter.
optional arguments:
-h, --help show this help message and exit
-n ZMQNAME, --name ZMQNAME
Name des ZMQ-Feeds
-u ZMQURL, --url ZMQURL
URL, zu der verbunden werden soll
Installieren Sie Apache mod-wsgi für Python3
sudo apt-get install libapache2-mod-wsgi-py3
Hinweis: Wenn Sie bereits mod-wsgi für Python2 installiert haben, wird es ersetzt!
The following packages will be REMOVED:
libapache2-mod-wsgi
The following NEW packages will be installed:
libapache2-mod-wsgi-py3
Die Konfigurationsdatei /etc/apache2/sites-available/misp-dashboard.conf geht davon aus, dass misp-dashboard in /var/www/misp-dashboard geklont wurde. In diesem Beispiel läuft es als Benutzer misp. Ändern Sie die Berechtigungen für Ihren benutzerdefinierten Ordner und Ihre Dateien entsprechend.
<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/>.
Bilder und Logos wurden handgefertigt für:
Beachten Sie, dass:
MISPHonorableIcons/1.svg stammt von octicons.github.com (CC0 - No Rights Reserved)MISPHonorableIcons/2.svg stammt von Zeptozephyr (CC0 - No Rights Reserved)MISPHonorableIcons/3.svg stammt von octicons.github.com (CC0 - No Rights Reserved)MISPHonorableIcons/4.svg stammt von Zeptozephyr & octicons.github.com (CC0 - No Rights Reserved)MISPHonorableIcons/5.svg stammt von Zeptozephyr & octicons.github.com (CC0 - No Rights Reserved)