{"id":25163,"date":"2024-09-12T09:07:21","date_gmt":"2024-09-12T17:07:21","guid":{"rendered":"http:\/\/www.palada.net\/index.php\/2024\/09\/12\/news-18893\/"},"modified":"2024-09-12T09:07:21","modified_gmt":"2024-09-12T17:07:21","slug":"news-18893","status":"publish","type":"post","link":"https:\/\/www.palada.net\/index.php\/2024\/09\/12\/news-18893\/","title":{"rendered":"Poortry et Stonestop : am\u00e9lioration d\u2019un outil d&#8217;attaque (EDR Killer) qui affecte les ordinateurs Windows"},"content":{"rendered":"<p><strong>Credit to Author: Nicolas Pommier| Date: Thu, 29 Aug 2024 17:05:40 +0000<\/strong><\/p>\n<div class=\"entry-content lg:prose-lg mx-auto prose max-w-4xl\">\n<p>En 2022 et 2023, <a href=\"https:\/\/news.sophos.com\/fr-fr\/category\/threat-research\/\" target=\"_blank\" rel=\"noopener\">Sophos X-Ops<\/a> a publi\u00e9 une \u00e9tude sur un <a href=\"https:\/\/news.sophos.com\/fr-fr\/2022\/12\/26\/pilotes-malveillants-signes-montent-chaine-de-confiance-logiciels\/\" target=\"_blank\" rel=\"noopener\">ensemble d&#8217;outils permettant de saboter les fonctions des logiciels de protection endpoint<\/a>, d\u00e9velopp\u00e9s et utilis\u00e9s en collaboration avec plusieurs gangs de ransomware majeurs. <em>Mandiant<\/em> avait pr\u00e9c\u00e9demment nomm\u00e9 cet outil <em>Poortry<\/em> et son application de chargement <em>Stonestop<\/em>.<\/p>\n<p>Les cr\u00e9ateurs de l\u2019outil <strong>Poortry<\/strong> ont r\u00e9ussi \u00e0 faire signer des pilotes au niveau du noyau, sp\u00e9cialement con\u00e7us et personnalis\u00e9s, via le processus de signature d\u2019attestation de Microsoft. Apr\u00e8s avoir publi\u00e9 nos recherches (et apr\u00e8s le traitement par Microsoft de cette faille qui permettait \u00e0 ces pilotes d\u2019\u00eatre sign\u00e9s), les cr\u00e9ateurs de l\u2019outil ne se sont pas arr\u00eat\u00e9s l\u00e0. Ils ont continu\u00e9 \u00e0 ajouter des fonctionnalit\u00e9s au pilote <em>Poortry<\/em>, dans une tentative continue d&#8217;\u00e9chapper \u00e0 la d\u00e9tection et de trouver de nouvelles fa\u00e7ons de d\u00e9sactiver les logiciels EDR et de protection endpoint.<\/p>\n<p>Pour expliquer les nouvelles fonctionnalit\u00e9s de <em>Poortry<\/em>, examinons comment les pilotes interagissent avec le syst\u00e8me d\u2019exploitation et comment les d\u00e9veloppeurs de cet EDR Killer ont fait \u00e9voluer leur outil au fil du temps.<\/p>\n<h2>Comment les pilotes Windows peuvent saboter la protection ?<\/h2>\n<p>La plupart des EDR Killers s\u2019appuient sur un pilote de p\u00e9riph\u00e9rique charg\u00e9 dans le noyau du syst\u00e8me d\u2019exploitation, leur donnant ainsi acc\u00e8s \u00e0 des fonctionnalit\u00e9 de bas niveau qui permettent de d\u00e9sactiver et bloquer diff\u00e9rents types de logiciel de protection.<\/p>\n<p>Sous Windows, qui prend en charge une multitude de p\u00e9riph\u00e9riques et de composants connect\u00e9s, les pilotes en mode noyau b\u00e9n\u00e9ficient d&#8217;une grande latitude pour ces types de fonction de bas niveau. Dans des circonstances normales, ces pilotes n\u2019interagissent pas avec les logiciels ou le mat\u00e9riel d\u2019autres entreprises ou fabricants, mais ce type de comportement n\u2019est pas une obligation. Ainsi, si un pilote l\u00e9gitime sign\u00e9 ne valide pas correctement les processus interagissant avec lui, les EDR Killers peuvent exploiter certaines de ses fonctionnalit\u00e9s pour supprimer les mesures de protection.<\/p>\n<p>Microsoft a d\u00e9velopp\u00e9 plusieurs m\u00e9thodes permettant \u00e0 ses syst\u00e8mes d&#8217;exploitation de contr\u00f4ler si les pilotes sont charg\u00e9s ou non, comme le m\u00e9canisme DSE (<em>Driver Signature Enforcement<\/em>) : les pilotes doivent \u00eatre sign\u00e9s num\u00e9riquement par un \u00e9diteur de logiciels auquel Microsoft fait confiance avant de pouvoir \u00eatre charg\u00e9s.<\/p>\n<p>Les d\u00e9veloppeurs d&#8217;EDR Killers exploitent les lacunes de ce mod\u00e8le de confiance : en effet, ils peuvent utiliser un pilote vuln\u00e9rable \u00e0 certains abus qui a d\u00e9j\u00e0 \u00e9t\u00e9 publi\u00e9 par une soci\u00e9t\u00e9 de logiciels l\u00e9gitime ; ils peuvent \u00e9galement signer leur propre pilote avec un certificat de signature de code l\u00e9gitime (et il existe de nombreuses fa\u00e7ons d&#8217;obtenir des certificats vol\u00e9s ou divulgu\u00e9s).<\/p>\n<p>En g\u00e9n\u00e9ral, il existe trois fa\u00e7ons, utilis\u00e9es par les d\u00e9veloppeurs d&#8217;EDR Killers, pour exploiter de mani\u00e8re malveillante des signatures de code :<\/p>\n<h2>Abus de certificats divulgu\u00e9s<\/h2>\n<p>Voici la mani\u00e8re la plus simple de g\u00e9rer ce probl\u00e8me : recherchez un certificat de signature de code divulgu\u00e9, vol\u00e9 ou bien compromis aupr\u00e8s d&#8217;une entreprise l\u00e9gitime et utilisez-le pour signer votre pilote (ou pour tromper les RCA &#8211; <em>Root Certificate Authorities<\/em> &#8211; afin qu&#8217;elles vous d\u00e9livrent un certificat).<\/p>\n<p>Pour toutes les versions de Windows post\u00e9rieures \u00e0 Windows 10 version 1607, Microsoft a exig\u00e9 que tous les d\u00e9veloppeurs tiers de pilotes en mode noyau soumettent leur pilote au portail des d\u00e9veloppeurs de Microsoft, pour qu&#8217;il soit soumis \u00e0 une signature crois\u00e9e de Microsoft. Cependant, les pilotes sign\u00e9s de mani\u00e8re crois\u00e9e et non sign\u00e9s par Microsoft peuvent toujours \u00eatre charg\u00e9s s&#8217;ils remplissent l&#8217;une des conditions suivantes :<\/p>\n<ul>\n<li>Le PC a \u00e9t\u00e9 mis \u00e0 niveau \u00e0 partir d&#8217;une version ant\u00e9rieure de Windows vers Windows 10, version 1607.<\/li>\n<li>Le d\u00e9marrage s\u00e9curis\u00e9 (<em>Secure Boot<\/em>) est d\u00e9sactiv\u00e9 dans le BIOS du syst\u00e8me.<\/li>\n<li>Le pilote a \u00e9t\u00e9 sign\u00e9 avec un certificat d&#8217;entit\u00e9 finale (<em>end-entity<\/em>) \u00e9mis avant le 29 juillet 2015 qui est li\u00e9 \u00e0 une autorit\u00e9 de certification (CA) \u00e0 signature crois\u00e9e et prise en charge.<\/li>\n<\/ul>\n<p>M\u00eame si la mise \u00e0 jour a r\u00e9duit le danger que repr\u00e9sentent des pilotes \u00e0 signature crois\u00e9e et sign\u00e9s par des certificats vol\u00e9s, la troisi\u00e8me point mentionn\u00e9 cr\u00e9e une faille qui permet aux attaquants d&#8217;utiliser la deuxi\u00e8me m\u00e9thode.<\/p>\n<h2>Falsification de l&#8217;horodatage de la signature<\/h2>\n<p>Afin de maintenir la compatibilit\u00e9 avec les pilotes plus anciens, Windows charge les pilotes sign\u00e9s avec &#8220;un certificat d&#8217;entit\u00e9 finale \u00e9mis avant le 29 juillet 2015 qui est li\u00e9 \u00e0 une autorit\u00e9 de certification \u00e0 signature crois\u00e9e et prise en charge&#8221;.<\/p>\n<p>Lors de la signature d\u2019un pilote de noyau, Microsoft fournit \u00e0 l\u2019\u00e9diteur du logiciel un outil nomm\u00e9 <a href=\"https:\/\/learn.microsoft.com\/fr-fr\/dotnet\/framework\/tools\/signtool-exe\" target=\"_blank\" rel=\"noopener\">signtool.exe<\/a>. En plus de signer le fichier fourni, <em>signtool<\/em> v\u00e9rifie \u00e9galement que le certificat fourni soit toujours valide. Une fa\u00e7on de garantir cette validit\u00e9 est d&#8217;utiliser cette fonction.<\/p>\n<p>Gr\u00e2ce \u00e0 une s\u00e9rie de <em>hooks <\/em>au niveau de\u00a0ces appels API de bas niveau \u00e0 l\u2019int\u00e9rieur du syst\u00e8me d\u2019exploitation, les attaquants peuvent modifier le processus de signature et contourner ces contr\u00f4les pour signer leur propre pilote de noyau. L\u2019une des fonctions utilis\u00e9es dans cette technique est <a href=\"https:\/\/learn.microsoft.com\/fr-fr\/windows\/win32\/api\/sysinfoapi\/nf-sysinfoapi-getlocaltime\" target=\"_blank\" rel=\"noopener\">GetLocalTime<\/a> pour renvoyer un horodatage falsifi\u00e9 afin de passer avec succ\u00e8s les v\u00e9rifications dans <em>signtool.exe<\/em>.<\/p>\n<h2>Contourner la signature d\u2019attestation de Microsoft<\/h2>\n<p>La derni\u00e8re m\u00e9thode consiste \u00e0 passer par le processus de signature d\u2019attestation de Microsoft et \u00e0 faire signer le pilote du noyau directement par ce dernier. C&#8217;est probablement la m\u00e9thode la plus difficile \u00e0 mettre en \u0153uvre, mais elle fournit \u00e9galement une signature avec un certificat WHQL solide \u00e9mis par Microsoft lui-m\u00eame, d&#8217;une certaine mani\u00e8re le Saint Graal des signatures num\u00e9riques.<\/p>\n<p>Pour abuser de cette m\u00e9thode, les attaquants ont besoin :<\/p>\n<ul>\n<li>D\u2019un certificat EV valide.<\/li>\n<li>D\u2019un acc\u00e8s au portail des d\u00e9veloppeurs Microsoft.<\/li>\n<\/ul>\n<p>Si ces exigences sont remplies, ils peuvent pr\u00e9parer un fichier CAB, qui inclut le pilote lui-m\u00eame, le signer avec le certificat EV et le soumettre au tableau de bord (<em>dashboard<\/em>).<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957125\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-1.png?w=640\" alt=\"poortry\" width=\"530\" height=\"314\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-1.png 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-1.png?resize=300,178 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-1.png?resize=768,456 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-1.png?resize=1024,608 1024w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/a><\/p>\n<p>Une fois soumis, le pilote subit plusieurs contr\u00f4les pour s&#8217;assurer qu&#8217;il n&#8217;est pas malveillant. Si le pilote r\u00e9ussit ces tests, il portera la signature &#8220;<em>Microsoft Windows Hardware Compatibility Publisher<\/em>&#8220;.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957126\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-2.png?w=640\" alt=\"poortry\" width=\"397\" height=\"530\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-2.png 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-2.png?resize=224,300 224w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-2.png?resize=768,1027 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-2.png?resize=766,1024 766w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-2.png?resize=1149,1536 1149w\" sizes=\"auto, (max-width: 397px) 100vw, 397px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>L&#8217;un des pilotes sign\u00e9s par WHQL lors des attaques de 2022-2023.<\/em><\/p>\n<h2>Poortry et Stonestop : une menace \u00e0 prendre en compte depuis 2022<\/h2>\n<p><strong>Poortry<\/strong> (parfois aussi appel\u00e9 <em>BurntCigar<\/em>) est un pilote de noyau malveillant utilis\u00e9 en conjonction avec un chargeur nomm\u00e9 <em>Stonestop <\/em>par Mandiant, qui a \u00e9t\u00e9 le premier \u00e0 signaler l&#8217;existence de l&#8217;outil. Le pilote contourne le m\u00e9canisme DSE (<em>Driver Signature Enforcement<\/em>) en utilisant l\u2019une des trois techniques d\u00e9crites ci-dessus. Les deux sont fortement obfusqu\u00e9s par des packers commerciaux ou open source, tels que <em>VMProtect<\/em>, <em>Themida<\/em> ou <em>ASMGuard<\/em>.<\/p>\n<p>De fin 2022 \u00e0 mi-2023, les variantes de <strong>Poortry<\/strong> portaient le certificat Microsoft WHQL. Cependant, gr\u00e2ce au travail conjoint de Sophos X-Ops et Microsoft, la plupart de ces \u00e9chantillons d&#8217;attestation sign\u00e9s ont \u00e9t\u00e9 retrouv\u00e9s et Microsoft a d\u00e9sactiv\u00e9 les comptes qui ont \u00e9t\u00e9 abus\u00e9s pour signer ces pilotes.<\/p>\n<p>Les cr\u00e9ateurs de <em>Poortry<\/em> n\u2019ont pas, pour autant, baiss\u00e9 les bras ; au lieu de cela, ils ont opt\u00e9 soit pour la falsification d\u2019horodatage de signature, soit pour l\u2019obtention d\u2019un certificat valide ayant \u00e9t\u00e9 divulgu\u00e9.<\/p>\n<p>Au cours de l\u2019ann\u00e9e pass\u00e9e, nous avons pu relier l\u2019utilisation de <em>Poortry<\/em> \u00e0 des attaques impliquant au moins cinq grandes familles de ransomware :<\/p>\n<ul>\n<li>CUBA<\/li>\n<li>BlackCat<\/li>\n<li>Medusa<\/li>\n<li>LockBit<\/li>\n<li>RansomHub<\/li>\n<\/ul>\n<p>Depuis 2023, nous avons observ\u00e9 que les acteurs malveillants utilisaient \u00e0 plusieurs reprises <strong>Poortry<\/strong> lors d\u2019attaques. Lors de nos pr\u00e9c\u00e9dentes recherches nous avons observ\u00e9 une caract\u00e9ristique particuli\u00e8re : \u00e0 savoir que les cr\u00e9ateurs de <em>Poortry<\/em> changeaient fr\u00e9quemment leur packer, cr\u00e9ant ainsi un volume de variantes l\u00e9g\u00e8rement modifi\u00e9es toujours bas\u00e9es sur celle d\u2019origine. Au cours de nos recherches, nous avons trouv\u00e9 plusieurs variantes diff\u00e9rentes sign\u00e9es par WHQL, pr\u00e9par\u00e9es avec diff\u00e9rents packers commerciaux ou non.<\/p>\n<p>Comme cette voie \u00e9tait sans issue pour eux, les cr\u00e9ateurs de <em>Poortry<\/em> d\u00e9ploient d\u00e9sormais des pilotes sign\u00e9s par une grande vari\u00e9t\u00e9 de certificats non-Microsoft.<\/p>\n<p>La figure ci-dessous illustre une chronologie des noms de signataire observ\u00e9s et utilis\u00e9s par le pilote de charge virale de <strong>Poortry<\/strong> sur une p\u00e9riode de 15 mois.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-957127\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-3.png?w=640\" alt=\"poortry\" width=\"640\" height=\"275\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-3.png 1468w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-3.png?resize=300,129 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-3.png?resize=768,330 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-3.png?resize=1024,439 1024w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Il convient de mentionner que parfois, nos observations sont r\u00e9alis\u00e9es lors d\u2019interventions IR (<em>Incident Response<\/em>) et, \u00e0 d\u2019autres moments, elles sont collect\u00e9es sous forme de t\u00e9l\u00e9m\u00e9trie. Une chose dont nous pouvons \u00eatre s\u00fbrs est que le nombre total et la vari\u00e9t\u00e9 des certificats sont plus importants que ce que nos seules observations peuvent d\u00e9terminer.<\/p>\n<h2>Certificats et jeu de la roulette<\/h2>\n<p>Sophos a observ\u00e9, de temps \u00e0 autre, un acteur malveillant d\u00e9ployer des variantes de <strong>Poortry<\/strong> sur diff\u00e9rentes machines au sein d&#8217;un m\u00eame parc lors d&#8217;une attaque. Ces variantes contiennent la m\u00eame charge virale, mais sign\u00e9es avec un certificat diff\u00e9rent de celui du pilote vu pour la premi\u00e8re fois lors de l&#8217;attaque en question. En ao\u00fbt 2023, lors d&#8217;une investigation Sophos X-Ops, nous avons d\u00e9couvert que les attaquants avaient obtenu un acc\u00e8s initial via un outil d&#8217;acc\u00e8s \u00e0 distance nomm\u00e9 <em>SplashTop<\/em>. D\u00e8s que les attaquants ont \u00e9t\u00e9 sur le r\u00e9seau, ils ont d\u00e9ploy\u00e9 <strong>Poortry<\/strong> et <strong>Stonestop<\/strong>. Mais le nom du signataire, &#8220;<em>bopsoft<\/em>&#8220;, \u00e9tait d\u00e9j\u00e0 connu comme \u00e9tant un certificat vol\u00e9 et a donc \u00e9t\u00e9 bloqu\u00e9 \u00e0 l\u2019aide d\u2019une r\u00e8gle comportementale.<\/p>\n<p>Dans les 30 secondes qui ont suivi la derni\u00e8re tentative utilisant le code sign\u00e9 &#8220;<em>Bopsoft<\/em>&#8220;, les attaquants ont charg\u00e9 un autre pilote <strong>Poortry<\/strong>, celui-ci sign\u00e9 par &#8220;<em>Evangel Technology (HK) Limited<\/em>&#8220;. L\u2019h\u00f4te a \u00e9t\u00e9 rapidement isol\u00e9 et l\u2019attaque d\u00e9jou\u00e9e.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957128\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-4.png?w=640\" alt=\"poortry\" width=\"602\" height=\"305\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-4.png 1242w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-4.png?resize=300,152 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-4.png?resize=768,390 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-4.png?resize=1024,519 1024w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/p>\n<h2>Passage d&#8217;un EDR Killer \u00e0 un EDR Wiper<\/h2>\n<p>En juillet 2024, alors qu&#8217;il \u00e9tait impliqu\u00e9 dans un incident o\u00f9 des adversaires tentaient de d\u00e9ployer le ransomware <em>RansomHub<\/em>, <strong>Sophos CryptoGuard<\/strong> a d\u00e9jou\u00e9 la tentative de chiffrement des donn\u00e9es alors que les analystes fermaient les points d&#8217;acc\u00e8s des attaquants. Une analyse post-incident a r\u00e9v\u00e9l\u00e9 que deux ex\u00e9cutables suppl\u00e9mentaires avaient \u00e9t\u00e9 d\u00e9pos\u00e9s sur plusieurs machines avant l&#8217;attaque finale du ransomware :<\/p>\n<pre>&lt;d&gt;Users&lt;u&gt;desktopc7iy3d.exe  &lt;d&gt;Users&lt;u&gt;appdatalocaltempusnnr.sys<\/pre>\n<p>Gr\u00e2ce \u00e0 une combinaison d\u2019analyses statiques et dynamiques, nous avons d\u00e9termin\u00e9 qu\u2019il s\u2019agissait des fichiers <em>Poortry<\/em> et <em>Stonestop<\/em>. Parmi les diff\u00e9rences que nous avons observ\u00e9es entre la version pr\u00e9c\u00e9dente et cette version, <strong>Poortry<\/strong> pouvait d\u00e9sormais \u00e9galement supprimer compl\u00e8tement les composants EDR critiques, au lieu de simplement mettre fin \u00e0 leurs processus.<\/p>\n<p>Trend Micro a <a href=\"https:\/\/www.trendmicro.com\/fr_fr\/research\/23\/e\/blackcat-ransomware-deploys-new-signed-kernel-driver.html\" target=\"_blank\" rel=\"noopener\">rapport\u00e9<\/a> en 2023 que <em>Poortry<\/em> avait d\u00e9velopp\u00e9 la capacit\u00e9 de supprimer des fichiers du disque, mais c&#8217;\u00e9tait la premi\u00e8re fois que nous observions cette fonctionnalit\u00e9 utilis\u00e9e dans une attaque.<\/p>\n<h2>Une observation plus approfondie des derni\u00e8res variantes<\/h2>\n<p>L&#8217;ex\u00e9cutable <em>Stonestop<\/em> et le pilote <em>Poortry<\/em> utilisent tous deux massivement les packers et l&#8217;obfuscation. Ce <em>chargeur\/loader<\/em> a \u00e9t\u00e9 obfusqu\u00e9 par un packer \u00e0 source ferm\u00e9e nomm\u00e9 <em>ASMGuard<\/em>, disponible sur Github.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957129\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-5.png?w=640\" alt=\"poortry\" width=\"537\" height=\"458\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-5.png 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-5.png?resize=300,256 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-5.png?resize=768,656 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-5.png?resize=1024,875 1024w\" sizes=\"auto, (max-width: 537px) 100vw, 537px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Les propri\u00e9t\u00e9s du pilote PoorTry affich\u00e9es dans CFF Explorer r\u00e9v\u00e8lent que le fichier a \u00e9t\u00e9 cr\u00e9\u00e9 en ao\u00fbt 2024.<\/em><\/p>\n<p>Le pilot\u00e9 est sign\u00e9 avec un certificat portant le nom du signataire &#8220;<em>FEI XIAO<\/em>&#8220;. Sophos X-Ops est convaincu que l&#8217;horodatage de la signature a \u00e9t\u00e9 falsifi\u00e9 pour signer le pilote. Il tente notamment de se faire passer pour un pilote (<em>idmtdi.sys<\/em>) d\u2019un logiciel disponible dans le commerce, <a href=\"https:\/\/www.tonec.com\/products\/idm\/index.html\" target=\"_blank\" rel=\"noopener\">Internet Download Manager de Tonec Inc.<\/a>, en utilisant les m\u00eames informations dans sa feuille de propri\u00e9t\u00e9s. Mais il ne s&#8217;agit pas du pilote de ce logiciel : les attaquants ont simplement clon\u00e9 les informations \u00e0 partir de celui-ci.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957130\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-6.png?w=640\" alt=\"poortry\" width=\"381\" height=\"479\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-6.png 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-6.png?resize=238,300 238w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-6.png?resize=768,967 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-6.png?resize=813,1024 813w\" sizes=\"auto, (max-width: 381px) 100vw, 381px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Feuille de propri\u00e9t\u00e9s du pilote PoorTry avec des dates de validit\u00e9 ant\u00e9rieures \u00e0 sa cr\u00e9ation de plus d&#8217;une d\u00e9cennie.<\/em><\/p>\n<p>Pour faciliter les explications, nous divisons le flux d\u2019ex\u00e9cution en trois phases distinctes.<\/p>\n<h2>Phase d&#8217;initialisation<\/h2>\n<p>Dans les incidents que nous avons suivis, les acteurs malveillants d\u00e9posent <em>Poortry<\/em> et <em>Stonestop<\/em> ensemble, dans le m\u00eame r\u00e9pertoire. Lors de l&#8217;ex\u00e9cution, <em>Stonestop<\/em> v\u00e9rifie le pilote correspondant dans le r\u00e9pertoire courant.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957131\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-7.png?w=640\" alt=\"poortry\" width=\"338\" height=\"198\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-7.png 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-7.png?resize=300,176 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-7.png?resize=768,451 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-7.png?resize=1024,601 1024w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Message d&#8217;erreur affich\u00e9 lorsque le chargeur\/loader ne parvient pas \u00e0 se connecter au pilote du noyau.<\/em><\/p>\n<p>Le nom de fichier et le nom de p\u00e9riph\u00e9rique du pilote sont tous deux hardcod\u00e9s dans le chargeur. Au d\u00e9marrage, le chargeur r\u00e9cup\u00e8re le <em>handle<\/em> du pilote de noyau malveillant et lance un \u00e9tablissement de liaison (<em>handshake<\/em>) en envoyant une cha\u00eene hardcod\u00e9e au pilote via l&#8217;appel API <a href=\"https:\/\/learn.microsoft.com\/fr-fr\/windows\/win32\/api\/ioapiset\/nf-ioapiset-deviceiocontrol\" target=\"_blank\" rel=\"noopener\">DeviceIoControl<\/a>.<\/p>\n<p>Dans l\u2019ensemble, la communication entre les composants s\u2019effectue via l&#8217;API <em>DeviceIoControl<\/em>. Chaque fonctionnalit\u00e9 fournie par le composant en mode noyau est d\u00e9clench\u00e9e via l&#8217;envoi d&#8217;un code IOCTL diff\u00e9rent. Les variantes ant\u00e9rieures communiquaient via le <em>handler<\/em> <strong>IRP_MJ_DEVICE_CONTROL<\/strong>. La variante actuelle utilise d\u00e9sormais le <em>handler<\/em> <strong>IRP_MJ_MAXIMUM_FUNCTION<\/strong> pour recevoir les paquets de requ\u00eate E\/S.<\/p>\n<p>Il convient de mentionner que les mappages du code IOCTL avec les diverses fonctionnalit\u00e9s ont chang\u00e9 depuis notre derni\u00e8re analyse. \u00c0 titre d\u2019exemple, la commande permettant de tuer un processus sp\u00e9cifique par ID de processus a \u00e9t\u00e9 d\u00e9clench\u00e9e par l\u2019envoi d\u2019un paquet de requ\u00eate E\/S avec le code <strong>0x222094<\/strong>. Le dernier \u00e9chantillon mappe le code IOCTL <strong>0x222144<\/strong> avec la m\u00eame fonctionnalit\u00e9.<\/p>\n<p>Depuis le rapport 2023 de Trend Micro, les d\u00e9veloppeurs de <em>Poortry<\/em> ont augment\u00e9 le nombre de codes IOCTL recevables de 10 \u00e0 22. Notre analyse de toutes les fonctionnalit\u00e9s disponibles est toujours en cours.<\/p>\n<p>Comme les versions pr\u00e9c\u00e9dentes, un \u00e9tablissement de liaison (<em>handshake<\/em>) est initi\u00e9 en envoyant une cha\u00eene hardcod\u00e9e au pilote. Une fois la valeur du <em>handshake<\/em> accept\u00e9e, elle d\u00e9finit un indicateur (<em>flag<\/em>) dans le binaire qui active les fonctionnalit\u00e9s du pilote malveillant.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-957132\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png?w=640\" alt=\"poortry\" width=\"640\" height=\"33\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png 12068w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png?resize=300,16 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png?resize=768,40 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png?resize=1024,53 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png?resize=1536,80 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-8.png?resize=2048,107 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Valeur du handshake envoy\u00e9e \u00e0 Poortry<\/em><\/p>\n<h2>Phase d\u2019alt\u00e9ration<\/h2>\n<p>La deuxi\u00e8me phase est ax\u00e9e sur la d\u00e9sactivation des produits EDR via une s\u00e9rie de techniques diff\u00e9rentes, telles que la suppression ou la modification des routines de notification du noyau.<\/p>\n<p>Les pilotes de s\u00e9curit\u00e9 utilisent plusieurs fonctionnalit\u00e9s diff\u00e9rentes fournies par le syst\u00e8me d&#8217;exploitation Windows pour enregistrer des rappels (<em>callbacks<\/em>) lorsque des \u00e9v\u00e9nements sp\u00e9cifiques se produisent sur le syst\u00e8me Windows. Un exemple serait la fonction <a href=\"https:\/\/learn.microsoft.com\/fr-fr\/windows-hardware\/drivers\/ddi\/ntddk\/nf-ntddk-pssetcreateprocessnotifyroutine\" target=\"_blank\" rel=\"noopener\">PsSetCreateProcessNotifyRoutine<\/a>, qui ajoute une routine de rappel (<em>callback<\/em>) fournie par le pilote lorsqu&#8217;un nouveau processus est cr\u00e9\u00e9.<\/p>\n<p>L\u2019\u00e9limination de ces routines de rappel est souvent une \u00e9tape critique pour rendre les produits EDR inefficaces. En 2022, nous avons \u00e9galement \u00e9crit sur <a href=\"https:\/\/news.sophos.com\/en-us\/2022\/10\/04\/blackbyte-ransomware-returns\/\" target=\"_blank\" rel=\"noopener\">un cas similaire<\/a> o\u00f9 le ransomware <em>BlackByte<\/em> a abus\u00e9 d&#8217;un pilote vuln\u00e9rable l\u00e9gitime pour supprimer les routines de notification critiques du noyau.<\/p>\n<p>Dans la deuxi\u00e8me phase, nous avons observ\u00e9 qu\u2019un total de sept codes IOCTL distincts \u00e9taient envoy\u00e9s au composant en mode noyau. Seule la fonctionnalit\u00e9 mapp\u00e9e avec <strong>0x222400<\/strong> \u00e9tait ex\u00e9cut\u00e9e. Les autres fonctionnalit\u00e9s ont \u00e9t\u00e9 abandonn\u00e9es pr\u00e9matur\u00e9ment en raison d&#8217;indicateurs (<em>flags<\/em>) sp\u00e9cifiques d\u00e9finis dans le binaire. Nous soup\u00e7onnons que les fonctionnalit\u00e9s non d\u00e9clench\u00e9es sont soit exp\u00e9rimentales, soit d\u00e9clench\u00e9es uniquement sur des types sp\u00e9cifiques de syst\u00e8me, soit simplement d\u00e9sactiv\u00e9es.<\/p>\n<p>Les codes IOCTL et leurs comportements mapp\u00e9s sont les suivants :<\/p>\n<h3>0x2220C0 (D\u00e9sactiv\u00e9)<\/h3>\n<p>Une fois ce code re\u00e7u, <em>Poortry<\/em> entre dans une routine d&#8217;initialisation suppl\u00e9mentaire, r\u00e9cup\u00e9rant les adresses de diverses structures et fonctions critiques.<\/p>\n<h3>0x222100 (D\u00e9sactiv\u00e9)<\/h3>\n<p>Une fois ce code re\u00e7u, <em>Poortry<\/em> tente de d\u00e9sactiver ou d&#8217;activer les rappels du noyau via la modification de l&#8217;indicateur\/flag <em>PspNotifyEnableMask<\/em>. Il s&#8217;agit d&#8217;une astuce couramment utilis\u00e9e par les <em>rootkits<\/em> pour activer ou d\u00e9sactiver les rappels de routine du noyau, <a href=\"https:\/\/overlayhack.com\/edr-bypass-evasion\" target=\"_blank\" rel=\"noopener\">comme expliqu\u00e9 dans cet article<\/a>.<\/p>\n<h3>0x222104 (D\u00e9sactiv\u00e9)<\/h3>\n<p>Une fois ce code re\u00e7u, <em>Poortry<\/em> modifie les rappels du noyau au niveau des types d&#8217;objet suivants :\u00a0 <em>PsProcess<\/em>, <em>PsThread<\/em> et <em>ExDesktopObj<\/em>. Il s\u2019agit de structures de donn\u00e9es en mode noyau qui repr\u00e9sentent des objets sp\u00e9cifiques dans le noyau Windows. Explicite en soi, le type d\u2019objet <em>PsProcess<\/em> repr\u00e9sente un objet de processus. Ces types d\u2019objet contiennent \u00e9galement une variable pointant vers les rappels enregistr\u00e9s pour l\u2019objet correspondant.<\/p>\n<p>\u00c9tant donn\u00e9 que cette fonctionnalit\u00e9 a \u00e9t\u00e9 d\u00e9sactiv\u00e9e, nous ne savons pas comment les adversaires pourraient chercher \u00e0 modifier ces listes de rappel. Un sc\u00e9nario possible pourrait \u00eatre de les d\u00e9sactiver compl\u00e8tement en d\u00e9finissant les rappels au niveau d\u2019une fonction personnalis\u00e9e sans aucune fonctionnalit\u00e9, en effectuant tout simplement un renvoi instantan\u00e9.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957133\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png?w=640\" alt=\"poortry\" width=\"579\" height=\"104\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png 3494w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png?resize=300,54 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png?resize=768,138 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png?resize=1024,185 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png?resize=1536,277 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-9.png?resize=2048,369 2048w\" sizes=\"auto, (max-width: 579px) 100vw, 579px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Modification des listes de rappel du type d\u2019objet<\/em><\/p>\n<h3>0x222108 (D\u00e9sactiv\u00e9)<\/h3>\n<p>Une fois ce code re\u00e7u, <em>Poortry<\/em> modifie la variable <em>CmpCallbackCount<\/em> pour activer ou d\u00e9sactiver les rappels du noyau du registre. La variable est utilis\u00e9e pour compter le nombre de rappels enregistr\u00e9s. Nous pensons que si cette valeur est mise \u00e0 <em>z\u00e9ro<\/em>, les rappels seront alors inefficaces.<\/p>\n<h3>0x22210C (D\u00e9sactiv\u00e9)<\/h3>\n<p>Une fois ce code re\u00e7u, <em>Poortry<\/em> tente de supprimer le pilote <em>fltMgr.sys<\/em> du p\u00e9riph\u00e9rique <em>\\FileSystem\\FastFat<\/em> et <em>\\FileSystem\\Ntfs<\/em> \u00e0 l&#8217;aide de la fonction <em>DeviceIoDetachDevice<\/em>. La fonction est g\u00e9n\u00e9ralement utilis\u00e9e par les pilotes valides pour effectuer le nettoyage lors de l&#8217;arr\u00eat. Cependant, les <em>rootkits<\/em> peuvent utiliser cette fonction pour emp\u00eacher les pilotes cibl\u00e9s de recevoir d\u2019autres requ\u00eates E\/S.<\/p>\n<p><em>fltMgr.sys<\/em> est le gestionnaire de filtre sous Windows. Ce pilote est utilis\u00e9 pour \u00e9tendre ou modifier les capacit\u00e9s des fonctionnalit\u00e9s existantes sur le syst\u00e8me Windows. Le pilote est \u00e9galement souvent utilis\u00e9 par les produits EDR.<\/p>\n<p>Nous soup\u00e7onnons qu&#8217;en le d\u00e9tachant via l&#8217;utilisation de <em>IoDetachDevice<\/em>, les filtres install\u00e9s sont rendus inefficaces sur le syst\u00e8me cibl\u00e9.<\/p>\n<h3>0x2221C0 (D\u00e9sactiv\u00e9)<\/h3>\n<p>Une fois ce code re\u00e7u, <em>Poortry<\/em> entre dans des routines pour r\u00e9cup\u00e9rer l&#8217;adresse des principaux handlers\/gestionnaires de fonctions de <em>ClassPnp.sys<\/em> et <em>ntfs.sys<\/em>, tels que <em>NtfsFsdClose<\/em> ou <em>NtfsFsdRead<\/em> de <em>ntfs.sys<\/em>. Nous pensons donc que cette routine peut \u00eatre utilis\u00e9e comme routine d\u2019initialisation suppl\u00e9mentaire pour r\u00e9cup\u00e9rer les adresses de fonctions critiques utilis\u00e9es par d\u2019autres fonctionnalit\u00e9s.<\/p>\n<h3>0x222400 (activ\u00e9)<\/h3>\n<p>Une fois ce code re\u00e7u, <em>Poortry<\/em> d\u00e9sactive les rappels du noyau install\u00e9s via une s\u00e9rie de techniques diff\u00e9rentes. Le composant en mode utilisateur inclut le nom du pilote cibl\u00e9 lorsque le paquet de requ\u00eate E\/S est envoy\u00e9.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-957134\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-10.png?w=640\" alt=\"poortry\" width=\"640\" height=\"255\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-10.png 1581w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-10.png?resize=300,120 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-10.png?resize=768,306 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-10.png?resize=1024,408 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-10.png?resize=1536,612 1536w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Pr\u00e9sentation des routines de correctif et de la v\u00e9rification du handshake <\/em><\/p>\n<p>Les rappels du noyau install\u00e9s via <em>PsSetLoadImageNotifyRoutine<\/em>, <em>PsSetCreateThreadNotifyRoutine<\/em> et <em>PsSetCreateProcessNotifyRoutine<\/em> sont corrig\u00e9s. Dans la phase <em>prologue<\/em> de la fonction de rappel, <strong>Poortry<\/strong> modifie la premi\u00e8re instruction pour renvoyer instantan\u00e9ment <em>z\u00e9ro<\/em> lors de la saisie.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957135\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-11.png?w=640\" alt=\"poortry\" width=\"569\" height=\"323\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-11.png 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-11.png?resize=300,171 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-11.png?resize=768,436 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-11.png?resize=1024,582 1024w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Comparaison avant et apr\u00e8s la correction de la phase prologue<\/em><\/p>\n<p>Jusqu\u2019\u00e0 pr\u00e9sent, nous avons identifi\u00e9 les techniques suivantes pour rendre les rappels du noyau et les pilotes de s\u00e9curit\u00e9 inefficaces :<\/p>\n<ul>\n<li>Les structures internes utilis\u00e9es par les fonctions correspondantes <em>PsSetLoadImageNotifyRoutine<\/em>, <em>PsSetCreateThreadNotifyRoutine<\/em> et <em>PsSetCreateProcessNotifyRoutine<\/em> sont it\u00e9r\u00e9es. Si le rappel appartient \u00e0 un pilote de s\u00e9curit\u00e9 balis\u00e9 (<em>tagged<\/em>), par cons\u00e9quent, la fonction de rappel enregistr\u00e9e se ferme imm\u00e9diatement sans ex\u00e9cuter aucune des op\u00e9rations pr\u00e9vues.<\/li>\n<li>Le noyau Windows impl\u00e9mente des structures de donn\u00e9es importantes telles que <em>PsProcess<\/em>, <em>PsThread<\/em> et <em>ExDesktopObject<\/em> qui repr\u00e9sentent des \u00e9l\u00e9ments fondamentaux du syst\u00e8me d&#8217;exploitation Windows. Ces structures contiennent une variable nomm\u00e9e <em>CallbackList<\/em> qui g\u00e8re toutes les routines de rappel associ\u00e9es \u00e0 l&#8217;objet sp\u00e9cifique. <strong>Poortry<\/strong> parcourt cette liste et si le rappel appartient \u00e0 un pilote de s\u00e9curit\u00e9 balis\u00e9, par cons\u00e9quent, la fonction de rappel enregistr\u00e9e se ferme imm\u00e9diatement sans ex\u00e9cuter aucune de op\u00e9rations pr\u00e9vues.<\/li>\n<li>Une liste li\u00e9e interne utilis\u00e9e par <em>CmRegisterCallback<\/em> et <em>CmUnregisterCallback<\/em> est it\u00e9r\u00e9e. Cette liste cha\u00een\u00e9e contient des points de fonction vers des rappels de registre et d&#8217;objet enregistr\u00e9s. Si le rappel appartient \u00e0 un pilote de s\u00e9curit\u00e9 balis\u00e9, le prologue de la fonction est corrig\u00e9.<\/li>\n<li><em>Poortry<\/em> utilise la fonction export\u00e9e <em>FltEnumerateFilters<\/em> de <em>fltMgr.sys<\/em> pour parcourir les filtres appliqu\u00e9s. Si le filtre appartient \u00e0 un pilote de s\u00e9curit\u00e9 balis\u00e9, le prologue de la fonction est corrig\u00e9.<\/li>\n<li>Bien que nous n\u2019ayons pas pu d\u00e9clencher directement la fonctionnalit\u00e9, nous avons trouv\u00e9 des preuves que <em>Poortry<\/em> pouvait abuser de la fonction <a href=\"https:\/\/learn.microsoft.com\/fr-fr\/windows-hardware\/drivers\/ddi\/wdm\/nf-wdm-iodetachdevice\" target=\"_blank\" rel=\"noopener\">IoDetachDevice<\/a> pour d\u00e9tacher un objet de p\u00e9riph\u00e9rique de la pile de p\u00e9riph\u00e9riques d\u2019un syst\u00e8me. Contrairement \u00e0 la fonctionnalit\u00e9 fournie par le code IOCTL <strong>0x22210C<\/strong>, il est moins \u00e9vasif et d\u00e9tache les appareils uniquement si le nom de l&#8217;appareil correspond au nom d&#8217;entr\u00e9e envoy\u00e9 via <em>DeviceIoControl<\/em>.<\/li>\n<\/ul>\n<h2>Phase de nettoyage<\/h2>\n<p>Apr\u00e8s l\u2019alt\u00e9ration, l\u2019EDR Killer vise \u00e0 mettre fin aux processus li\u00e9s \u00e0 la s\u00e9curit\u00e9 et \u00e0 rendre l&#8217;agent EDR inefficace en effa\u00e7ant les fichiers critiques du disque.<\/p>\n<p>Tout d\u2019abord, le composant en mode utilisateur envoie plusieurs requ\u00eates E\/S avec le code IOCTL <strong>0x222144<\/strong> au composant en mode noyau, notamment l\u2019ID de processus \u00e0 tuer.<\/p>\n<p>Le chargeur contient une liste de chemins hardcod\u00e9s pointant vers l&#8217;emplacement o\u00f9 les produits EDR sont install\u00e9s. Il parcourt tous les sous-dossiers et fichiers du dossier et supprime les fichiers critiques pour l&#8217;agent EDR, tels que les fichiers EXE ou les fichiers DLL en envoyant une requ\u00eate IOCTL au pilote avec le code <strong>0x222180<\/strong>. La demande envoy\u00e9e inclut le chemin du fichier \u00e0 supprimer.<\/p>\n<p>Soulignons que le composant en mode utilisateur peut fonctionner selon deux modes :<\/p>\n<ul>\n<li>Suppression de fichiers par type.<\/li>\n<li>Suppression de fichiers par nom.<\/li>\n<\/ul>\n<p>Nous soup\u00e7onnons que l\u2019auteur ait ajout\u00e9 ces modes de fonctionnement pour garantir la flexibilit\u00e9 lors du ciblage des diff\u00e9rents objectifs. Nous pensons \u00e9galement que la liste des chemins hardcod\u00e9s et pointant vers les dossiers d&#8217;installation des produits EDR change en fonction de la cible.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-957136\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-12.png?w=640\" alt=\"poortry\" width=\"588\" height=\"363\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-12.png 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-12.png?resize=300,186 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-12.png?resize=768,475 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/09\/poortry-12.png?resize=1024,633 1024w\" sizes=\"auto, (max-width: 588px) 100vw, 588px\" \/><\/a><\/p>\n<p style=\"text-align: center\"><em>Mise en \u0153uvre de la suppression de fichiers par type<\/em><\/p>\n<h2>En conclusion<\/h2>\n<p><em>Poortry<\/em> et son chargeur associ\u00e9 <em>Stonestop<\/em> ont subi une s\u00e9rieuse am\u00e9lioration de leurs fonctionnalit\u00e9s au cours des 20 mois qui ont suivi la publication par Sophos et Microsoft d&#8217;un rapport conjoint sur l&#8217;abus du m\u00e9canisme de signature WHQL par cet EDR Killer. Ce qui \u00e9tait autrefois un outil relativement simple pour d\u00e9connecter les composants de protection endpoint &#8220;probl\u00e9matiques&#8221; est devenu, en soi, un couteau suisse avec des capacit\u00e9s malveillantes abusant d&#8217;une quantit\u00e9 pratiquement illimit\u00e9e de certificats de signature de code vol\u00e9s ou utilis\u00e9s de mani\u00e8re inappropri\u00e9e afin de contourner les protections en mati\u00e8re de v\u00e9rification de la signature du pilote.<\/p>\n<p>Les d\u00e9veloppeurs de <em>Poortry<\/em> utilisent clairement la caract\u00e9ristique diff\u00e9renciante de leur outil comme une capacit\u00e9 \u00e0 faire bien plus que simplement d\u00e9connecter un EDR ou un pilote antialt\u00e9ration de protection endpoint. <em>Poortry<\/em> a \u00e9volu\u00e9 vers une sorte de <em>rootkit<\/em> qui dispose \u00e9galement de contr\u00f4les limit\u00e9s sur un certain nombre d&#8217;appels API diff\u00e9rents utilis\u00e9s pour contr\u00f4ler les fonctionnalit\u00e9s de bas niveau du syst\u00e8me d&#8217;exploitation. Il dispose d\u00e9sormais \u00e9galement de la capacit\u00e9 d\u2019\u00e9liminer ses ennemis, \u00e0 savoir les logiciels de s\u00e9curit\u00e9, directement au niveau du disque afin de lib\u00e9rer la voie au d\u00e9ploiement d\u2019un ransomware.<\/p>\n<p>Sophos X-Ops a publi\u00e9 des indicateurs de compromission (IOC) sur notre GitHub.<\/p>\n<p>Billet inspir\u00e9 de <a href=\"https:\/\/news.sophos.com\/en-us\/2024\/08\/27\/burnt-cigar-2\/\" target=\"_blank\" rel=\"noopener\">Attack tool update impairs Windows computers<\/a>, sur le Blog Sophos.<\/p>\n<\/p><\/div>\n<p><a href=\"https:\/\/news.sophos.com\/fr-fr\/2024\/08\/29\/poortry-stonestop-amelioration-outil-attaque-edr-killer-affecte-ordinateurs-windows\/\" target=\"bwo\" >http:\/\/feeds.feedburner.com\/sophos\/dgdY<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/08\/poortry.png\"\/><\/p>\n<p><strong>Credit to Author: Nicolas Pommier| Date: Thu, 29 Aug 2024 17:05:40 +0000<\/strong><\/p>\n<p>Un EDR Killer que Sophos X-Ops traque depuis trois ans continue de perturber les entreprises cibl\u00e9es par des gangs de ransomware.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[10378,10377],"tags":[129,16771],"class_list":["post-25163","post","type-post","status-publish","format-standard","hentry","category-security","category-sophos","tag-featured","tag-threat-research"],"_links":{"self":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/25163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=25163"}],"version-history":[{"count":0,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/25163\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=25163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=25163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=25163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}