Un code soigneusement testé est la pierre angulaire d'une pile logicielle fiable et solide. En effet, rien n'est plus ennuyeux qu'une application qui plante, est défaillante ou ne fonctionne pas comme elle le devrait, ce qui entraîne perte de temps et de service (!) et donne lieu à un fastidieux processus de débogage pour trouver l'origine de la faille. Sans parler de la frustration de la communauté des utilisateurs. S'il est impossible de produire du code sans bogue en raison de la complexité des logiciels et des compétences limitées de la plupart des programmeurs humains, on peut limiter de façon significative d'éventuels frais de débogage en réduisant le nombre de bogues et de failles dès le début du processus de développement. Pour préserver la qualité logicielle, le département informatique du CERN vous propose, ainsi qu'à vos clients, quelques outils simples pour gagner du temps et vous éviter de sérieux maux de tête.
Écrire du code parfait est loin d'être facile et nécessite une connaissance approfondie du (des) langage(s) de programmation utilisé(s) et beaucoup d'expérience. Les défauts et les bogues sont donc inévitables, même les codeurs les plus qualifiés n'y échappent pas. Ces « Gandalfs du codage » savent cependant retourner la situation en leur faveur. Ils respectent les bonnes pratiques en matière de modularité, d'isolation, de simplicité et de lisibilité ; ils valident chaque bit de données d'entrée et rejettent les données incohérentes ; ils limitent la portée de l'exécution et réduisent le nombre de privilèges ; ils choisissent les valeurs par défaut les plus sûres ; ils gardent les secrets secrets et sont attentifs aux messages du compilateur (« gcc -wALL anyone ? », par exemple) qui très souvent signalent un code non-optimal. Dans l'idéal, la phase de compilation du code devrait se dérouler sans message d'aucune sorte.
Vous souhaitez devenir un magicien du codage ? Il vous suffit d'appliquer les bonnes pratiques mentionnées plus haut. C'est encore plus facile si vous utilisez l'instance Gitlab du CERN comme votre référentiel principal. Gitlab-CI, son outil d'intégration continue, vous permet d’effectuer facilement et automatiquement des analyses supplémentaires sur le code statique de votre référentiel, ce qui garantit un code sans failles de sécurité connues et exempt de mauvaises pratiques. Cela est particulièrement efficace lorsque vous travaillez en groupe ou en équipe car vous pouvez alors vous concentrer sur votre tâche et non sur quels outils les autres devraient utiliser et comment. Vous gagnerez ainsi beaucoup de temps car vous n'aurez plus à préparer un environnement de test pour chaque modification.
Tous ces outils d'analyse statique de code peuvent être téléchargés. Si vous souhaitez savoir comment mieux sécuriser votre site web, en particulier s'il est directement exposé à Internet, veuillez voir nos recommandations et nos outils Oracle/APEX. L'une de nos recommandations de base est simple : pensez à utiliser les services web centraux du département IT du CERN !
Bien entendu, il existe maintes autres possibilités d'améliorer vos logiciels. L’équipe en charge de la sécurité informatique, en collaboration avec celle responsable de la formation technique du CERN, a organisé plusieurs cours sur le développement web et les bonnes pratiques en matière de programmation. Pour ceux que le piratage informatique intéresse, nous donnons régulièrement des cours pratiques de capture de drapeau pour apprendre à tester la résistance aux intrusions de votre logiciel. Participez au WhiteHat Challenge en septembre 2017 ! Si vous préférez la lecture, voici une liste d'ouvrages et d'articles sur le sujet.
Pour en savoir plus sur les incidents et les problèmes relatifs à la sécurité informatique au CERN, lisez nos rapport mensuel (en anglais). Si vous désirez avoir plus d’informations, poser des questions ou obtenir de l’aide, visitez notre site ou contactez-nous à l’adresse Computer.Security@cern.ch.