Points Clés
- Zero trust résout le problème de l'accès au réseau ouvert en autorisant sélectivement l'accès uniquement aux ressources spécifiques auxquelles un utilisateur devrait être autorisé à accéder
- Une stratégie clé pour parvenir à une vérification continue est Zero Trust Network Access (ZTNA)
- La mise en œuvre de Zero trust peut aider à combler les pénuries de compétences organisationnelles dans les rôles de SOC (Security Operations Center) ou d'analyste de sécurité
- Dans un environnement Zero trust, les développeurs doivent avoir une compréhension globale de la manière de sécuriser chaque étape de l'interaction d'un demandeur avec l'application, en tenant compte du contexte de sécurité actuel.
- Le framework Zero trust n'élimine pas la nécessité d'analyser en permanence les vulnérabilités après chaque déploiement, pour s'assurer que les systèmes d'application et de backend restent protégés et fonctionnent
Qu'est-ce que le modèle Zero Trust ?
Le modèle de sécurité zero trust est une approche de conception et de mise en œuvre de systèmes informatiques sécurisés. Le concept de base derrière Zero trust est "ne jamais faire confiance, toujours vérifier". Cela signifie que les utilisateurs, les appareils et les connexions ne sont jamais approuvés par défaut, même s'ils sont connectés à un réseau d'entreprise ou ont déjà été authentifiés.
Les environnements informatiques modernes se composent de nombreux composants interconnectés, notamment des serveurs sur site, des services basés dans le cloud, des appareils mobiles, des emplacements périphériques et des appareils Internet des objets (IoT). Un modèle de sécurité traditionnel qui repose sur la protection du « périmètre du réseau » est inefficace dans cet environnement complexe.
Les attaquants peuvent compromettre les informations d'identification des utilisateurs et accéder aux systèmes sur site derrière le pare-feu.
Ils peuvent également accéder à des ressources basées sur le cloud ou IoT qui sont déployées en dehors du contrôle de l'organisation. Une approche zero trust établit des micro-périmètres autour des actifs protégés et utilise des mécanismes de sécurité tels que l'authentification mutuelle, la vérification de l'identité et de l'intégrité des appareils et l'accès aux applications et aux services sur la base d'une autorisation utilisateur stricte.
Pourquoi le Zero Trust est-il important ?
Avant l'avènement de zero trust, les organisations utilisaient des technologies telles que les pare-feu et les réseaux privés virtuels (VPN) pour contrôler l'accès aux réseaux et aux applications. Le problème avec ces solutions est qu'une fois qu'une connexion a passé les contrôles de sécurité, elle est implicitement approuvée et a un accès ouvert au réseau. Cela permet aux utilisateurs légitimes et aux attaquants d'accéder aux données sensibles et aux ressources critiques.
Pour atténuer cette menace, les organisations mettent en œuvre plusieurs couches de sécurité complexes pour détecter et bloquer les attaques, mais les attaquants peuvent toujours contourner ces défenses. Zero trust résout le problème de l'accès au réseau ouvert en n'autorisant de manière sélective l'accès qu'aux ressources spécifiques auxquelles un utilisateur devrait être autorisé à accéder, selon des politiques d'accès granulaires et le contexte de sécurité actuel.
Quels sont les principes fondamentaux du modèle Zero Trust ?
La mise en œuvre d'un modèle de sécurité zero trust nécessite d'intégrer les principes suivants dans la stratégie de sécurité d'une organisation.
Vérification continue
La vérification continue est un aspect clé de zero trust - cela signifie qu'il n'y a pas d'appareils, d'informations d'identification ou de zones implicitement fiables. Plusieurs éléments sont essentiels pour permettre la vérification continue de divers actifs, y compris l'accès conditionnel basé sur les risques pour maintenir l'expérience utilisateur et des politiques de sécurité dynamiques faciles à appliquer qui tiennent compte des exigences de conformité.
Une stratégie clé pour parvenir à une vérification continue est Zero Trust Network Access (ZTNA) - une solution qui applique zéro politiques de confiance. ZTNA permet d'appliquer le principe du moindre privilège (least privilege principle - PLP), afin que les utilisateurs ou les comptes de service ne puissent accéder à une ressource que si cela est nécessaire pour leur rôle. Cette stratégie de réseau minimise les risques de cybersécurité et protège les organisations contre les menaces internes et externes.
Microsegmentation
Un réseau zero trust doit implémenter la microsegmentation pour créer plusieurs zones protégées plutôt qu'un seul périmètre de sécurité. Cette approche permet de protéger les différentes parties du réseau séparément, de sorte qu'une zone compromise ne menace pas le reste du réseau.
Accès à moindre privilège
Le principe du moindre privilège est la clé de zero trust. Cela implique d'accorder à chaque utilisateur ou entité les autorisations d'accès minimales nécessaires, en évitant l'exposition aux zones sensibles du réseau. L'approche du moindre privilège nécessite une gestion prudente des privilèges des utilisateurs.
Contrôles d'accès aux appareils
Des contrôles d'accès aux appareils robustes complètent les contrôles d'accès des utilisateurs pour garantir que les appareils ne peuvent pas accéder aux réseaux avec l'autorisation appropriée. Un système zero trust doit surveiller les appareils qui tentent d'accéder au réseau afin de minimiser sa surface d'attaque.
Prévention des mouvements latéraux
Le mouvement latéral est la capacité d'un attaquant à se déplacer entre différentes parties du réseau. La détection des attaquants au sein d'un réseau est difficile même si le point d'entrée initial est connu, car ils auraient pu se déplacer vers n'importe quelle partie du réseau.
Les solutions zero trust segmentent le réseau pour restreindre les mouvements latéraux et contenir les infiltrés. Cette approche garantit que la mise en quarantaine du compte ou de l'appareil compromis éliminera la menace.
Les composants réels qui effectuent la segmentation pourraient être ZTNA, des pare-feu de nouvelle génération (next-generation firewalls - NGFW) intégrés à des politiques zero trust, ou un broker d'accès de sécurité cloud (cloud security access broker - CASB), un type de mini-pare-feu attaché aux ressources cloud. Ces outils peuvent segmenter le réseau sur plusieurs dimensions - quelques exemples sont la segmentation des applications, la segmentation environnementale, la segmentation des processus et la segmentation basée sur l'utilisateur.
Cas d'utilisation et avantages du Zero Trust
Zero trust est une norme établie depuis des années, mais elle continue de faire l'objet d'un processus de formalisation pour aider les organisations à répondre à l'évolution du paysage des menaces. La popularité de la transformation numérique et la croissance des menaces réseau sophistiquées ont poussé de nombreuses organisations à adopter ou à affiner leurs stratégies zero trust.
La sécurité zero trust profite à toutes les organisations, mais elle est particulièrement importante pour les organisations utilisant des modèles de déploiement hybrides ou multi-cloud, des appareils non gérés, des systèmes hérités ou des applications logicielles en tant que service (Software as a Service - SaaS). Dans tous ces cas, l'organisation dispose de ressources qui échappent à son contrôle direct ou qui peuvent ne pas être compatibles avec les politiques et pratiques de sécurité de l'organisation - zero trust peut aider à établir un périmètre sécurisé autour de ces systèmes.
Zero trust est également essentiel pour une détection et une réponse rapides aux cas d'utilisation de menaces courantes, tels que :
- Attaques par ransomware : une menace à double tranchant qui exécute un code malveillant et compromet l'identité.
- Menaces internes : un risque qui augmente avec l'accès à distance et les utilisateurs externes.
- Attaques de la chaîne d'approvisionnement : un risque posé par les utilisateurs privilégiés distants et les terminaux non gérés.
La mise en œuvre de zero trust aide les organisations à compenser les défis tels que le SOC (Security Operations Center) ou les pénuries de compétences des analystes de sécurité. Zero trust permet de définir des politiques de sécurité à grande échelle dans des environnements hybrides et utilise l'automatisation pour détecter et répondre aux menaces. Cela élimine le travail manuel et réduit la charge de travail des équipes de sécurité surchargées.
Il aide à minimiser l'impact des mécanismes de sécurité sur l'expérience utilisateur tout en assurant la conformité aux réglementations et aux normes de l'industrie. Un autre avantage de zero trust est de renforcer la stratégie d'assurance d'une organisation face à l'évolution rapide des menaces et des polices d'assurance.
Chaque organisation a des défis uniques compte tenu des conditions métier, de sécurité et de numérisation très variables. Zero trust est une stratégie ajustable qui peut répondre aux exigences de sécurité spécifiques de diverses organisations.
Architectures de référence Zero Trust
Faire la transition vers zero trust peut être complexe. Google et Microsoft sont deux organisations qui ont mis en place zero trust à grande échelle et créé des architectures de référence pour aider les autres acteurs du secteur à suivre cet exemple.
Google BeyondCorp
BeyondCorp est la mise en œuvre Google de zero trust. Il s'appuie sur la longue expérience de Google, combinant les idées de la communauté et les meilleures pratiques. BeyondCorp déplace la couche de sécurité du contrôle d'accès d'un périmètre monolithique vers des utilisateurs individuels du réseau, permettant aux travailleurs distants d'accéder au réseau en toute sécurité depuis n'importe où sans VPN conventionnel.
BeyondCorp fournit une série de meilleures pratiques et de concepts qui peuvent aider toute organisation à mettre en œuvre zero trust. C'est également une solution commerciale que vous pouvez utiliser pour mettre en œuvre zero trust dans une organisation. La solution commerciale est connue sous le nom de BeyondCorp Enterprise (remplaçant la version précédente, BeyondCorp Remote Access).
Une caractéristique clé de la nouvelle version de BeyondCorp est qu'elle ajoute des fonctionnalités zero trust à Google Chrome. Outre le déploiement d'agents sur des terminaux gérés, les entreprises peuvent étendre l'architecture BeyondCorp via le navigateur. Les mises à jour de Chrome incluent une protection contre les menaces et des fonctionnalités de données intégrées pour aider à prévenir les fuites de données accidentelles ou malveillantes, les infections par des logiciels malveillants et d'autres formes de compromission du réseau et des appareils.
BeyondCorp Enterprise offre également une fonction d'authentification continue qui authentifie régulièrement toutes les interactions entre les appareils, les utilisateurs et les applications. Les organisations peuvent créer et appliquer des politiques de contrôle d'accès pour vérifier en permanence les données d'authentification, y compris l'identité de l'utilisateur, les données de l'appareil et les adresses IP, en révoquant l'accès immédiatement en cas de violation de la politique.
Les fournisseurs de sécurité tiers peuvent tirer parti du programme BeyondCorp Alliance pour développer des produits zero trust pour cette nouvelle plate-forme. Par exemple, Tanium (un fournisseur de sécurité aux endpoints) propose une plate-forme intégrée avec BeyondCorp Enterprise, permettant aux deux produits d'échanger des informations de sécurité et d'augmenter un visibilité de l'organisation sur son environnement.
Modèle zero trust de Microsoft
Microsoft a publié les détails de sa mise en œuvre interne de zero Trust. Cette solution de mise en œuvre de zero trust se concentre sur les services d'entreprise à l'échelle de l'entreprise, tels que Microsoft Office et les applications métier (line of business - LOB).
Cela fonctionne pour les appareils fonctionnant sous Windows, Android, Mac ou iPhone. Le service cloud de gestion des appareils mobiles Microsoft Intune gère les appareils.
Le modèle zero trust de Microsoft comprend quatre étapes :
- Vérification d'identité : Microsoft protège les réseaux en exigeant une authentification à deux facteurs pour les demandes d'accès à distance. Historiquement, la méthode d'authentification était une carte à puce, mais aujourd'hui, elle utilise Azure Authenticator pour activer les épreuves sur les appareils mobiles. Les objectifs futurs de Microsoft incluent l'élimination des mots de passe en faveur d'une authentification entièrement biométrique.
- Vérification de l'intégrité des appareils : Microsoft utilise Intune pour inscrire de nouveaux appareils utilisateur. Une politique de santé des appareils spécifie quels appareils sont sains ou nécessitent une gestion (test et correction des vulnérabilités) avant d'accéder aux principales applications de productivité telles que SharePoint, Exchange et Teams. Microsoft prend en charge les appareils non gérés via des applications et des postes de travail Windows virtualisés pour certains cas d'utilisation.
- Vérification de l'accès : toute tentative d'accès aux services Microsoft doit être vérifiée en fonction de l'identité, de l'état de l'appareil, du contexte de sécurité global (par exemple, l'heure de la journée et l'emplacement de l'utilisateur) et d'autres données du graphe de sécurité intelligent de Microsoft. L'élément innovant ici est que Microsoft peut appliquer la vérification d'accès quelle que soit la manière dont l'utilisateur s'est connecté - qu'il accède directement au réseau de l'entreprise, qu'il accède via VPN ou qu'il se connecte à des ressources via Internet.
- Vérification des services : Microsoft propose un futur mécanisme pour vérifier les services afin de s'assurer qu'ils sont sains avant de permettre aux utilisateurs d'interagir avec eux. Cette fonction est actuellement en phase de planification.
Considérations de zero trust pour les développeurs
Zero trust transfère les responsabilités de sécurité du périmètre du réseau vers l'application. L'application elle-même a la capacité de valider des politiques granulaires et de garantir que chaque utilisateur accède exactement aux fonctionnalités et aux données auxquelles il est autorisé, et rien de plus.
Dans un environnement zero trust, les développeurs ne peuvent pas compter uniquement sur de simples jetons d'API pour l'authentification et l'autorisation. Ils doivent avoir une compréhension globale de la manière de sécuriser chaque étape de l'interaction d'un demandeur avec l'application, en tenant compte du contexte de sécurité actuel.
Exigences pour les application dans un environnement zero trust
Lors du développement d'applications dans un modèle de sécurité zero trust, les développeurs doivent :
- Évaluez le contexte complet d'une session pour déterminer le risque global.
- Déterminez les facteurs critiques pour la vérification zero trust : l'identité de l'utilisateur, l'état de l'appareil effectuant la demande, la fonction d'application utilisée et les données auxquelles la demande tente d'accéder.
- Assurez-vous que chaque demande, même si elle provient de l'intérieur du périmètre du réseau, est soumise à des politiques de sécurité approuvées pour l'autoriser, la bloquer ou la restreindre.
- Appliquez des mesures de sécurité supplémentaires telles que l'authentification multifacteur, les restrictions fonctionnelles et l'application de contrôles de conformité.
- Assurez-vous qu'à toutes les étapes du cycle de vie de l'application, l'accès est accordé uniquement sur la base d'une liste d'autorisation. En d'autres termes, l'accès n'est accordé que s'il est explicitement autorisé.
Les étapes un à trois sont généralement gérées via des API vers des outils ZTNA dédiés, tels que Perimeter81 ou CrowdStrike Zero Trust.
La quatrième étape est généralement gérée par des solutions d'authentification comme Auth0 ou Okta. Dans une grande organisation, ceux-ci sont complétés ou remplacés par des services d'identité d'entreprise comme Azure Active Directory.
La cinquième étape est mise en œuvre au niveau de la couche application - c'est la principale contribution des développeurs d'applications à zero trust.
Tester en permanence les exigences zero trust
La mise en œuvre de ce qui précède ne suffit pas. Il est également nécessaire de tester et de vérifier que l'application implémente correctement l'authentification, l'autorisation et le chiffrement fort des données. Cela nécessite :
- Exécuter une analyse statique sur le code aux premiers stades du développement pour s'assurer que chaque interaction utilisateur a les appels appropriés aux composants zero trust et d'authentification/autorisation.
- Exécuter une analyse dynamique sur les applications dans des environnements de test, UAT et de production et tester que les demandes des utilisateurs reçoivent les mesures de sécurité appropriées.
- Effectuer des tests fuzz et des tests de pénétration pour trouver et éliminer les vulnérabilités introduites au cours du cycle de vie du développement, telles que l'authentification manquante ou l'application incorrecte des politiques de sécurité.
Gestion du risque tiers
Le framework zero trust nécessite également de vérifier la sécurité des composants open source et propriétaires créés par des tiers. Il est important que les développeurs comprennent quels composants sont utilisés dans leur projet, quels risques et vulnérabilités ils présentent, et comment appliquer les mises à jour et les correctifs.
Les solutions d'analyse de la composition logicielle (Software composition analysis - SCA) peuvent aider à fournir une visibilité sur les composants open source utilisés dans un projet logiciel, y compris les dépendances transitives qui peuvent se compter par milliers. Pour chaque bibliothèque open source, ces outils peuvent identifier les faiblesses de sécurité, signaler les problèmes de qualité du code et également alerter les organisations sur les licences open source restrictives qui peuvent créer une exposition légale. Apprenez-en plus dans ce guide détaillé sur l'analyse de la composition des logiciels.
Les composants tiers ne sont pas la seule source de risque. Les équipes de développement doivent surveiller l'ensemble de la chaîne d'approvisionnement logicielle, y compris l'environnement de développement, les systèmes d'intégration continue (CI), les systèmes de déploiement et les environnements intermédiaires, les référentiels de conteneurs et tout autre élément impliqué dans le passage du code des étapes de développement à l'environnement de production.
Déplacer la sécurité vers la gauche
Les développeurs doivent intégrer la sécurité dans leurs conceptions et bases de code dès le départ. C'est le meilleur moyen de passer de la confiance implicite à l'authentification explicite, à l'identité forte et au contrôle d'accès. C'est pourquoi le passage à DevSecOps, une collaboration étroite entre les développeurs, les équipes de sécurité et les opérations, est fortement favorable à l'adoption du zero trust.
Les équipes DevSecOps peuvent jouer un rôle déterminant dans la mise en œuvre des exigences de zero trust à toutes les étapes du cycle de vie de la livraison des logiciels. Les applications construites dans un framework zero trust peuvent protéger les données et les fonctionnalités sensibles même lorsque les contrôles de périmètre échouent. Par exemple, même si le pare-feu, le système de prévention des intrusions (intrusion prevention system - IPS) et les outils de prévention des pertes de données (data loss prevention - DLP) sont mal configurés, fonctionnent mal ou ont été compromis par des attaquants, l'application fera de son mieux pour protéger ses actifs.
N'oubliez pas que le framework zero trust n'élimine pas la nécessité d'analyser en permanence les vulnérabilités après chaque déploiement, pour s'assurer que l'application et les systèmes principaux sont correctement protégés et fonctionnent.
Conclusion
Les développeurs d'aujourd'hui sont bien plus que des développeurs : on attend d'eux qu'ils soient également des experts en sécurité. Les organisations se rendent compte que la personne la mieux à même d'empêcher la prochaine faille de sécurité est un développeur doté de connaissances en matière de sécurité, mettant en œuvre des pratiques de codage sécurisées dès le premier jour d'un projet logiciel. C'est une grande responsabilité, mais aussi une grande opportunité pour les développeurs, qui peuvent jouer un rôle plus central dans la création de valeur pour les clients.
J'espère que cet article aidera les développeurs à développer leurs connaissances en matière de sécurité et à mettre leurs "lunettes zero trust" - en voyant le code et l'architecture logicielle à travers l'objectif du modèle zero trust. Cela les aidera non seulement à développer des applications plus sécurisées, mais aussi à améliorer leur capacité à « talk the talk », c'est-à-dire à communiquer efficacement et à comprendre les objectifs et la stratégie dans un environnement de sécurité moderne.