Malwares and backdoors: the Free Software approach

Bonjour,

The french article was published today now is the time to translate it in English :tada:

Cheers

Se protéger des virus et des portes dérobées : l’approche Logiciel Libre

Sécuriser les données et les échanges implique de se protéger des portes dérobées et des virus qui pourraient menacer leur confidentialité. Les virus s’introduisent en effet dans le système informatique et sont susceptibles de détruire ou de piller les données qu’il contient. Les “portes dérobées” permettent, quant à elles, à des informations de fuiter et d’être réceptionnées par les personnes qui les ont intentionnellement installées. Le risque est réel : en juillet 2020 , la société Orange confirmait avoir été victime d’un logiciel malveillant ayant fait fuiter les données de ses clients professionnels.

L’arrivée de la 5G dans les téléphones mobiles est une autre source d’inquiétude de la part même des États qui s’interrogent sur les portes dérobées que les composants 5G des téléphones peuvent contenir. Une industrie florissante est apparue pour lutter contre ces fléaux : son chiffre d’affaire se compte en milliards d’euros et on y trouve des entreprises cotées en bourse. Bénéficiaires d’une guerre qui semble sans issue, ces entreprises sont naturellement peu motivées à résoudre le problème de façon définitive.

Pourtant la solution est à portée de main. Avec des logiciels dont la recette de fabrication (le code source) est disponible publiquement, il est pratiquement impossible de dissimuler des portes dérobées. Et c’est aussi parce que ce code source est public que l’on peut l’analyser pour débusquer, dans le code des logiciels installés (le code binaire), des virus qui ne s’y trouvaient pas à l’origine.

Mais cette solution n’est accessible qu’en recourant à des logiciels libres et elle reste peu connue : Microsoft, Apple ou encore Google se gardent bien d’en faire la publicité tant la préservation de leurs secrets de fabrication est nécessaire à la pérennité de leur modèle économique. Le verrouillage des logiciels apparaît alors comme le fonctionnement naturel d’un système informatique, et les virus et portes dérobées comme une menace inévitable.

Or, en équipant ses postes de travail et ses téléphones mobiles avec des logiciels libres et des applications issues du logiciel libre comme le fait la Maison des Lanceurs d’Alerte, il est possible de bénéficier de la protection qu’ils offrent et de résoudre le problème de fond auquel l’alternative propriétaire se heurte depuis plus de vingt ans.

Que sont les virus et les portes dérobées ?

Un virus, ou plus précisément logiciel malveillant, est “un programme développé dans le but de nuire à un système informatique, sans le consentement de l’utilisateur dont l’ordinateur est infecté.” Il n’est donc pas livré avec le poste de travail ou le téléphone mobile : il l’infecte plus tard, lorsque l’occasion lui est donnée. Par exemple, une clé USB peut copier le virus qu’elle contient sur le poste de travail auquel elle est connectée. Un courriel ayant un document attaché, peut s’avérer être un virus une fois ouvert. Une fois en place, le virus agit parfois immédiatement, par exemple pour copier le carnet d’adresse de la victime sur Internet et alimenter les bases de données servant à l’envoi de pourriels (ces emails intempestifs aux objets parfois douteux). Il peut aussi rester dormant et s’activer des mois plus tard.

Une porte dérobée est “une fonctionnalité inconnue de l’utilisateur légitime, qui donne un accès secret au logiciel” ou à l’appareil sur lequel elle a été installée. Les concepteurs doivent donc l’avoir délibérément conçue, comme ces passages secrets aménagés dans les châteaux forts. En 2014, une porte dérobée a été découverte dans les mobiles Samsung. L’entreprise s’est défendue de toute intention malveillante allant jusqu’à nier la réalité du problème. Ne pouvant prouver de quelle façon elle avait été utilisée, elle a été supprimée sans précautions supplémentaires. Mais la difficulté est ici précisément de découvrir ces portes dérobées. C’est ce qui alimente les craintes des États concernant les composants électroniques fabriqués par Huawei pour faire fonctionner les mobiles 5G : même une analyse très poussée des logiciels qu’ils contiennent ne permettra pas de lever le doute.

Pourquoi l es anti-virus sont-ils inefficaces ?

Un anti-virus s’appuie sur un catalogue des virus existants et cherche régulièrement leur présence afin de les supprimer. Il doit être mis à jour fréquemment car de nouveaux virus apparaissent toust les jours et il laissera passer ceux qu’il ne connaît pas encore.

Pour sortir de cette course sans fin, les éditeurs de logiciels, dont Microsoft, ont imaginé au milieu des années 2000, que chaque logiciel pourrait être signé par une autorité ayant vérifié qu’il n’est pas malveillant. Les concepteurs de matériel ont été mis à contribution et la plupart des ordinateurs ont désormais un mécanisme de lancement sécurisé qui peut bloquer son démarrage s’il ne trouve pas la signature attendue.

Cette solution ne fonctionne évidemment pas, comme le prouvent d’une part la fuite des données d’Orange en 2020 et d’autre part, la bonne santé financière des entreprises commercialisant des anti-virus.

La cause de cet échec tient en un mot : la centralisation du contrôle des signatures. Pour qu’un logiciel démarre sur un ordinateur équipé d’un processeur Intel, il faudrait d’abord obtenir la signature d’Intel. Une telle dépendance crée des réticences et bon nombre d’éditeurs de logiciels n’y ont pas souscrit, pour des raisons éthiques ou financières. Dès lors il devient impossible pour la machine de faire la distinction entre un virus et un logiciel venant d’une personne ayant simplement refusé de souscrire aux conditions imposées par Intel.

Pour les logiciels libres qui ne sont pas, par définition, contrôlés par une seule organisation, il fallait imaginer des solutions différentes, décentralisées . Pour ne prendre qu’un exemple, Debian GNU/Linux est réalisé par des centaines de personnes et chacune appose sa signature pour démontrer qu’elle en est bien l’auteur. Un virus qui ne serait pas signé ou bien qui serait signé d’une personne inconnue est alors facilement identifiable. Comme il n’existe pas d’organisation centralisée qui tient un annuaire des personnes connues, il a été proposé de tisser une toile de confiance. Pour y entrer il faut connaitre au moins deux personnes qui y sont déjà. Par ce mécanisme de cooptation, on évite la centralisation et tous les logiciels peuvent être signés sans prêter allégeance à un acteur qui centralise tous les pouvoirs. Lorsqu’on y ajoute la disponibilité des code sources, la possibilité de reproduire le code binaire pour contrôler celui installé sur un ordinateur, les bugs bounty, c’est à dire l’attribution de primes pour chaque bug identifié, et d’autres idées dérivées des propriétés uniques du logiciel libre, on produit des logiciels qui, s’ils ne sont pas totalement immunisés contre les virus, s’avèrent beaucoup plus résistants.

Révéler les portes dérobées

Lorsque les concepteurs d’un logiciel ajoutent une porte dérobée, ils font de leur mieux pour qu’elle échappe à l’attention des utilisateurs ou de toute personne qui examinerait le logiciel avec le plus grand soin. Leur atout principal est la difficulté, pour un être humain, même le plus qualifié, de comprendre le code binaire. Pour reprendre les craintes exprimées vis à vis de Huawei et des composants électroniques nécessaires à faire fonctionner la 5G, elles se matérialisent dans le scénario suivant :

  • Les ingĂ©nieurs de Huawei rĂ©alisent le logiciel nĂ©cessaire pour faire fonctionner la 5G et y ajoutent une porte dĂ©robĂ©e
  • Le code source du logiciel est transformĂ© en code binaire et insĂ©rĂ© dans des millions de composants Ă©lectroniques
  • Ces composants servent Ă  fabriquer des tĂ©lĂ©phones mobiles utilisĂ©s par des fonctionnaires du ministère de la DĂ©fense
  • Lorsqu’un de ces mobiles reçoit un appel en provenance du numĂ©ro de tĂ©lĂ©phone d’un fonctionnaire du gouvernement chinois, il lui ouvre la porte et lui donne accès aux informations qu’il contient.

Si tout un chacun avait accès au code source de ce logiciel, il n’y aurait plus de motif d’inquiétude car il serait facile d’en analyser le fonctionnement. C’est même la première qualité attendue d’un code source qui est la forme préférée pour travailler sur un logiciel, le comprendre et le faire évoluer. Mais il est jalousement gardé par Huawei, au prétexte de cacher leur savoir-faire à leur concurrents.

Or le code source d’un logiciel libre est par définition toujours disponible : son absence signifierait tout simplement que le logiciel n’est pas libre. C’est ce qui immunise le logiciel libre contre les portes dérobées : la transparence permet à tous de constater leur absence. Si le concepteur cherchait à ajouter une porte, elle serait, a contrario, visible de tous.

Une protection efficace mais pas absolue

Bien que le choix fait par la Maison des Lanceurs d’Alerte de s’équiper exclusivement de Logiciels Libres constitue une solution très efficace pour lutter contre les portes dérobées et les virus, il reste des zones d’ombre.

Certains composants matériels, dans les téléphones mobiles en particulier, ne peuvent pas fonctionner avec des logiciels libres. Les constructeurs refusent de donner le mode d’emploi et fournissent un pilote binaire qui, à défaut de code source, reste a priori suspect. Bien que les parades existent, l’effort est si important qu’il est hors de portée d’une organisation de taille modeste.

[image]

Le plus souvent il suffit qu’un poste de travail fonctionne sous Debian GNU/Linux et un mobile sous LineageOS, tous deux issus du logiciel libre, pour se préserver de la grande majorité des menaces. Le risque principal vient alors de l’achat au marché noir de virus ou de portes dérobées qui ciblent ces logiciels. Mais ils sont plus difficile a trouver et plus chers parce que la clientèle est moins nombreuse que pour Windows ou macOS. Et ils sont aussi beaucoup plus rares puisque, comme nous venons de le voir, les parades sont plus efficaces.

A first translation draft was added to the repository and with @smithfarm help it will become proper English :stuck_out_tongue:

The English version of the article was published today. I very much enjoyed working with @smithfarm and I’m proud of what we did together. Very much looking forward to the next one :slight_smile: