Le blog F-Secure est tombé sur une nouvelle technique d’attaque d’un genre inattendu : la fausse page d’alerte Firefox. De l’onglet au contenu du message, en passant par l’apparence générale, tout laisse à penser que l’internaute visé a sous les yeux un message d’alerte généré localement par son propre navigateur alors qu’il s’agit en fait d’une véritable page HTML distante imitant le goût, l’odeur et la couleur de ladite page d’alerte. Ce n’est là techniquement qu’une attaque en « ingénierie sociale », mais qui se distingue par son originalité. Le seul indice pouvant éveiller les soupçons de l’éventuelle victime est cet inhabituel bouton « Download Updates » qui n’apparaît jamais dans les véritables pages de blocage intégrées au navigateur. Lequel bouton déclenche illico la réception d’un faux antivirus.
Si, d’un point de vue technique, les chasseurs de virus y verront peu de différence avec les attaques en « pseudo codec » si fréquentes depuis ces deux ou trois dernières années, les spécialistes sécurité remarqueront sans la moindre hésitation une adaptation du milieu du malware à une contre-attaque destinée à accroître la sécurité du poste de travail.
A ce petit jeu, on peut se demander si la partie n’est pas perdue d’avance pour le camp des « blancs ». Effectuons un petit voyage dans le temps. Plus précisément à l’époque où les navigateurs ne possédaient aucun mécanisme de sécurité. Les premières usurpations et tentatives d’injection par le port 80 ont eu pour première conséquence l’intégration de vpn/ssl dans les navigateurs. Puis les attaques iframe, les certificats « autosignés », ou plus récemment les vrais certificats Verisign ont fait du « petit cadenas » ou de la barre d’URL verte des signes extérieurs d’inutilité. Sont ensuite apparues les tentatives de déclanchement de saturation de buffer via la barre d’adresse, puis les attaques en injection, à leur tour corrigées illico avec de meilleurs contrôles des champs de saisie, les filtrages de chaînes, la suppression d’erreurs de conceptions diverses notamment en matière de lancement d’applets ou de code Java. Contre-mesures rapidement contournées par le recours à d’autres astuces telle que l’utilisation de caractères expédiés en hexa, l’exploitation de caractères d’échappement (quand donc est morte la possibilité de glisser un 0a0d ?) etc. Les outils de filtrage intégrés sont les derniers de cette génération d’add-in de riposte. Ils sont plus intelligents, certains d’entre eux reposant d’ailleurs sur un service permanent assuré par l’éditeur du navigateur même. Mais à peine ces détecteurs d’attaques en drive by download et ces avertisseurs de sites douteux font-ils leur apparition, qu’ils sont immédiatement victimes d’une sorte de « html spoofing » tel que celui relevé par l’équipe de F-Secure.
Entre les cadenas fermés qui ne prouvent plus rien, les certificats dont la provenance est douteuse, les barres d’adresses colorées que l’on peut truquer à façon, les pages d’avertissement qui servent à compromettre l’usager, quel niveau de confiance peut encore avoir le fameux « utilisateur final et finaud » envers son client d’affichage html ? Si cette course à la contre-contre-mesure se poursuit, combien d’indicateurs prétendument infalsifiables les éditeurs seront-ils capables de faire s’allumer en vain, rendant la lecture des signaux de sécurité totalement incompréhensible ? Car les navigateurs modernes ressemblent de plus en plus à ces autobus qui croisent entre Lahore et Bombay, surchargés de lumières et de guirlandes, mais dont l’emprunt se fait au péril du voyageur.
La faute, bien sûr, n’en incombe pas aux éditeurs, qui tentent par tous les moyens de parer une attaque dès qu’elle est signalée. Encore moins des concepteurs, dont le rôle est avant tout de concevoir un programme aussi génial et séduisant possible pour que les usagers l’adoptent sans discussion. C’est d’ailleurs là que se situe le hiatus principal attaché à la notion de SDL. On ne peut associer à la fois la créativité d’un auteur de roman, de logiciel, de musique ou de toute autre discipline avec le rigorisme d’une méthode SDL en matière de programmation, école de romancier dans la veine « écrire comme … » ou filière de composition formatée pour fabriquer du « hit ». Si Internet avait été pensé, conçu, inventé pour être sûr et bien écrit, il se serait appelé X400. On ne peut non plus porter atteinte au « génie » des auteurs de malwares, d’une toute autre nature, certes, mais qui est bien réel.
Tant que la notion de sécurité d’un logiciel ne relèvera pas d’une idée géniale qui remplacera le principe d’action-réaction (ou attaque puis défense a posteriori), il sera bien difficile de penser et d’agir autrement. La faute, s’il y en a une, serait du fait de deux professions qui n’existent pas, ou pas encore. Celle de « nettoyeur de code et de bonnes idées qui ont fait long feu », et celle de « temporisateur de contre-mesures géniales » chargé de l’élimination malthusienne des projets dont l’espérance d’efficacité ne dépasse pas 6 mois. Deux corps de métier qui devront tôt ou tard travailler avec d’une part les grand-maîtres du Software Lifecycle Development et autres approches de « safe coding », et d’autre part avec les ninjas du filtrage de niveau 7 qui semblent toujours connaître des déboires avec ce sacré port 80.