La sécurisation de l'environnement de développement
- MON
- 2024-2025
- temps 1
- dev
- cyber
- Loïck Goupil-Hallay
MON avancé
Table des matières
Introduction
La sécurisation de l'environnement de développement est un enjeu majeur pour les entreprises. Les piratages informatiques et brèches de données sont des risques réels qui ont des conséquences désastreuses en terme financier, de risques légaux mais surtout en terme de réputation.
Les développeurs manipulent des données sensibles et des outils critiques pour l'entreprise. Le plus souvent ces données sont manipulées "automatiquement" par les programmmes, publiées sur des dépôts, stockées dans des bases de données... Le développeur ne les voit pas directement mais elles sont bien présentes et sont des cibles.
Il est essentiel de sensibiliser les développeurs à la sécurité informatique et de mettre en place des mesures pour protéger les données et les outils de développement.
Durcissement du poste de travail
Cette section sert uniquement pour votre culture personnelle.
Vous trouverez ici une liste de recommandations basées sur les recommandations de l'ANSSI pour sécuriser un poste de travail.
Il existe des guides pour chaque système d'exploitation publiés par des organismes de sécurité informatique. Par exemple, l'ANSSI publie des guides de bonnes pratiques pour la sécurité des systèmes d'information:
Voyons ensemble quelques bonnes pratiques pour durcir le poste de travail.
Durcissement Hardware
La première étape pour sécuriser un poste de travail est de s'assurer que le matériel est sécurisé. Voici quelques bonnes pratiques pour sécuriser le matériel dès le départ
BIOS/UEFI
Le BIOS/UEFI est le premier logiciel qui s'exécute lors du démarrage de l'ordinateur. Vous pouvez y accéder en appuyant sur une touche spécifique propre à chaque constructeur (F2, F10, F12, DEL...) au démarrage.
Il est essentiel de protéger le BIOS/UEFI pour empêcher les attaquants de le modifier. Pour se faire, il est recommandé de:
- définir un mot de passe pour accéder au BIOS/UEFI
- désactiver le démarrage sur les périphériques amovibles
- activer le Secure Boot pour empêcher le démarrage de logiciels non signés / non autorisés
- mettre à jour le BIOS/UEFI régulièrement
Chiffrement du disque dur
Le chiffrement consiste à protéger les données en les transformant en un format illisible sans la clé de déchiffrement. Il est recommandé de chiffrer le disque dur pour protéger les données en cas de vol ou de perte de l'ordinateur. Le chiffrement peut être réalisé avec des outils comme BitLocker (Windows) ou FileVault (macOS) ou LUKS (Linux).
Le disque dur chiffré nécessite un mot de passe pour être déverrouillé, il est essentiel de choisir un mot de passe fort ET de ne pas l'oublier, car il est impossible de récupérer les données sans lui. Le chiffrement est généralement réalisé durant l'installation du système d'exploitation, car il est difficile de chiffrer un disque dur déjà utilisé sans perdre les données.
Durcissement Logiciel & Système d'Exploitation
Le système d'exploitation est le logiciel qui permet à un ordinateur de fonctionner. Il est essentiel de sécuriser le système d'exploitation pour protéger les données et les outils de développement des accès non autorisés.
Configuration bootloader & kernel
Il est recommandé de configurer le bootloader pour empêcher les modifications non autorisées du système d'exploitation. Par exemple, il est possible de désactiver le mode de récupération pour empêcher les attaquants de contourner les mesures de sécurité.
Il est également recommandé de configurer le kernel pour limiter les attaques de type Kernel Exploit. Notamment, il est recommandé de désactiver les modules non utilisés pour réduire la surface d'attaque.
Nous n'entrerons pas dans le détail car l'application de ces mesures nécessite des compétences avancées en sécurité informatique. Vous pouvez néamoins suivre le guide de l'ANSSI pour sécuriser un système Linux afin de comprendre comment sécuriser un kernel (pas seulement Linux).
Mises à jours
L'une des premières choses à faire lorsque l'on reçoit son nouveau poste de travail est de mettre à jour le système d'exploitation et les logiciels installés.
Il est essentiel de mettre à jour régulièrement le système d'exploitation et les logiciels pour corriger les failles de sécurité. Les mises à jour de sécurité sont publiées régulièrement par les éditeurs de logiciels pour corriger les failles de sécurité découvertes. Il est recommandable de configurer les mises à jour automatiques pour s'assurer que le système est toujours à jour. Attention cependant aux incidents de type Crowdstrike qui peuvent être causés par des mises à jour automatiques.
SSH, réseau & firewall
Il est recommandé de désactiver le service SSH si vous n'en avez pas besoin. Le service SSH est souvent utilisé pour accéder à une machine à distance, mais il peut être une porte d'entrée pour les attaquants s'il est mal configuré.
Il est également recommandé de configurer un pare-feu pour contrôler le trafic réseau entrant et sortant. Un pare-feu permet de filtrer le trafic réseau entrant et sortant. Il suit des règles de filtrage définies par l'administrateur pour autoriser ou bloquer le trafic réseau. C'est un bon moyen d'empêcher votre extension VSCode de communiquer avec Pyongyang.
Il est enfin recommandé de désactiver les services réseau non utilisés pour réduire la surface d'attaque. Par exemple, si vous n'utilisez pas le service FTP (privilégiez SFTP), IPv6 ou le partage de fichiers, il est recommandé de les désactiver.
Il faut paramétrer l'IPv4 et l'IPv6 pour qu'ils soient sécurisés et privés. Il est recommandé de désactiver l'IPv6 si vous n'en avez pas besoin, car il peut être une porte d'entrée pour les attaquants.
Gestion des comptes utilisateurs
La gestion des utilisateurs est un élément clé de la sécurité du système d'exploitation. Il est recommandé de créer des comptes utilisateurs pour chaque utilisateur et de limiter les privilèges des comptes utilisateurs. Il est également recommandé de désactiver les comptes inutilisés pour réduire la surface d'attaque.
Mots de passe forts
Il est essentiel de choisir des mots de passe forts pour les comptes utilisateurs. Un mot de passe fort est un mot de passe qui est difficile à deviner pour un attaquant. Il est recommandé d'utiliser des mots de passe longs, composés de lettres majuscules et minuscules, de chiffres et de caractères spéciaux.
L'ANSSI met régulièrement à jour son guide d'authentification multifacteur et mots de passe pour vous aider à choisir un bon mot de passe, robustes vis-à-vis des évolutions technologiques.
Authentification forte
L'authentification forte consiste à utiliser plusieurs facteurs d'authentification pour se connecter à un système. Par exemple, un mot de passe et un code envoyé par SMS. Le deuxième facteur d'authentification peut aussi être un élément physique comme une clé USB ou un token.
Les systèmes d'exploitation modernes proposent des solutions d'authentification forte comme Windows Hello (reconnaissance faciale) ou Touch ID (reconnaissance d'empreinte digitale). Les éléments physiques comme les clés USB ou les tokens sont souvent utilisés pour l'authentification forte dans les entreprises. Il s'agit par exemple de la clé YubiKey, de la carte à puce ou du token OTP. Tous ces éléments peuvent être déployés (longtemps) après l'installation du système d'exploitation. Ils sont souvent gérés par un service d'authentification centralisé.
Cette méthode est plus sécurisée que l'authentification par mot de passe seul, car il est plus difficile pour un attaquant de compromettre plusieurs facteurs d'authentification. Cependant elle peut générer de la frustration et être contraignante pour les utilisateurs.
Niveaux de privilèges
Par défaut, les systèmes d'exploitation n'ont que 2 niveaux de privilèges: administrateur et utilisateur. Pour compléter ces niveaux, il est recommandé de créer des groupes pour regrouper les utilisateurs avec des privilèges similaires. Par exemple, un groupe "développeurs" pour les utilisateurs qui ont besoin d'accéder aux outils de développement.
L'idée est d'avoir le moins de véritables administrateurs possible, et de donner les privilèges les plus bas nécessaires pour effectuer le travail. C'est le principe du moindre privilège.
Pour les utilisateurs qui ont besoin d'un accès administrateur, il est recommandé de mettre en place un suivi des actions effectuées par ces utilisateurs pour détecter les abus.
Fichiers et répertoires
Pour protéger ses données, il est recommandé de chiffrer les fichiers sensibles. Le chiffrement des fichiers sensibles permet de protéger les données en cas de vol ou de perte de l'ordinateur. Il est également recommandé de sauvegarder régulièrement les fichiers pour éviter de les perdre en cas de panne de disque dur.
De plus, il est recommandé de limiter les accès aux fichiers et répertoires en fonction des besoins de chaque utilisateur. Il est recommandé de définir des permissions pour chaque fichier et répertoire pour contrôler qui peut accéder aux données. Les systèmes d'exploitation modernes permettent de définir des ACL (Access Control Lists) pour contrôler les accès aux fichiers et répertoires.
(par exemple, chmod
et chown
sous Linux)
Zero Trust
Le modèle Zero Trust est un modèle de sécurité informatique qui consiste à ne faire confiance à aucun utilisateur ou appareil à l'intérieur ou à l'extérieur du réseau. Cela va à l'encontre du modèle habituel de confiance implicite, où les utilisateurs et les appareils à l'intérieur du réseau sont considérés comme sûrs.
C'est un modèle de sécurité qui définit l'ensemble de l'architecture de sécurité d'une entreprise. Par conséquent il est difficile à mettre en place et nécessite une réflexion globale. Il est encore plus compliqué de transformer un système existant en un système Zero Trust.
Ce modèle repose sur plusieurs principes clés
Moindre privilège
Le principe du moindre privilège consiste à accorder à chaque utilisateur les privilèges les plus bas nécessaires pour effectuer son travail.
Cela signifie que:
- L'accès aux ressources repose uniquement sur le besoin d'en connaître de l'utilisateur
- L'accès donné est le plus faible possible permettant tout de même à l'utilisateur de réaliser son travail
- Les demandes d'accès sont contrôlées et traçables. Si possible elles sont automatiques pour éviter les erreurs humaines et la frustration des utilisateurs
- Les accès sont révoqués dès que l'utilisateur n'en a plus besoin
- Il y a une surveillance (automatique ou non) pour détecter les abus, les anomalies et les erreurs
- La politique de sécurité est appliquée, contrôlée et (r)évaluée régulièrement
Sécurisation des accès
La sécurisation des accès consiste à authentifier et autoriser les utilisateurs et les appareils avant de leur donner accès aux ressources.
Concrètement, d'après le Guide de d'administration système de l'ANSSI, pour une entreprise / équipe, cela passe par:
Politique d'authentification de l'entreprise
L'entreprise doit mettre en place une politique d'authentification pour définir les règles d'authentification des utilisateurs sur leurs postes physiques. Cette politique doit inclure:
- Authentification robuste
- Authentification forte
- Rotation régulière des mots de passe
- Déployer et maintenir des moyens de gestion centralisée des identités et des accès tels que des LDAP, des Active Directory, des SSO (SAML ou OIDC)
- Utiliser des certificats pour l'authentification
Politique de PKI
La PKI (Public Key Infrastructure) est un ensemble de technologies et de procédures qui permettent de gérer les clés et les certificats numériques. Ces certificats numériques sont utilisés pour authentifier les utilisateurs et les appareils. Ils sont aussi utilisés pour chiffrer les communications entre les utilisateurs et les ressources. Ou encore pour signer les données pour garantir leur intégrité.
Les certificats numériques sont délivrés par une autorité de certification (CA) qui atteste de l'identité de l'utilisateur ou de l'appareil. Il est essentiel de mettre en place une politique de PKI pour définir les règles de gestion des certificats numériques.
Sécurisation des flux
La sécurisation des flux consiste à chiffrer les communications entre les utilisateurs et les ressources pour protéger les données des attaques de type Man In The Middle. Il est recommandé d'utiliser des protocoles de sécurisation des échanges comme SSL ou TLS pour chiffrer les communications. Cela permet de garantir la confidentialité et l'intégrité des données. Pour les développeurs, il est recommandé d'utiliser des protocoles de transfert de fichiers sécurisés comme SFTP pour transférer des fichiers en toute sécurité.
Il est également recommandé de surveiller les flux pour détecter les anomalies et les attaques. La surveillance des flux permet de détecter les attaques en temps réel et de réagir rapidement pour les contrer. Cela passe par la mise en place de systèmes de logging et de monitoring.
Firewall
L'entreprise peut (et doit) mettre en place un firewall pour contrôler le trafic réseau entrant et sortant de l'entreprise. Ce firewall est un appareil physique ou un logiciel qui filtre le trafic réseau pour l'ensemble de ses utilisateurs. Il est au dessus des firewalls logiciels installés sur les postes de travail.
C'est une couche de sécurité supplémentaire qui permet de bloquer certaines communications non autorisées ou encore des attaques de type DDOS
DMZ
La DMZ (Demilitarized Zone) est une zone du réseau qui est isolée du reste du réseau de l'entreprise. C'est une zone de sécurité intermédiaire entre le réseau interne et le réseau externe. Elle permet de limiter les risques en cas de compromission d'un serveur dans la DMZ. Elle est utilisée pour héberger des services accessibles depuis l'extérieur de l'entreprise, comme un site web ou un serveur de messagerie. La DMZ est une couche de sécurité supplémentaire qui permet de protéger les ressources sensibles de l'entreprise. Elle est souvent utilisée pour héberger des services qui nécessitent un accès depuis l'extérieur de l'entreprise, ou pour connecter des réseaux de confiance différents. Cela peut aussi faire office de sandbox pour les développeurs. Ou encore être utilisé pour héberger un proxy ou un firewall.
%%{init: {'theme': 'forest'}}%% architecture-beta group intranet(carbon:chart-network)[Intranet] service server1(server)[Server 1] in intranet service server2(server)[Server 2] in intranet group dmz(cloud)[DMZ] service firewall(carbon:firewall-classic)[Firewall] in dmz service proxy(carbon:server-proxy)[Proxy] in dmz service webserver(carbon:server-dns)[Web Server] in dmz service mailserver(carbon:mail-all)[Mail Server] in dmz server1:T <--> L:proxy server1:R <--> L:webserver server1:B <--> L:mailserver group internet(tabler:world-www)[Internet] service china(emojione:flag-for-china)[Unsuspicious server] in internet proxy:R <--> T:firewall webserver:R <--> L:firewall mailserver:R <--> B:firewall firewall:R <--> L:china
Proxy
Un proxy est un serveur intermédiaire qui sert d'intermédiaire entre les utilisateurs et les serveurs. Il permet de filtrer les communications pour contrôler l'accès aux ressources. Il peut être utilisé pour bloquer les sites web malveillants, contrôler les accès aux ressources sensibles ou accélérer les communications. Il est recommandé de mettre en place un proxy pour contrôler le trafic réseau et protéger les utilisateurs des attaques.
Former les développeurs
En supposant que l'entreprise ait mis en place tous les moyens mentionnés ci-dessus pour protéger son SI, elle reste toujours vulnérable aux attaques. Les attaques ont quasiment toujours lieu à cause d'une erreur humaine. Il est donc essentiel de sensibiliser les développeurs à la sécurité informatique et de les former aux bonnes pratiques de sécurité. Ces bonnes pratiques doivent être appliquées dès le début du développement et tout au long du cycle de vie du logiciel. Elles s'appliquent à l'utilisation du poste de travail, mais surtout aux principes de développement. Voici quelques points essentiels à aborder avec eux.
Chiffrement
Le chiffrement est un élément clé de la sécurité informatique. Il permet de protéger les données en les transformant en un format illisible sans la clé de déchiffrement. Concrètement, il est recommandé de chiffrer les données sensibles tels que les mots de passe, les clés privées, les données personnelles, le code sensible, les artefacts, les fichiers de configuration, les secrets, les tokens, les certificats, les clés de chiffrement, les clés de signature, les clés de session, les clés de stockage, les clés de base de données. En bref, tout ce qui représenterait un risque s'il était exposé.
Il est également recommandé de chiffrer les communications entre les utilisateurs et les ressources pour protéger les données. Pour les développeurs, cela signifie utiliser des protocoles de communication sécurisés comme SSL(Secure Socket Layer) ou TLS(Transport Layer Security) pour chiffrer les communications. Ils doivent mettrent en place des protocoles de transfert de fichiers sécurisés comme SFTP pour transférer des fichiers en toute sécurité. Tous les serveurs web doivent être configurés pour utiliser HTTPS. Les mots de passe doivent être hashés avant d'être stockés dans la base de données.
Evidemment, les clés de chiffrement doivent être robuste pour se protéger des attaques de type brute force. Il est recommandé de générer des clés de chiffrement aléatoires et de les stocker dans un coffre-fort ou un service de gestion des secrets.
Signature
La signature est un autre élément clé de la sécurité informatique. Elle permet de garantir l'intégrité des données en les signant avec une clé privée. La signature permet de vérifier que les données n'ont pas été modifiées depuis leur signature. Concrètement, les développeurs doivent vérifier les signatures des fichiers qu'ils téléchargent pour s'assurer de leur intégrité. Ils doivent également signer les composants logiciels qu'ils produisent, les artefacts, les fichiers de configuration, les secrets, les tokens, les certificats, les clés de chiffrement, les clés de signature, les clés de session, les clés de stockage, les clés de base de données. En bref, tout ce qui nécessite d'être tracé et vérifié.
Gestion des secrets
La gestion des secrets est un élément essentiel de la sécurité informatique. Les secrets sont des informations sensibles comme les mots de passe, les clés privées, les données personnelles, les tokens, les certificats, les clés de chiffrement, les clés de signature, les clés de session, les clés de stockage, les clés de base de données. On retrouve là les mêmes éléments que pour le chiffrement et la signature. Les secrets doivent être protégés et gérés de manière sécurisée pour éviter les fuites dangereuses.
Pour cela il est pratique courante d'utiliser un service de gestion des secrets comme Vault, Keycloak, AWS Secrets Manager, Azure Key Vault, Google Secret Manager. Ces services permettent de stocker les secrets de manière sécurisée et de les distribuer aux applications de manière sécurisée. Ils permettent également de générer des clés de chiffrement aléatoires et de les stocker.
Ces secrets NE DOIVENT PAS être stockés directement dans le code source, tous les gestionnaires de code source moderne permettent de masquer les secrets et de les remplacer uniquement lors de l'exécution des pipelines de CI/CD et du code.
Il ne doivent pas non plus être partagés par email, par chat, par téléphone, ou tout autre moyen de communication non sécurisé.
Supply Chain & Dépendances vulnérables
La supply chain est l'ensemble des acteurs qui interviennent dans la production et la distribution d'un produit. Dans le domaine du développement logiciel, la supply chain concerne les dépendances utilisées par les développeurs pour construire leur logiciel. Ces dépendances peuvent être des bibliothèques, des modules, des packages ou des frameworks.
Il est essentiel de s'assurer de la sécurité de la supply chain pour éviter les attaques. Pour cela, il faut d'abord vérifier la provenance des dépendances pour s'assurer qu'on ne télécharge pas le code d'un éditeur malveillant (chinois ou russe en général). Il faut ensuite vérifier la signature des dépendances pour s'assurer de leur intégrité. Enfin, il faut se renseigner sur les CVE (Common Vulnerabilities and Exposures) des dépendances pour s'assurer qu'elles ne contiennent pas de failles de sécurité connues.
Tout cela permettra peut-être d'éviter de rajouter une ou deux backdoors externes dans votre application. C'est toujours mieux de les ajouter soi-même 😁.
Secure Coding
Le Secure Coding est un ensemble de bonnes pratiques de développement logiciel permettant de produire du code le plus sûr et fiable possible. Il repose sur un ensemble de standards et de règles de sécurité à respecter lors du développement d'un logiciel. Ces règles permettent de réduire les risques de failles de sécurité et d'erreurs de programmation.
Il existe de nombreux standards de Secure Coding comme:
Ces standards définissent les bonnes pratiques de développement logiciel à respecter pour garantir le maximum de sécurité. Ils ne sont pas absolus et doivent être adaptés à chaque contexte. Les entreprises définissent souvent leur propre standard en se basant sur ces standards de référence.
Les bonnes pratiques de Secure Coding incluent:
- Validation des entrées pour éviter les attaques d'injection
- Échappement des sorties pour éviter les attaques XSS
- Gestion des erreurs pour éviter les fuites d'informations sensibles
- Contrôle d'accès pour limiter l'accès aux ressources
- Chiffrement pour protéger les données sensibles
- Gestion des sessions pour éviter les attaques CSRF
- Mises à jour régulières pour corriger les failles de sécurité
Logging & Monitoring
Comme il n'est pas toujours possible d'empêcher les attaques, il est à minima nécessaire de pouvoir retrouver où elles ont eu lieu. Pour cela, il est essentiel de surveiller et enregistrer les événements d'un système. Cela permet de détecter les attaques en temps réel et de réagir rapidement pour les contrer. Cela permet également de tracer les actions des utilisateurs pour détecter les abus et les anomalies.
Pour un développeur, cela signifie qu'il doit mettre en place dans sa logique de code des logs pour enregistrer les événements importants. Ces logs doivent être conservés et consultables pour permettre de retracer les actions des utilisateurs. Il est recommandé de mettre en place un système de logging centralisé pour centraliser les logs et les consulter facilement.
Il doit aussi implémenter du suivi de l'état de son application pour détecter les erreurs et les anomalies. Cela passe par des health checks, des metrics, des traces et des logs.
Dans le meilleur des mondes, il doit mettre en place des alertes pour être prévenu en cas d'anomalie.
Réponse aux incidents
Enfin, il est essentiel de préparer une réponse aux incidents pour réagir rapidement en cas d'attaque. Il faut définir des plans d'action pour réagir aux attaques, se débarasser des attaquants, identifier puis réparer les dégâts; repérer les données compromises et les fuites. Il faut également communiquer avec les utilisateurs et les autorités pour les informer de l'incident et des mesures prises pour le résoudre.
Ensuite, il faut analyser l'incident pour comprendre comment il a eu lieu et comment l'éviter à l'avenir. Il faut mettre en place des mesures correctives pour éviter que l'incident se reproduise. Bien évidemment, le cas idéal serait de mettre en place des mesures préventives pour anticiper les attaques et les contrer avant qu'elles ne se produisent.
Risques légaux
Un point important de la sensibilisation du développeur consiste à l'informer des risques légaux encourus par l'entreprise mais aussi par lui-même en cas de non-respect des règles de sécurité. Les entreprises sont soumises à des obligations légales en matière de sécurité informatique. Elles doivent respecter des normes et des règlements pour protéger les données des utilisateurs.
Une faille de sécurité peut entraîner des sanctions financières, des poursuites judiciaires et une perte de confiance des utilisateurs. Les développeurs peuvent également être tenus responsables en cas de faille de sécurité. Ils doivent comprendre qu'ils ont un rôle essentiel à jouer dans la sécurité de l'entreprise et qu'ils doivent respecter les règles de sécurité pour éviter tout problème avec la justice.
Conclusion
La sécurité informatique est un enjeu majeur pour les entreprises, même si elles ne produisent pas des services numériques. La sécurité informatique est un domaine complexe qui nécessite des compétences avancées en informatique et en sécurité. Les entreprises ont des services SRE (Site Reliability Engineering) ou des DSI (Direction des Systèmes d'Information) qui sont chargés de mettre en place les mesures de sécurité nécessaires pour protéger le SI de l'entreprise.
La sécurité coûte cher, mais les conséquences d'une faille de sécurité peuvent être encore plus coûteuses. Il est donc essentiel d'investir dans la sécurité informatique pour protéger les données de l'entreprise, sa réputation et éviter les attaques.
Enfin n'oubliez pas que la sécurité informatique est l'affaire de tous. Les développeurs ont un rôle essentiel à jouer dans la sécurité de l'entreprise. Ils doivent être sensibilisés à la sécurité informatique et formés aux bonnes pratiques de sécurité. Ils doivent respecter les règles de sécurité et mettre en place les mesures de sécurité nécessaires pour protéger les données de l'entreprise.
Lexique
- Piratage informatique: Action de s'introduire dans un système informatique sans autorisation.
- Kernel Exploit: Attaque qui exploite une faille dans le noyau du système d'exploitation.
- Man In The Middle: Attaque qui consiste à intercepter et modifier les communications entre deux parties.
- Phishing: Technique d'attaque qui consiste à tromper les utilisateurs pour obtenir des informations sensibles.
- DDOS: Distributed Denial of Service, attaque qui vise à rendre un service indisponible en saturant les serveurs.
- Brute Force: Attaque qui consiste à essayer toutes les combinaisons possibles pour trouver un mot de passe.
- Backdoor: Porte dérobée, faille secrète dans un logiciel qui permet à un attaquant d'accéder au système.
- Injection: Attaque qui consiste à injecter du code malveillant dans un système.
- Brèche de données: Fuite de données personnelles ou sensibles.
- CVE: Common Vulnerabilities and Exposures, base de données des vulnérabilités connues.
- Ordinateur
- BIOS/UEFI: Logiciel qui s'exécute lors du démarrage de l'ordinateur.
- Secure Boot: Fonctionnalité qui empêche le démarrage de logiciels non signés.
- Bootloader: Logiciel qui permet de charger le système d'exploitation.
- Système d'exploitation: Logiciel qui permet à un ordinateur de fonctionner.
- Kernel: Noyau du système d'exploitation.
- Authentification: Processus qui permet de vérifier l'identité d'un utilisateur.
- Mots de passe forts: Mots de passe difficiles à deviner pour un attaquant.
- Authentification forte: Utilisation de plusieurs facteurs d'authentification pour se connecter à un système.
- OTP: One-Time Password, mot de passe à usage unique.
- LDAP: Lightweight Directory Access Protocol, protocole d'accès à un annuaire.
- Active Directory: Service d'annuaire de Microsoft.
- SSO: Single Sign-On, authentification unique.
- SAML: Security Assertion Markup Language, langage de balisage d'assertion de sécurité.
- OIDC: OpenID Connect, protocole d'authentification.
- Protocoles Informatiques: Ensemble de règles qui permettent à des appareils de communiquer entre eux.
- IPv4: Protocole de communication utilisé sur Internet.
- IPv6: Protocole de communication utilisé sur Internet.
- FTP: File Transfer Protocol, protocole de transfert de fichiers.
- SFTP: Secure File Transfer Protocol, protocole de transfert de fichiers sécurisé.
- SSH: Secure Shell, protocole de communication sécurisé pour accéder à un ordinateur à distance.
- SSL: Secure Sockets Layer, protocole de sécurisation des échanges sur Internet.
- TLS: Transport Layer Security, protocole de sécurisation des échanges sur Internet.
- Zero Trust: Modèle de sécurité informatique qui ne fait confiance à aucun utilisateur ou appareil à l'intérieur ou à l'extérieur du réseau.
- Moindre privilège: Principe de sécurité informatique qui consiste à accorder à chaque utilisateur les privilèges les plus bas nécessaires pour effectuer son travail.
- ACL: Access Control List, liste de contrôle d'accès qui définit les permissions d'accès aux fichiers et répertoires.
- Principes de sécurité
- Secure Coding: Pratique de développement logiciel qui vise à produire du code sûr et fiable.
- Logging & Monitoring: Pratique de sécurité informatique qui consiste à surveiller et enregistrer les événements d'un système.
- Mises à jour: Processus de maintenance informatique qui consiste à appliquer les correctifs de sécurité.
- Gestion des secrets: Pratique de sécurité informatique qui consiste à protéger les informations sensibles.
- Chiffrement: Procédé de cryptographie qui consiste à transformer un message clair en un message chiffré.
- SandBox: Environnement isolé qui permet d'exécuter des applications de manière sécurisée.
- PKI: Public Key Infrastructure, infrastructure de gestion des clés et des certificats numériques.
- Certificat numérique: Document électronique qui atteste de l'identité d'une personne ou d'une entité.
- Autorité de certification: Entité qui délivre les certificats numériques.
- Supply Chain: Chaîne d'approvisionnement, ensemble des acteurs qui interviennent dans la production et la distribution d'un produit.
- Réseau: Ensemble d'appareils interconnectés qui permettent de communiquer entre eux.
- DMZ: Demilitarized Zone, zone du réseau isolée du reste du réseau de l'entreprise.
- Proxy: Serveur intermédiaire qui sert d'intermédiaire filtrant entre les utilisateurs et les serveurs.
- Firewall: Dispositif de sécurité informatique qui contrôle le trafic réseau, permettant de filtrer les communications.