Bon, les équipes NetOps. Alors que vous automatisez tout à tour de bras et vous donnez à fond dans les scripts, il est temps de faire un petit rappel sur la sécurité. Je ne parle pas des pare-feu, des WAF ou des autres services de sécurité dont vous pourriez être chargés d’assurer le déploiement et la gestion. Je parle des scripts et du code que vous allez produire en vous lançant dans l’aventure de la transformation numérique.
Aujourd’hui, j’aimerais vous rappeler la règle zéro de la sécurité. Pour vous rafraîchir la mémoire :
RÈGLE DE SÉCURITÉ ZÉRO : TU NE FERAS JAMAIS CONFIANCE AUX DONNÉES SAISIES PAR L’UTILISATEUR. JAMAIS.
Une règle assez simple, non ?
Cela devrait être le cas, mais ça ne l’est pas. Faille après faille dans le monde de l’entreprise, toutes trouvent leur origine dans une violation de la règle de sécurité zéro. Les infractions à cette règle sont monnaie courante dans les exemples de code proposés aux développeurslorsqu’ils se documentent et apprennent de nouveaux langages et frameworks. Malheureusement, cette pratique gagne également le nouveau domaine passionnant des NetOps.
Permettez-moi de vous présenter la pièce à conviction A :

Cela dit, pour être honnête, ce script a au moins la décence de vous avertir que les données ne sont pas validées. C’est une bonne chose, car il effectue ensuite toutes sortes de manipulations à distance des configurations des routeurs en fonction des données saisies.
Ce qui me gêne ici, c’est que ce code est conçu pour aider les équipes NetOps à s’initier aux scripts afin d’automatiser des équipements réseau de production et qu’il se contente d’évoquer la validation des données sans fournir la moindre information utile sur la manière de procéder.
Pour obtenir de bons conseils sur la validation des adresses IP en Python, consultez cette discussion sur Stack Overflow.
Mais enfin, Lori, ce n’est que du scripting, on travaille en ligne de commande… Franchement, qu’est-ce qu’on risque ?
Les mauvaises habitudes ont la vie dure.
Ignorer la règle de sécurité zéro pose deux problèmes.
Premièrement, les jours de l’interface en ligne de commande sont comptés, mon ami. L’API est la nouvelle interface en ligne de commande, et la plupart des frameworks d’automatisation adoptent les API RESTful pour provisionner et gérer les équipements et services réseau. Cela implique des piles applicatives et des analyseurs syntaxiques. Autrement dit, des équipements potentiellement exposés à des attaques, car leur configuration peut être modifiée via une API susceptible de comporter des vulnérabilités.
Pour prouver que je n’exagère pas, je cite cet avis de sécurité de Cisco concernant la vulnérabilité Apache Struts qui a fait couler beaucoup d’encre. Il est généralement admis que la transmission de données non assainies au framework Struts peut entraîner toutes sortes de problèmes.
Mais au cas où le risque d’exploitation ne suffirait pas à vous convaincre de veiller à l’application de la règle de sécurité zéro, permettez-moi de souligner que l’absence de nettoyage des données saisies peut avoir des répercussions bien plus vastes que sur un seul appareil. Voyons ce que nous savons de la panne d’Amazon S3 survenue début 2017 :
À 9 h 37 (heure du Pacifique), un membre habilité de l’équipe S3, suivant une procédure établie, a exécuté une commande destinée à retirer un petit nombre de serveurs de l’un des sous-systèmes S3 utilisés par le processus de facturation de S3. Malheureusement, l’un des paramètres de la commande a été saisi de manière incorrecte, entraînant le retrait d’un nombre de serveurs plus important que prévu.
-- Résumé de l’interruption du service Amazon S3 dans la région Virginie du Nord (US-EAST-1)
Le nombre qu’il a saisi dans le script était bien plus élevé que prévu. Mais les scripts qui acceptent aveuglément tout ce que leur fournit l’opérateur (au mépris de la règle de sécurité numéro zéro) finissent inévitablement par provoquer ce genre d’erreur. Une simple vérification par le script — certes fastidieuse — aurait peut-être évité que l’incident fasse parler de lui sur Twitter pendant plus d’une semaine.
Sur le réseau, en production, nous envisageons souvent la sécurité sous l’angle des autorisations. Bob est-il autorisé à effectuer cette action ? Alice peut-elle exécuter ce script ? Et nous en avons besoin : cela reste essentiel.
Mais à mesure que nous accélérons notre transformation numérique (interne), que nous adoptons davantage de frameworks et que nous utilisons des API et des scripts pour automatiser au maximum le provisionnement et la gestion, nous devons impérativement envisager la sécurité également sous l’angle du développement.
Et la toute première de ces règles est la règle zéro de la sécurité : TU NE FERAS JAMAIS CONFIANCE AUX DONNÉES SAISIES PAR L’UTILISATEUR. JAMAIS.
Validez toujours les données saisies. Non seulement cela renforce la sécurité, mais cela peut aussi éviter qu’une automatisation bien conçue ne tourne mal.
À propos de l’auteur

Lori MacVittie est ingénieure émérite et évangéliste en chef au sein du bureau du directeur technique de F5. Elle possède une expertise approfondie dans la fourniture d’applications, les stratégies d’automatisation et les infrastructures. Elle est réputée pour sa capacité à rendre la complexité intelligible, qu’elle définisse des garde-fous pour les agents d’IA, analyse des architectures multicloud fragiles ou explore les limites des systèmes évolutifs. Elle cumule plus de trente ans d’expérience dans le secteur, couvrant le développement d’applications, l’architecture informatique ainsi que l’exploitation des réseaux et des systèmes. Avant de rejoindre F5, elle a été rédactrice spécialisée dans les technologies et a reçu plusieurs distinctions. MacVittie est titulaire d’un master en informatique et est une autrice prolifique dont les publications couvrent la sécurité, le cloud et l’architecture d’entreprise. Elle est également une passionnée de jeux de société et de jeux vidéo, et assume pleinement ses avis bien tranchés sur le fromage.
Autres articles de Lori Mac VittieArticles de blog associés

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives
Découvrez comment NGINXaaS s’intègre à Google Cloud pour renforcer les performances et la sécurité, et préparer vos applications critiques à un avenir propulsé par l’IA.
L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui
En faisant appel à un partenaire de déploiement AWS WAF tel que F5, vous pouvez renforcer la sécurité de vos applications web grâce à des règles personnalisées qui bloquent les schémas d’attaque courants, comme les injections SQL ou les attaques par scripts intersites (XSS).
Appliquer le principe de Peter Parker à l’inspection TLS
« Un grand pouvoir implique de grandes responsabilités. » Si l’on en trouve des échos chez Voltaire et Churchill, cette citation est surtout connue grâce aux bandes dessinées Spider-Man, où elle est attribuée à l’oncle Ben. Bien entendu, si cette phrase est si répandue dans la culture populaire, c’est notamment parce qu’elle peut s’appliquer à une multitude de situations et de sujets, y compris à l’inspection TLS.
Le NetOps a besoin de défenseurs, pas d’adversaires
Il est important de reconnaître que les équipes NetOps ne sont pas toujours celles qui font obstacle au déploiement de la dernière nouveauté, application ou service. Les freins à la rapidité sont souvent dus au fait que les organisations n’adoptent pas tous les principes du DevOps lorsqu’elles cherchent à transformer leurs opérations informatiques.
Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects
Il est de nouveau temps de nous pencher sur les services applicatifs que les entreprises utilisent réellement pour rendre leurs applications plus rapides et plus sûres. On constate notamment une hausse du recours aux services de protection contre les bots, ainsi que la progression lente mais régulière de HTTP/2. Bien qu’il ne s’agisse pas d’une application…
Les templates prennent le contrôle du cloud
Les modèles s’imposent dans le cloud. Lisez le blog de F5 pour découvrir comment l’infrastructure en tant que code et les API déclaratives automatisent la mise à disposition des applications.