La couche au-dessus de laquelle la plupart des équipes s'arrêtent.
Frontières d'accès et moindre privilège, identifiants qui restent dans votre coffre, durcissement décidé dès la conception, et débogage qui se poursuit sous l'application quand les journaux n'expliquent plus le comportement. C'est la profondeur sur laquelle s'appuient les trois autres catégories.
Les problèmes qui conviennent.
Deux demandes différentes arrivent ici : tracer correctement les frontières, et comprendre pourquoi le système fait quelque chose que personne ne sait expliquer.
- Des accès qui se sont accumulés : des identifiants permanents et étendus accordés au lancement parce que les délimiter était plus difficile.
- Un produit sur le point de se voir poser des questions de sécurité, pour la première fois, par le processus d'achat d'un client.
- Un agent, une tâche ou une intégration dont les permissions ont été héritées plutôt que décidées.
- Un comportement que les journaux applicatifs ne peuvent pas expliquer, où la réponse se trouve dans l'environnement d'exécution, le noyau, le système de fichiers ou le réseau.
- Un système qui a besoin d'être durci comme une décision de conception plutôt que comme une étape ajoutée avant le lancement.
Là où la profondeur compte vraiment.
La plupart des incidents de sécurité n'ont rien de sophistiqué. C'est un identifiant avec plus de portée que la tâche n'en demandait, une frontière jamais tracée parce que rien n'a forcé la question, ou un contrôle qui échoue en mode ouvert parce que l'échec en mode fermé aurait gêné pendant le développement et que personne n'y est revenu.
L'autre moitié de ce travail est un débogage qui n'a plus de réponses au niveau applicatif. Un processus tué par quelque chose qui n'est jamais apparu dans les journaux, une latence qui n'existe que sous une certaine concurrence, un conteneur qui se comporte autrement que la machine sur laquelle il a été construit. Au-dessus de la couche applicative, cela ressemble à des mystères ; à la couche du dessous, c'est le plus souvent ordinaire et bien compris.
Les deux cas récompensent la même chose : accepter de continuer à descendre. Le site dit que la profondeur système est ce qui nous différencie, et cette page est celle où c'est l'offre plutôt que l'arrière-plan.
La pile, et la place de cette catégorie.
La seule catégorie ici dont le palier propre est celui du bas. Tout ce qui se trouve au-dessus est marqué selon la portée du travail sur les frontières, pas selon qui construit.
Une architecture de référence, c'est-à-dire la forme sur laquelle le travail est conçu, et non un relevé de systèmes livrés. Elle nomme des couches et des responsabilités, jamais des produits : ce qui tourne à une couche donnée est une décision prise avec vous pendant le cadrage, pas ici à l'avance.
- L5
Surface produit
Couverture: PartielCe que la surface a le droit d'atteindre, et les contrôles qui doivent échouer en mode fermé plutôt qu'ouvert parce que l'échec en mode fermé gênait pendant le développement.
- L4
Services et API
Couverture: Pris en chargeUn modèle d'accès : qui et quoi peut atteindre quel système, avec quel privilège, pendant combien de temps.
- L3
Données et état
Couverture: Pris en chargeIdentifiants et secrets dans votre coffre, injectés à l'exécution plutôt que commités ou collés quelque part où ils survivent à la personne qui les y a mis.
- L2
Modèles et agents
Couverture: PartielCe qu'un agent, une tâche ou une intégration peut atteindre, décidé plutôt qu'hérité de l'identifiant qui était pratique.
- L1
Exécution et infrastructure
Couverture: PartielUn durcissement décidé pendant la conception du système, et des accès délimités par système plutôt qu'accordés largement au lancement.
- L0
La couche du dessous
Couverture: Pris en chargeUn débogage qui se poursuit sous l'application quand les journaux n'expliquent plus le comportement : l'environnement d'exécution, le noyau, le système de fichiers, le réseau. C'est la profondeur sur laquelle s'appuient les trois autres catégories.
Ce que signifient les repères
- Pris en charge
- Cette catégorie est responsable de la couche. Elle est conçue, construite et remise dans le cadre de la mission.
- Partiel
- Le travail atteint la couche autant que la réalisation l'exige, et la profondeur ici relève d'une des autres catégories.
- Hors périmètre
- Volontairement hors de cette catégorie. La note du palier indique où va le travail à la place.
Ce que la mission produit.
Des frontières qui ont été décidées, et des réponses qui ont été retracées plutôt que devinées.
- Un modèle d'accès : qui et quoi peut atteindre quel système, avec quel privilège, pendant combien de temps.
- Une gestion des identifiants et des secrets, avec des secrets dans votre coffre et injectés à l'exécution plutôt que commités ou collés.
- Une revue des menaces menée pendant la conception du système, et non appliquée après coup.
- Des décisions de durcissement consignées avec leur raisonnement, pour qu'un contrôle puisse être revu plutôt que deviné.
- Du débogage de bas niveau et système : la cause retracée, et le changement qui la corrige.
- Une liste de contrôle des accès et de la sécurité, remplie pour la mission et rendue à la fin.
Ce à quoi vous n'êtes plus exposé.
Les expositions silencieuses, qui sont celles qui durent le plus longtemps.
- Un accès permanent et étendu accordé au lancement parce que le délimiter correctement était plus difficile.
- Des identifiants dans les sources, dans un fil de discussion ou dans un ticket, où ils survivent à la personne qui les y a mis.
- Un rayon d'impact hérité d'un identifiant pratique plutôt que décidé par quelqu'un.
- Un contrôle qui échoue en mode ouvert, de sorte qu'une dépendance injoignable devient un contournement passé inaperçu.
- Une défaillance récurrente que personne ne sait expliquer, où l'enquête s'arrête à la frontière de l'application.
Le travail que nous refusons.
La sécurité reçoit plus de demandes mal orientées que toute autre catégorie ici : les refus sont donc précis.
- La certification de conformité. Aucun audit SOC 2 ou ISO 27001 n'est proposé ni détenu, et un cabinet qui vend le certificat est une autre entreprise.
- Le test d'intrusion comme livrable. Un test indépendant doit rester indépendant ; ici, on construit et on revoit le système plutôt que de l'attester.
- Une revue de sécurité sans autorité pour rien changer, où le rapport est le produit et où rien n'est corrigé.
- Les contrats de réponse aux incidents. Aucune équipe n'est d'astreinte, et promettre un délai de réponse que personne ne peut assurer serait pire que de refuser.
- Tout ce qui exige de publier une affirmation de sécurité avant qu'elle soit vraie. Ce qui est énoncé, c'est la pratique, et elle se vérifie sur /security.
Ce qui reste entre vos mains.
Un accès accordé pour une mission est un accès qui doit être rendu à la fin.
La liste des accès, et leur restitution
Ce qui a été délivré, à quoi, avec quel privilège, et quand cela a été rendu. L'accès est demandé par système plutôt qu'accordé largement au départ, ce qui fait de sa restitution une liste de contrôle et non un exercice d'archéologie.
Des secrets dans votre coffre, jamais dans le nôtre
Les identifiants vivent dans votre gestionnaire de secrets et sont injectés à l'exécution pendant toute la mission. Il n'y a pas d'étape de migration à la fin, parce qu'ils n'ont jamais été ailleurs.
Les décisions, avec leur raisonnement
Chaque contrôle relié à sa raison d'être, pour que votre équipe puisse le revoir plutôt que l'hériter. Une frontière dont la raison est perdue est une frontière que quelqu'un de serviable finira par élargir.
La cause, pas seulement la correction
Quand le travail était une enquête, ce qui se passait réellement et comment cela a été établi, pour que la prochaine occurrence soit reconnue plutôt que de faire l'objet d'une nouvelle enquête partie de zéro.
La pratique derrière cette page.
Ce que le site publie déjà sur la façon dont ce travail est fait.
- PolitiquePratiques de sécuritéLa pratique d'ingénierie déclarée : accès, identifiants, chemins de déploiement, frontières des données, permissions des agents et passation.
- RéalisationUn gestionnaire d'affichage à privilèges séparésLa réalisation de système d'exploitation, et la preuve que le travail se poursuit réellement sous la couche applicative.
- ArticleChoisir un système d'initUne décision système argumentée en détail, y compris ce qu'elle a coûté, comme exemple de la façon dont ce raisonnement se mène.
Commencez par la contrainte.
Décrivez la frontière dont vous n'êtes pas sûr, ou le comportement que personne ne sait expliquer. L'un ou l'autre fait un bon premier message.