Aller au contenu

Architecture cyber

Rubrique 02 sur 13

Dossier éditorial prioritaire pour concevoir des architectures sécurisées, explicables et maintenables.

Rubrique · 20 pages · 7 sous-sections

Architecture, conception & résilience

Par où commencer

  1. Modèles d’architecture

    Choisir une architecture en connaissance de cause

  2. Modélisation de menace

    Penser comme l’attaquant dès la conception

  3. API & intégrations

    Contrôler les portes d’entrée

  4. Résilience

    Prévoir la panne et la reprise

  5. Observabilité

    Voir ce qui se passe vraiment

Parcours qui passent par ici

Voir l’affiche seule · Toutes les affiches

Une architecture ne s’effondre presque jamais d’un coup. Elle se dégrade décision après décision, et chacune, prise isolément, semble raisonnable : un raccourci pour tenir le sprint, une dépendance ajoutée parce que personne n’a le temps de la challenger, une bascule planifiée un vendredi parce que ça libère le lundi. Rien de tout ça ne déclenche d’alerte. C’est justement le problème. Le jour où ça casse, personne ne pointe la vraie décision fautive : elle date de huit mois, et depuis, tout le monde a oublié qu’elle existait. D’où l’intérêt d’écrire chaque désaccord technique et la décision qui l’a tranché : la mémoire collective a la fiabilité d’un procès-verbal rédigé par le suspect.

→ Lire l’explication complète de la marmotte

Le sujet, ici, ce n’est pas la liste des bonnes pratiques qu’on connaît déjà et qu’on n’applique jamais faute de temps. C’est la mécanique : pourquoi la segmentation dessinée sur un schéma ne survit jamais à la première demande d’exception, pourquoi la confiance accordée entre deux composants finit toujours plus large que prévu, et pourquoi un système qu’on n’observe pas se défend en réalité à l’aveugle : on croit juste le contraire, parce que rien ne clignote.

La résilience suit la même logique : un système qui ne sait pas dégrader proprement ne « tient » pas plus longtemps, il casse juste d’un coup plutôt qu’en plusieurs fois, et personne n’a le temps de réagir entre les deux. Défendre un système par sa surface d’attaque, l’observer avant l’incident plutôt qu’en découvrir les traces après, construire quelque chose qui tient, dégrade puis redémarre : c’est le même réflexe appliqué trois fois, pas trois compétences séparées.

Le reste (événementiel, monolithe contre microservices, la manière dont le code est organisé) n’est pas hors sujet : c’est la même question posée plus tôt dans le cycle, avant que l’architecture ne devienne l’excuse qu’on invoque pour ne plus la remettre en cause.

Une organisation qui néglige l’architecture ne s’en aperçoit pas : chaque exception accordée reste ouverte, chaque confiance entre composants s’élargit sans que personne ne la réévalue, et l’ensemble finit par autoriser des chemins que personne n’a jamais décidés. Un attaquant qui compromet un seul composant hérite alors de tous ces droits accumulés et circule d’une zone à l’autre sans rencontrer de cloison. Faute d’observation, l’intrusion ne produit aucun signal, et l’enquête qui suit ne retrouve ni le chemin emprunté ni la décision d’origine, vieille de plusieurs mois. Quand une panne survient, l’absence de mode dégradé transforme l’incident local en arrêt complet ; la reprise, jamais conçue, s’improvise alors en pleine crise, ce qui reste la méthode la plus coûteuse connue à ce jour.

Un système informatique est fait de nombreux morceaux qui communiquent entre eux : des serveurs, des programmes, des bases de données. Son architecture, c’est la façon dont ces morceaux sont découpés, reliés et autorisés à se parler. Cette rubrique explique pourquoi cette organisation s’abîme avec le temps. Chaque décision rapide (ajouter une dépendance sans l’examiner, accorder une exception pour qu’un service en joigne un autre, programmer une bascule au mauvais moment) semble sans danger prise seule. Ces décisions s’additionnent pourtant, et personne ne garde la trace de celle qui a créé la faiblesse. La rubrique suit trois réflexes liés. D’abord, réduire la surface d’attaque, c’est-à-dire le nombre de points d’entrée qu’un attaquant peut utiliser, et garder des zones séparées malgré les demandes d’exception. Ensuite, observer le système en continu, pour voir un problème pendant qu’il se produit et pas seulement ses traces après coup. Enfin, prévoir comment le système continue de fonctionner en mode réduit quand une partie tombe, puis comment il redémarre. Un système qui ne sait pas perdre une fonction à la fois s’arrête d’un bloc, sans laisser le temps de réagir. Les choix d’organisation du code, par exemple construire une application d’un seul tenant ou en petits services séparés, relèvent de la même question, posée plus tôt.

Création : Mise à jour :