Liste des API à bannir en terme de sécurité

M Howard et Leblanc, viennent de publier une liste d'API a proscrire dans une démarche SDL de sécurité.

Cette liste concerne essentiellement les développeurs C/C++ désireux de corriger leur code ou de planifier des développements mettant en œuvre une méthodologie de sécurité (SDL et dérivé). Bien sur tout cela tourne autour de la Runtime C et le support des « bonnes vieilles fonctions C». Dans ce domaine plusieurs initiatives ont été menés ces dernières années :

· StrSafe : strsafe.h expose un pool de fonctions en remplacement de strcpy par StringCchCopy

· Safe CRT : L’approche la plus simple pour sécurisé la runtimeC, en remplaçant strcpy par strcpy_s : Même signature et paramètre en plus optionnel

· Les « n » fonctions. Remplace strcpy par strncpy ne sont pas a conseiller, car leur mise en œuvre n’est pas aisée et peut générer des soucis…

Sur le sujet des chaines, qui est le sujet qui fâche, notez que les auteurs insistent pour utiliser dans le C++ d’autre type que les buffers:

If you are using C++, you should seriously consider using the std::string template class rather than manipulating buffers directly.

Il en va de même en code .NET (ici le C++/CLI) ou le type System::String ou System ::Text::StringBuilder sont fortement conseillées.

Eric