Chapitre 1

1. Guide Utilisateur

Bienvenue sur AutomA, vous vous trouvez sur la documentation utilisateur qui vous explique comment utiliser notre logiciel. Ci-après l’ensemble des parties disponibles :

Pour toutes questions supplémentaires, vous pouvez nous contacter par mail ici : automa.project@proton.me

Sous-sections de 1. Guide Utilisateur

Premiers pas

AutomA est un projet de durcissement de système d’exploitation automatisé, basé sur les règles et les conseils de références dans le monde de la cybersécurité tel que l’ANSSI. Ce guide utilisateur à pour but de permettre la bonne prise en main de l’interface Web ainsi que la configuration du service SSH.

Home Page Home Page

Sélection de l’environnement

Après avoir cliqué sur Start sur la page d’accueil, il vous sera demandé de sélectionner l’environnement des machines qui vont êtres concernées par le durcissement.

Environment Selection Environment Selection

Information

Vous ne pouvez que durcir qu’un seul type d’environnement à la fois

Hôte

Il est nécessaire de renseigner les machines à sécuriser dans l’onglet HOST INVENTORY. Cet onglet permet de définir l’ensemble des machines à sécuriser.

Host Inventory Tab Host Inventory Tab

Vous devez renseigner les informations suivantes :

  • Name : Un nom arbitraire unique de votre machine
  • IP : L’adresse IP de votre machine ou son FQDN (exemple : samba.local)
  • Port : Le port d’écoute du service SSH de votre machine
  • Connection Method : Vous avez le choix entre mot de passe et clef
  • Username : Le nom d’utilisateur pour la connexion SSH à votre machine
  • Auth : Le mot de passe ou le chemin d’accès à votre clef privée associée
  • Sudo Username : Le nom d’utilisateur pour l’élévation de privilège
  • Sudo Password : Le mot de passe de l’utilisateur ayant les droits d’administration

Ci-dessous, voici un exemple de configuration :

Host Inventory Tab Host Inventory Tab

Il est possible de modifier les champs en cliquant dessus directement :

Host Inventory Tab Host Inventory Tab

Génération des actions

Dans l’onglet HARDENING ACTION, une liste d’actions de durcissement est disponible. Ces règles sont classées selon :

  • La catégorie de la règle parmi les suivantes :
    • KERNEL
    • LOGGING
    • MEMORY
    • MONITORING
    • NETWORK_STACK
    • PACKAGE_MANAGEMENT
    • PARTITIONING
    • PERMISSIONS
    • SERVICES
    • USERS
  • Le niveau de recommandation de la règle
    • MINIMAL
    • INTERMEDIATE
    • REINFORCED
    • HIGH
  • Le révérenciel de la règle (ANSSI, NIST, etc …)

Il est possible de choisir une règle en cliquant dessus et en validant celle-ci :

Action Selection Action Selection

Certaines règles demandent des informations supplémentaires de la part de l’utilisateur pour définir le comportement adapté.

Par exemple cette règle permet de faire des mise à jours automatiquement sur une fréquence que l’utilisateur peut choisir. Un menu déroulant apparait avec une liste de choix possibles :

Action Selection With Input Action Selection With Input

Ici nous avons choisi monthly :

Action Selection With Input Selected Action Selection With Input Selected

Lancement des actions

Une fois que la configuration est terminée, l’utilisateur doit générer sa configuration en cliquant sur le bouton GENERATE.

Il est ainsi possible de lancer les règles sur les machines configurées en appuyant sur le bouton RUN. Il est aussi possible de cliquer sur la flèche pour afficher le bouton DOWNLOAD, vous permettant alors de récupérer l’ensemble des fichiers pour les lancer manuellement.

Nous pouvons ainsi observer l’exécution des playbooks et des actions grâce à la génération de logs directement sur l’interface :

Log View Log View

Configuration du SI

Nous utilisons Ansible pour propager les actions de durcissment, il est alors nécessaire d’ouvrir un port ssh pour qu’Ansible puisse y effectuer les actions nécessaires. Dans cette page, vous trouverez les informations nécessaire à la mise en place d’un serveur SSH sur une machine linux de type Debian 12.

Configuration du service SSH

Vérification du statut

La commande suivante permet de vérifier l’état du service OpenSSH :

sudo systemctl status ssh

OpenSSH Status OpenSSH Status

Activation du service

Si le service est désactivé, la commande suivante permet de le lancer :

sudo systemctl start ssh

Service au démarrage

Sur la plus part des systèmes Linux, le service SSH se lance au démarrage. Si ce n’est pas le cas et que vous voulez obtenir ce comportement, la commande suivante permet de l’activer au démarrage de la machine :

sudo systemctl enable ssh

Configuration du service

Le fichier /etc/ssh/sshd_config permet de configurer le daemon SSH. Par défaut, le service s’exécute sur le port TCP/22.

Il est recommandé de :

  • Désactiver la connexion du compte root
  • Désactiver la connexion par mot de passe et préférer la connexion par clé
  • Désactiver l’écoute sur l’IPv6 si elle n’est pas utilisée
  • Désactiver le X11 Forwarding
  • Changer le port d’écoute (22 par défaut)
# OpenSSH config file
Port 50122 # Mettez le port que vous souhaitez
ListenAddress 0.0.0.0 # Ecoute sur l'IPv4

# Pour désactiver l'IPv6, vous devez avoir la ligne suivante commentée
#ListenAddress ::

PubkeyAuthentification yes
PermitRootLogin no
PasswordAuthentification no
PermitEmptyPassowrd no

X11Forwarding no

Génération des clés

Pour générer une paire de clés, SSH intègre la commande suivante :

ssh-keygen -t ecdsa -b 521 -f /home/user1/.ssh/id_ecdsa_debian12
Remarque

Il est fortement recommandé de protéger votre clef privée avec un mot de passe !

Cela permet de générer deux fichiers, id_ecdsa_debian12 qui contient la clé privée, et id_ecdsa_debian12.pub qui contient la clé publique. Ces deux fichiers sont stockés dans le dossier ~/.ssh.

Utilisation des clés

La clé privée de la machine est requise pour utiliser l’authentification par clé dans AutomA. Veuillez générer les clés sur la machine hébergeant AutomA et ajouter la clé publique correspondante dans le fichier ~/.ssh/authorized_keys de la machine concernée.

Pour mettre votre clef publique sur la machine distance, il existe plusieurs techniques :

SSH-COPY

Vous pouvez utiliser le binaire ssh-copy comme suit :

ssh-copy-id -i ~/.ssh/<your_key>.pub <username>@<ip_address> -p <port>

Cette technique ne fonctionne que si le serveur SSH accepte la connexion par mot de passe.

Clef USB

Vous pouvez copier votre clef publique sur une clef usb qui est maitrisée. Ensuite, sur la machine de destination, créer le dossier ~/.ssh et le fichier ~/.ssh/authorized_keys dans lequel vous copiez le contenu de la clef publique provenant de votre clef USB.

Il est nécessaire d’y appliquer les bonnes permissions.

chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
chown -R user:user /home/user/.ssh
Chapitre 3

Référentiels

Vous trouverez dans ce chapitre, les informations concernant les référentiels actuellement utilisés ainsi que leur état d’avancement pour chaque environment. Ces pages vous propose des métriques permettant de vous exposer les avancés. Les métriques sont les suivantes :

  • Taux d’applicabilité : Expose le pourcentage d’actions de durcissement qui seront, à terme, disponibles dans AutomA pour une version d’un système d’exploitation. AutomA ne pouvant agir sur le durcissement matériel (exemple : BIOS/UEFI). Il peut y rester certaines inconnues d’où le troisième taux nommé ?.
  • Plateforme de test : Toutes les règles ne pouvant être testées sur un docker, nous exposons ici les pourcentages de tests possible sur docker. Les tests se font sur machine virtuelle lorsque docker ne peut être utilisé.
  • Taux de couverture : Ce taux espose le pourcentage d’actions effectuées pour un référentiel et une version d’un système d’exploitation donnés.
Information

Les métriques Plateforme de test et Taux de couverture sont effectuées sur l’ensemble des recommandations sur lequel nous avons enlevé les règles non-applicables.

  1. Le référentiel Recommandations de sécurité relatives à un système GNU/Linux de l’ANSSI ⇨ici⇦

Sous-sections de Référentiels

ANSSI - Linux

Dernière mise à jour : 8 décembre 2023

Debian 12

Applicabilité

%%{
    init: {
        "theme": "base",
        "themeVariables": {
            "pie1": "#b6d7a8",
            "pie2": "#e06666",
            "pie3": "#ffe599"
        }
    }
}%%
pie title Taux d'applicabilité dans AutomA
    "OUI" : 49
    "NON" : 11
    "?" : 20 

Vous trouverez ci-dessous la liste des règles non-applicables :

NuméroNiveauNom
R1RenforcéChoisir et configurer son matériel
R2IntermédiaireConfigurer le BIOS/UEFI
R3IntermédiaireActiver le démarrage sécurisé UEFI
R4ElevéRemplacer les clés préchargées
R28IntermédiairePartitionnement type
R64RenforcéConfigurer les privilèges des services
R65RenforcéCloisonner les services
R66ElevéDurcir les composants de cloisonnement
R76ElevéSceller et vérifier l’intégrité des fichiers
R77ElevéProtéger la base de données des scellés
R78RenforcéCloissoner les services réseau

Plateforme de test

%%{
    init: {
        "theme": "base",
        "themeVariables": {
            "pie1": "#674ea7",
            "pie2": "#ff00ff",
            "pie3": "#d9d9d9"
        }
    }
}%%
pie title Répartition plateforme de test
    "Docker" : 6
    "VM" : 2
    "?" : 61

Couverture

%%{
    init: {
        "theme": "base",
        "themeVariables": {
            "pie1": "#4285f4",
            "pie2": "#ffff00",
            "pie3": "#00ff00"
        }
    }
}%%
pie title Taux de couverture du référentiel
    "À Faire" : 60
    "En cours" : 1
    "Fait" : 8

Fichiers

Vous trouverez l’ensemble des fichiers qui contiennent les données présentées.

Fichiers d’avancement