{"id":143749,"date":"2025-04-14T10:58:56","date_gmt":"2025-04-14T17:58:56","guid":{"rendered":"https:\/\/unit42.paloaltonetworks.com\/?p=143749"},"modified":"2025-06-19T11:00:45","modified_gmt":"2025-06-19T18:00:45","slug":"slow-pisces-new-custom-malware","status":"publish","type":"post","link":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/","title":{"rendered":"Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python"},"content":{"rendered":"<h2><a id=\"post-143749-_heading=h.hg9jo334r65m\"><\/a>R\u00e9sum\u00e9<\/h2>\n<p>Slow\u00a0Pisces (alias Jade\u00a0Sleet, TraderTraitor, PUKCHONG) est un groupe d\u2019acteurs malveillants parrain\u00e9 par l\u2019\u00c9tat nord-cor\u00e9en. Il cible principalement la g\u00e9n\u00e9ration de revenus pour le r\u00e9gime de la RPDC, g\u00e9n\u00e9ralement en ciblant de grandes organisations dans le secteur des crypto-monnaies. Cet article analyse leur campagne qui, selon nous, est li\u00e9e aux r\u00e9cents vols de crypto-monnaies.<\/p>\n<p>Dans le cadre de cette campagne, <a href=\"https:\/\/unit42.paloaltonetworks.com\/threat-actor-groups-tracked-by-palo-alto-networks-unit-42\/#:~:text=Slow%20Pisces%20is%20North%20Korea%27s%20nation%20state%20threat%20group%20under%20Reconnaissance%20General%20Bureau%20(RGB)%20of%20DPRK.%20It%27s%20believed%20to%20be%20a%20spin%2Doff%20from%20the%20Lazarus%20group%20with%20focus%20on%20financial%20gathering%20and%20crypto%20industry%20targeting%20goals\" target=\"_blank\" rel=\"noopener\">Slow\u00a0Pisces<\/a> a contact\u00e9 des d\u00e9veloppeurs de crypto-monnaies sur LinkedIn, en se faisant passer pour des employeurs potentiels et en envoyant des logiciels malveillants d\u00e9guis\u00e9s en d\u00e9fis de codage. Dans le cadre de ces d\u00e9fis, les d\u00e9veloppeurs doivent ex\u00e9cuter un projet compromis qui infectent leurs syst\u00e8mes \u00e0 l\u2019aide de logiciels malveillants\u00a0: RN\u00a0Loader et RN\u00a0Stealer.<\/p>\n<p>Le groupe aurait vol\u00e9 plus de <a href=\"https:\/\/www.microsoft.com\/en-us\/security\/security-insider\/microsoft-digital-defense-report-2023\" target=\"_blank\" rel=\"noopener\">1\u00a0milliard de dollars US au secteur des crypto-monnaies en 2023<\/a>. Ils y sont parvenus en utilisant diverses m\u00e9thodes, notamment des <a href=\"https:\/\/www.cisa.gov\/news-events\/cybersecurity-advisories\/aa22-108a\" target=\"_blank\" rel=\"noopener\">fausses applications commerciales<\/a>, des logiciels malveillants distribu\u00e9s via le <a href=\"https:\/\/github.blog\/security\/vulnerability-research\/security-alert-social-engineering-campaign-targets-technology-industry-employees\/\" target=\"_blank\" rel=\"noopener\">Node\u00a0Package\u00a0Manager (NPM)<\/a> et des <a href=\"https:\/\/cloud.google.com\/blog\/topics\/threat-intelligence\/north-korea-supply-chain\" target=\"_blank\" rel=\"noopener\">compromissions sur la supply chain<\/a>.<\/p>\n<p>En d\u00e9cembre\u00a02024, <a href=\"https:\/\/www.fbi.gov\/news\/press-releases\/fbi-dc3-and-npa-identification-of-north-korean-cyber-actors-tracked-as-tradertraitor-responsible-for-theft-of-308-million-from-bitcoindmmcom\" target=\"_blank\" rel=\"noopener\">le FBI pointe du doigt<\/a> Slow\u00a0Pisces pour le vol de 308\u00a0millions de dollars \u00e0 une soci\u00e9t\u00e9 de cryptomonnaies bas\u00e9e au Japon. Plus r\u00e9cemment, le groupe a fait les gros titres pour son implication pr\u00e9sum\u00e9e dans le <a href=\"https:\/\/www.ic3.gov\/PSA\/2025\/PSA250226\" target=\"_blank\" rel=\"noopener\">vol de 1,5\u00a0milliard de dollars<\/a> \u00e0 une bourse de cryptomonnaies de Duba\u00ef.<\/p>\n<p>Nous avons mis notre threat\u00a0intelligence \u00e0 disposition des analystes de GitHub et de LinkedIn afin de supprimer les comptes et les d\u00e9p\u00f4ts concern\u00e9s.<\/p>\n<p>En r\u00e9ponse, ils ont produit la d\u00e9claration suivante\u00a0:<\/p>\n<p style=\"padding-left: 40px;\"><i><span style=\"font-weight: 400;\">GitHub et LinkedIn ont supprim\u00e9 ces comptes malveillants pour violation de leurs conditions d\u2019utilisation respectives. Nous utilisons une technologie automatis\u00e9e pour l\u2019ensemble de nos produits, \u00e0 laquelle s\u2019ajoutent nos \u00e9quipes d\u2019experts en investigation et en signalement des membres, afin de lutter contre les mauvais acteurs et de faire respecter les conditions de service. Nous actualisons et am\u00e9liorons constamment nos processus et nous encourageons nos clients et nos membres \u00e0 signaler toute activit\u00e9 suspecte.<\/span><\/i><\/p>\n<p style=\"padding-left: 40px;\"><b><i>Informations compl\u00e9mentaires<\/i><\/b><\/p>\n<ul>\n<li><i><span style=\"font-weight: 400;\">Les utilisateurs de GitHub peuvent trouver plus d\u2019informations dans nos <\/span><\/i><a href=\"https:\/\/urldefense.proofpoint.com\/v2\/url?u=https-3A__docs.github.com_en_site-2Dpolicy_acceptable-2Duse-2Dpolicies_github-2Dacceptable-2Duse-2Dpolicies&amp;d=DwMGaQ&amp;c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&amp;r=_lIJbiuLEsecGC88yMz56rH6l-Y5OB28uwt-Y9Xz4rE&amp;m=UGRFdaU0cIscSEQoBgGwJQdMeZgVigbcDnGPmHQpONBJ7WMaQJJPO7CyDeS05g6u&amp;s=Q3c625ggV3WuLxlSWstf7yxNVIxr6RXfLqXEs4YQhfI&amp;e=\" target=\"_blank\" rel=\"noopener\"><i><span style=\"font-weight: 400;\">Politiques d\u2019utilisation acceptables<\/span><\/i><\/a><i><span style=\"font-weight: 400;\"> et sur nos pages de <\/span><\/i><a href=\"https:\/\/urldefense.proofpoint.com\/v2\/url?u=https-3A__docs.github.com_en_communities_maintaining-2Dyour-2Dsafety-2Don-2Dgithub_reporting-2Dabuse-2Dor-2Dspam&amp;d=DwMGaQ&amp;c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&amp;r=_lIJbiuLEsecGC88yMz56rH6l-Y5OB28uwt-Y9Xz4rE&amp;m=UGRFdaU0cIscSEQoBgGwJQdMeZgVigbcDnGPmHQpONBJ7WMaQJJPO7CyDeS05g6u&amp;s=w_rzmUGqBolbje6bXMIl06IDbCkfN_csSaR7Aw6f9hA&amp;e=\" target=\"_blank\" rel=\"noopener\"><i><span style=\"font-weight: 400;\">signalement des abus et du spam<\/span><\/i><\/a><i><span style=\"font-weight: 400;\">.<\/span><\/i><\/li>\n<li><i>Les utilisateurs de LinkedIn peuvent en savoir plus sur l\u2019identification et le signalement des abus ici\u00a0: <\/i><a href=\"https:\/\/urldefense.proofpoint.com\/v2\/url?u=https-3A__www.linkedin.com_help_linkedin_answer_a1344213&amp;d=DwMGaQ&amp;c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&amp;r=_lIJbiuLEsecGC88yMz56rH6l-Y5OB28uwt-Y9Xz4rE&amp;m=UGRFdaU0cIscSEQoBgGwJQdMeZgVigbcDnGPmHQpONBJ7WMaQJJPO7CyDeS05g6u&amp;s=MWowAjuRradajHCOP9WGk5AkD3krn1yWpFfUQ4gm1EA&amp;e=\" target=\"_blank\" rel=\"noopener\"><i>Reconna\u00eetre et signaler les spams, les contenus inappropri\u00e9s et abusifs | Aide\u00a0LinkedIn<\/i><\/a><\/li>\n<\/ul>\n<p>Ce rapport montre comment Slow\u00a0Pisces dissimule des logiciels malveillants dans ses d\u00e9fis de codage et d\u00e9crit les outils mis au point par le groupe, afin de permettre \u00e0 l\u2019ensemble du secteur de mieux appr\u00e9hender cette menace.<\/p>\n<p>Les clients de Palo\u00a0Alto\u00a0Networks sont mieux prot\u00e9g\u00e9s contre les menaces \u00e9voqu\u00e9es dans cet article gr\u00e2ce \u00e0 nos abonnements <a href=\"https:\/\/docs.paloaltonetworks.com\/ngfw\" target=\"_blank\" rel=\"noopener\">Next-Generation Firewall<\/a> avec <a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-url-filtering\/administration\" target=\"_blank\" rel=\"noopener\">Advanced URL Filtering<\/a> et <a href=\"https:\/\/docs.paloaltonetworks.com\/dns-security\" target=\"_blank\" rel=\"noopener\">Advanced DNS Security<\/a>.<\/p>\n<p>Si vous pensez avoir \u00e9t\u00e9 compromis ou en cas de question urgente, contactez <a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\">l\u2019\u00e9quipe de r\u00e9ponse \u00e0 incident de l\u2019Unit\u00a042<\/a>.<\/p>\n<table style=\"width: 98.8519%;\">\n<thead>\n<tr>\n<td style=\"width: 35%;\"><b>Th\u00e9matiques en lien avec l\u2019Unit\u00a042<\/b><\/td>\n<td style=\"width: 212.747%;\"><a href=\"https:\/\/unit42.paloaltonetworks.com\/tag\/cryptocurrency\/\" target=\"_blank\" rel=\"noopener\"><b>Cryptocurrency<\/b><\/a>, <strong><a href=\"https:\/\/unit42.paloaltonetworks.com\/fr\/tag\/dprk-fr\/\" target=\"_blank\" rel=\"noopener\">DPRK<\/a><\/strong><\/td>\n<\/tr>\n<\/thead>\n<\/table>\n<h2><a id=\"post-143749-_heading=h.vx5n2rehkd40\"><\/a>Analyse technique<\/h2>\n<p>Cette campagne suit globalement trois \u00e9tapes, illustr\u00e9es ci-dessous dans la figure\u00a01.<\/p>\n<figure id=\"attachment_143865\" aria-describedby=\"caption-attachment-143865\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143865 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-4-1-724x440.png\" alt=\"Diagramme illustrant des menaces de cybers\u00e9curit\u00e9 impliquant des leurres PDF, des d\u00e9p\u00f4ts GitHub et un serveur C2. Il montre : 1) des fichiers PDF tels que des descriptions d'emploi et des feuilles de questions agissant comme des leurres, 2) des r\u00e9f\u00e9rentiels GitHub JavaScript et Python avec de multiples API externes, pouvant potentiellement r\u00e9cup\u00e9rer des donn\u00e9es malveillantes, et 3) un serveur C2 configur\u00e9 pour envoyer des donn\u00e9es b\u00e9nignes ou une charge utile malveillante dans certaines conditions. Les logos de Palo Alto Networks et d'UNIT 42 sont inclus.\" width=\"800\" height=\"486\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-4-1-724x440.png 724w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-4-1-1151x700.png 1151w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-4-1-768x467.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-4-1.png 1337w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-143865\" class=\"wp-caption-text\">Figure 1. Aper\u00e7u de la campagne \u00ab\u00a0d\u00e9fi de codage\u00a0\u00bb de Slow Pisces.<\/figcaption><\/figure>\n<h3><a id=\"post-143749-_heading=h.fiy8rdjnpdrt\"><\/a>\u00c9tape\u00a01 - Les leurres au format\u00a0PDF<\/h3>\n<p>Les membres de Slow Pisces commenc\u00e9 par se faire passer pour un recruteur sur LinkedIn, avant de contacter des cibles potentielles en leur envoyant un fichier\u00a0PDF anodin contenant une description de poste (voir figure\u00a02). Si les cibles potentielles se portaient candidates, les attaquants leur pr\u00e9sentaient un d\u00e9fi de codage comprenant plusieurs t\u00e2ches d\u00e9crites dans un questionnaire.<\/p>\n<figure id=\"attachment_143762\" aria-describedby=\"caption-attachment-143762\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143762 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-263794-143749-2.png\" alt=\"Image pr\u00e9sentant deux documents c\u00f4te \u00e0 c\u00f4te. \u00c0 gauche, une &quot;description de poste&quot; pour un coordinateur d'\u00e9quipe de conception UX. \u00c0 droite, une &quot;feuille de questions&quot; contenant des questions techniques et g\u00e9n\u00e9rales relatives \u00e0 la conception de l'exp\u00e9rience utilisateur (UX).\" width=\"1000\" height=\"715\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-263794-143749-2.png 1580w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-263794-143749-2-615x440.png 615w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-263794-143749-2-979x700.png 979w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-263794-143749-2-768x549.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-263794-143749-2-1536x1099.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-143762\" class=\"wp-caption-text\">Figure 2. Leurres b\u00e9nins au format PDF.<\/figcaption><\/figure>\n<p>Nous avons identifi\u00e9 que Slow\u00a0Pisces se faisait passer pour plusieurs organisations en utilisant ces leurres, principalement dans le secteur des cryptomonnaies. Les questions comprennent des t\u00e2ches g\u00e9n\u00e9riques de d\u00e9veloppement logiciel et un d\u00e9fi de codage sous forme de \u00ab\u00a0projet r\u00e9el\u00a0\u00bb, qui renvoie vers un d\u00e9p\u00f4t GitHub pr\u00e9sent\u00e9 dans la figure\u00a03 ci-dessous.<\/p>\n<figure id=\"attachment_143773\" aria-describedby=\"caption-attachment-143773\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143773 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-267605-143749-3.png\" alt=\"Capture d'\u00e9cran d'un document intitul\u00e9 \u00ab Coding and Problem-Solving Skills With Real Project \u00bb. Il inclut un lien vers un d\u00e9p\u00f4t GitHub et d\u00e9crit une t\u00e2che de codage impliquant les taux de change du Bitcoin et de l'Ethereum \u00e0 partir de sources API. Le texte demande d'am\u00e9liorer le projet en ajoutant plus d'API de march\u00e9 et en am\u00e9liorant la communication r\u00e9seau dans le code.\" width=\"800\" height=\"408\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-267605-143749-3.png 1942w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-267605-143749-3-786x401.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-267605-143749-3-1373x700.png 1373w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-267605-143749-3-768x392.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-267605-143749-3-1536x783.png 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-143773\" class=\"wp-caption-text\">Figure 3. D\u00e9fi de codage du \u00ab projet r\u00e9el\u00a0\u00bb contenu dans le leurre PDF.<\/figcaption><\/figure>\n<h3><a id=\"post-143749-_heading=h.za64fuai5suw\"><\/a>\u00c9tape\u00a02 - D\u00e9p\u00f4ts GitHub<\/h3>\n<p>Slow\u00a0Pisces a pr\u00e9sent\u00e9 aux cibles ce que l\u2019on appelle des d\u00e9fis de codage sous forme de projets issus de d\u00e9p\u00f4ts GitHub. Ces d\u00e9p\u00f4ts contenaient des adaptations de code open source, notamment des applications de visualisation et d\u2019analyse\u00a0:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>De donn\u00e9es boursi\u00e8res<\/li>\n<li>De statistiques des ligues de football europ\u00e9ennes<\/li>\n<li>De donn\u00e9es m\u00e9t\u00e9orologiques<\/li>\n<li>Du prix des cryptomonnaies<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Le groupe a principalement utilis\u00e9 des projets en Python ou en JavaScript, sans doute en fonction de la nature des profils (d\u00e9veloppeur front-end ou back-end). Nous avons \u00e9galement identifi\u00e9 des d\u00e9p\u00f4ts bas\u00e9s sur Java dans cette campagne, bien qu\u2019ils soient beaucoup moins courants, avec seulement deux cas d\u2019usurpation d\u2019identit\u00e9 d\u2019une application de cryptomonnaie appel\u00e9e jCoin.<\/p>\n<p>Cette raret\u00e9 laisse penser que les attaquants ont pu cr\u00e9er des d\u00e9p\u00f4ts \u00e0 la demande, en fonction du langage de programmation pr\u00e9f\u00e9r\u00e9 de la cible. Par cons\u00e9quent, le groupe utilise plus fr\u00e9quemment des langages plus populaires dans le secteur des cryptomonnaies, tels que JavaScript et Python. De m\u00eame, il reste peut-\u00eatre des d\u00e9p\u00f4ts non d\u00e9couverts \u00e0 ce jour dans d\u2019autres langages de programmation.<\/p>\n<h3><a id=\"post-143749-_heading=h.ar4l4xfv8cuj\"><\/a>\u00c9tape\u00a03a - D\u00e9p\u00f4t Python<\/h3>\n<p>Fin 2024, le groupe a utilis\u00e9 un projet illustr\u00e9 ci-dessous dans la figure\u00a04\u00a0: le \u00ab\u00a0Stocks Pattern Analyzer\u00a0\u00bb, adapt\u00e9 d\u2019un <a href=\"https:\/\/github.com\/gaborvecsei\/Stocks-Pattern-Analyzer\" target=\"_blank\" rel=\"noopener\">d\u00e9p\u00f4t l\u00e9gitime<\/a>.<\/p>\n<figure id=\"attachment_143784\" aria-describedby=\"caption-attachment-143784\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143784 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-271425-143749-4.png\" alt=\"Capture d'\u00e9cran d'un d\u00e9p\u00f4t GitHub nomm\u00e9 \u00ab Stocks Pattern Analyzer \u00bb montrant la structure du fichier \u00e0 gauche et le contenu du fichier README \u00e0 droite expliquant comment ex\u00e9cuter l'application directement et avec Docker.\" width=\"700\" height=\"363\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-271425-143749-4.png 1992w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-271425-143749-4-786x408.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-271425-143749-4-1349x700.png 1349w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-271425-143749-4-768x399.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-271425-143749-4-1536x797.png 1536w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-143784\" class=\"wp-caption-text\">Figure 4. D\u00e9p\u00f4t Github \u00ab Stocks Pattern Analyzer \u00bb.<\/figcaption><\/figure>\n<p>La majorit\u00e9 du code de ce d\u00e9p\u00f4t est b\u00e9nin. Lorsque les cibles tentent d\u2019ex\u00e9cuter le projet conform\u00e9ment au questionnaire, les donn\u00e9es sont r\u00e9cup\u00e9r\u00e9es \u00e0 partir de trois sites distants\u00a0:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">hxxps:\/\/en.wikipedia[.]org\/wiki\/List_of_S%26P_500_companies<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">hxxps:\/\/en.wikipedia[.]org\/wiki\/Currency_pair<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">hxxps:\/\/en.stockslab[.]org\/symbols\/sp500<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Deux des URL tirent des donn\u00e9es de Wikip\u00e9dia. La troisi\u00e8me redirige vers un domaine contr\u00f4l\u00e9 par Slow\u00a0Pisces. Cette approche, qui utilise plusieurs sources de donn\u00e9es, la plupart l\u00e9gitimes, mais dont une est malveillante, est courante dans les d\u00e9p\u00f4ts Python du groupe.<\/p>\n<p>Le serveur de commande et de contr\u00f4le (C2) malveillant est configur\u00e9 pour imiter le format des sources l\u00e9gitimes. Ici, il utilise le sous-domaine <span style=\"font-family: 'courier new', courier, monospace;\">.en<\/span> et le domaine de premier niveau <span style=\"font-family: 'courier new', courier, monospace;\">.org<\/span> comme pour le domaine l\u00e9gitime de Wikip\u00e9dia ci-dessus.<\/p>\n<h4><a id=\"post-143749-_heading=h.tunq8sh6gp12\"><\/a>D\u00e9s\u00e9rialisation YAML<\/h4>\n<p>Slow\u00a0Pisces pouvait simplement placer des logiciels malveillants directement dans le d\u00e9p\u00f4t ou ex\u00e9cuter du code depuis le serveur\u00a0C2 \u00e0 l\u2019aide des fonctions\u00a0Python <span style=\"font-family: 'courier new', courier, monospace;\"><a href=\"https:\/\/docs.python.org\/3\/library\/functions.html#eval\" target=\"_blank\" rel=\"noopener\">eval<\/a><\/span> ou <span style=\"font-family: 'courier new', courier, monospace;\"><a href=\"https:\/\/docs.python.org\/3\/library\/functions.html#exec\" target=\"_blank\" rel=\"noopener\">exec<\/a><\/span>. Cependant, ces techniques sont facilement d\u00e9tect\u00e9es, tant par une inspection manuelle que par des solutions antivirus.<\/p>\n<p>Au lieu de cela, Slow\u00a0Pisces s\u2019assure d\u2019abord que le serveur\u00a0C2 r\u00e9pond avec des donn\u00e9es d\u2019application valides. Par exemple, le d\u00e9p\u00f4t mentionn\u00e9 ci-dessus attend une liste des symboles des entreprises S&amp;P\u00a0500. L\u2019URL\u00a0C2 r\u00e9pond d\u2019abord avec ces donn\u00e9es dans une liste au format\u00a0JSON.<\/p>\n<p>Les attaquants n\u2019envoient qu\u2019une charge utile malveillante \u00e0 des cibles valid\u00e9es, probablement en fonction de l\u2019adresse\u00a0IP, de la g\u00e9olocalisation, de l\u2019heure et des en-t\u00eates des requ\u00eates\u00a0HTTP. Le fait de se concentrer sur des personnes contact\u00e9es via LinkedIn, par opposition \u00e0 de vastes campagnes d\u2019hame\u00e7onnage, permet au groupe de contr\u00f4ler \u00e9troitement les derni\u00e8res \u00e9tapes de la campagne et de ne livrer les payloads qu\u2019aux victimes attendues.<\/p>\n<p>Pour \u00e9viter les fonctions suspectes <span style=\"font-family: 'courier new', courier, monospace;\">eval<\/span> et <span style=\"font-family: 'courier new', courier, monospace;\">exec<\/span> , Slow\u00a0Pisces utilise la <a href=\"https:\/\/net-square.com\/yaml-deserialization-attack-in-python.html\" target=\"_blank\" rel=\"noopener\">d\u00e9s\u00e9rialisation YAML<\/a> pour ex\u00e9cuter sa payload, comme le montre la figure\u00a05.<\/p>\n<figure id=\"attachment_143795\" aria-describedby=\"caption-attachment-143795\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143795 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-275073-143749-5.png\" alt=\"Capture d'\u00e9cran du code Python d\u00e9finissant une fonction \u00ab fetch_symbols \u00bb qui r\u00e9cup\u00e8re les symboles boursiers du S&amp;P 500 \u00e0 l'aide d'un appel API, g\u00e8re diff\u00e9rents types de contenu et traite les r\u00e9ponses en fonction de leur type de contenu. La derni\u00e8re ligne comporte une section mise en \u00e9vidence dans un encadr\u00e9 rouge.\" width=\"800\" height=\"403\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-275073-143749-5.png 1508w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-275073-143749-5-786x396.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-275073-143749-5-1389x700.png 1389w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-275073-143749-5-768x387.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-143795\" class=\"wp-caption-text\">Figure 5. Code Python montrant le point d\u2019entr\u00e9e du logiciel malveillant Slow Pisces utilisant la d\u00e9s\u00e9rialisation YAML.<\/figcaption><\/figure>\n<p>Ce code r\u00e9cup\u00e8re les donn\u00e9es du serveur\u00a0C2 via HTTPS et v\u00e9rifie l\u2019en-t\u00eate de r\u00e9ponse <span style=\"font-family: 'courier new', courier, monospace;\">Content-Type<\/span>. Si l\u2019en-t\u00eate indique des donn\u00e9es au format JSON <span style=\"font-family: 'courier new', courier, monospace;\">(application\/json),<\/span> le code analyse et renvoie le JSON \u00e0 l\u2019application.<\/p>\n<p>Si la r\u00e9ponse indique des donn\u00e9es au format YAML <span style=\"font-family: 'courier new', courier, monospace;\">(application\/yaml)<\/span>, le code utilise la fonction <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span> de la biblioth\u00e8que <a href=\"https:\/\/github.com\/yaml\/pyyaml\" target=\"_blank\" rel=\"noopener\">PyYYAML<\/a> pour analyser les donn\u00e9es. Cette fonction est intrins\u00e8quement non s\u00e9curis\u00e9e\u00a0: la documentation PyYAML <a href=\"https:\/\/github.com\/yaml\/pyyaml\" target=\"_blank\" rel=\"noopener\">recommande explicitement<\/a> <span style=\"font-family: 'courier new', courier, monospace;\">yaml.safe_load()<\/span> pour les entr\u00e9es non fiables.<\/p>\n<p>Le format\u00a0YAML est g\u00e9n\u00e9ralement utilis\u00e9 pour les fichiers de configuration, comme dans l\u2019exemple ci-dessous\u00a0:<\/p>\n<pre class=\"lang:default decode:true\">username: slow\r\n\r\npassword: pisces\r\n\r\napi:\r\n\r\nkey: supersecret\r\n\r\nurl: example.com<\/pre>\n<p>Cependant, <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span> peut s\u00e9rialiser et d\u00e9s\u00e9rialiser des objets Python arbitraires, et pas seulement des donn\u00e9es\u00a0YAML valides. Par exemple, le code Python suivant imprime les chiffres de 0 \u00e0 4\u00a0:<\/p>\n<pre class=\"lang:default decode:true\">range(0, 5)<\/pre>\n<p>Si ce code \u00e9tait s\u00e9rialis\u00e9 \u00e0 l\u2019aide de <span style=\"font-family: 'courier new', courier, monospace;\">yaml.dump()<\/span>, il prendrait la forme suivante\u00a0:<\/p>\n<pre class=\"lang:default decode:true\">!!python\/object\/apply:builtins.range\r\n\r\n- 0\r\n\r\n- 5\r\n\r\n- 1<\/pre>\n<p>Enfin, lorsque ces donn\u00e9es sont transmises \u00e0 <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span>, le code original est ex\u00e9cut\u00e9\u00a0: <span style=\"font-family: 'courier new', courier, monospace;\">range(0, 5)<\/span>.<\/p>\n<p>Cela met en \u00e9vidence un point de d\u00e9tection potentiel, car les payloads du d\u00e9p\u00f4t Python (et les logiciels malveillants en g\u00e9n\u00e9ral) qui utilisent la d\u00e9s\u00e9rialisation YAML contiennent <span style=\"font-family: 'courier new', courier, monospace;\">!!python\/object\/apply:builtins<\/span> si la payload utilise une <a href=\"https:\/\/docs.python.org\/3\/library\/functions.html\">fonction Python int\u00e9gr\u00e9e<\/a>.<\/p>\n<p>Les \u00e9tapes suivantes du tableau\u00a01 ont principalement lieu dans la m\u00e9moire et n\u2019ont g\u00e9n\u00e9ralement aucune empreinte sur le disque. Pour aider la communaut\u00e9 \u00e0 d\u00e9tecter et \u00e0 sensibiliser, nous avons t\u00e9l\u00e9charg\u00e9 ces payloads sur VirusTotal. La payload de d\u00e9s\u00e9rialisation YAML ex\u00e9cute les logiciels malveillants RN\u00a0Loader et RN\u00a0Stealer sur la base du format de jeton\u00a0C2 que nous avons identifi\u00e9 dans RN\u00a0Stealer, et que nous analysons dans les sections suivantes.<\/p>\n<table style=\"width: 100%;\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><b>Stade<\/b><\/td>\n<td style=\"text-align: center;\"><b>SHA256 Hash<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Payload de d\u00e9s\u00e9rialisation YAML<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">47e997b85ed3f51d2b1d37a6a61ae72185d9ceaf519e2fdb53bf7e761b7bc08f<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">RN Loader<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">937c533bddb8bbcd908b62f2bf48e5bc11160505df20fea91d9600d999eafa79<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">RN Stealer<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">e89bf606fbed8f68127934758726bbb5e68e751427f3bcad3ddf883cb2b50fc7<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Tableau\u00a01. Payloads du d\u00e9p\u00f4t Python. <\/span><\/p>\n<p>La payload de d\u00e9s\u00e9rialisation YAML de Slow\u00a0Pisces commence par cr\u00e9er le dossier <span style=\"font-family: 'courier new', courier, monospace;\">Public<\/span> dans le r\u00e9pertoire personnel de la victime, puis cr\u00e9e un nouveau fichier dans ce r\u00e9pertoire\u00a0: <span style=\"font-family: 'courier new', courier, monospace;\">__init__.py.<\/span> Les donn\u00e9es\u00a0Base64 int\u00e9gr\u00e9es sont d\u00e9cod\u00e9es et \u00e9crites dans ce fichier, qui contient l\u2019\u00e9tape suivante de l\u2019infection (RN\u00a0Loader), qui est ensuite ex\u00e9cut\u00e9e.<\/p>\n<h4><a id=\"post-143749-_heading=h.9oxmyvfjuzga\"><\/a>RN\u00a0Loader<\/h4>\n<p>Ce fichier nouvellement cr\u00e9\u00e9 pour RN\u00a0Loader dans <span style=\"font-family: 'courier new', courier, monospace;\">~\/Public\/__init__.py<\/span> se supprime lui-m\u00eame apr\u00e8s l\u2019ex\u00e9cution\u00a0: ainsi, il n\u2019existe que dans la m\u00e9moire. Il envoie des informations de base sur la machine et le syst\u00e8me d\u2019exploitation de la victime par HTTPS au m\u00eame C2 (sur <span style=\"font-family: 'courier new', courier, monospace;\">en.stockslab[.]org<\/span>), puis ex\u00e9cute une boucle de commande avec les options visibles dans le tableau\u00a02.<\/p>\n<table style=\"width: 100%;\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><b>Code<\/b><\/td>\n<td style=\"text-align: center;\"><b>Description<\/b><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">0<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Mise en sommeil de 20\u00a0secondes<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">1<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Base64- d\u00e9code le contenu envoy\u00e9 et l\u2019enregistre dans le fichier <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">init.dll<\/span><span style=\"font-weight: 400;\"> (sur Windows) ou <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">init<\/span><span style=\"font-weight: 400;\"> (pour les autres OS).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">D\u00e9finit une variable d\u2019environnement <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">X_DATABASE_NAME<\/span><span style=\"font-weight: 400;\"> sur une cha\u00eene vide.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Charge et ex\u00e9cute la DLL t\u00e9l\u00e9charg\u00e9e \u00e0 l\u2019aide de <\/span><span style=\"font-family: 'courier new', courier, monospace;\"><a href=\"https:\/\/docs.python.org\/3\/library\/ctypes.html#ctypes.CDLL\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">ctypes.cdll.LoadLibrary<\/span><\/a><\/span><span style=\"font-weight: 400;\">.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Base64- d\u00e9code le contenu envoy\u00e9 et l\u2019ex\u00e9cute \u00e0 l\u2019aide du composant Python int\u00e9gr\u00e9 <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">exec<\/span><span style=\"font-weight: 400;\">.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">3<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Base64- d\u00e9code le contenu envoy\u00e9 et un param\u00e8tre. Le contenu est enregistr\u00e9 dans le fichier <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">dockerd<\/span><span style=\"font-weight: 400;\">, tandis que le param\u00e8tre est enregistr\u00e9 sous <\/span><span style=\"font-family: 'courier new', courier, monospace;\"><span style=\"font-weight: 400;\">docker-init<\/span><span style=\"font-weight: 400;\">.<\/span><\/span><\/p>\n<p><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">dockerd<\/span><span style=\"font-weight: 400;\"> est alors ex\u00e9cut\u00e9 dans un nouveau processus, avec <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">docker-init<\/span><span style=\"font-weight: 400;\"> en tant qu\u2019argument de ligne de commande.<\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">9<\/span><\/td>\n<td style=\"text-align: left;\"><span style=\"font-weight: 400;\">Fin de l\u2019ex\u00e9cution.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">Tableau\u00a02. Tableau des commandes RN\u00a0Loader. <\/span><\/p>\n<p>Les payloads de la boucle de commande du tableau\u00a02 utilisant les options\u00a0<strong>1<\/strong> et <strong>3<\/strong> sont actuellement inconnues et sont probablement d\u00e9clench\u00e9es par des conditions sp\u00e9cifiques. Cependant, nous avons identifi\u00e9 qu\u2019un logiciel malveillant bas\u00e9 sur Python \u00e9tait livr\u00e9 par l\u2019option <strong>2 <\/strong>afin de subtiliser des informations\u00a0: RN\u00a0Stealer.<\/p>\n<h4><a id=\"post-143749-_heading=h.qj8l7cg9erhq\"><\/a>RN\u00a0Stealer<\/h4>\n<p>RN Stealer g\u00e9n\u00e8re d\u2019abord un identifiant al\u00e9atoire de la victime, utilis\u00e9 ensuite comme cookie dans toutes les communications avec le serveur\u00a0C2. Il demande ensuite au serveur une cl\u00e9\u00a0XOR pour chiffrer les donn\u00e9es exfiltr\u00e9es.<\/p>\n<p>La communication avec le serveur\u00a0C2 se fait via HTTPS, en utilisant des jetons cod\u00e9s en Base64 pour identifier les types de demandes et de r\u00e9ponses. La payload analys\u00e9e comprend quatre types de jetons\u00a0:<\/p>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R0<\/span> - demande de cl\u00e9 XOR<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R64<\/span> - exfiltration de donn\u00e9es<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R128<\/span> - exfiltration de donn\u00e9es compress\u00e9es<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R256<\/span> - fin du vol d\u2019informations<\/li>\n<\/ul>\n<p>C\u2019est le format de ces jetons - la lettre R suivie d\u2019un nombre entier N - qui a donn\u00e9 son nom \u00e0 cette payload. (RN\u00a0Stealer pour la payload, RN Loader pour l\u2019\u00e9tape pr\u00e9c\u00e9dente).<\/p>\n<p>Nous avons r\u00e9cup\u00e9r\u00e9 le script de cet \u00e9chantillon de RN Stealer sur un syst\u00e8me macOS. Les attaquants ont donc adapt\u00e9 cet \u00e9chantillon pour voler des informations sp\u00e9cifiques aux appareils macOS, et notamment\u00a0:<\/p>\n<ul>\n<li>Des informations de base sur la victime\u00a0: Nom d\u2019utilisateur, nom de la machine et architecture<\/li>\n<li>Applications install\u00e9es<\/li>\n<li>Liste de r\u00e9pertoires et le contenu de premier niveau du r\u00e9pertoire personnel de la victime.<\/li>\n<li>Le fichier <span style=\"font-family: 'courier new', courier, monospace;\">login.keychain-db<\/span> qui stocke les informations d\u2019identification sauvegard\u00e9es dans les syst\u00e8mes\u00a0macOS.<\/li>\n<li>Les cl\u00e9s\u00a0SSH stock\u00e9es<\/li>\n<li>Fichiers de configuration pour AWS, Kubernetes et Google\u00a0Cloud.<\/li>\n<\/ul>\n<p>Les donn\u00e9es recueillies par RN\u00a0Stealer d\u00e9terminent probablement si un acc\u00e8s permanent est n\u00e9cessaire. Si c\u2019est le cas, nous pouvons d\u00e9duire les \u00e9tapes suivantes pour cette cha\u00eene d\u2019infection Python\u00a0:<\/p>\n<ol>\n<li>Le serveur\u00a0C2 v\u00e9rifie les victimes de balisage en fonction de crit\u00e8res inconnus. Les victimes valides re\u00e7oivent une payload de d\u00e9s\u00e9rialisation\u00a0YAML. Les victimes non valides re\u00e7oivent des donn\u00e9es\u00a0JSON b\u00e9nignes.<\/li>\n<li>La payload de d\u00e9s\u00e9rialisation \u00e9tablit une boucle de commande avec le serveur\u00a0C2, exfiltre les informations de base de la victime et d\u00e9livre un infostealer\u00a0Python personnalis\u00e9 via le code d\u2019option\u00a0<strong>2<\/strong> du tableau\u00a02.<\/li>\n<li>L\u2019infostealer recueille des informations plus d\u00e9taill\u00e9es sur la victime, que les attaquants ont probablement utilis\u00e9es pour d\u00e9terminer s\u2019ils avaient besoin d\u2019un acc\u00e8s permanent.\n<ol>\n<li>Si c\u2019est le cas, le serveur\u00a0C2 d\u00e9livre une payload via les codes d\u2019option\u00a0<strong>1 <\/strong>ou <strong>3<\/strong>.<\/li>\n<li>Si l\u2019acc\u00e8s n\u2019est plus requis, le code d\u2019option\u00a0<strong>9<\/strong> met fin \u00e0 l\u2019ex\u00e9cution du logiciel malveillant et supprime tous les acc\u00e8s, puisque la payload r\u00e9side uniquement dans la m\u00e9moire.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h3><a id=\"post-143749-_heading=h.hosriot72gr5\"><\/a>\u00c9tape\u00a03b - D\u00e9p\u00f4t\u00a0JavaScript<\/h3>\n<p>Si les victimes cibl\u00e9es ont postul\u00e9 pour un poste de d\u00e9veloppeur JavaScript, elles d\u00e9couvrent plut\u00f4t un projet de \u00ab\u00a0tableau de bord des cryptomonnaies\u00a0\u00bb, similaire \u00e0 l\u2019exemple de la figure\u00a06 ci-dessous.<\/p>\n<figure id=\"attachment_143806\" aria-describedby=\"caption-attachment-143806\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143806 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-278307-143749-6.png\" alt=\"Capture d'\u00e9cran d'un d\u00e9p\u00f4t GitHub nomm\u00e9 \u00ab Cryptocurrency Dashboard \u00bb, avec un fichier README.md affich\u00e9. Ce fichier README comprend les sections suivantes : Caract\u00e9ristiques, Installation, Utilisation, Structure du projet, Configuration, D\u00e9pendances et Licence. Il d\u00e9crit le projet comme une application construite avec Node.js, Express et EJS qui affiche des donn\u00e9es historiques et en temps r\u00e9el pour diverses crypto-monnaies.\" width=\"800\" height=\"462\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-278307-143749-6.png 1764w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-278307-143749-6-762x440.png 762w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-278307-143749-6-1213x700.png 1213w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-278307-143749-6-768x443.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-278307-143749-6-1536x886.png 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-143806\" class=\"wp-caption-text\">Figure 6. D\u00e9p\u00f4t JavaScript.<\/figcaption><\/figure>\n<p>Cette application contient un fichier <span style=\"font-family: 'courier new', courier, monospace;\">.env<\/span> avec le serveur C2 et une source de donn\u00e9es C2 l\u00e9gitime\u00a0:<\/p>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">PORT=3000<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">COINGECKO_API_URL=hxxps:\/\/api.coingecko[.]com\/api\/v3<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">JQUERY_API_URL=hxxps:\/\/update.jquerycloud[.]io\/api\/v1<\/span><\/li>\n<\/ul>\n<p>La valeur\u00a0<span style=\"font-family: 'courier new', courier, monospace;\">COINGECKO_API_URL<\/span> est utilis\u00e9e pour r\u00e9cup\u00e9rer des donn\u00e9es pour le tableau de bord des cryptomonnaies, tandis que la valeur <span style=\"font-family: 'courier new', courier, monospace;\">JQUERY_API_URL<\/span> repr\u00e9sente un serveur\u00a0C2 contr\u00f4l\u00e9 par Slow\u00a0Pisces. Comme pour le d\u00e9p\u00f4t Python, le serveur\u00a0C2 JavaScript ne d\u00e9livre des payloads qu\u2019aux cibles valid\u00e9es. \u00c0 d\u00e9faut, il r\u00e9pond par un num\u00e9ro de version.<\/p>\n<p>Le d\u00e9p\u00f4t utilise l\u2019outil de mod\u00e9lisation <a href=\"https:\/\/ejs.co\/\" target=\"_blank\" rel=\"noopener\">Embedded JavaScript (EJS)<\/a>, en transmettant les r\u00e9ponses du serveur\u00a0C2 \u00e0 la fonction <span style=\"font-family: 'courier new', courier, monospace;\">ejs.render()<\/span>, comme le montre la figure\u00a07 ci-dessous.<\/p>\n<figure id=\"attachment_143817\" aria-describedby=\"caption-attachment-143817\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143817 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-281798-143749-7.png\" alt=\"Capture d'\u00e9cran montrant un extrait de code en JavaScript. Il comprend un commentaire et un appel de fonction pour rendre une page d'accueil avec des param\u00e8tres et des \u00e9l\u00e9ments par page. res.render est mis en \u00e9vidence dans un encadr\u00e9 rouge.\" width=\"700\" height=\"294\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-281798-143749-7.png 1116w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-281798-143749-7-786x330.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-281798-143749-7-768x322.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-143817\" class=\"wp-caption-text\">Figure 7. JavaScript code showing the entry point of Slow Pisces\u2019 malware using the EJS render function.<\/figcaption><\/figure>\n<p>Tout comme l\u2019utilisation de <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span>, il s\u2019agit d\u2019une autre technique employ\u00e9e par Slow\u00a0Pisces pour dissimuler l\u2019ex\u00e9cution d\u2019un code arbitraire \u00e0 partir de ses serveurs\u00a0C2. Cette m\u00e9thode n\u2019est peut-\u00eatre apparente que lors de l\u2019affichage d\u2019une payload valide.<\/p>\n<p>La fonction de rendu\u00a0EJS accepte divers param\u00e8tres, dont l\u2019un est appel\u00e9 <span style=\"font-family: 'courier new', courier, monospace;\">view options<\/span>. Dans ce cadre, un code JavaScript arbitraire peut \u00eatre fourni et ex\u00e9cut\u00e9 par le biais de la cl\u00e9 <span style=\"font-family: 'courier new', courier, monospace;\">escapeFunction<\/span>.<\/p>\n<p>Un chercheur ta\u00efwanais qui se pr\u00e9sente sous le nom de Huli a discut\u00e9 des d\u00e9tails techniques de l\u2019ex\u00e9cution de code arbitraire <a href=\"https:\/\/blog.huli.tw\/2023\/06\/22\/en\/ejs-render-vulnerability-ctf\/\" target=\"_blank\" rel=\"noopener\">dans un post CTF<\/a>. Cependant, nous pouvons comprendre qu\u2019une payload structur\u00e9e comme le montre la figure\u00a08 entra\u00eenera l\u2019ex\u00e9cution du code contenu dans <span style=\"font-family: 'courier new', courier, monospace;\">escapeFunction<\/span> lorsqu\u2019il sera transmis \u00e0 <span style=\"font-family: 'courier new', courier, monospace;\">ejs.render()<\/span>.<\/p>\n<figure id=\"attachment_143828\" aria-describedby=\"caption-attachment-143828\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143828 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284723-143749-8.png\" alt=\"Capture d'\u00e9cran d'un extrait de code JavaScript impliquant des fonctions avec \u00ab escapeFunction \u00bb mis en \u00e9vidence dans un cadre rouge.\" width=\"700\" height=\"593\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284723-143749-8.png 1234w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284723-143749-8-519x440.png 519w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284723-143749-8-826x700.png 826w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284723-143749-8-768x651.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-143828\" class=\"wp-caption-text\">Figure 8. Payload partielle du rendu EJS.<\/figcaption><\/figure>\n<p>Malheureusement, nous n\u2019avons pas pu r\u00e9cup\u00e9rer la totalit\u00e9 de cette payload. Ainsi, nous ne pouvons que supposer qu\u2019un nouveau r\u00e9pertoire <span style=\"font-family: 'courier new', courier, monospace;\">.jql<\/span> est cr\u00e9\u00e9 dans le r\u00e9pertoire personnel de l\u2019utilisateur, o\u00f9 est d\u00e9pos\u00e9 un fichier appel\u00e9 <span style=\"font-family: 'courier new', courier, monospace;\">helper.js<\/span>, qui contient des donn\u00e9es Base64-.<\/p>\n<h3><a id=\"post-143749-_heading=h.w39jchhdohd5\"><\/a>Infrastructure<\/h3>\n<p>Le calendrier ci-dessous (figure\u00a09) d\u00e9taille l\u2019infrastructure\u00a0C2 utilis\u00e9e dans cette campagne entre f\u00e9vrier\u00a02024 et f\u00e9vrier\u00a02025, en fonction du type de d\u00e9p\u00f4t utilis\u00e9 (JavaScript ou Python).<\/p>\n<figure id=\"attachment_143839\" aria-describedby=\"caption-attachment-143839\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-143839 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288609-143749-9.png\" alt=\"Chronologie de l'infrastructure de suivi des commandes et contr\u00f4les JavaScript (en haut, \u00e9tiquette jaune) et des commandes et contr\u00f4les Python (en bas, \u00e9tiquette orange). La chronologie commence \u00e0 la fin du premier trimestre 2024 et se poursuit jusqu'au deuxi\u00e8me trimestre 2025.\" width=\"1000\" height=\"906\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288609-143749-9.png 1338w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288609-143749-9-486x440.png 486w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288609-143749-9-773x700.png 773w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288609-143749-9-768x696.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-143839\" class=\"wp-caption-text\">Figure 9. Calendrier de l\u2019infrastructure C2.<\/figcaption><\/figure>\n<p>Comme indiqu\u00e9 pr\u00e9c\u00e9demment, les domaines de l\u2019infrastructure de cette campagne peuvent imiter le format des sources l\u00e9gitimes qui sont \u00e9galement utilis\u00e9es, en utilisant fr\u00e9quemment des sous-domaines tels que <span style=\"font-family: 'courier new', courier, monospace;\">api<\/span> ou <span style=\"font-family: 'courier new', courier, monospace;\">cdn<\/span>. Nous avons d\u00e9couvert des infrastructures associ\u00e9es \u00e0 cette campagne jusqu\u2019au moment de la r\u00e9daction de cet article.<\/p>\n<h2><a id=\"post-143749-_heading=h.j22xznjn8jaw\"><\/a>Conclusion<\/h2>\n<p>Ce rapport a couvert la campagne la plus r\u00e9cente de Slow\u00a0Pisces, qui consistait \u00e0 se faire passer pour un recruteur sur LinkedIn pour cibler les d\u00e9veloppeurs du secteur des cryptomonnaies en leur proposant des d\u00e9fis de codage malveillants. Bien que nous n\u2019ayons pas \u00e9t\u00e9 en mesure de r\u00e9cup\u00e9rer la cha\u00eene d\u2019attaque compl\u00e8te pour les d\u00e9p\u00f4ts JavaScript, la version Python nous a permis d\u2019obtenir deux nouvelles payloads\u00a0: RN\u00a0Loader et RN\u00a0Stealer.<\/p>\n<p>Une telle utilisation de LinkedIn et de GitHub n\u2019est pas exceptionnelle. De nombreux groupes affili\u00e9s \u00e0 la RPDC ont utilis\u00e9 des tactiques similaires, comme <a href=\"https:\/\/www.reversinglabs.com\/blog\/fake-recruiter-coding-tests-target-devs-with-malicious-python-packages\" target=\"_blank\" rel=\"noopener\">Alluring\u00a0Pisces<\/a> et <a href=\"https:\/\/unit42.paloaltonetworks.com\/two-campaigns-by-north-korea-bad-actors-target-job-hunters\/\" target=\"_blank\" rel=\"noopener\">Contagious\u00a0Interview<\/a>.<\/p>\n<p>Ces groupes ne se chevauchent pas sur le plan op\u00e9rationnel. Il convient toutefois de noter que ces campagnes utilisent des vecteurs d\u2019infection initiale similaires.<\/p>\n<p>Slow\u00a0Pisces se d\u00e9marque des campagnes de ses pairs en mati\u00e8re de s\u00e9curit\u00e9 op\u00e9rationnelle. La livraison des payloads \u00e0 chaque \u00e9tape est fortement surveill\u00e9e et n\u2019existe qu\u2019en m\u00e9moire. Et le tooling des \u00e9tapes suivantes n\u2019est d\u00e9ploy\u00e9 qu\u2019en cas de n\u00e9cessit\u00e9.<\/p>\n<p>Le groupe a notamment utilis\u00e9 deux techniques pour dissimuler la fonctionnalit\u00e9\u00a0:<\/p>\n<ul>\n<li>La d\u00e9s\u00e9rialisation YAML<\/li>\n<li>La fonction\u00a0EJS <span style=\"font-family: 'courier new', courier, monospace;\">escapeFunction<\/span><\/li>\n<\/ul>\n<p>Ces deux techniques entravent consid\u00e9rablement l\u2019analyse, la d\u00e9tection et la chasse. De m\u00eame, les d\u00e9veloppeurs relativement nouveaux ou inexp\u00e9riment\u00e9s dans le secteur des cryptomonnaies auraient des difficult\u00e9s \u00e0 identifier ces d\u00e9p\u00f4ts comme \u00e9tant malveillants.<\/p>\n<p>D\u2019apr\u00e8s les rapports publics sur les vols de cryptomonnaie, cette campagne semble tr\u00e8s r\u00e9ussie et devrait se poursuivre en 2025. Bien que cet article ait mis en \u00e9vidence deux possibilit\u00e9s de d\u00e9tection pour la d\u00e9s\u00e9rialisation\u00a0YAML et les payloads\u00a0EJS <span style=\"font-family: 'courier new', courier, monospace;\">escapeFunction<\/span>, la mesure d\u2019att\u00e9nuation la plus efficace reste la s\u00e9paration stricte des appareils professionnels et personnels. Cela permet d\u2019\u00e9viter la compromission des syst\u00e8mes d\u2019entreprise par des campagnes d\u2019ing\u00e9nierie sociale cibl\u00e9es.<\/p>\n<h3><a id=\"post-143749-_heading=h.xg38ihmm8dob\"><\/a>Palo Alto Networks\u00a0: protection et att\u00e9nuation<\/h3>\n<p>Les clients de Palo\u00a0Alto\u00a0Networks sont mieux prot\u00e9g\u00e9s contre les menaces \u00e9voqu\u00e9es ci-dessus gr\u00e2ce aux produits suivants\u00a0:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-url-filtering\/administration\" target=\"_blank\" rel=\"noopener\">Advanced URL Filtering<\/a> et <a href=\"https:\/\/docs.paloaltonetworks.com\/dns-security\" target=\"_blank\" rel=\"noopener\">Advanced DNS Security<\/a><\/li>\n<\/ul>\n<p>Si vous pensez avoir \u00e9t\u00e9 compromis ou en cas de question urgente, prenez contact avec<a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\"> l\u2019\u00e9quipe de r\u00e9ponse \u00e0 incident de l\u2019Unit\u00a042<\/a> ou appelez les num\u00e9ros suivants\u00a0:.<\/p>\n<ul>\n<li>Am\u00e9rique du Nord\u00a0: Sans frais\u00a0: +1 (866) 486-4842 (866.4.UNIT42)<\/li>\n<li>ROYAUME-UNI\u00a0: +44.20.3743.3660<\/li>\n<li>Europe et Moyen-Orient\u00a0: +31.20.299.3130<\/li>\n<li>Asie\u00a0: +65.6983.8730<\/li>\n<li>Japon\u00a0: +81.50.1790.0200<\/li>\n<li>Australie\u00a0: +61.2.4062.7950<\/li>\n<li>Inde\u00a0: 00080005045107<\/li>\n<\/ul>\n<p>Palo\u00a0Alto\u00a0Networks a partag\u00e9 ces r\u00e9sultats avec les membres de la Cyber\u00a0Threat\u00a0Alliance (CTA). Les membres de la CTA utilisent ces renseignements pour d\u00e9ployer rapidement des mesures de protection aupr\u00e8s de leurs clients et pour perturber syst\u00e9matiquement les cyberacteurs malveillants. En savoir plus sur la <a href=\"https:\/\/www.cyberthreatalliance.org\" target=\"_blank\" rel=\"noopener\">Cyber Threat Alliance<\/a>.<\/p>\n<h2><a id=\"post-143749-_heading=h.sxslexh3lxph\"><\/a>Indicateurs de compromission<\/h2>\n<table style=\"width: 100%;\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><b>Domaine<\/b><\/td>\n<td style=\"text-align: center;\"><b>Adresse\u00a0IP<\/b><\/td>\n<td style=\"text-align: center;\"><b>Premi\u00e8re apparition<\/b><\/td>\n<td style=\"text-align: center;\"><b>Derni\u00e8re apparition<\/b><\/td>\n<td style=\"text-align: center;\"><b>D\u00e9p\u00f4t<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">getstockprice[.]com<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">70.34.245[.]118<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2025-02-03<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2025-02-20<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">cdn[.]clubinfo[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">5.206.227[.]51<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2025-01-21<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2025-02-19<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">getstockprice[.]info<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">131.226.2[.]120<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2025-01-21<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2025-01-23<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]stockinfo[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">136.244.93[.]248<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-10-30<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-11-11<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">cdn[.]logoeye[.]net<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">54.39.83[.]151<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-10-29<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-11-03<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">en[.]wfinance[.]org<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">195.133.26[.]32<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-10-12<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-11-01<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">en[.]stocksindex[.]org<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">185.236.231[.]224<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-09-11<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-10-04<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">cdn[.]jqueryversion[.]net<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">194.11.226[.]16<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-08-23<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-09-23<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">en[.]stockslab[.]org<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">91.103.140[.]191<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-08-19<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-09-12<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">update[.]jquerycloud[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">192.236.199[.]57<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-07-03<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-08-22<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">cdn[.]soccerlab[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">146.70.124[.]70<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-08-07<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-08-21<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]coinpricehub[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">45.141.58[.]40<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-05-06<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-08-06<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Java<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">cdn[.]leaguehub[.]net<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">5.133.9[.]252<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-07-15<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-07-21<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">cdn[.]clublogos[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">146.19.173[.]29<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-06-24<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-07-12<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]jquery-release[.]com<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">146.70.125[.]120<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-06-10<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-06-28<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">cdn[.]logosports[.]net<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">185.62.58[.]74<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-05-08<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-06-23<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">skypredict[.]org<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">80.82.77[.]80<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-05-06<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-06-16<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]bitzone[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">192.248.145[.]210<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-25<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-05-13<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">weatherdatahub[.]org<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">194.15.112[.]200<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-05<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-05-03<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]ethzone[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">91.234.199[.]90<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-16<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-24<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]fivebit[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">185.216.144[.]41<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-08<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-14<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">blockprices[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">91.193.18[.]201<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-15<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-09<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]coinhar[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">185.62.58[.]122<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-26<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-04-09<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">mavenradar[.]com<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">23.254.230[.]253<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-02-21<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-26<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">indobit[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">146.70.88[.]126<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-19<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-20<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">api[.]thaibit[.]io<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">79.137.248[.]193<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-07<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-09<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Python<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">chainanalyser[.]com<\/span><\/td>\n<td><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">38.180.62[.]135<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-02-23<\/span><\/td>\n<td style=\"text-align: center;\"><span style=\"font-weight: 400;\">2024-03-06<\/span><\/td>\n<td><span style=\"font-weight: 400;\">JavaScript<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><a id=\"post-143749-_heading=h.k2y7iyrrh5aa\"><\/a>Ressources compl\u00e9mentaires<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.ic3.gov\/PSA\/2025\/PSA250226\" target=\"_blank\" rel=\"noopener\">La Cor\u00e9e du Nord responsable du piratage de Bybit, \u00e0 hauteur de 1,5\u00a0milliard de dollars<\/a> \u2013 Internet Crime Complaint Center (IC3)<\/li>\n<li><a href=\"https:\/\/www.fbi.gov\/news\/press-releases\/fbi-dc3-and-npa-identification-of-north-korean-cyber-actors-tracked-as-tradertraitor-responsible-for-theft-of-308-million-from-bitcoindmmcom\" target=\"_blank\" rel=\"noopener\">Le FBI, le DC3 et la NPA pointent du doigt TraderTraitor, des cyberacteurs nord-cor\u00e9ens, pour le vol de 308\u00a0millions de dollars sur Bitcoin.DMM.com<\/a> \u2013 FBI<\/li>\n<li><a href=\"https:\/\/github.blog\/security\/vulnerability-research\/security-alert-social-engineering-campaign-targets-technology-industry-employees\/\" target=\"_blank\" rel=\"noopener\">Alerte de s\u00e9curit\u00e9\u00a0: une campagne d\u2019ing\u00e9nierie sociale cible les employ\u00e9s du secteur technologique<\/a> \u2013 GitHub Blog<\/li>\n<li><a href=\"https:\/\/cloud.google.com\/blog\/topics\/threat-intelligence\/north-korea-supply-chain\" target=\"_blank\" rel=\"noopener\">La Cor\u00e9e du Nord utilise un fournisseur de logiciels libres dans une attaque cibl\u00e9e de la supply chain<\/a> \u2013 Mandiant, Google Cloud.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Le groupe Slow Pisces (Jade Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants.<\/p>\n","protected":false},"author":366,"featured_media":138784,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[8733,8823,8787],"tags":[9186,9204,9205,9206,9207,9187],"product_categories":[8956,8973,8955,9083,9151],"coauthors":[8711],"class_list":["post-143749","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybercrime-fr","category-threat-actor-groups-fr","category-malware-fr","tag-dprk-fr","tag-github-fr","tag-infostealer-fr","tag-javascript-malware-fr","tag-slow-pisces-fr","tag-social-engineering-fr","product_categories-advanced-dns-security-fr","product_categories-advanced-url-filtering-fr","product_categories-cloud-delivered-security-services-fr","product_categories-next-generation-firewall-fr","product_categories-unit-42-incident-response-fr"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python<\/title>\n<meta name=\"description\" content=\"Le groupe Slow Pisces (Jade Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants. Le groupe Slow\u00a0Pisces (Jade\u00a0Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python\" \/>\n<meta property=\"og:description\" content=\"Le groupe Slow Pisces (Jade Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants. Le groupe Slow\u00a0Pisces (Jade\u00a0Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/\" \/>\n<meta property=\"og:site_name\" content=\"Unit 42\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-14T17:58:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-19T18:00:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/03\/Pisces-NK-A-1920x900-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Prashil Pattni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python","description":"Le groupe Slow Pisces (Jade Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants. Le groupe Slow\u00a0Pisces (Jade\u00a0Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/","og_locale":"fr_FR","og_type":"article","og_title":"Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python","og_description":"Le groupe Slow Pisces (Jade Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants. Le groupe Slow\u00a0Pisces (Jade\u00a0Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants.","og_url":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/","og_site_name":"Unit 42","article_published_time":"2025-04-14T17:58:56+00:00","article_modified_time":"2025-06-19T18:00:45+00:00","og_image":[{"width":1920,"height":900,"url":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/03\/Pisces-NK-A-1920x900-1.png","type":"image\/png"}],"author":"Prashil Pattni","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#article","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/"},"author":{"name":"Sheida Azimi","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639"},"headline":"Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python","datePublished":"2025-04-14T17:58:56+00:00","dateModified":"2025-06-19T18:00:45+00:00","mainEntityOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/"},"wordCount":3862,"commentCount":0,"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#primaryimage"},"thumbnailUrl":"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/03\/Pisces-NK-A-1920x900-1.png","keywords":["DPRK","GitHub","Infostealer","JavaScript Malware","Slow Pisces","social engineering"],"articleSection":["Cybercrime","Groupes cybercriminels","Malware"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/","url":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/","name":"Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#primaryimage"},"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#primaryimage"},"thumbnailUrl":"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/03\/Pisces-NK-A-1920x900-1.png","datePublished":"2025-04-14T17:58:56+00:00","dateModified":"2025-06-19T18:00:45+00:00","author":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639"},"description":"Le groupe Slow Pisces (Jade Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants. Le groupe Slow\u00a0Pisces (Jade\u00a0Sleet), soutenu par l\u2019\u00c9tat nord-corr\u00e9en, a cibl\u00e9 les d\u00e9veloppeurs de crypto-monnaies avec une campagne d\u2019ing\u00e9nierie sociale comprenant des d\u00e9fis de codage malveillants.","breadcrumb":{"@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#primaryimage","url":"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/03\/Pisces-NK-A-1920x900-1.png","contentUrl":"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/03\/Pisces-NK-A-1920x900-1.png","width":1920,"height":900,"caption":"Pictorial representation of APT Slow Pisces. The silhouette of two fish and the Pisces constellation inside an orange abstract planet. Background of stars and swirling purple and blue colors."},{"@type":"BreadcrumbList","@id":"https:\/\/unit42.paloaltonetworks.com\/fr\/slow-pisces-new-custom-malware\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/unit42.paloaltonetworks.com\/"},{"@type":"ListItem","position":2,"name":"Slow\u00a0Pisces cible les d\u00e9veloppeurs avec des d\u00e9fis de codage et pr\u00e9sente un nouveau logiciel malveillant personnalis\u00e9 en Python"}]},{"@type":"WebSite","@id":"https:\/\/unit42.paloaltonetworks.com\/#website","url":"https:\/\/unit42.paloaltonetworks.com\/","name":"Unit 42","description":"Palo Alto Networks","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/unit42.paloaltonetworks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639","name":"Sheida Azimi","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/image\/9213e49ea48b7676660bac40d05c9e3e","url":"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2018\/11\/unit-news-meta.svg","contentUrl":"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2018\/11\/unit-news-meta.svg","caption":"Sheida Azimi"},"url":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/author\/sheida-azimi\/"}]}},"_links":{"self":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/posts\/143749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/users\/366"}],"replies":[{"embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/comments?post=143749"}],"version-history":[{"count":4,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/posts\/143749\/revisions"}],"predecessor-version":[{"id":143892,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/posts\/143749\/revisions\/143892"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/media\/138784"}],"wp:attachment":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/media?parent=143749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/categories?post=143749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/tags?post=143749"},{"taxonomy":"product_categories","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/product_categories?post=143749"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/fr\/wp-json\/wp\/v2\/coauthors?post=143749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}