- Schéma d’un flux d’attaque en plusieurs étapes qui exploite en chaîne de nombreux formats de fichiers et fonctionnalités Windows hérités, comme OOXML, RTF, OLE, CHM, VBScript, jusqu’à atteindre le payload PEAPOD final
- Un OOXML hébergé à distance charge le afchunk.rtf intégré, dont les objets OLE constituent le point de départ de liens vers des ressources externes et de la fuite d’identifiants
- Pendant l’attaque, des identifiants NTLM sont envoyés vers un serveur SMB contrôlé par l’attaquant, puis des fichiers malveillants sont déposés via un fichier
.search-mset une archive ZIP écrite dans%LocalAppData% - Si l’on supprimait toutes les technologies figurant dans ce graphique, environ 80 % des problèmes de sécurité seraient résolus, et Windows serait de fait une « couche de compatibilité des malwares pour tout »
- Diagnostic compatible sur deux plans : Microsoft ne peut pas supprimer ces technologies héritées pour des raisons commerciales légitimes, tout en admettant qu’aucun système à forte valeur ne peut jamais être réellement sûr sur cette pile
Étape 1 — Entrée par document et fuite d’identifiants
- Un document OOXML hébergé à distance charge le afchunk.rtf intégré via XML
- Deux objets OLE sont présents dans afchunk.rtf et servent de point de bifurcation pour les connexions externes et le vol d’identifiants
- Les objets OLE pointent vers le lien
/MSHTML_C7/start.xml - Les objets OLE récupèrent les identifiants NTLM et les envoient vers un serveur SMB contrôlé par l’attaquant
- Les objets OLE pointent vers le lien
file001.urlpointe lui aussi vers le même serveur SMB
Étape 2 — Via XSLT et iframe
/MSHTML_C7/start.xmlmène àstart.xmlau format XSLT- start.xml (XSLT) pointe vers RFile.asp
- RFile.asp génère deux iframes, qui se reconnectent ensuite au serveur SMB contrôlé par l’attaquant
Étape 3 — Livraison de fichiers via le serveur SMB
- Le serveur SMB livre
[somehex]_file001.htm [somehex]_file001.htmmène à un fichier .search-ms, qui déclenche une archive ZIP écrite dans%LocalAppData%[somehex]_file001.htmbifurque aussi versredir_obj.htm, et redir_obj.htm charge1111.htm
Étape 4 — Déploiement du ZIP et exécution du payload
- L’archive ZIP écrite dans
%LocalAppData%contient2222.chmet1111.htm 2222.chmchargefile1.mhtfile1.mht→fileH.htm→ VBScript downloader- Le VBScript downloader exécute finalement le payload PEAPOD
Critique centrale — Technologies Windows héritées et sécurité
- Affirmation selon laquelle supprimer toutes les technologies présentes dans le graphique résoudrait environ 80 % des problèmes de sécurité informatique
- Formulation selon laquelle Windows joue le rôle de « couche de compatibilité des malwares pour tout » (malware compatibility layer)
- Le fait que Microsoft ne puisse pas retirer ces technologies héritées pour des raisons commerciales légitimes, et le fait qu’aucun système à forte valeur ne puisse être sûr tant qu’il repose sur cette pile, sont deux constats qui peuvent coexister
- À la lumière d’une expérience concrète de la manière dont sont configurés les systèmes PLC « air-gapped » dans les usines, soulagement de voir que la cyberguerre cinétique causant des dégâts physiques n’est pas une réalité
1 commentaires
Avis de Hacker News
Plus une plateforme est puissante pour de nombreux usages, plus les malwares finissent forcément par apparaître.
Si les malwares grand public ciblent moins le desktop Linux, c’est parce que sa part de marché tourne autour de 3 %, et qu’il vaut mieux viser le desktop Windows, qui permet de toucher beaucoup plus d’utilisateurs.
La seule autre option consiste à transformer l’ordinateur en pratique en téléphone haut de gamme, c’est-à-dire en appareil verrouillé de consommation de médias, en mettant tout dans des sandboxes et en retirant les droits permettant de faire de « mauvaises » choses.
Le pistage fait bien sûr exception, puisque l’entreprise qui fabrique le système d’exploitation vend aussi de la publicité.
Ce n’est pas devenu parfait, mais au fond le problème n’était pas la popularité en soi : c’était la conception non sécurisée du logiciel, et il reste encore beaucoup de marge de progression.
macOS va dans cette direction, et Qubes en est un exemple plus radical.
L’avenir de l’informatique de bureau pourrait bien être un monde où tout s’exécute dans sa propre machine virtuelle.
Linux, sous la forme d’Android, est extrêmement répandu sur les téléphones, et les téléphones sont des cibles aussi attirantes que les desktops, voire davantage aujourd’hui.
Les malwares mobiles existent, mais ils sont bien plus rares et plus difficiles à obtenir.
La manière d’installer des logiciels sous Linux est complètement différente de celle de Windows, et amener quelqu’un à exécuter un tas de binaires demande pas mal d’efforts.
À tel point qu’il est considéré comme plus simple de distribuer sous forme de conteneur que sous forme de binaire compilé pour un desktop donné.
Si l’on regarde au-delà du desktop, Linux est partout dans le monde des serveurs, et c’est le système d’exploitation le plus populaire pour faire tourner des logiciels serveur, ce qui en fait une cible très précieuse pour les hackers.
Difficile d’imaginer quelque chose de plus tentant que de prendre le contrôle des serveurs d’une banque.
Dire qu’il n’existe absolument rien qui rende Linux intrinsèquement plus sûr que Windows paraît déconnecté de la réalité.
Les systèmes de type Unix ont été conçus dès le départ avec le multi-utilisateur en tête, si bien que les droits utilisateur font partie du fonctionnement normal depuis des décennies ; à lui seul, cela constitue une couche de sécurité importante qui rend beaucoup plus difficiles les rootkits ou les vers avec privilèges root.
Les anciens Windows 9x à XP donnaient en pratique des droits administrateur à tout le monde, et écrire ou remplacer des DLL dans system32 était facile.
Pour attaquer Linux, il faut tromper l’utilisateur afin qu’il exécute quelque chose avec des privilèges élevés, ou trouver une vulnérabilité dans un logiciel tournant avec les droits root.
Pour attaquer l’ancien Windows, il suffisait que l’utilisateur exécute mon logiciel.
Sur mobile, Android, c’est-à-dire Linux, est le plus gros acteur, et si l’on raisonne en utilisateurs finaux, il dépasse même Windows.
Pourtant, on n’entend pas autant de plaintes à propos des malwares Android que des malwares Windows.
Je ne pense pas que Microsoft soit incompétent en matière de sécurité Windows, mais certaines décisions de conception historiques ont posé problème.
win9x n’avait pas d’isolation des processus, alors que c’était possible même sur i386, et les gens s’attendaient à ce que les anciens programmes continuent de fonctionner même sous WinXP, qui utilisait le noyau NT.
La distribution centralisée de logiciels sous Windows est relativement récente par rapport à apt, qui existe depuis 1998, et de petits détails comme le masquage des extensions rendent aussi Windows plus facile à cibler que ChromeOS, iOS, Android, macOS ou GNU/Linux.
Je me souviens de l’argument « si Linux devient aussi populaire que Windows, les développeurs de malwares le cibleront », mais si l’on inclut les smart TV, l’infotainment, les serveurs, les supercalculateurs, les systèmes embarqués et surtout le mobile avec Android, Linux est plus gros que Windows depuis longtemps.
Je ne pense pas que sa faible part de marché desktop soit la raison principale du faible nombre de malwares.
https://gs.statcounter.com/os-market-share#monthly-202206-20...
Linux a une surface d’attaque large parce qu’il comporte énormément de paquets, mais son cœur est très ouvert, ce qui attire beaucoup d’attention et de regards.
Les vulnérabilités sont généralement corrigées rapidement, et comme les versions de Linux et les paquets GNU font tourner en pratique tout Internet, les incitations à s’y introduire ne manquent pas.
De plus, sous Linux, il est beaucoup plus facile de voir si un processus fait quelque chose qu’il ne devrait pas faire, et plus simple aussi de regarder à l’intérieur pour comprendre ce qui se passe.
Sous Windows, le plus gros problème de sécurité reste la combinaison entre le masquage des extensions par défaut et l’absence de bit d’autorisation d’exécution.
Il devient beaucoup trop facile pour un attaquant de créer un exécutable malveillant avec l’icône d’un document Word ou d’un type de fichier familier, et un utilisateur ordinaire n’a pratiquement aucun moyen d’identifier le danger.
S’il existait un bit d’autorisation d’exécution, un exe venu d’un endroit suspect ne se lancerait pas simplement sans autorisation.
Si les extensions étaient affichées par défaut, même un utilisateur un peu informé pourrait voir le risque.
Puisque Windows affiche déjà beaucoup de notifications, un simple avertissement au premier double-clic — « ceci est un fichier exécutable, soyez prudent » — aiderait beaucoup.
Les binaires reçus via le navigateur reçoivent un attribut étendu « potentiellement dangereux » et affichent un avertissement à la première ouverture, mais la logique est inversée.
Tous les binaires devraient déclencher un avertissement tant qu’ils n’ont pas reçu un attribut indiquant que « l’utilisateur a conscience du risque ».
C’est pourquoi, pour distribuer des malwares, les attaquants doivent utiliser des contournements pénibles, comme des serveurs SMB sur Internet qu’ils contrôlent, afin de faire circuler des exécutables.
Par ailleurs, les ACL Windows disposent de droits d’exécution par utilisateur, groupe et objet lié aux stratégies.
Ils sont activés par défaut pour les exécutables lisibles, mais rien n’empêche de rendre un exécutable non exécutable.
En plus, presque tous les exécutables affichent par défaut un énorme avertissement du genre « ce programme essaie d’infecter votre ordinateur, de tuer vos animaux de compagnie et d’offrir vos enfants à Satan ».
On peut le désactiver, mais dans la plupart des cas il est activé.
C’est pour cela que les attaquants exploitent les effets de bord de cas périphériques comme l’intégration OLE dans RTF ou les wrappers CHM/MHT.
La moitié de ce graphe pourrait aussi fonctionner sur macOS ou Linux configurés pour un environnement d’entreprise.
La plupart de ces étapes relèvent du fonctionnement normal des navigateurs et des applications bureautiques.
Le point essentiel est qu’il n’y a pas de code réellement exécutable dans le contexte du système d’exploitation jusqu’à la toute fin, quand le dernier sandbox est contourné et que le script télécharge la charge utile réelle.
L’utilisateur doit le débloquer manuellement.
Il est possible que cette fonction ait été désactivée.
Comme il faut autoriser presque tout ce qu’on télécharge depuis Internet, beaucoup de gens la désactivent par lassitude.
Le navigateur par défaut avertit avant le téléchargement, SmartScreen demande confirmation avant d’exécuter les applications non vérifiées, puis l’UAC pose une dernière question.
Dans les faits, beaucoup d’environnements sont même configurés pour interdire l’exécution dans l’ensemble du profil utilisateur.
De nos jours, les malwares ne sont même pas le pire aspect de Windows.
Windows est en pratique un moteur de télémétrie téléchargeable, un kart de spyware avec un écran de connexion.
Quand il ne se comporte pas comme un camelot de galerie marchande en essayant de vendre toutes sortes de produits et d’inutilités sélectionnés grâce à la surveillance, il vous gaslight comme un ex toxique en affirmant que vous n’avez pas « besoin » d’un nouveau navigateur.
Lors d’une mise à niveau, il faut prier pour que le matériel soit compatible.
Redmond déploie la même énergie inépuisable pour vous convaincre qu’un PC de cinq ans qui fonctionne parfaitement est « obsolète » que pour vous rappeler d’aller voir son app store de ville fantôme et son terrain de jeu à microtransactions.
Même si vous avez réussi à installer Chrome d’une manière ou d’une autre, la plupart des applications ne conserveront pas longtemps ce choix par défaut dès que Microsoft détectera un goût non approuvé par le service marketing.
Windows titube de stand en stand comme un clown zombie dans une fête fantôme, rend les gens mal à l’aise par sa simple existence, puis retourne sous le chapiteau de l’Amérique corporate.
C’est peut-être désormais le seul endroit où il reste un public prêt à accueillir Windows.
Le bureau donne vraiment l’impression d’une station de Subway couverte partout de pubs d’avocats miteux et de graffitis, c’est répugnant.
C’est stupéfiant de voir combien de combinaisons de boutons débouchent sur des popups vous invitant à utiliser d’autres produits Microsoft dont vous n’avez pas besoin.
Je n’arrive pas à croire que ce soit devenu aussi mauvais.
Il faut une alternative à Windows pour le consommateur moyen.
C’est une digression générale.
L’article porte sur la sécurité informatique et n’a rien à voir avec l’expérience utilisateur hostile de Windows.
Windows est une couche de compatibilité avec les malwares pour tout.
Windows NT et toutes les versions ultérieures de Windows disposent de contrôles de sécurité hérités de VMS, ce qui leur donne plus de contrôles de sécurité que presque n’importe quel autre système d’exploitation.
Mais pour réduire les frictions et favoriser l’adoption, la plupart sont désactivés ou affaiblis.
Sous Linux aussi, les contrôles de sécurité sont faibles par défaut, mais son arrivée tardive sur le marché et le fait qu’il ne soit pas aussi « cliquer et c’est parti » que Windows ont créé davantage de friction pour les utilisateurs non techniques au départ.
Ce n’est pas seulement une question de contrôles de sécurité.
Windows comme Linux autorisent par défaut le surengagement mémoire, ce qui peut affecter la stabilité mais favorise l’adoption par les développeurs.
Tout cela peut être renforcé, mais au risque de casser des applications écrites pour le comportement par défaut.
Comme d’autres l’ont dit, Windows est la cible par défaut parce que c’est le système le plus adopté et le plus utilisé.
Si Linux passe un jour devant, les auteurs de malwares s’y intéresseront aussi davantage.
udev, les montages binfmt, eBPF, systemd et la manière dont ils sont actuellement interconnectés recèlent encore de nombreux vecteurs d’attaque inexplorés.
Si le jeu sous Linux continue de s’améliorer au rythme actuel, cela pourrait arriver plus tôt qu’on ne le pense.
Les plateformes de jeu codent souvent en fonction du comportement par défaut ou s’attendent à des privilèges élevés, ce qui rend le durcissement du système d’exploitation impossible, et peu de gens achèteront une machine séparée dédiée au jeu pour la séparer de l’appareil qu’ils utilisent pour les impôts, la banque, l’e-mail et les réseaux sociaux.
Au début, je pensais que ce tweet parlait des langages non sûrs pour la mémoire comme C et C++ et des compilateurs JIT des navigateurs web
Parce qu’il disait en substance que « les problèmes de sécurité informatique seraient résolus à environ 80 % si l’on abandonnait toutes les technologies montrées dans cette image »
Chromium dit qu’« environ 70 % des bugs de sécurité de gravité élevée sont des problèmes de sûreté mémoire, c’est-à-dire des erreurs de pointeurs en C/C++, et que la moitié d’entre eux sont des bugs use-after-free »
https://www.chromium.org/Home/chromium-security/memory-safet...
Microsoft dit aussi qu’« environ 70 % des vulnérabilités auxquelles un CVE est attribué chaque année restent des problèmes de sûreté mémoire »
https://msrc.microsoft.com/blog/2019/07/a-proactive-approach...
Le titre HN est lui aussi une version éditée du texte original
Si ma mémoire est bonne, ils testent pour la première fois un remplaçant de DLL basé sur Rust, et même en migrer la moitié pourrait prendre pas mal de temps
La plupart des malwares abusent logiquement de fonctionnalités courantes du système d’exploitation
Je ne pense pas qu’on puisse dire que « la sécurité informatique serait résolue à environ 80 % »
On utiliserait d’autres vecteurs d’attaque, et une fois la plupart des chemins d’attaque bloqués, on arriverait à des systèmes d’exploitation de smartphones avec très peu de privilèges et un suivi à grande échelle
Et pourtant les malwares pourraient toujours pulluler
https://www.bleepingcomputer.com/news/security/apps-with-15m...
La cause de tout cela, c’est la rétrocompatibilité, et c’est vraiment délicat à gérer
Dans un monde idéal, chaque fois qu’il faudrait casser la compatibilité, on fournirait une documentation énorme et on rendrait la migration aussi painless que possible
Mais il y a le petit problème des logiciels abandonnés
Il existe un nombre surprenant de cas où des logiciels dont plus personne ne sait comment ils fonctionnent sont nécessaires à des tâches critiques
Faudrait-il rendre illégal le fait que des entreprises et des organismes proches du secteur public fonctionnent avec des logiciels propriétaires que personne ne maintient activement et qui ne disposent d’aucun contrat de support ?
MHTML résout un vrai problème, et VBScript est une sorte de bash avec une syntaxe différente
L’intégration OLE est malheureusement peu utilisée aujourd’hui, mais c’est une excellente idée
Pouvoir mettre une feuille de calcul dans un document texte sans bricolages de tableaux bizarres, c’est une bonne idée
Les macros VBA font tourner plus d’entreprises que n’importe quelle startup
Les fichiers d’aide CHM étaient vraiment excellents, et c’est dommage qu’ils aient été remplacés par de mauvais sites web qui obligent à dépendre de Google pour trouver réellement quelque chose
Pouvoir non seulement enregistrer des résultats de recherche complexes, mais aussi les partager, était également une bonne idée, mais elle n’a pas été suffisamment mise en avant
Une fonction permettant d’envoyer un fichier pour retrouver « les photos prises avec mon appareil entre août et septembre de l’an dernier » est une bonne idée, car elle évite d’envoyer un album photo propriétaire
Quoi qu’on dise de l’enfermement propriétaire et des pratiques commerciales épouvantables, Microsoft a eu d’excellentes idées que les systèmes d’exploitation concurrents n’ont reproduites que des années, voire des décennies plus tard
Dans la plupart des produits concurrents, on ne peut toujours pas intégrer des documents aussi facilement et efficacement que dans Microsoft Office
Ces fonctions ne sont pas abandonnées : elles sont utilisées par des millions de personnes dans le monde
Microsoft devrait améliorer la configuration de ses outils pour mieux détecter le code exécutable
Le VBScript en bout de chaîne n’aurait pas dû s’exécuter
La plupart des autres outils « legacy » manqueraient si on les faisait disparaître à cause du risque de malware
Il y a les VM, DOSBox, Wine, etc.
Il y a environ dix ans, on a découvert qu’un processus critique tournant sur toutes les machines des magasins Home Depot dépendait d’un programme appelé Batchman
Batchman était un utilitaire à saisir au clavier publié dans PC Magazine en 1989
Si l’on casse la compatibilité, quelqu’un doit recréer ce processus qui tournait tranquillement depuis des décennies
Personne dans l’équipe HD avec laquelle je travaillais n’avait jamais vu ce code, ni ne savait ce qu’était Batchman ou ce qu’il faisait
La pile la plus populaire devient toujours la cible privilégiée des malwares
Si une autre plateforme représentait 90 % des proies, je me demande si l’on pense vraiment que cette plateforme ne deviendrait pas, de façon écrasante, victime des malwares
Pour référence, j’ai travaillé dans les années 80 comme responsable de première ligne de la suppression de malwares ; à l’époque, les principales cibles étaient les Apple Mac des salles informatiques universitaires
Quel était le malware le plus malin que vous ayez supprimé à l’époque ?
Ce n’est pas un peu comme dire que « si l’on abandonnait l’histoire, il y aurait beaucoup moins de problèmes » ?
Mais l’histoire existe bel et bien
Et à chaque fois que je clique sur un lien Twitter, j’ai droit à « Une erreur s’est produite » et je dois actualiser ; c’est ça, le Twitter moderne ?
Donc selon ce qu’on entend par moderne, c’est à la fois vrai et faux
https://nitter.net/matthew_d_green/status/167913542680678400...