Dépendances et normes

Presque aucun service n’est bâti à partir de rien. Il est assemblé à partir de pièces : bibliothèques à code source libre, services de tiers, produits de fournisseurs, et les formats et protocoles qui permettent à ces pièces de communiquer entre elles. Les dépendances et normes, c’est bien choisir ces pièces et en prendre soin. Cela réunit quatre habitudes : bâtir sur des normes ouvertes pour que les pièces puissent se connecter et être remplacées; connaître tout ce dont le service dépend; évaluer un composant avant de l’adopter; et garder ce dont on dépend à jour et sous surveillance.

À quoi ressemble la réussite

  • Le service est bâti sur des normes ouvertes : il peut donc se connecter à d’autres systèmes et n’est pas lié à un seul fournisseur.

  • Un composant ou un fournisseur peut être remplacé sans refaire le service, parce que les pièces sont interchangeables et qu’une stratégie de sortie est établie avant le passage à l’infonuagique.

  • L’équipe connaît tout ce dont le service dépend, tenu sous forme d’inventaire à jour, une nomenclature logicielle, c’est-à-dire la liste des ingrédients qui composent le logiciel.

  • Les nouveaux composants et fournisseurs sont évalués avant d’être adoptés : est-ce encore entretenu, est-ce sécuritaire, est-ce bien soutenu.

  • Les dépendances sont tenues à jour, et une vulnérabilité connue est corrigée sans tarder plutôt que laissée en place.

  • Les contrats fixent des exigences minimales de sécurité et obligent le fournisseur à signaler un incident de sécurité dans un délai déterminé.

  • Les options à code source libre sont envisagées en premier, conformément à la position « ouvert en premier » du gouvernement du Canada.

Ce qu’il en coûte de s’en passer

Les pièces qui composent un service sont aussi les façons dont il peut mal tourner. Il y a deux risques.

  1. Lock-in.Quand un service est lié aux formats exclusifs d’un seul fournisseur, ce fournisseur contrôle les fonctions, les correctifs et le prix, et s’en éloigner plus tard coûte très cher. Les normes ouvertes gardent les pièces interchangeables : un service peut ainsi changer une pièce sans refaire le reste.
  2. La chaîne d’approvisionnement. Une faille ou une altération dans un composant que vous n’avez pas écrit devient votre problème. Comme le dit le Centre canadien pour la cybersécurité, une organisation est légalement responsable de protéger ses renseignements, même lorsqu’elle recourt à des services de tiers.

La faille Log4j montre pourquoi cela compte. Quand elle est apparue en 2021 dans une bibliothèque de journalisation utilisée par des millions d’applications, les équipes qui s’en sont bien sorties sont celles qui savaient exactement où elles s’en servaient et qui pouvaient corriger vite. Voilà ce que vous rapporte le fait de connaître, d’évaluer et de corriger vos dépendances.

La position du gouvernement du Canada est d’utiliser le code source libre et les normes ouvertes en premier, précisément pour ces raisons.

À qui revient ce travail

Le fil Dépendances et normes est partagé au sein de l’équipe, chaque rôle en portant une partie différente :

  • Développeurs et architectes choisissent les normes ouvertes, sélectionnent et intègrent les composants, tiennent l’inventaire de ce dont le service dépend et appliquent les correctifs.
  • Spécialistes de la sécurité évaluent le risque lié à la chaîne d’approvisionnement, surveillent les nouvelles vulnérabilités et jugent si l’on peut se fier à un composant en toute sécurité.
  • Spécialistes de l’approvisionnement et des contrats inscrivent au contrat les exigences minimales de sécurité et les clauses de signalement des incidents.
  • Le responsable opérationnel de l’application veille à ce que les options ouvertes et le coût du verrouillage soient soupesés, finance la mise à jour des dépendances et accepte que le service soit responsable de ses pièces.

Un regard de plus près

Comparaison

Deux façons de gérer les dépendances

Pax

Voici Pax, gestionnaire de service. L’équipe a traité les pièces comme quelque chose dont il faut prendre soin :

  • bâti sur des normes ouvertes et gardé une stratégie de sortie, pour pouvoir changer de fournisseur
  • tenu un inventaire à jour de chaque composant et de sa provenance
  • évalué les nouveaux composants pour vérifier qu’ils étaient entretenus et sécuritaires, appliqué les correctifs sans tarder et exigé des fournisseurs qu’ils signalent vite les incidents

Résultat : quand la même faille est apparue, l’équipe savait en quelques heures exactement où la bibliothèque était utilisée et l’a corrigée, et aucun fournisseur ne pouvait prendre le service en otage.

À quoi ressemble le fil Dépendances et normes à chaque phase

Choisir les pièces et en prendre soin est un travail qui traverse toute la vie d’un service.

Les choix qui comptent le plus se font avant que le service ne soit bâti. L’équipe bâtit sur des normes ouvertes pour que les pièces restent interchangeables, retient chaque dépendance de façon délibérée et commence l’inventaire, établit une stratégie de sortie avant de s’engager envers un fournisseur infonuagique, et travaille avec l’approvisionnement pour inscrire au contrat les exigences de sécurité et de signalement des incidents. Concevoir dès le départ pour se connecter par des interfaces ouvertes est bien plus facile que de l’ajouter après coup.

Les instruments officiels derrière dépendances et normes

Tout ce que ce sujet apporte d’officiel, et à quel moment de la vie d’un service chaque élément survient. Le détail complet, y compris qui fait le travail et ce que le responsable opérationnel fait personnellement, se trouve dans le tableau de la page d’accueil.

  • Comité d’examen de l’architecture du ministère (CEAM)Every servicesourceExamen

    Le comité propre au ministère, qui examine la conception d’une initiative numérique au regard du cadre d’architecture pangouvernemental : chercher ce qui existe déjà avant d’acheter ou de construire, normes ouvertes, données, sécurité et protection de la vie privée.

    • AlphaSoumettreSigner ou accepter
    • CroissanceTenir à jour
  • Comité d’examen de l’architecture intégrée du gouvernement du Canada (CEAI GC)Only ifsourceExamen

    Le comité d’architecture pangouvernemental, coprésidé par le dirigeant principal de la technologie du Canada et le dirigeant principal de la technologie de Services partagés Canada. Six déclencheurs distincts peuvent y envoyer une initiative, et l’ampleur de l’investissement n’en est qu’un.

    • AlphaVérifierSoumettre
  • Gestion du portefeuille d’applications (GPA)Every serviceInscrire

    Le registre des applications derrière les services, cotées selon la valeur opérationnelle, l’état technique, le coût de soutien et la criticité, et classées en tolérer, innover, atténuer ou éliminer. C’est ici que la criticité est réellement consignée, puisque le répertoire des services n’a pas de champ pour cela.

    • StabilisationSoumettre
    • MaturitéTenir à jour
    • RetraitClore
  • Décision d’hébergement de l’application, et le nuage public par défautEvery servicesourceExamen

    La décision sur l’endroit où le service fonctionne, prise au regard d’un ordre de préférence pangouvernemental : logiciel-service avant plateforme avant infrastructure, et nuage public avant hybride avant privé avant hors nuage. S’écarter de cet ordre exige une justification.

    • AlphaVérifierSoumettre
    • BêtaSigner ou accepter
    • MaturitéTenir à jour
  • Profil de sécurité infonuagique, garde-fous, et autorisation infonuagiqueOnly ifsourceAutorisation

    Le travail de sécurité supplémentaire que porte un service hébergé dans le nuage : un profil de contrôles prêt à l’emploi sur lequel construire, des garde-fous qui doivent être mis en place, validés et déclarés dans les 30 premiers jours ouvrables suivant l’obtention d’un compte infonuagique, et une évaluation de sécurité qui tient compte du partage entre ce que fait le fournisseur et ce que fait le ministère.

    • AlphaVérifierRassembler
    • BêtaRemplirSigner ou accepter
    • CroissanceTenir à jour
    • MaturitéTenir à jour
  • Services de justificatifs et d’ouverture de session du gouvernement du CanadaOnly ifObligation permanente

    Les services d’ouverture de session communs qu’un ministère peut utiliser plutôt que de construire les siens : le service de justificatifs à marque gouvernementale, l’option commerciale fondée sur les banques, et la plateforme d’ouverture de session fédérée plus récente. Utiliser l’un d’eux est la valeur par défaut, et une ouverture de session construite à partir de zéro est ce qui exige une justification.

    • AlphaVérifier
    • BêtaRemplirSoumettre
    • MaturitéTenir à jour

Pour aller plus loin

Au-delà des sources déjà liées ci-dessus, l’Échange de ressources ouvert du gouvernement du Canada vous permet de parcourir les normes ouvertes et les logiciels libres que d’autres administrations publiques canadiennes utilisent déjà, pour réutiliser une solution éprouvée plutôt que de partir de rien. Du côté de la chaîne d’approvisionnement, les pratiques de gestion des risques liés à la cybersécurité de la chaîne d’approvisionnement du NIST exposent comment une grande organisation repère, évalue et gère le risque dans les produits et services qu’elle achète, et le Secure Software Development Framework vous donne une liste de contrôle commune des pratiques de développement sécurisé à propos desquelles interroger un fournisseur pendant l’approvisionnement.

Voir aussi

Les hypothèses de cette page

Vous travaillez déjà selon les Normes relatives au numérique du gouvernement du Canada : concevoir avec les utilisateurs, itérer et améliorer fréquemment, travailler ouvertement, utiliser des normes et des solutions ouvertes, gérer les risques en matière de sécurité et de protection des renseignements personnels, intégrer l’accessibilité dès le début, permettre au personnel d’offrir de meilleurs services, être de bons gestionnaires de données, concevoir des services éthiques et collaborer largement, ainsi que selon la loi en matière de protection des renseignements personnels, de sécurité, de langues officielles et d’accessibilité. Les normes précisent comment le gouvernement travaille dans le monde numérique. Les six compétences numériques du gouvernement du Canada précisent ce que chaque fonctionnaire doit être capable de faire pour travailler ainsi, et la page sur l’équipe les présente. Le présent guide s’appuie sur elles.