L'ANSSI publie ses règles pour le développement sécurisé de logiciels en langage C

L’ANSSI publie ses règles pour le développement sécurisé de logiciels en langage C

L'ANSSI publie ses règles pour le développement sécurisé de logiciels en langage C

C'est un enjeu réel pour ce langage de bas niveau, qui peut s'avérer parfois complexe lorsqu'il s'agit de faire la chasse aux failles. 

C'est d'ailleurs ce qui pousse même certains géants comme Microsoft à se pencher sur des initiatives plus modernes pour sa programmation système, comme Rust

Pour l'Agence, « C offre une grande liberté aux développeurs. Cependant, il comporte des constructions ambiguës ou risquées qui favorisent l'introduction d'erreurs lors du développement ». 

Il faut alors « définir des restrictions quant à l'utilisation du langage C afin d'identifier les différentes constructions risquées ou non portables et d'en limiter voire interdire l'utilisation », des pratiques que vient détailler son guide.

Commentaires (10)


Très gros travail réalisé par le Laboratoire Sécurité du Logiciel de la sous-direction Expertise <img data-src=" />



Comme il est fait mention de Rust, il est à noter qu’un guide similaire est en cours de rédaction pour ce langage (par le même labo), de manière collaborative et ouverte, sur le GitHub de l’Agence :https://github.com/ANSSI-FR/rust-guide


Est-ce qu’il existe le même genre de référentiel pourJava et .Net ?








PSXBH a écrit :



Très gros travail réalisé par le Laboratoire Sécurité du Logiciel de la sous-direction Expertise <img data-src=" />



Comme il est fait mention de Rust, il est à noter qu’un guide similaire est en cours de rédaction pour ce langage (par le même labo), de manière collaborative et ouverte, sur le GitHub de l’Agence :https://github.com/ANSSI-FR/rust-guide





Je me permets de vous notifiez car @Paul Muad’Dib vous a posez une question et votre réponse (notamment pour Java) m’interresse énormément :).



LOL le C a été abandonné depuis 30 ans pour le C++ !








Witcher a écrit :



LOL le C a été abandonné depuis 30 ans pour le C++ !





Ah bon, il n’y a eu que le C89 ? Première nouvelle !!

Il y a pourtant eu une révision en 1999 (C99) et une en 2011 (C11) et une nouvelle est à venir dans quelques années prénommée pour l’instant C2x (sans parler des versions “bugfix”/mineures C95 et C17…).



Le C est encore utilisé dans de nombreux domaines. J’en fais tous les jours au travail…



Oups, j’ai feed le troll <img data-src=" />



Le C est des langages les plus utilisés au monde encore aujourd’hui. Il est très présent dans l’embarqué et l’informatique industrielle ainsi que dans le monde Unix/Linux.








Paul Muad’Dib a écrit :



Est-ce qu’il existe le même genre de référentiel pourJava et .Net ?









darkweizer a écrit :



Je me permets de vous notifiez car @Paul Muad’Dib vous a posez une question et votre réponse (notamment pour Java) m’interresse énormément :).







Hello,



Il existe un équivalent pour Java, publiée par le CERT-CC, donc pas directement par l’ANSSI (à ma connaissance ils ne travaillent que sur le guide C et Rust actuellement, en plus d’un guide Ocaml publié dans le cadre du projet LaFoSec)



Le guide Java est disponible ici :

https://wiki.sei.cmu.edu/confluence/display/java/SEI+CERT+Oracle+Coding+Standard…



Le CERT-CC maintient également un guide C et C++ (dont le guide ANSSI est inspiré, et pour lequel vous pouvez retrouver une correspondance des règles quand celles-ci existent dans les deux guides).



Pour .NET, Microsoft maintient quelques bonnes pratiques ici :

https://docs.microsoft.com/en-us/dotnet/standard/security/secure-coding-guidelin…



Mais c’est plus light que le guide ANSSI ou CERT-CC, malheureusement…



C’est justement dans le domaine de l’embarqué que je l’emploie tous les jours au travail <img data-src=" /> On compile en C99 et on a également un paquet de règles de codage comme celles dictées par l’ANSSI dans son document.








PSXBH a écrit :



Hello,



Il existe un équivalent pour Java, publiée par le CERT-CC, donc pas directement par l’ANSSI (à ma connaissance ils ne travaillent que sur le guide C et Rust actuellement, en plus d’un guide Ocaml publié dans le cadre du projet LaFoSec)



Le guide Java est disponible ici :

https://wiki.sei.cmu.edu/confluence/display/java/SEI+CERT+Oracle+Coding+Standard…



Le CERT-CC maintient également un guide C et C++ (dont le guide ANSSI est inspiré, et pour lequel vous pouvez retrouver une correspondance des règles quand celles-ci existent dans les deux guides).



Pour .NET, Microsoft maintient quelques bonnes pratiques ici :

https://docs.microsoft.com/en-us/dotnet/standard/security/secure-coding-guidelin…



Mais c’est plus light que le guide ANSSI ou CERT-CC, malheureusement…







<img data-src=" />



Don’t feed the troll :)

Autant je préfèry largement le C++ au C, autant ce dernier a de beaux jours devant lui…


Fermer