L’équipe de VirusBlokAda , les inventeurs Biélorusses de la faille « .lnk », étaient relativement prudents lorsque, en fin de semaine passée, ils publiaient leur première alerte. Après analyse du MSRC, le rootkit propagé par cette fonction du shell32 malade pourrait sans grande difficulté être utilisé non seulement à partir d’une clef usb infectée, mais également depuis toute autre ressource disponible à distance. Les deux propositions de contournement sont aussi inapplicables l’une que l’autre : désactiver l’affichage des « raccourcis » sous Windows, ou supprimer les services WebClient WebDAV.
Les amateurs de détails techniques peuvent se plonger dans le PoC conçu par IvanLeFou. L’alerte est assez sérieuse pour avoir provoqué non seulement une réaction du Sans, mais également un bulletin du Cert US.
Après analyse, il apparaît également que la cible principale de ce malware soit la série d’outils WinCC de Siemens, des logiciels de pilotage d’infrastructures industrielles… Scada y compris. En d’autres termes, TmpHider cherche avant tout à s’introduire dans des centres de commandes de processus, ce qui sous-entend soit que l’on assiste-là à un exercice préparatoire de pénétration militaro-politique de cyberguerre, soit qu’il s’agit d’une attaque mafieuse cherchant à compromettre des sites industriels ou d’infrastructure en vue de les rançonner ou opérer une quelconque opération de chantage. Dans tous les cas de figure, on est très loin des attaques virales traditionnelles :
– le malware se propage avec un exploit ZDE véritablement dangereux et difficile –voir impossible- à contourner simplement,
– utilise une méthode d’authentification élaborée (usurpation d’un certificat Realtek révoqué par Verisign vendredi dernier seulement)
– vise une famille d’applications très spécifiques totalement inconnues du grand public
– repose sur deux « rootkits-drivers » dont le développement n’est pas franchement trivial
L’on pourrait donc définir trois degrés de dangerosité pour qualifier cette alerte :
– Un niveau « jaune presque vert » frisant le calme plat pour la grande majorité des utilisateurs d’ordinateur, lesquels ne sont pas directement concernés par la menace TmpHider.
– Un niveau rouge vif avec quelques éclats de shrapnel à l’attention de toute entreprise utilisant WinCC, débutant par une recommandation du genre « isolez impérativement des accès Internet tout système de pilotage industriel, interdisez tout accès physique au personnel non autorisé, vérifiez les politiques de sécurité contrôlant les accès USB et réseau LAN desdites machines »… des bonnes pratiques généralement observées par les responsables de ce genre d’architecture (http://club.wincc.free.fr/Frame.htm).
– Une seconde alerte rouge-carmin prospective, plus spécialement orientée sur l’exploit .lnk lui-même, qui a de fortes probabilités de se retrouver utilisé par des auteurs de virus plus classiques.
Nick Harbour, dans un article publié sur M-unition, s’intéresse aux différentes méthodes permettant de lancer un exécutable sans toucher ni à la base de registre, ni au répertoire de démarrage, ni aux autres méthodes conventionnelles connues à ce jour.
Le principe de son « lanceur de malware » est assez subtil : il repose sur l’ordre de recherche et d’exécution des dll appelées par un programme. Car si bon nombre de dll sont confinées dans le répertoire System32 ou dans des emplacements précis répertoriés par la table des dll « connues » (HKLM\System\CurrentControlSet\Control\Session Manager\KnownDLLs), rien n’interdit d’installer une « fausse dll » homonyme dans le répertoire où se situe l’exécutable appelant. Et c’est cette fausse dll qui sera prise en compte, prioritairement à celle située a priori dans ce fameux répertoire system32… avec des conséquences qui font froid dans le dos. Et des emplacements privilégiés et prioritaires, il n’y en a pas qu’un. Sur un noyau 32 bits nouvellement installé, il en existe plus de 1300… et le nombre augmente avec les systèmes 64 bits.
Pour achever de convaincre son auditoire, l’auteur offre un court programme chargé de lister tous les emplacements exploitables dans lesquels l’on peut cacher une dll empoisonnée.