[PYTHON] Introduction du cadre de cybersécurité "MITRE CALDERA": utilisation et formation

Introduction du cadre de cybersécurité "MITRE CALDERA": utilisation et formation

introduction

Effet

Cet article est le 4ème "Utilisation / Formation" de "Introduction à la Cyber Security Framework" MITRE CALDERA "". Dans ce volume, nous présenterons comment utiliser MITRE CALDERA, qui peut être utilisé pour développer le personnel de sécurité. Veuillez consulter le premier "Présentation des fonctions / Construction de l'environnement d'exploitation" pour le contour des fonctions et la construction de l'environnement.

Structure de l'article

Puisqu'il existe de nombreuses introductions, nous les présenterons dans les quatre articles suivants.

Attention / Clause de non-responsabilité

Cette série d'articles comprend une méthode pour simuler une cyberattaque. Le but est de confirmer, d'examiner et d'améliorer le type d'événements qui se produiront en raison des cyberattaques et comment y faire face, et de les utiliser pour le développement des ressources humaines en cybersécurité. Créez un environnement de réseau fermé afin qu'il n'affecte pas les autres systèmes ou réseaux. Si vous le faites à une personne qui n'a pas l'autorisation, cela enfreindra les lois telles que la loi sur l'accès non autorisé à l'ordinateur, alors veuillez ne pas le faire.

Le contenu de cet article est mon opinion personnelle, pas l'opinion officielle de l'organisation à laquelle j'appartiens. L'auteur et l'organisation à laquelle il appartient ne sont pas responsables des problèmes, dommages ou dommages causés à l'utilisateur ou à un tiers en essayant ce qui est décrit dans cet article.

Aperçu

Le plug-in de formation a été fourni dans MITRE CALDERA version 2.6.4 et un menu de formation a été ajouté. Les questions seront données sous forme de quiz, et si l'état attendu est atteint, la réponse sera correcte et la question suivante sera posée. MITRE CALDERA 2.6.6 utilisé dans cette série a un problème pour confirmer et certifier que vous êtes un utilisateur qui peut maîtriser MITRE CALDERA. Notez que dans 2.6.6, le problème n'apparaît que lorsque vous vous connectez avec l'équipe rouge. Dans 2.7.0, les problèmes sont également affichés lors de la connexion en tant qu'équipe bleue, et le nombre de problèmes augmente. Nous pouvons nous attendre à ce que d'autres questions de formation soient ajoutées à l'avenir. Vous pouvez également créer et enregistrer vos propres questions. Il explique également comment enregistrer un problème.

Vous trouverez ci-dessous une capture d'écran du début de la formation sur le certificat d'utilisateur. training_user_sertificate.png

Environnement

Utilisez le même environnement que "Utilisation: Red Team Edition". Notez que l'indicateur pictogramme ne s'affichait pas correctement lors de l'affichage de la question de formation dans le navigateur Chromium sous Ubuntu Linux 20.04. Par conséquent, j'ai exécuté la commande suivante pour installer la police de pictogramme et me suis reconnecté au système d'exploitation. (Le nom de la police varie en fonction du type et de la version du système d'exploitation)

$ sudo apt install ttf-ancient-fonts-symbola

Mode opératoire

S'identifier

Connectez-vous au serveur MITRE CALDERA en suivant la procédure de démarrage décrite dans "Utilisation: Red Team Edition".

Affichage du menu d'entraînement

Lorsque vous déplacez le curseur de la souris vers le menu Plugins, un sous-menu s'affiche directement en dessous, cliquez donc sur training dans le sous-menu. training_menu.png

Sélection de collection de problèmes

Cliquez sur le menu déroulant «Sélectionner un certificat» sur le côté gauche de l'écran Web pour afficher une liste des noms de collection de problèmes. Sélectionnez-le. Dans MITRE CALDERA 2.6.6, seul "ʻUser Certificate`" peut être sélectionné. Ceci est une série de questions pour confirmer et certifier si vous maîtrisez MITRE CALDERA.

training_select_certificate.png

De plus, dans la partie supérieure droite de la fenêtre, le texte anglais tel que "Veuillez m'envoyer un e-mail lorsque vous recevrez le code. Nous vous retournerons le code de certification d'achèvement après confirmation" s'affiche. Aimeriez-vous essayer de conquérir toutes les questions?

Défiez le problème

Lorsque vous sélectionnez un livre de questions, le genre de question est affiché sur le côté gauche de l'écran et la carte avec le texte de la question s'affiche sur le côté droit de l'écran. Comme le montre la première capture d'écran de cet article, la carte a un titre de question et une déclaration de question. Lorsque vous déplacez le curseur de la souris sur la carte, la carte est retournée et une carte rouge s'affiche comme indiqué ci-dessous, et des détails et des conseils s'affichent. Actuellement, seul le genre est affiché, mais à l'avenir, vous pourrez peut-être sélectionner un problème pour ce genre en cliquant sur le genre. C'est aussi un moyen d'utiliser des logiciels open source pour demander de telles fonctions ou pour les implémenter et les incorporer. Si vous répondez correctement à la question, les questions suivantes s'afficheront en plus.

training_genre_q1_back.png

Des questions seront posées pour chaque genre. La première question sera du genre AGENTS (agent).

Question 1: Démarrez l'agent sur l'hôte local

Tableau: Énoncé du problème Retour: Détails / Conseils
training_q1_front.png training_q1_back.png

Si l'agent peut être démarré sur l'hôte local, la deuxième question sera affichée.

Question 2: Démarrez l'agent sur l'hôte distant

Tableau: Énoncé du problème Retour: Détails / Conseils
training_q2_front.png training_q2_back.png

Comme indiqué dans l'énoncé du problème, l'agent doit être démarré sur un hôte avec un type de système d'exploitation différent de celui du serveur MITRE CALDERA. Puisque le serveur MITRE CALDERA fonctionne sous Linux OS, si vous pouvez démarrer l'agent sur Windows OS ou Mac OS et vous connecter à distance, le problème sera résolu et la troisième question sera affichée.

De cette manière, les questions sont posées les unes après les autres. Après avoir résolu tous les problèmes du genre, l'icône du genre sera colorée. La date à laquelle la question a été correctement répondue est enregistrée et vous pouvez continuer à la résoudre même si vous redémarrez le serveur MITRE CALDERA.

Ci-dessous, une capture d'écran du genre AGENTS avec les huit questions résolues.

training_cleared_agents.png

Structure du plug de formation

Le répertoire et la structure des fichiers du plug-in Training sont indiqués ci-dessous. Vous pouvez également créer et enregistrer vos propres questions en fonction de votre configuration.

Structure des répertoires / fichiers

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
(Omission)
│   │   └── plugins
│   │       ├── atomic
│   │       │   └── flag_0.py
│   │       ├── compass
(Omission)
│   │       └── mock
│   │           └── flag_0.py
│   └── training_api.py
├── data
│   └── 9cd5f3a0-765d-45bc-85c2-bc76d4282599.yml
├── hook.py
├── static
│   ├── css
│   │   └── training.css
│   └── img
│       ├── badges
│       │   ├── advanced.png
(Omission)
│       │   └── operations.png
│       └── certification.png
└── templates
    └── training.html

Fichier de définition de collection de problèmes

Il s'agit d'un fichier de définition de collection de problèmes qui collecte les problèmes liés aux thèmes de problème tels que «Certificat utilisateur». Il existe un fichier yaml avec l'UUID comme nom de fichier pour chaque collecte de problèmes sous le répertoire de données. Si vous créez votre propre fichier de définition de collection de problèmes dans le même format et que vous le stockez dans le répertoire de données, il sera automatiquement ajouté au menu déroulant de sélection de collection de problèmes et vous pourrez le sélectionner.

Le format de définition du fichier de définition de collection de problèmes est indiqué ci-dessous.

data/*.yaml


id:UUID de collecte de problèmes
name:Nom de la collection de problèmes
badges:
Nom du genre de problème:
    flags:
      -Définition du problème Nom du module Python du script Python

Fichier de définition du problème

Fichiers de définition de problème individuels. Il s'agit d'un script Python, et le titre de la question, la phrase de la question et l'explication détaillée sont définis comme des variables, et le processus de détermination de la bonne réponse est défini comme une fonction. Puisqu'il est importé en tant que module Python, placez le script Python sous le répertoire de l'application en fonction du format du module Python.

Le format de définition du fichier de définition de problème est indiqué ci-dessous. Le nom de la variable et le nom de la fonction sont fixes et sont automatiquement reconnus comme un problème.

app/flags/*/*.py


name = 'Titre du problème'
challenge = 'Énoncé du problème'
extra_info = """Détails / Conseils"""

async def verify(services):
Traitement qui renvoie Vrai si la réponse est correcte, Faux si la réponse n'est pas correcte

à la fin

Ceci conclut l'introduction du cadre de cybersécurité "MITRE CALDERA". Nous espérons que cela vous intéressera et que ce sera l'occasion de l'utiliser pour le développement des affaires et des ressources humaines. Nous pouvons nous attendre à de nombreuses techniques, scénarios, menus de formation, nouveaux plug-ins, etc. dans le futur. Puisqu'il s'agit d'un framework, il sera intéressant de définir des techniques et des formations originales, et de concevoir et créer de nouveaux plug-ins. Je voudrais vous présenter comment créer un environnement de développement de plug-ins.

Utilisons MITRE ATT & CK et MITRE CALDERA pour la cybersécurité.

Merci d'avoir lu jusqu'à la fin.

Recommended Posts

Introduction du cadre de cybersécurité "MITRE CALDERA": utilisation et formation
Introduction du cadre de cybersécurité "MITRE CALDERA", aperçu des fonctions, construction de l'environnement d'exploitation
Introduction de DataLiner ver.1.3 et comment utiliser Union Append
[Introduction] Comment utiliser open3d
[Introduction à Azure pour les utilisateurs de kaggle] Comparaison du démarrage et de l'utilisation de la machine virtuelle Azure Notebooks et Azure Notebooks
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Résumé de l'utilisation de pandas.DataFrame.loc
Comment installer et utiliser Tesseract-OCR
Résumé de l'utilisation de pyenv-virtualenv
Comment utiliser .bash_profile et .bashrc
Comment installer et utiliser Graphviz
Résumé de l'utilisation de csvkit
Comment utiliser les variables d'environnement Serverless Framework et Python et gérer les étapes
[Introduction à Python] Comment utiliser l'opérateur booléen (et ・ ou ・ non)
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques graph Bases de Scipy
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques graph Bases de Pandas
[Introduction à Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessin de graphes ♬ Bases de Matplotlib
[Python] Résumé de l'utilisation des pandas
[Introduction à Python] Comment utiliser la classe en Python?
Comment installer et utiliser pandas_datareader [Python]
Comment calculer Utiliser% de la commande df
[Python2.7] Résumé de l'utilisation d'unittest
python: Comment utiliser les locals () et globals ()
Jupyter Notebook Principes d'utilisation
Bases de PyTorch (1) -Comment utiliser Tensor-
Comment utiliser le zip Python et énumérer
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Comment utiliser is et == en Python
Comment utiliser les pandas Timestamp et date_range
[Question] Comment utiliser plot_surface de python
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
Comment utiliser Folium (visualisation des informations de localisation)
Introduction du cadre de style Sinatra et comment l'utiliser
[Introduction à l'application Udemy Python3 +] 23. Comment utiliser Tapuru
[Introduction to Data Scientist] Bases du calcul scientifique, du traitement des données et comment utiliser la bibliothèque de dessins graphiques ♬ Construction d'environnement
Pas beaucoup de mention de la façon d'utiliser Pickle
Résumé de l'utilisation de MNIST avec Python
[Python] Comment utiliser la fonction de hachage et taple.
Comment installer le détecteur Cascade et comment l'utiliser
[Introduction aux statistiques] Quel type de distribution est la distribution t, la distribution chi carré et la distribution F? Un petit résumé de l'utilisation de [python]
[Introduction à Python] Comment utiliser l'instruction while (traitement répétitif)
J'ai essayé de résumer comment utiliser matplotlib de python
Débutants! Commandes et utilisation de base de Linux!
Remarques sur la façon d'utiliser lors de la combinaison de pandas.
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
Comment utiliser la commande grep et des exemples fréquents
Julia Quick Look Note [01] Comment utiliser les variables et les constantes
[Introduction à Udemy Python3 + Application] 27. Comment utiliser le dictionnaire
[Introduction à Udemy Python3 + Application] 30. Comment utiliser l'ensemble
Comment utiliser argparse et la différence entre optparse
Comment utiliser Decorator dans Django et comment le créer
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser Seaboan