Guide de sécurité
Zero Trust pour les applications web : par où commencer
Passez d'un accès réseau étendu à des décisions explicites et observables pour chaque utilisateur, appareil, charge de travail, API et ressource sensible.
Le zero trust n'est ni un produit, ni un remplacement de VPN, ni une règle qui bloque tout ce qui se trouve hors du bureau. C'est un modèle opérationnel : n'accordez pas une confiance implicite sur la base de l'emplacement réseau ou de la propriété d'un actif, et prenez les décisions d'accès en fonction de l'identité, du contexte et de la ressource concernés.
Pour une application web, cela signifie qu'une requête depuis un réseau interne n'est pas automatiquement sûre, qu'un utilisateur authentifié n'a pas automatiquement droit à chaque objet et qu'un compte de service n'est pas une identité humaine. Le NIST SP 800-207 décrit clairement ce changement : protégez les ressources plutôt que les segments réseau, et authentifiez et autorisez avant d'établir une session avec une ressource. Le modèle de maturité de la CISA apporte une perspective utile de mise en oeuvre sur l'identité, les appareils, les réseaux, les applications, les données, la visibilité, l'automatisation et la gouvernance. La page de service zero trust d'Optimi fournit le contexte de la plateforme.
Définir la frontière avant de choisir les outils
La première étape consiste à choisir une application et à consigner ce qui doit être protégé. Incluez le site public, la connexion et l'espace compte, la console d'administration, les API, les jobs en arrière-plan, le stockage, les bases de données, les intégrations tierces et les systèmes de déploiement. Identifiez les ressources publiques, celles qui exigent un utilisateur, celles qui exigent un opérateur privilégié et celles qui sont de machine à machine.
Listez ensuite les acteurs :
- Les visiteurs non authentifiés et les robots d'exploration des moteurs de recherche.
- Les clients, employés, prestataires et équipes de support.
- Les administrateurs et opérateurs d'accès d'urgence.
- Les clients mobiles, intégrations partenaires, webhooks et jobs planifiés.
- Les services internes, files d'attente, bases de données et pipelines de déploiement.
Cet inventaire révèle un échec courant : une même politique grossière est utilisée pour plusieurs décisions de confiance très différentes. Le zero trust commence par les séparer.
Une séquence pratique de mise en oeuvre
1. Établir une identité forte
Utilisez un fournisseur d'identité central lorsque c'est possible, avec une authentification multifacteur résistante au phishing pour les administrateurs et les opérations à haut risque. Définissez une identité stable pour les personnes, les charges de travail et les partenaires externes. Évitez les comptes partagés, les identifiants statiques de longue durée et l'autorisation fondée uniquement sur une adresse e-mail ou une plage IP modifiable.
L'authentification répond à la question « qui ou quoi est-ce ? ». Elle ne répond pas à « que peut-il faire ? ». Gardez l'autorisation distincte et rendez la portée requise explicite dans la couche applicative ou de politique.
Pour les sessions, définissez des comportements appropriés d'expiration et de révocation, protégez les cookies, faites tourner les jetons de rafraîchissement lorsque c'est pertinent et exigez une réauthentification pour les modifications sensibles. Pour les API, préférez des identifiants de courte durée, des jetons limités en portée, des requêtes signées ou le TLS mutuel lorsque l'intégration exige une authentification client forte. Documentez la façon dont un identifiant est émis, stocké, renouvelé et révoqué avant d'intégrer le client.
2. Modéliser les ressources et les actions
Écrivez les politiques en termes de ressources et d'actions : un client peut consulter ses propres factures, un agent de support peut consulter les comptes qui lui sont attribués et un service de déploiement peut publier un artefact approuvé mais pas lire les données client. Incluez l'autorisation au niveau des objets. Un jeton valide pour /orders/123 ne doit pas impliquer l'accès à /orders/124.
Traitez les actions administratives séparément des lectures ordinaires. Exigez un contexte plus fort, une approbation ou une authentification renforcée pour exporter des données, modifier des informations de paiement, changer une politique d'accès ou déployer du code. Le refus par défaut est utile lorsque le modèle de ressources est complet ; il est dangereux lorsque les équipes l'utilisent pour éviter de comprendre ce que fait réellement l'application.
3. Placer l'application des contrôles au plus près de la ressource
Une passerelle en périphérie peut aider avec TLS, l'intégration d'identité, une politique de route grossière, les limites de débit et les abus évidents avant que le trafic n'atteigne l'origine. L'application a toujours besoin d'une autorisation fine, car la périphérie ne peut souvent pas comprendre la propriété, l'état du workflow ou les règles métier.
Pour les API, combinez l'authentification avec la validation de schéma, l'autorisation de ressources, les quotas et la détection des abus. La page de protection des API d'Optimi décrit la partie périphérique de cet ensemble de contrôles. Un WAF est utile contre les schémas d'attaque connus et pour le correctif virtuel, mais ce n'est pas un système d'identité et il ne peut pas décider si un utilisateur est autorisé à modifier un objet particulier.
Le zero trust s'applique à chaque requête, pas à chaque connexion
Une connexion réussie crée du contexte, pas un laissez-passer permanent. Réévaluez l'autorisation des actions sensibles à l'aide de l'identité de l'utilisateur, de l'appareil ou de la charge de travail, de la ressource, de l'action et des signaux de risque pertinents. Gardez la décision observable pour qu'un opérateur puisse expliquer pourquoi l'accès a été autorisé ou refusé.
4. Sécuriser les chemins de service à service
Cartographiez les appels entre frontend, API, worker, file d'attente, stockage et services tiers. Donnez à chaque charge de travail sa propre identité et le minimum de permissions. Chiffrez les connexions en transit, validez le pair lorsque c'est possible et empêchez qu'un service compromis atteigne des ressources sans rapport simplement parce qu'il se trouve sur le même réseau privé.
Ne confondez pas adressage privé et autorisation. La segmentation réseau et les groupes de sécurité sont des couches de confinement utiles, mais ils doivent réduire le rayon d'impact plutôt que constituer la seule décision d'accès. Le guide TLS et HTTPS explique pourquoi le chiffrement doit aussi couvrir l'origine et les liaisons de service à service.
5. Rendre la politique et la télémétrie opérationnelles
Centralisez la responsabilité des politiques, mais laissez les équipes applicatives responsables des définitions de ressources. Journalisez les événements d'authentification, les décisions d'autorisation, les changements de politique, l'émission et la révocation des jetons, les actions administratives et les schémas d'accès inhabituels. Incluez un identifiant de requête ou de trace, le sujet, la ressource, la décision, la raison et la version de la politique, sans journaliser de secrets ni de données personnelles inutiles.
Alertez sur les événements à forte valeur : refus répétés suivis d'un succès, changements impossibles du contexte d'accès, lectures massives d'objets, changements de privilèges, MFA désactivée et appels provenant d'une charge de travail inattendue. Conservez suffisamment d'éléments pour enquêter et définissez qui peut modifier la politique pendant un incident.
6. Déployer selon le risque et observer d'abord
Choisissez un pilote restreint, tel qu'une route d'administration, une API partenaire ou un export sensible. Documentez les appelants et actions attendus. Exécutez les nouvelles règles en mode audit ou rapport uniquement lorsque le contrôle le permet, comparez les décisions au comportement de l'application et corrigez les lacunes d'identité et de ressources avant l'application.
Déployez par étapes avec un chemin d'accès d'urgence testé. Mesurez les échecs d'autorisation, les tickets de support, la latence, les erreurs de jeton et la réussite des parcours utilisateurs importants. Une politique théoriquement stricte qui pousse les équipes à créer des comptes partagés de contournement n'est pas un contrôle mature.
Notes sur la périphérie indépendantes du fournisseur
Cloudflare, Fastly et d'autres plateformes de périphérie peuvent fournir des points d'application utiles pour TLS, l'authentification de passerelle, les règles WAF, la limitation de débit et la visibilité du trafic. Les noms de fonctionnalités et frontières de confiance diffèrent selon les fournisseurs. Traitez la périphérie comme un point d'application de politique parmi d'autres, et non comme l'architecture entière. Confirmez ce que le fournisseur voit, ce qu'il peut vérifier, comment les clés sont gérées et si l'origine authentifie indépendamment la requête.
Checklist de validation
Testez les comportements attendus comme interdits :
- Un utilisateur peut accéder à ses propres objets mais reçoit un refus cohérent pour l'objet d'un autre utilisateur.
- Un identifiant révoqué échoue rapidement à chaque point d'application pertinent.
- Un compte de service peut réaliser le travail documenté et ne peut pas parcourir des données sans rapport.
- Un administrateur doit utiliser une authentification plus forte pour les actions à fort impact.
- L'accès direct à l'origine est bloqué ou exige une identité vérifiable indépendamment.
- Les changements de politique sont examinés, versionnés, journalisés et réversibles.
- Les refus contiennent suffisamment de contexte pour le diagnostic sans exposer de secrets.
- Les intervenants en cas d'incident peuvent utiliser le chemin d'accès d'urgence et en voir immédiatement l'utilisation.
Utilisez des tests d'autorisation automatisés dans l'intégration continue, des tests d'intégration pour chaque rôle et ressource, et des revues d'accès périodiques fondées sur l'utilisation réelle.
Erreurs à éviter
- Appeler une liste d'autorisation réseau du zero trust.
- Considérer la MFA comme un remplacement de l'autorisation au niveau des objets.
- Donner par commodité à chaque microservice un compte de service aux droits étendus.
- Appliquer une nouvelle politique sans avoir d'abord observé les clients machine légitimes.
- Créer des contournements permanents après un faux positif.
- Journaliser des jetons, mots de passe, données de paiement complètes ou davantage de données personnelles que nécessaire.
- Oublier les opérateurs, systèmes CI/CD, webhooks et outils de support dans l'inventaire des identités.
- Supposer qu'un WAF en périphérie peut comprendre la logique métier de l'application.
Commencez par une ressource importante, rendez la décision explicite et ses preuves inspectables. N'étendez le périmètre que lorsque le modèle d'identité et de ressources est compris. Pour un examen de la frontière de sécurité autour de votre parc web, contactez Optimi.
Il n'existe que deux problèmes difficiles en informatique : l'invalidation du cache et le nommage des choses.
Identifiez votre première frontière zero trust
Échangez avec notre équipe sur l'identité, l'application en périphérie, la protection des API et un plan progressif de sécurité applicative.
Démarrer une conversation