Sécurité informatique : le marathon de la sécurité

Si vous croyez que la sécurité est un sprint, qu'une bidouille rapide est invulnérable, qu'une correction de bugs hâtive est suffisante, qu’ajouter des mesures de sécurité aux structures préexistantes est approprié, laissez-moi vous convaincre du contraire.

 

Notre meilleur exemple est tiré de la période d’accueil des étudiants d'été. Comme la période estivale est courte, les projets logiciels doivent être réalisés rapidement, en un seul sprint. Vite, vite ! Mais souvent, cette course se solde par des muscles endoloris : régulièrement, des étudiants d'été nous contactent avec le souhait de rendre leur projet ou leur serveur web publics sur internet. Régulièrement, de rapides contrôles de sécurité de ces serveurs web révèlent des problèmes de performance : l'application web comporte des erreurs ou est basée sur des protocoles non sécurisés, les logiciels utilisés, les bases de données ou les supports web sont sous-optimaux et non adéquats pour le projet, le système d'exploitation n'est pas standard et n'a jamais été mis à jour, le matériel informatique est vieux, etc. Nous refusons ainsi souvent, malheureusement, de rendre leurs projets publics sur internet. Leur sprint les a conduits à l’hôpital. Game over.

Car au contraire, la sécurité est un marathon. Elle nécessite une préparation approfondie, une intégration et un planning adéquats. Tout comme courir un marathon peut faire partie intégrante de votre vie, la sécurité est une partie essentielle du développement informatique. Comme pour tout marathon, vous devez donc vous préparer correctement. Dans le domaine de la programmation informatique, « être bien préparé » se traduit par un cycle de développement logiciel (« software development life-cycle » ou « SDLC » en anglais) adéquat.

Un bon SDLC renforce la programmation avec des phases de conception et des tests répétés. C'est uniquement à travers des spécifications fonctionnelles clairement définies qu'il est possible de vérifier si le code produit fonctionne comme prévu, c'est-à-dire s’il répond aux besoins spécifiés. La sécurité est simplement un autre angle d'approche qui permet de s’assurer que votre code ne peut pas être corrompu. Nous avons rassemblé une liste de trucs et astuces pour différentes phases de votre SDLC. D’intéressants livres sur le sujet (en anglais) ont été écrits par R. Anderson (« Security Engineering ») et G. Mc Graw (« Software Security »). Des outils automatiques, tels que « flawfinder », peuvent vous aider à mettre en évidence des erreurs simples. Nous avons établi une longue liste d’outils d'analyse statique pour un certain nombre de langages de programmation. Vous pouvez passer à l'étape supérieure grâce à des formations régulières. L'équipe de la sécurité informatique propose des formations sur le développement et la programmation d'applications web, pour C/C++, Java, Perl, Python et PHP. Rendez-vous sur notre site web, à la page training.


Si vous voulez en savoir plus sur les incidents et les problèmes de sécurité informatique rencontrés au CERN, consultez notre rapport mensuel (en anglais).

Et bien sûr, n'hésitez pas à contacter l'équipe de sécurité informatique ou à consulter notre site web.


Accédez à la collection complète d'articles de l'équipe de sécurité informatique ici.

par Computer Security Team