Bonne programmation: C/C++

C

La plupart des vulnérabilités en C sont liées aux débordements de tampons (« buffer overflows ») et aux manipulations des chaines de caractères (« string »), cela résulte en une erreur de segmentation (« segmentation fault »), mais les valeurs d’entrée malveillantes adaptées à l’architecture et à l’environnement peuvent engendrer une exécution arbitraire du code. Vous trouverez ci-dessous une liste des erreurs les plus communes et des solutions/corrections suggérées. (Quelques conseils pour C++ sont disponibles en anglais ici.)

C++

C++ n'est pas C. C’est le premier conseil que nous pouvons vous donner. N’utilisez pas printf, char* et autres, mais à la place utilisez la méthode C++. Si vous êtes obligé de faire les choses comme en C, consultez les guidelines de C en anglais.


Outils

(Les descriptions des outils sont seulement disponibles en anglais.)

Flawfinder Gratuit script autonome Flawfinder vérifie les appels à des fonctions "library" potentiellement vulnérables.
RATS Gratuit script autonome RATS cible différents langages et a des règles spécifiques de détection pour chacun d’eux.
Pour C/C++, il vérifiera les appels à des fonctions "library" vulnérables et les mauvaises pratiques qui peuvent engendrer un débordement de tampon.
Coverity Prevent Commercial Coverity est une entreprise de sécurité avec une expérience considérable dans le domaine de l’analyse statique.
Ils ont conduit beaucoup de « scans open source » et ont des clients de renom.