[PYTHON] Einführung des Cyber-Sicherheits-Frameworks "MITRE CALDERA": Verwendung und Schulung

Einführung des Cyber-Sicherheits-Frameworks "MITRE CALDERA": Verwendung und Schulung

Einführung

Bewirken

Dieser Artikel ist die 4. "Verwendung / Schulung" von "Einführung in das Cyber Security Framework" MITRE CALDERA ". In diesem Band werden wir die Verwendung von MITRE CALDERA vorstellen, mit der Sicherheitspersonal entwickelt werden kann. Die Funktionsübersicht und die Umgebungskonstruktion finden Sie im ersten Abschnitt [Funktionsübersicht / Aufbau der Betriebsumgebung.

Artikelstruktur

Da es viele Einführungsinhalte gibt, werden wir sie in den folgenden 4 Artikeln vorstellen.

Achtung / Haftungsausschluss

Diese Artikelserie enthält eine Methode zur Simulation eines Cyberangriffs. Ziel ist es, zu bestätigen, zu untersuchen und zu verbessern, welche Art von Ereignis aufgrund eines Cyberangriffs eintreten wird und wie damit umzugehen ist, und es für die Entwicklung der Humanressourcen im Bereich Cybersicherheit zu nutzen. Erstellen Sie eine geschlossene Netzwerkumgebung, damit andere Systeme oder Netzwerke nicht beeinträchtigt werden. Wenn Sie dies jemandem antun, der keine Erlaubnis hat, verstößt dies gegen Gesetze wie das Gesetz über den nicht autorisierten Computerzugriff. Tun Sie dies daher bitte nicht.

Der Inhalt dieses Artikels ist meine persönliche Meinung, nicht die offizielle Meinung der Organisation, der ich angehöre. Der Autor und die Organisation, der er angehört, sind nicht verantwortlich für Probleme, Schäden oder Schäden, die dem Benutzer oder Dritten durch das Ausprobieren der in diesem Artikel beschriebenen Probleme verursacht wurden.

Überblick

Das Trainings-Plug-In wurde in MITRE CALDERA Version 2.6.4 bereitgestellt und ein Trainingsmenü wurde hinzugefügt. Fragen werden in einem Quizformat gestellt. Wenn der erwartete Status erreicht ist, ist die Antwort korrekt und die nächste Frage wird gestellt. MITRE CALDERA 2.6.6, das in dieser Serie verwendet wird, hat ein Problem beim Bestätigen und Zertifizieren, dass Sie ein Benutzer sind, der MITRE CALDERA beherrschen kann. Beachten Sie, dass das Problem in 2.6.6 nur auftritt, wenn Sie sich beim roten Team anmelden. In 2.7.0 werden Probleme auch angezeigt, wenn Sie sich als blaues Team anmelden, und die Anzahl der Probleme nimmt zu. Wir können davon ausgehen, dass in Zukunft weitere Schulungsfragen hinzukommen werden. Sie können auch Ihre eigenen Fragen erstellen und registrieren. Außerdem wird erläutert, wie Sie ein Problem registrieren.

Unten finden Sie einen Screenshot des Starts der Schulung zum Benutzerzertifikat. training_user_sertificate.png

Umgebung

Verwenden Sie dieselbe Umgebung wie "Verwendung: Red Team Edition". Beachten Sie, dass das Piktogramm-Flag beim Anzeigen der Trainingsfrage im Chromium-Browser unter Ubuntu Linux 20.04 nicht korrekt angezeigt wurde. Daher habe ich den folgenden Befehl ausgeführt, um die Piktogrammschrift zu installieren, und mich erneut beim Betriebssystem angemeldet. (Der Name der Schriftart variiert je nach Betriebssystemtyp und Version.)

$ sudo apt install ttf-ancient-fonts-symbola

Gebrauchsprozedur

Einloggen

Melden Sie sich beim MITRE CALDERA-Server an, indem Sie den unter "Verwendung: Red Team Edition" beschriebenen Startvorgang ausführen.

Anzeige des Trainingsmenüs

Wenn Sie den Mauszeiger in das Plugins-Menü bewegen, wird direkt darunter ein Untermenü angezeigt. Klicken Sie daher im Untermenü auf Training. training_menu.png

Auswahl der Problemsammlung

Klicken Sie auf der linken Seite des Webbildschirms auf das Pulldown-Menü "Zertifikat auswählen", um eine Liste der Namen der Problemsammlung anzuzeigen. Wählen Sie diese aus. In MITRE CALDERA 2.6.6 kann nur "Benutzerzertifikat" ausgewählt werden. Dies ist eine Sammlung von Fragen, um zu bestätigen und zu bestätigen, ob Sie MITRE CALDERA beherrschen.

training_select_certificate.png

Außerdem wird im oberen rechten Teil des Fensters der englische Text wie "Bitte senden Sie mir eine E-Mail, wenn Sie den Code erhalten. Wir werden den Abschlusszertifizierungscode nach Bestätigung zurücksenden" angezeigt. Möchten Sie versuchen, alle Fragen zu beantworten?

Fordern Sie das Problem heraus

Wenn Sie ein Fragenbuch auswählen, wird das Fragengenre auf der linken Seite des Bildschirms angezeigt, und die Karte mit dem Fragentext wird auf der rechten Seite des Bildschirms angezeigt. Wie im ersten Screenshot dieses Artikels gezeigt, hat die Karte einen Fragentitel und eine Fragestellung. Wenn Sie den Mauszeiger über die Karte bewegen, wird die Karte umgedreht und eine rote Karte wird angezeigt (siehe unten). Details und Hinweise werden angezeigt. Derzeit wird nur das Genre angezeigt. In Zukunft können Sie jedoch möglicherweise ein Problem für dieses Genre auswählen, indem Sie auf das Genre klicken. Es ist auch eine Möglichkeit, Open-Source-Software zu verwenden, um solche Funktionen anzufordern oder sie zu implementieren und zu integrieren. Wenn Sie die Frage richtig beantworten, werden die folgenden Fragen zusätzlich angezeigt.

training_genre_q1_back.png

Für jedes Genre werden Fragen gestellt. Die erste Frage stammt aus dem Genre AGENTS (Agent).

Frage 1: Starten Sie den Agenten auf dem lokalen Host

Tabelle: Problemstellung Zurück: Details / Tipps
training_q1_front.png training_q1_back.png

Wenn der Agent auf dem lokalen Host gestartet werden kann, wird die zweite Frage angezeigt.

Frage 2: Starten Sie den Agenten auf dem Remote-Host

Tabelle: Problemstellung Zurück: Details / Tipps
training_q2_front.png training_q2_back.png

Wie in der Problembeschreibung angegeben, muss der Agent auf einem Host mit einem anderen Betriebssystemtyp als dem MITRE CALDERA-Server gestartet werden. Da der MITRE CALDERA-Server unter Linux ausgeführt wird, wird das Problem behoben und die dritte Frage wird angezeigt, wenn Sie den Agenten unter Windows oder Mac OS starten und eine Remoteverbindung herstellen können.

Auf diese Weise werden Fragen nacheinander gestellt. Nachdem Sie alle Probleme im Genre gelöst haben, wird das Genre-Symbol farbig dargestellt. Das Datum, an dem die Frage richtig beantwortet wurde, wird aufgezeichnet und Sie können es auch dann weiter lösen, wenn Sie den MITRE CALDERA-Server neu starten.

Unten ist ein Screenshot des AGENTS-Genres mit allen acht gelösten Fragen.

training_cleared_agents.png

Struktur des Trainingssteckers

Das Verzeichnis und die Dateistruktur des Trainings-Plug-Ins werden unten angezeigt. Sie können auch Ihre eigenen Fragen entsprechend Ihrer Konfiguration erstellen und registrieren.

Verzeichnis- / Dateistruktur

plugins/training/
├── README.md
├── __init__.py
├── app
│   ├── c_badge.py
│   ├── c_certification.py
│   ├── c_flag.py
│   ├── flags
│   │   ├── advanced
│   │   │   ├── flag_0.py
│   │   │   ├── flag_1.py
│   │   │   └── flag_2.py
│   │   ├── adversaries
│   │   │   ├── flag_0.py
│   │   │   ├── flag_1.py
│   │   │   └── flag_2.py
│   │   ├── agents
(Unterlassung)
│   │   └── plugins
│   │       ├── atomic
│   │       │   └── flag_0.py
│   │       ├── compass
(Unterlassung)
│   │       └── mock
│   │           └── flag_0.py
│   └── training_api.py
├── data
│   └── 9cd5f3a0-765d-45bc-85c2-bc76d4282599.yml
├── hook.py
├── static
│   ├── css
│   │   └── training.css
│   └── img
│       ├── badges
│       │   ├── advanced.png
(Unterlassung)
│       │   └── operations.png
│       └── certification.png
└── templates
    └── training.html

Problem-Sammlungsdefinitionsdatei

Dies ist eine Definitionsdatei für die Problemsammlung, in der Probleme im Zusammenhang mit Problemthemen wie "Benutzerzertifikat" erfasst werden. Es gibt eine Yaml-Datei mit der UUID als Dateinamen für jede Problemsammlung im Datenverzeichnis. Wenn Sie Ihre eigene Problemkollektionsdefinitionsdatei im selben Format erstellen und im Datenverzeichnis speichern, wird sie automatisch zum Pulldown-Menü zur Auswahl der Problemsammlung hinzugefügt, und Sie können sie auswählen.

Das Definitionsformat der Definitionsdatei für die Problemsammlung ist unten dargestellt.

data/*.yaml


id:Problem Sammlung UUID
name:Name der Problemsammlung
badges:
Problem Genre Name:
    flags:
      -Python-Modulname der Problemdefinition Python-Skript

Problemdefinitionsdatei

Einzelne Problemdefinitionsdateien. Es ist ein Python-Skript, und der Fragentitel, der Fragensatz und die ausführliche Erklärung werden als Variablen definiert, und der Prozess zum Ermitteln der richtigen Antwort wird als Funktion definiert. Da es als Python-Modul importiert wird, platzieren Sie das Python-Skript entsprechend dem Python-Modulformat im App-Verzeichnis.

Das Definitionsformat der Problemdefinitionsdatei ist unten dargestellt. Der Variablenname und der Funktionsname sind fest und werden automatisch als Problem erkannt.

app/flags/*/*.py


name = 'Problemtitel'
challenge = 'Problemstellung'
extra_info = """Details / Tipps"""

async def verify(services):
Verarbeitung, die True zurückgibt, wenn die Antwort korrekt ist, False, wenn die Antwort nicht korrekt ist

schließlich

Damit ist die Einführung des Cyber-Sicherheits-Frameworks "MITRE CALDERA" abgeschlossen. Wir hoffen, dass Sie daran interessiert sind und dass es eine Gelegenheit ist, es für die Geschäfts- und Personalentwicklung zu nutzen. Wir können in Zukunft viele Techniken, Szenarien, Trainingsmenüs, neue Plug-Ins usw. erwarten. Es ist ein Framework, daher ist es interessant, originelle Techniken und Schulungen zu definieren und neue Plug-Ins zu entwickeln und zu erstellen. Ich möchte vorstellen, wie eine Plug-in-Entwicklungsumgebung erstellt wird.

Verwenden wir MITRE ATT & CK und MITRE CALDERA für die Cybersicherheit.

Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Einführung des Cyber-Sicherheits-Frameworks "MITRE CALDERA": Verwendung und Schulung
Einführung des Cyber-Sicherheits-Frameworks "MITRE CALDERA", Funktionsübersicht, Aufbau der Betriebsumgebung
Einführung von DataLiner Version 1.3 und Verwendung von Union Append
[Einführung] Verwendung von open3d
[Einführung in Azure für Kaggle-Benutzer] Vergleich zum Starten und Verwenden von Azure Notebooks und Azure Notebooks VM
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
Zusammenfassung der Verwendung von pandas.DataFrame.loc
So installieren und verwenden Sie Tesseract-OCR
Zusammenfassung der Verwendung von pyenv-virtualenv
Verwendung von .bash_profile und .bashrc
So installieren und verwenden Sie Graphviz
Zusammenfassung der Verwendung von csvkit
Verwendung von Umgebungsvariablen für Serverless Framework und Python und Verwaltung von Phasen
[Einführung in Python] Verwendung des Booleschen Operators (und ・ oder ・ nicht)
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Scipy
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Pandas
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Matplotlib
[Python] Zusammenfassung der Verwendung von Pandas
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So installieren und verwenden Sie pandas_datareader [Python]
Berechnen Verwenden Sie% des Befehls df
[Python2.7] Zusammenfassung der Verwendung von unittest
Python: Verwendung von Einheimischen () und Globalen ()
Jupyter Notebook Grundlagen der Verwendung
Grundlagen von PyTorch (1) - Verwendung von Tensor-
Verwendung von Python zip und Aufzählung
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Verwendung ist und == in Python
Verwendung von pandas Timestamp und date_range
[Frage] Wie verwende ich plot_surface von Python?
Von der Einführung der GoogleCloudPlatform Natural Language API bis zur Verwendung
Verwendung von Folium (Visualisierung von Standortinformationen)
Einführung des Sinatra-Frameworks und dessen Verwendung
[Einführung in die Udemy Python3 + -Anwendung] 23. Verwendung von Tapuru
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Umgebungskonstruktion
Nicht viel erwähnt, wie man Pickle benutzt
Zusammenfassung der Verwendung von MNIST mit Python
[Python] Verwendung von Hash-Funktion und Taple.
So installieren Sie den Cascade-Detektor und wie verwenden Sie ihn
[Einführung in die Statistik] Welche Art von Verteilung ist die t-Verteilung, die Chi-Quadrat-Verteilung und die F-Verteilung? Eine kleine Zusammenfassung der Verwendung von [Python]
[Einführung in Python] Verwendung der while-Anweisung (wiederholte Verarbeitung)
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
Anfänger! Grundlegende Linux-Befehle und Verwendung!
Hinweise zur Verwendung beim Kombinieren von pandas.DataFrame
Verwendung von Python Kivy ~ ~ Grundlagen der Kv-Sprache ~
Verwendung des Befehls grep und häufiger Samples
Julia Quick Look Note [01] Verwendung von Variablen und Konstanten
[Einführung in die Udemy Python3 + -Anwendung] 27. Verwendung des Wörterbuchs
[Einführung in die Udemy Python3 + -Anwendung] 30. Verwendung des Sets
Wie man Argparse benutzt und den Unterschied zwischen Optparse
Wie man Decorator in Django benutzt und wie man es macht
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?