Sécurité informatique : votre code est-il sain ?

Combien d'entre nous écrivent des codes ? Des logiciels ? Des programmes ? Des scripts ? Combien d'entre nous sont convenablement formés pour cela ? Écrivons-nous des codes fonctionnels, propres, sans failles, ni bugs ou vulnérabilités* ? En d’autres termes : nos codes sont-ils sains ?

 

Découvrir les faiblesses d'un code n'est pas chose facile (voir notre quiz dans cet article du Bulletin). C'est pourquoi, afin d'améliorer la qualité de nos codes, de prévenir les erreurs les plus communes, et d'éviter les bugs et les vulnérabilités pouvant altérer leur fonctionnement, ou les faire « crasher », ou, pire, permettre à des hackers de les exploiter à des fins malveillantes, l'équipe de la Sécurité informatique du CERN a mis à jour ses recommandations afin de vérifier la conformité de vos codes en matière de sécurité.

Les « analyseurs statiques de code » sont des programmes autonomes qui peuvent être utilisés sur toute votre pile logicielle, qu'elle soit écrite en Java, en C/C++, en Perl, en PHP ou en Python. Ces analyseurs peuvent détecter certaines faiblesses et erreurs, comme l'utilisation de variables non déclarées, la présence d'expressions provoquant des dépassements de tampon (« buffer overflows »), l'utilisation de fonctions dépréciées (comme la dangereuse fonction « strcpy » en C), et l'absence de contrôle et de filtrage des entrées. Bien sûr, ces outils ne remplacent pas une vérification du code à quatre yeux, ligne par ligne, mais ils devraient néanmoins devenir standard pour les architectes logiciels, les développeurs et les programmeurs, afin d'améliorer leurs produits. Donc, si vous êtes sérieux et professionnel, utilisez-les avant de compiler ou, encore mieux, mariez-les à vos logiciels d'intégration (comme Bamboo ou Jenkins).

Bien sûr, nous continuerons à vous aider. Lorsque le service Jenkins du CERN entrera en production, nous vous fournirons une procédure pour utiliser nos analyseurs statiques de code sur Jenkins. En parallèle, nous avons l'intention de scanner automatiquement tout le code public des dépôts Gitlab, afin d'y trouver les erreurs les plus évidentes. Chaque vulnérabilité sera automatiquement signalée au détenteur du dépôt concerné. Vous pouvez également contacter l'un de nos WhiteHats et l'autoriser à réaliser des tests d'intrusion sur votre application. Enfin, si vous le désirez, vous pouvez nous contacter pour un audit de sécurité complet de votre code et un examen de votre architecture logicielle.

*Ok, il faut bien l'admettre, il n'y a pas de codes sans bugs. Même <--?php print "Hello World!"; ?--> est potentiellement faillible. Malgré tout, nous avons pour but de réduire au minimum les bugs et de les supprimer quand c'est possible !


N'hésitez pas à contacter l'équipe de la Sécurité informatique ou à consulter notre site web.

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).


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

par Stefan Lueders, Computer Security Team