Sécurité informatique : les enjeux de l’”open source”

Publié le 02 septembre 2009 par Auditsi

L’open source est très présent dans le monde de l’informatique “libre” (freeware en anglais) où les logiciels développés par des passionnés (seuls ou en équipes) sont distribués gratuitement ou presque. Dans ce domaine, gratuit ne rime pas avec mauvaise qualité, bien au contraire. De nombreux logiciels gratuits concurrencent férocement des logiciels payants édités par des multinationales à gros budget à commencer par LINUX contre WINDOWS. Ne nous y trompons pas l’enjeu n’est pas seulement financier, l’open source introduit la transparence que recherche bon nombre de directions informatiques d’entreprises et d’administrations (dont les militaires) sur le fonctionnement des logiciels intégrés à leurs systèmes informatiques.

En effet, l’éditeur d’un logiciel “open source” (en français code source libre) fournit, en plus du logiciel proprement dit, le code source (c’est-à-dire les lignes de programmes qui, compilées, produisent le logiciel, produit fini). Ce code source, fourni gracieusement, assure une totale transparence sur les techniques de programmation utilisées par les développeurs du logiciel. La communication du code source permet à la communauté des informaticiens de déceler d’éventuels problèmes de sécurité, de les corriger ou de signaler le problème aux développeurs pour correction. L’open source tranche donc complètement avec les logiciels propriétaires “fermés” dont le code source est tenu secret (la licence d’utilisation de ces logiciels prévoit généralement l’interdiction de la décompilation, c’est-à-dire la reconstitution du code source à partir du produit fini). En effet, l’utilisateur n’a pas connaissance directement des techniques de programmation mises en oeuvre et n’a aucun moyen de déceler d’éventuelles failles de sécurité ouvertes dans son système par ce logiciel, autrement que celles révélées dans les nombreux forums de discussion. Evidemment, l’utilisateur lambda ne dispose pas des compétences propres à analyser voire déchiffrer le code source d’un logiciel mais la communauté de développeurs bénévoles est riche d’étudiants, d’universitaires, de thésards… voire maintenant de retraités qui disposent de temps et de moyens. Cette communauté est très active à l’image de celle qui tourne autours des différents projets LINUX.

Extrait de code source en Visual C++ :

#include <CkMht.h>
#include <CkString.h>

void ChilkatSample(void)
    {
    CkMht mht;

    bool success;
    success = mht.UnlockComponent(”30-day trial”);
    if (success != true) {
        printf(”Mht component unlock failed\n”);
        return;
    }

L’intérêt de transparence et de sécurité se comprend très bien pour des militaires qui se doivent de comprendre le fonctionnement des systèmes qu’ils emploient sur des théatres d’opérations extérieurs. Les failles de sécurité sont concernées mais pas seulement. Les “backdoors” (ou portes dérobées) sont la hantises des militaires et plus généralement des directions informatiques : la plus imprenable des citadelles protégée de parefeus piratée parce que la porte de derrière est restée ouverte… Le pire cauchemar de tout responsable informatique. Cependant, l’opacité des systèmes propriétaires conviendra à l’utilisateur moyen peu au fait de ces problèmes de sécurité (que les mises à jour quotidiennes et automatiques de Microsoft rassurent).