{"id":144104,"date":"2025-04-14T11:29:32","date_gmt":"2025-04-14T18:29:32","guid":{"rendered":"https:\/\/unit42.paloaltonetworks.com\/?p=144104"},"modified":"2025-06-23T11:33:13","modified_gmt":"2025-06-23T18:33:13","slug":"slow-pisces-new-custom-malware","status":"publish","type":"post","link":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/","title":{"rendered":"Slow Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato"},"content":{"rendered":"<h2><a id=\"post-144104-_heading=h.dgenrvibm93r\"><\/a>Sintesi<\/h2>\n<p>Slow Pisces (alias Jade Sleet, TraderTraitor, PUKCHONG) \u00e8 un gruppo di minacce sponsorizzato dallo Stato nordcoreano che si concentra principalmente sulla generazione di entrate per il regime della Repubblica Democratica Popolare di Corea, in genere prendendo di mira grandi organizzazioni nel settore delle criptovalute. Questo articolo analizza la loro campagna che riteniamo sia collegata alle recenti furti di criptovalute.<\/p>\n<p>In questa campagna, <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 Pisces <\/a>ha contattato gli sviluppatori di criptovalute su LinkedIn, fingendosi potenziali datori di lavoro e inviando malware camuffati da challenges\/sfide di programmazione o codifica. Queste sfide richiedono agli sviluppatori di mandare in esecuzione un progetto compromesso, infettando i loro sistemi con malware che abbiamo chiamato RN Loader e RN Stealer.<\/p>\n<p>Il gruppo avrebbe rubato oltre <a href=\"https:\/\/www.microsoft.com\/en-us\/security\/security-insider\/microsoft-digital-defense-report-2023\" target=\"_blank\" rel=\"noopener\">1 miliardo di dollari dal settore delle criptovalute nel 2023<\/a>. Per farlo ha utilizzato vari metodi, tra cui <a href=\"https:\/\/www.cisa.gov\/news-events\/cybersecurity-advisories\/aa22-108a\" target=\"_blank\" rel=\"noopener\">applicazioni di trading false<\/a>, malware distribuito tramite <a href=\"https:\/\/github.blog\/security\/vulnerability-research\/security-alert-social-engineering-campaign-targets-technology-industry-employees\/\" target=\"_blank\" rel=\"noopener\">Node Package Manager (NPM) <\/a>e <a href=\"https:\/\/cloud.google.com\/blog\/topics\/threat-intelligence\/north-korea-supply-chain\" target=\"_blank\" rel=\"noopener\">compromissioni della catena di approvvigionamento<\/a>.<\/p>\n<p>Nel dicembre 2024, <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\">l'FBI ha attribuito <\/a>a Slow Pisces il furto di 308 milioni di dollari da una societ\u00e0 di criptovalute con sede in Giappone. Pi\u00f9 recentemente, il gruppo \u00e8 balzato agli onori della cronaca per il suo presunto coinvolgimento nel <a href=\"https:\/\/www.ic3.gov\/PSA\/2025\/PSA250226\" target=\"_blank\" rel=\"noopener\">furto di 1,5 miliardi di dollari <\/a>da una borsa di criptovalute di Dubai.<\/p>\n<p>Abbiamo condiviso la nostra intelligence sulle minacce con gli analisti di GitHub e LinkedIn per eliminare gli account e i repository interessati.<\/p>\n<p><span style=\"font-weight: 400;\">In risposta hanno fornito la seguente dichiarazione:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><em><i><span style=\"font-weight: 400;\">GitHub e LinkedIn hanno rimosso questi account dannosi per aver violato i rispettivi termini di servizio. In tutti i nostri prodotti utilizziamo una tecnologia automatizzata, combinata con team di esperti di indagini e segnalazioni dei membri, per combattere i malintenzionati e applicare i termini di servizio. Continuiamo a evolvere e migliorare i nostri processi e incoraggiamo i nostri clienti e membri a segnalare qualsiasi attivit\u00e0 sospetta.<\/span><\/i>.<\/em><\/p>\n<p style=\"padding-left: 40px;\"><b><i>Informazioni aggiuntive<\/i><\/b><\/p>\n<ul>\n<li><i><span style=\"font-weight: 400;\">Gli utenti di GitHub possono trovare maggiori informazioni nelle nostre pagine <\/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;\">sulle Politiche d'uso accettabili <\/span><\/i><\/a><i><span style=\"font-weight: 400;\">e sulla <\/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;\">segnalazione di abusi e spam<\/span><\/i><\/a><i><span style=\"font-weight: 400;\">.<\/span><\/i><\/li>\n<li><i>Gli utenti di LinkedIn possono saperne di pi\u00f9 su come identificare e segnalare gli abusi qui: <\/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>Riconoscere e segnalare spam, contenuti inappropriati e abusivi | Guida di LinkedIn.<\/i><\/a><\/li>\n<\/ul>\n<p>Questo rapporto descrive in dettaglio come Slow Pisces nasconde il malware all'interno delle sue sfide di codifica e descrive i successivi strumenti del gruppo, con l'obiettivo di fornire all'industria in generale una migliore comprensione di questa minaccia<\/p>\n<p>I clienti di Palo Alto Networks sono pi\u00f9 protetti dalle minacce discusse in questo articolo grazie ai nostri abbonamenti <a href=\"https:\/\/docs.paloaltonetworks.com\/ngfw\" target=\"_blank\" rel=\"noopener\">Next-Generation Firewall <\/a>con <a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-url-filtering\/administration\" target=\"_blank\" rel=\"noopener\">Advanced URL Filtering <\/a>e <a href=\"https:\/\/docs.paloaltonetworks.com\/dns-security\" target=\"_blank\" rel=\"noopener\">Advanced DNS Security<\/a>.<\/p>\n<p>Se pensate di essere stati compromessi o se avete una questione urgente, contattate il <a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\">team di risposta agli incidenti dell'Unit 42<\/a>.<\/p>\n<table style=\"width: 63.2682%;\">\n<thead>\n<tr>\n<td style=\"width: 49.965%;\"><b>Argomenti correlati a Unit 42<\/b><\/td>\n<td style=\"width: 85.035%;\"><a href=\"https:\/\/unit42.paloaltonetworks.com\/it\/tag\/cryptocurrency-it\/\" target=\"_blank\" rel=\"noopener\"><b>Cryptocurrency<\/b><\/a>, <strong><a href=\"https:\/\/unit42.paloaltonetworks.com\/it\/tag\/dprk-it\/\" target=\"_blank\" rel=\"noopener\">DPRK<\/a><\/strong><\/td>\n<\/tr>\n<\/thead>\n<\/table>\n<h2><a id=\"post-144104-_heading=h.rkwii94togru\"><\/a>Analisi tecnica<\/h2>\n<p>La nostra visibilit\u00e0 di questa campagna segue a grandi linee tre fasi, illustrate di seguito nella Figura 1.<\/p>\n<figure id=\"attachment_144207\" aria-describedby=\"caption-attachment-144207\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144207 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-5-704x440.png\" alt=\"Diagramma che illustra le minacce alla sicurezza informatica che coinvolgono esche PDF, repository GitHub e un server C2. Mostra: 1) file PDF come descrizioni di lavoro e fogli di domande che fungono da esche, 2) repository GitHub JavaScript e Python con pi\u00f9 API esterne, potenzialmente in grado di recuperare dati dannosi, e 3) un server C2 configurato per inviare dati benigni o un payload dannoso in determinate condizioni. I loghi di Palo Alto Networks e UNIT 42 sono inclusi.\" width=\"800\" height=\"500\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-5-704x440.png 704w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-5-1120x700.png 1120w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-5-768x480.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/2476_Diagrams-5.png 1267w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-144207\" class=\"wp-caption-text\">Figura 1. Panoramica della campagna Slow Pisces \"sfide di codifica\".<\/figcaption><\/figure>\n<h3><a id=\"post-144104-_heading=h.uz9pcb8spk4n\"><\/a>Fase 1 - Esche in PDF<\/h3>\n<p>Slow Pisces ha iniziato impersonando i reclutatori su LinkedIn e contattando i potenziali bersagli, inviando loro un PDF benigno con una descrizione del lavoro, come mostrato nella Figura 2. Se i potenziali bersagli si candidavano, ricevevano una sfida di programmazione composta da diversi compiti delineati in un foglio di domande.<\/p>\n<figure id=\"attachment_144117\" aria-describedby=\"caption-attachment-144117\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144117 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284667-144104-2.png\" alt=\"Immagine che mostra due documenti affiancati. A sinistra c'\u00e8 la \u201cDescrizione del lavoro\u201d di un coordinatore del team di progettazione UX. A destra c'\u00e8 un \u201cfoglio di domande\u201d contenente domande tecniche e generali relative al design dell'esperienza utente (UX).\" width=\"1000\" height=\"715\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284667-144104-2.png 1580w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284667-144104-2-615x440.png 615w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284667-144104-2-979x700.png 979w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284667-144104-2-768x549.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-284667-144104-2-1536x1099.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-144117\" class=\"wp-caption-text\">Figura 2. Esche PDF benigne.<\/figcaption><\/figure>\n<p>Abbiamo osservato Slow Pisces spacciarsi per diverse organizzazioni con queste esche, principalmente nel settore delle criptovalute. I fogli di domande includono compiti generici di sviluppo software e una sfida di codifica \"progetto reale\", che rimanda a un repository GitHub mostrato nella Figura 3 qui sotto.<\/p>\n<figure id=\"attachment_144128\" aria-describedby=\"caption-attachment-144128\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144128 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288416-144104-3.png\" alt=\"Schermata di un documento intitolato \u201cCoding and Problem-Solving Skills With Real Project\u201d. Include un link a un repository GitHub e delinea un compito di codifica che coinvolge i tassi di cambio di Bitcoin ed Ethereum da fonti API. Il testo richiede di migliorare il progetto aggiungendo altre API di mercato e migliorando la comunicazione di rete nel codice.\" width=\"800\" height=\"408\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288416-144104-3.png 1942w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288416-144104-3-786x401.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288416-144104-3-1373x700.png 1373w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288416-144104-3-768x392.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-288416-144104-3-1536x783.png 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-144128\" class=\"wp-caption-text\">Figura 3. Sfida di codifica \"progetto reale\" contenuta nell'esca PDF.<\/figcaption><\/figure>\n<h3><a id=\"post-144104-_heading=h.qft7ulqzpv1t\"><\/a>Fase 2 - Repository GitHub<\/h3>\n<p>Slow Pisces ha presentato agli obiettivi le cosiddette sfide di codifica come progetti da repository di codice su GitHub. I repository contenevano codice adattato da progetti open-source, comprese applicazioni per la visualizzazione e l'analisi:<\/p>\n<ul>\n<li>Dati del mercato azionario<\/li>\n<li>Statistiche dei campionati di calcio europei<\/li>\n<li>Dati meteo<\/li>\n<li>Prezzi delle criptovalute<\/li>\n<\/ul>\n<p>Il gruppo ha utilizzato principalmente progetti in Python o JavaScript, probabilmente a seconda che l'obiettivo si candidasse per un ruolo di sviluppo front-end o back-end. In questa campagna abbiamo visto anche repository basati su Java, anche se erano molto meno comuni, con solo due casi che impersonavano un'applicazione di criptovaluta chiamata jCoin.<\/p>\n<p>Questa scarsit\u00e0 suggerisce che gli aggressori potrebbero aver creato repository su richiesta, in base al linguaggio di programmazione preferito dall'obiettivo. Di conseguenza, il gruppo ha utilizzato pi\u00f9 frequentemente i linguaggi pi\u00f9 popolari nel settore delle criptovalute, come JavaScript e Python. Allo stesso modo, potrebbero esistere archivi non scoperti anche per altri linguaggi di programmazione.<\/p>\n<h3><a id=\"post-144104-_heading=h.6ckl43afhv47\"><\/a>Fase 3a - Repository Python<\/h3>\n<p>Alla fine del 2024, il gruppo ha utilizzato un progetto illustrato nella Figura 4, intitolato \"Stocks Pattern Analyzer\", adattato da un <a href=\"https:\/\/github.com\/gaborvecsei\/Stocks-Pattern-Analyzer\" target=\"_blank\" rel=\"noopener\">archivio legittimo<\/a>.<\/p>\n<figure id=\"attachment_144139\" aria-describedby=\"caption-attachment-144139\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144139 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-291620-144104-4.png\" alt=\"Schermata di un repository GitHub denominato \u201cStocks Pattern Analyzer\u201d che mostra la struttura dei file a sinistra e il contenuto del file README a destra che spiega come eseguire l'applicazione direttamente e con Docker.\" width=\"700\" height=\"363\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-291620-144104-4.png 1992w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-291620-144104-4-786x408.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-291620-144104-4-1349x700.png 1349w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-291620-144104-4-768x399.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-291620-144104-4-1536x797.png 1536w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-144139\" class=\"wp-caption-text\">Figura 4. Repository Python \"Stocks Pattern Analyzer\".<\/figcaption><\/figure>\n<p>La maggior parte del codice presente nel repository \u00e8 benigno. Quando gli obiettivi tentano di eseguire il progetto secondo il foglio delle domande, i dati vengono recuperati da tre posizioni remote:<\/p>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">hxxps:\/\/en.wikipedia[.]org\/wiki\/Lista_delle_aziende_S%26P_500_aziende<\/span><\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">hxxps:\/\/it.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<p>Due degli URL prelevano i dati da Wikipedia. Il terzo URL utilizza un dominio controllato da Slow Pisces. Questo schema - l'utilizzo di pi\u00f9 fonti di dati, la maggior parte legittime ma una malevola - \u00e8 comune nei repository Python del gruppo.<\/p>\n<p>Il server di comando e controllo (C2) dannoso \u00e8 configurato per imitare il formato delle fonti legittime. In questo caso, utilizza il sottodominio <span style=\"font-family: 'courier new', courier, monospace;\">.en<\/span> e il dominio di primo livello (TLD) <span style=\"font-family: 'courier new', courier, monospace;\">.org<\/span>, come vediamo per il dominio legittimo di Wikipedia.<\/p>\n<h4><a id=\"post-144104-_heading=h.jwjs8o6fj5mg\"><\/a>Deserializzazione di YAML<\/h4>\n<p>Slow Pisces potrebbe semplicemente inserire il malware direttamente nel repository o eseguire il codice dal server C2 utilizzando le funzioni <a href=\"https:\/\/docs.python.org\/3\/library\/functions.html#eval\" target=\"_blank\" rel=\"noopener\"><span style=\"font-family: 'courier new', courier, monospace;\">eval<\/span> <\/a>o <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>integrate in Python. Tuttavia, queste tecniche sono facilmente rilevabili, sia con l'ispezione manuale che con le soluzioni antivirus.<\/p>\n<p>Invece, Slow Pisces si assicura innanzitutto che il server C2 risponda con dati applicativi validi. Ad esempio, il repository di cui sopra si aspetta un elenco di simboli delle societ\u00e0 S&amp;P 500. L'URL C2 risponde inizialmente con questi dati in un elenco formato JSON. L'URL C2 risponde inizialmente con questi dati in un elenco formattato in JSON.<\/p>\n<p>Gli attori di minacce inviano un payload dannoso solo a obiettivi convalidati, probabilmente in base all'indirizzo IP, alla geolocalizzazione, all'ora e alle intestazioni delle richieste HTTP. Concentrarsi su individui contattati tramite LinkedIn, rispetto a campagne di phishing di ampia portata, permette al gruppo di controllare strettamente le fasi successive della campagna e di consegnare i payload solo alle vittime previste.<\/p>\n<p>Per evitare le sospette funzioni <span style=\"font-family: 'courier new', courier, monospace;\">eval<\/span> ed <span style=\"font-family: 'courier new', courier, monospace;\">exec<\/span>, Slow Pisces utilizza la <a href=\"https:\/\/net-square.com\/yaml-deserialization-attack-in-python.html\" target=\"_blank\" rel=\"noopener\">deserializzazione YAML <\/a>per eseguire il proprio payload, come mostrato nella Figura 5.<\/p>\n<figure id=\"attachment_144150\" aria-describedby=\"caption-attachment-144150\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144150 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-295371-144104-5.png\" alt=\"Schermata del codice Python che definisce una funzione \u201cfetch_symbols\u201d che recupera i simboli azionari dall'S&amp;P 500 tramite una chiamata API, gestisce diversi tipi di contenuto ed elabora le risposte in base al loro tipo di contenuto. L'ultima riga presenta una sezione evidenziata in un riquadro rosso.\" width=\"800\" height=\"403\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-295371-144104-5.png 1508w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-295371-144104-5-786x396.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-295371-144104-5-1389x700.png 1389w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-295371-144104-5-768x387.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-144150\" class=\"wp-caption-text\">Figura 5. Codice Python che mostra il punto di ingresso del malware Slow Pisces utilizzando la deserializzazione YAML.<\/figcaption><\/figure>\n<p>Questo codice recupera i dati dal server C2 tramite HTTPS e controlla l'intestazione <span style=\"font-family: 'courier new', courier, monospace;\">Content-Type<\/span> della risposta. Se l'intestazione indica dati JSON (<span style=\"font-family: 'courier new', courier, monospace;\">application\/json)<\/span>, il codice analizza e restituisce il JSON all'applicazione.<\/p>\n<p>Se la risposta indica dati YAML <span style=\"font-family: 'courier new', courier, monospace;\">(application\/yaml)<\/span>, il codice utilizza la funzione <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span> della libreria <a href=\"https:\/\/github.com\/yaml\/pyyaml\" target=\"_blank\" rel=\"noopener\">PyYAML <\/a>per analizzare i dati. Questa funzione \u00e8 intrinsecamente non sicura e la documentazione di PyYAML <a href=\"https:\/\/github.com\/yaml\/pyyaml\" target=\"_blank\" rel=\"noopener\">raccomanda esplicitamente <\/a><span style=\"font-family: 'courier new', courier, monospace;\">yaml.safe_load()<\/span> per input non attendibili.<\/p>\n<p>YAML \u00e8 tipicamente usato per i file di configurazione, come l'esempio mostrato di seguito:<\/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>Tuttavia, <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span> pu\u00f2 serializzare e deserializzare oggetti Python arbitrari, non solo dati YAML validi. Ad esempio, il seguente codice Python stampa i numeri 0-4:<\/p>\n<pre class=\"lang:default decode:true\">range(0, 5)<\/pre>\n<p>Se questo codice fosse serializzato usando yaml.dump() diventerebbe il seguente:<\/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>Infine, quando questi dati vengono passati a <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span>, viene eseguito il codice originale: <span style=\"font-family: 'courier new', courier, monospace;\">range(0, 5)<\/span>.<\/p>\n<p>Questo evidenzia un potenziale punto di rilevamento, poich\u00e9 i payload per il repository Python, e il malware che utilizza la deserializzazione YAML in generale, contengono <span style=\"font-family: 'courier new', courier, monospace;\">!!python\/object\/apply:builtins<\/span> se il payload utilizza una <a href=\"https:\/\/docs.python.org\/3\/library\/functions.html\" target=\"_blank\" rel=\"noopener\">funzione Python integrata<\/a>.<\/p>\n<p>I seguenti stadi della Tabella 1 risiedono principalmente in memoria e generalmente non hanno alcuna impronta su disco. Per aiutare la comunit\u00e0 nel rilevamento e nella consapevolezza, abbiamo caricato questi payload su VirusTotal. Il payload di deserializzazione YAML esegue un malware che abbiamo chiamato RN Loader e RN Stealer in base al formato del token C2 che abbiamo osservato in RN Stealer, descritto nelle sezioni successive.<\/p>\n<table>\n<tbody>\n<tr style=\"height: 24px;\">\n<td style=\"text-align: center; height: 24px;\"><b>Fase<\/b><\/td>\n<td style=\"text-align: center; height: 24px;\"><b>Hash SHA256<\/b><\/td>\n<\/tr>\n<tr style=\"height: 72px;\">\n<td style=\"height: 72px;\"><span style=\"font-weight: 400;\">Payload di deserializzazione YAML<\/span><\/td>\n<td style=\"height: 72px;\"><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">47e997b85ed3f51d2b1d37a6a61ae72185d9ceaf519e2fdb53bf7e761b7bc08f<\/span><\/td>\n<\/tr>\n<tr style=\"height: 25px;\">\n<td style=\"height: 25px;\"><span style=\"font-weight: 400;\">RN Loader<\/span><\/td>\n<td style=\"height: 25px;\"><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">937c533bddb8bbcd908b62f2bf48e5bc11160505df20fea91d9600d999eafa79<\/span><\/td>\n<\/tr>\n<tr style=\"height: 25px;\">\n<td style=\"height: 25px;\"><span style=\"font-weight: 400;\">RN Stealer<\/span><\/td>\n<td style=\"height: 25px;\"><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">e89bf606fbed8f68127934758726bbb5e68e751427f3bcad3ddf883cb2b50fc7<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tabella 1. Payloads del repository Python.<\/p>\n<p>Il payload di deserializzazione YAML di Slow Pisces inizia con la creazione della cartella <span style=\"font-family: 'courier new', courier, monospace;\">Public<\/span> nella home directory della vittima e la creazione di un nuovo file in tale directory denominato <span style=\"font-family: 'courier new', courier, monospace;\">__init__.py<\/span>. I dati Base64 incorporati vengono decodificati e scritti in questo file, che contiene la fase successiva dell'infezione (RN Loader), che viene quindi eseguita.<\/p>\n<h4><a id=\"post-144104-_heading=h.u4gpbl2286yo\"><\/a>Caricatore RN<\/h4>\n<p>Questo nuovo file creato per RN Loader in <span style=\"font-family: 'courier new', courier, monospace;\">~\/Public\/__init__.py<\/span> si cancella dopo l'esecuzione, assicurando che esista solo in memoria. Invia informazioni di base sulla macchina vittima e sul sistema operativo tramite HTTPS allo stesso C2 all'indirizzo <span style=\"font-family: 'courier new', courier, monospace;\">it.stockslab[.]org<\/span>, seguito da un ciclo di comandi con le seguenti opzioni riportate nella Tabella 2.<\/p>\n<table style=\"width: 87.5889%; height: 359px;\">\n<tbody>\n<tr style=\"height: 24px;\">\n<td style=\"text-align: center; height: 24px; width: 13.9276%;\"><b>Codice<\/b><\/td>\n<td style=\"text-align: center; height: 24px; width: 85.4225%;\"><b>Descrizione<\/b><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"text-align: center; height: 24px; width: 13.9276%;\"><span style=\"font-weight: 400;\">0<\/span><\/td>\n<td style=\"text-align: left; height: 24px; width: 85.4225%;\"><span style=\"font-weight: 400;\">Sleep for 20 seconds<\/span><\/td>\n<\/tr>\n<tr style=\"height: 139px;\">\n<td style=\"text-align: center; height: 139px; width: 13.9276%;\"><span style=\"font-weight: 400;\">1<\/span><\/td>\n<td style=\"text-align: left; height: 139px; width: 85.4225%;\"><span style=\"font-weight: 400;\">Decodifica in base64 il contenuto inviato e lo salva nel file <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">init.dll <\/span><span style=\"font-weight: 400;\">per Windows o <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">init <\/span><span style=\"font-weight: 400;\">per tutti gli altri sistemi operativi.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Imposta una variabile d'ambiente <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">X_DATABASE_NAME <\/span><span style=\"font-weight: 400;\">su una stringa vuota.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Carica ed esegue la DLL scaricata utilizzando <\/span><a href=\"https:\/\/docs.python.org\/3\/library\/ctypes.html#ctypes.CDLL\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\"><span style=\"font-family: 'courier new', courier, monospace;\">ctypes.cdll.LoadLibrary<\/span><\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/td>\n<\/tr>\n<tr style=\"height: 25px;\">\n<td style=\"text-align: center; height: 25px; width: 13.9276%;\"><span style=\"font-weight: 400;\">2<\/span><\/td>\n<td style=\"text-align: left; height: 25px; width: 85.4225%;\"><span style=\"font-weight: 400;\">Decodifica in base64 il contenuto inviato e lo esegue utilizzando l'<\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">exec <\/span><span style=\"font-weight: 400;\">integrato in Python.<\/span><\/td>\n<\/tr>\n<tr style=\"height: 123px;\">\n<td style=\"text-align: center; height: 123px; width: 13.9276%;\"><span style=\"font-weight: 400;\">3<\/span><\/td>\n<td style=\"text-align: left; height: 123px; width: 85.4225%;\"><span style=\"font-weight: 400;\">Decodifica in base64 il contenuto inviato e un parametro. Il contenuto viene salvato nel file <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">dockerd<\/span><span style=\"font-weight: 400;\">, mentre il parametro viene salvato come <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">docker-init<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">dockerd <\/span><span style=\"font-weight: 400;\">viene quindi eseguito in un nuovo processo, con <\/span><span style=\"font-weight: 400; font-family: 'courier new', courier, monospace;\">docker-init <\/span><span style=\"font-weight: 400;\">fornito come argomento della riga di comando.<\/span><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"text-align: center; height: 24px; width: 13.9276%;\"><span style=\"font-weight: 400;\">9<\/span><\/td>\n<td style=\"text-align: left; height: 24px; width: 85.4225%;\"><span style=\"font-weight: 400;\">Termina l'esecuzione.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tabella 2. Tabella dei comandi di RN Loader.<\/p>\n<p>I payload del ciclo di comandi della Tabella 2 che utilizza le opzioni <strong>1 <\/strong>e <strong>3 <\/strong>sono attualmente sconosciuti e sono probabilmente innescati da condizioni specifiche. Tuttavia, abbiamo recuperato un infostealer basato su Python fornito dall'opzione <strong>2 <\/strong>e abbiamo identificato questo malware come RN Stealer.<\/p>\n<h4><a id=\"post-144104-_heading=h.cx3eads9imgb\"><\/a>RN Stealer<\/h4>\n<p>RN Stealer genera innanzitutto un ID vittima casuale, successivamente utilizzato come cookie in tutte le comunicazioni con il server C2. Quindi richiede al server una chiave XOR per crittografare i dati esfiltrati.<\/p>\n<p>La comunicazione con il server C2 avviene tramite HTTPS, utilizzando token codificati Base64 per identificare i tipi di richiesta e risposta. Il payload analizzato include quattro tipi di token:<\/p>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R0<\/span> - chiave XOR richiedente<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R64<\/span> - esfiltrazione di dati<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R128<\/span> - esfiltrazione di dati compressi<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">R256<\/span> - infostealer completo<\/li>\n<\/ul>\n<p>Il formato di questi tipi di token - la lettera <span style=\"font-family: 'courier new', courier, monospace;\">R<\/span> seguita da un numero intero <span style=\"font-family: 'courier new', courier, monospace;\">N<\/span> - ci ha portato a dare un nome a questo payload. Chiamiamo il payload RN Stealer e lo stadio precedente RN Loader.<\/p>\n<p>Abbiamo recuperato lo script di questo campione RN Stealer da un sistema macOS. Pertanto, gli autori delle minacce hanno adattato questo campione per rubare informazioni specifiche ai dispositivi macOS, tra cui:<\/p>\n<ul>\n<li>Informazioni di base sulla vittima: Nome utente, nome macchina e architettura<\/li>\n<li>Applicazioni installate<\/li>\n<li>L'elenco delle directory e il contenuto di primo livello della home directory della vittima.<\/li>\n<li>Il file <span style=\"font-family: 'courier new', courier, monospace;\">login.keychain-db<\/span> che memorizza le credenziali salvate nei sistemi macOS<\/li>\n<li>Chiavi SSH memorizzate<\/li>\n<li>File di configurazione per AWS, Kubernetes e Google Cloud<\/li>\n<\/ul>\n<p>I dati raccolti da RN Stealer determinano probabilmente se \u00e8 necessario un accesso persistente. Se \u00e8 cos\u00ec, possiamo dedurre i seguenti passaggi per questa catena di infezione di Python:<\/p>\n<ol>\n<li>Il server C2 controlla le vittime del beaconing in base a criteri sconosciuti. Le vittime valide ricevono un payload di deserializzazione YAML. Le vittime non valide ricevono dati JSON benigni.<\/li>\n<li>Il payload di deserializzazione stabilisce un ciclo di comando con il server C2, esfiltra le informazioni di base della vittima e consegna un infostealer Python personalizzato tramite il codice di opzione <strong>2 <\/strong>nella Tabella 2.<\/li>\n<li>L'infostealer raccoglie informazioni pi\u00f9 dettagliate sulle vittime, che gli aggressori hanno probabilmente utilizzato per determinare se avevano bisogno di un accesso continuo.\n<ol>\n<li>Se \u00e8 richiesto l'accesso continuo, il server C2 invia un carico utile tramite i codici di opzione <strong>1 <\/strong>o <strong>3<\/strong>.<\/li>\n<li>Se l'accesso non \u00e8 pi\u00f9 necessario, il codice opzione <strong>9 <\/strong>termina l'esecuzione del malware, eliminando ogni accesso poich\u00e9 il payload risiede esclusivamente in memoria.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h3><a id=\"post-144104-_heading=h.3uly7gu1fiiz\"><\/a>Fase 3b - Repository JavaScript<\/h3>\n<p>Se le vittime prese di mira hanno fatto domanda per un ruolo JavaScript, potrebbero invece imbattersi in un progetto \"Cryptocurrency Dashboard\", simile all'esempio della Figura 6 qui sotto.<\/p>\n<figure id=\"attachment_144161\" aria-describedby=\"caption-attachment-144161\" style=\"width: 800px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144161 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-297912-144104-6.png\" alt=\"Schermata di un repository GitHub denominato \u201cCryptocurrency Dashboard\u201d, con un file README.md visualizzato. Questo README include le sezioni: Caratteristiche, Installazione, Uso, Struttura del progetto, Configurazione, Dipendenze e Licenza. Descrive il progetto come un'applicazione costruita con Node.js, Express e EJS che visualizza i dati storici e in tempo reale di varie criptovalute.\" width=\"800\" height=\"462\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-297912-144104-6.png 1764w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-297912-144104-6-762x440.png 762w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-297912-144104-6-1213x700.png 1213w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-297912-144104-6-768x443.png 768w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-297912-144104-6-1536x886.png 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-144161\" class=\"wp-caption-text\">Figura 6. Repository JavaScript.<\/figcaption><\/figure>\n<p>Questa applicazione contiene un file .env con l'origine dati C2 e legittima:<\/p>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">PORTA=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>Il valore <span style=\"font-family: 'courier new', courier, monospace;\">COINGECKO_API_URL<\/span> viene utilizzato per recuperare i dati per la Cryptocurrency Dashboard, mentre il valore <span style=\"font-family: 'courier new', courier, monospace;\">JQUERY_API_URL<\/span> rappresenta un server C2 controllato da Slow Pisces. Analogamente al repository Python, il server C2 JavaScript consegna i payload solo agli obiettivi convalidati, altrimenti risponde con un numero di versione.<\/p>\n<p>Il repository utilizza lo <a href=\"https:\/\/ejs.co\/\" target=\"_blank\" rel=\"noopener\">strumento di template Embedded JavaScript (EJS)<\/a>, passando le risposte dal server C2 alla funzione <span style=\"font-family: 'courier new', courier, monospace;\">ejs.render()<\/span>, mostrata di seguito nella Figura 7.<\/p>\n<figure id=\"attachment_144172\" aria-describedby=\"caption-attachment-144172\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144172 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-301427-144104-7.png\" alt=\"Schermata che mostra un frammento di codice in JavaScript. Include un commento e una chiamata di funzione per eseguire il rendering di una homepage con le impostazioni e gli elementi per pagina. res.render \u00e8 evidenziato in un riquadro rosso.\" width=\"700\" height=\"294\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-301427-144104-7.png 1116w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-301427-144104-7-786x330.png 786w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-301427-144104-7-768x322.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-144172\" class=\"wp-caption-text\">Figura 7. Codice JavaScript che mostra il punto di ingresso del malware Slow Pisces utilizzando la funzione di rendering EJS.<\/figcaption><\/figure>\n<p>Come l'uso di <span style=\"font-family: 'courier new', courier, monospace;\">yaml.load()<\/span>, questa \u00e8 un'altra tecnica utilizzata da Slow Pisces per nascondere l'esecuzione di codice arbitrario dai suoi server C2, e questo metodo \u00e8 forse evidente solo quando si visualizza un payload valido.<\/p>\n<p>La funzione di rendering di EJS accetta vari parametri, uno dei quali \u00e8 chiamato <span style=\"font-family: 'courier new', courier, monospace;\">view options<\/span>. All'interno di questo parametro, \u00e8 possibile fornire codice JavaScript arbitrario ed eseguirlo tramite il tasto <span style=\"font-family: 'courier new', courier, monospace;\">escapeFunction<\/span>.<\/p>\n<p>Un ricercatore taiwanese, conosciuto con il nome di Huli, ha discusso i dettagli tecnici di come questo porta all'esecuzione di codice arbitrario <a href=\"https:\/\/blog.huli.tw\/2023\/06\/22\/en\/ejs-render-vulnerability-ctf\/\" target=\"_blank\" rel=\"noopener\">in un post su CTF<\/a>. Tuttavia, possiamo capire a sufficienza che un payload strutturato come quello mostrato nella Figura 8 porter\u00e0 all'esecuzione del codice contenuto in e<span style=\"font-family: 'courier new', courier, monospace;\">scapeFunction<\/span> quando viene passato a <span style=\"font-family: 'courier new', courier, monospace;\">ejs.render()<\/span>.<\/p>\n<figure id=\"attachment_144183\" aria-describedby=\"caption-attachment-144183\" style=\"width: 700px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144183 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-303553-144104-8.png\" alt=\"Schermata di uno snippet di codice JavaScript che coinvolge funzioni con \u201cescapeFunction\u201d evidenziato in un riquadro rosso.\" width=\"700\" height=\"593\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-303553-144104-8.png 1234w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-303553-144104-8-519x440.png 519w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-303553-144104-8-826x700.png 826w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-303553-144104-8-768x651.png 768w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-144183\" class=\"wp-caption-text\">Figura 8. Carico utile parziale del rendering EJS.<\/figcaption><\/figure>\n<p>Purtroppo non siamo riusciti a recuperare l'intera parte di questo payload. Possiamo solo ipotizzare che venga creata una nuova directory <span style=\"font-family: 'courier new', courier, monospace;\">.jql<\/span> sotto la home directory dell'utente, dove viene scaricato un file chiamato <span style=\"font-family: 'courier new', courier, monospace;\">helper.js<\/span>, contenente dati codificati in Base64.<\/p>\n<h3><a id=\"post-144104-_heading=h.9w5yiqsv603v\"><\/a>Infrastrutture<\/h3>\n<p>La timeline riportata nella Figura 9 illustra in dettaglio l'infrastruttura C2 utilizzata in questa campagna dal febbraio 2024 al febbraio 2025, raggruppata in base al tipo di repository utilizzato (JavaScript o Python).<\/p>\n<figure id=\"attachment_144194\" aria-describedby=\"caption-attachment-144194\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-144194 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-306010-144104-9.png\" alt=\"Cronologia delle infrastrutture che tracciano il comando e i controlli JavaScript (in alto, etichetta gialla) e il comando e i controlli Python (in basso, etichetta arancione). La timeline inizia alla fine del primo trimestre del 2024 e prosegue fino al secondo trimestre del 2025.\" width=\"1000\" height=\"906\" srcset=\"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-306010-144104-9.png 1338w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-306010-144104-9-486x440.png 486w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-306010-144104-9-773x700.png 773w, https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/06\/word-image-306010-144104-9-768x696.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-144194\" class=\"wp-caption-text\">Figura 9. Cronologia dell'infrastruttura C2.<\/figcaption><\/figure>\n<p>Come accennato in precedenza, i domini dell'infrastruttura di questa campagna possono imitare il formato delle fonti legittime utilizzate al loro fianco, utilizzando spesso sottodomini come <span style=\"font-family: 'courier new', courier, monospace;\">api<\/span> o <span style=\"font-family: 'courier new', courier, monospace;\">cdn<\/span>. Abbiamo scoperto infrastrutture associate a questa campagna fino al momento di questo articolo.<\/p>\n<h2><a id=\"post-144104-_heading=h.85ze5dvppmhs\"><\/a>Conclusione<\/h2>\n<p>Questo rapporto ha riguardato la campagna pi\u00f9 recente di Slow Pisces, che si \u00e8 spacciata per reclutatori su LinkedIn per colpire gli sviluppatori del settore delle criptovalute con sfide di codifica dannose. Sebbene non siamo riusciti a recuperare l'intera catena di attacco per i repository JavaScript, la versione Python della campagna ha fornito due nuovi payload che abbiamo chiamato RN Loader e RN Stealer.<\/p>\n<p>L'utilizzo di LinkedIn e GitHub in questo modo non \u00e8 unico. Diversi gruppi affiliati alla RPDC hanno usato tattiche simili, come <a href=\"https:\/\/www.reversinglabs.com\/blog\/fake-recruiter-coding-tests-target-devs-with-malicious-python-packages\" target=\"_blank\" rel=\"noopener\">Alluring Pisces <\/a>e <a href=\"https:\/\/unit42.paloaltonetworks.com\/two-campaigns-by-north-korea-bad-actors-target-job-hunters\/\" target=\"_blank\" rel=\"noopener\">Contagious Interview<\/a>.<\/p>\n<p>Questi gruppi non presentano sovrapposizioni operative. Tuttavia, \u00e8 degno di nota il fatto che queste campagne utilizzino vettori di infezione iniziale simili.<\/p>\n<p>Slow Pisces si distingue dalle campagne dei suoi colleghi per la sicurezza operativa. La consegna dei carichi utili in ogni fase \u00e8 fortemente sorvegliata ed esiste solo in memoria. E gli strumenti del gruppo per le fasi successive vengono distribuiti solo quando necessario.<\/p>\n<p>In particolare, il gruppo ha utilizzato due tecniche per nascondere la funzionalit\u00e0:<\/p>\n<ul>\n<li>Deserializzazione di YAML<\/li>\n<li>EJS <span style=\"font-family: 'courier new', courier, monospace;\">escapeFunction<\/span><\/li>\n<\/ul>\n<p>Entrambe queste tecniche ostacolano notevolmente l'analisi, il rilevamento e la caccia. Allo stesso modo, gli sviluppatori relativamente nuovi o inesperti nel settore delle criptovalute avrebbero difficolt\u00e0 a identificare questi repository come dannosi.<\/p>\n<p>Sulla base delle segnalazioni pubbliche di rapine di criptovalute, questa campagna sembra avere molto successo e probabilmente persister\u00e0 nel 2025. Sebbene questo articolo abbia evidenziato due potenziali opportunit\u00e0 di rilevamento per la deserializzazione YAML e i payload EJS <span style=\"font-family: 'courier new', courier, monospace;\">escapeFunction<\/span>, la mitigazione pi\u00f9 efficace rimane la rigorosa segregazione dei dispositivi aziendali e personali. Questo aiuta a prevenire la compromissione dei sistemi aziendali da parte di campagne mirate di social engineering.<\/p>\n<h3><a id=\"post-144104-_heading=h.idc89uz0zpui\"><\/a>Protezione e mitigazione di Palo Alto Networks<\/h3>\n<p>I clienti di Palo Alto Networks sono pi\u00f9 protetti dalle minacce di cui sopra grazie ai seguenti prodotti:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-url-filtering\/administration\" target=\"_blank\" rel=\"noopener\">URL Filtering avanzato <\/a>e <a href=\"https:\/\/docs.paloaltonetworks.com\/dns-security\" target=\"_blank\" rel=\"noopener\">sicurezza DNS avanzata<\/a><\/li>\n<\/ul>\n<p>Se pensate di essere stati compromessi o avete una questione urgente, contattate <a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\">il team di risposta agli incidenti dell'Unit 42 <\/a>o chiamate:<\/p>\n<ul>\n<li>Nord America: Numero verde: +1 (866) 486-4842 (866.4.UNIT42)<\/li>\n<li>REGNO UNITO: +44.20.3743.3660<\/li>\n<li>Europa e Medio Oriente: +31.20.299.3130<\/li>\n<li>Asia: +65.6983.8730<\/li>\n<li>Giappone: +81.50.1790.0200<\/li>\n<li>Australia: +61.2.4062.7950<\/li>\n<li>India: 00080005045107<\/li>\n<\/ul>\n<p>Palo Alto Networks ha condiviso questi risultati con i membri della Cyber Threat Alliance (CTA). I membri della CTA utilizzano queste informazioni per distribuire rapidamente le protezioni ai loro clienti e per distruggere sistematicamente i criminali informatici. Per saperne di pi\u00f9 sulla <a href=\"https:\/\/www.cyberthreatalliance.org\" target=\"_blank\" rel=\"noopener\">Cyber Threat Alliance<\/a>.<\/p>\n<h2><a id=\"post-144104-_heading=h.56ov9634dgk\"><\/a>Indicatori di compromissione<\/h2>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><b>Dominio<\/b><\/td>\n<td style=\"text-align: center;\"><b>Indirizzo IP<\/b><\/td>\n<td style=\"text-align: center;\"><b>Visto per la prima volta<\/b><\/td>\n<td style=\"text-align: center;\"><b>Ultimo visto<\/b><\/td>\n<td style=\"text-align: center;\"><b>Repository<\/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-144104-_heading=h.py5sy94mt221\"><\/a>Risorse aggiuntive<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.ic3.gov\/PSA\/2025\/PSA250226\" target=\"_blank\" rel=\"noopener\">La Corea del Nord responsabile dell'hacking di Bybit da 1,5 miliardi di dollari <\/a>- Internet Crime Complaint Center (IC3)<\/li>\n<li><a href=\"https:\/\/www.ic3.gov\/PSA\/2025\/PSA250226\" target=\"_blank\" rel=\"noopener\">L'FBI, il DC3 e l'NPA hanno identificato gli attori informatici nordcoreani, rintracciati come TraderTraitor, responsabili del furto di 308 milioni di dollari da Bitcoin.DMM.com <\/a>- FBI<\/li>\n<li><a href=\"https:\/\/www.ic3.gov\/PSA\/2025\/PSA250226\" target=\"_blank\" rel=\"noopener\">Allarme sicurezza: una campagna di social engineering prende di mira i dipendenti del settore tecnologico <\/a>- GitHub Blog<\/li>\n<li><a href=\"https:\/\/www.ic3.gov\/PSA\/2025\/PSA250226\" target=\"_blank\" rel=\"noopener\">La Corea del Nord sfrutta un fornitore SaaS in un attacco mirato alla catena di approvvigionamento <\/a>- Mandiant, Google Cloud<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose.<\/p>\n","protected":false},"author":366,"featured_media":138786,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[8735,8825,8789],"tags":[9212,8917,9213,9216,9214,9215,8918],"product_categories":[8960,8976,8951,9090,9149],"coauthors":[8711],"class_list":["post-144104","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybercrime-it","category-threat-actor-groups-it","category-malware-it","tag-cryptocurrency-it","tag-dprk-it","tag-github-it","tag-infostealer-it","tag-javascript-malware-it","tag-slow-pisces-it","tag-social-engineering-it","product_categories-advanced-dns-security-it","product_categories-advanced-url-filtering-it","product_categories-cloud-delivered-security-services-it","product_categories-next-generation-firewall-it","product_categories-unit-42-incident-response-it"],"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 Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato<\/title>\n<meta name=\"description\" content=\"Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose. Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose\" \/>\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\/it\/slow-pisces-new-custom-malware\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Slow Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato\" \/>\n<meta property=\"og:description\" content=\"Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose. Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose\" \/>\n<meta property=\"og:url\" content=\"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/\" \/>\n<meta property=\"og:site_name\" content=\"Unit 42\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-14T18:29:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-23T18:33:13+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 Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato","description":"Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose. Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose","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\/it\/slow-pisces-new-custom-malware\/","og_locale":"it_IT","og_type":"article","og_title":"Slow Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato","og_description":"Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose. Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose","og_url":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/","og_site_name":"Unit 42","article_published_time":"2025-04-14T18:29:32+00:00","article_modified_time":"2025-06-23T18:33:13+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\/it\/slow-pisces-new-custom-malware\/#article","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/"},"author":{"name":"Sheida Azimi","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639"},"headline":"Slow Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato","datePublished":"2025-04-14T18:29:32+00:00","dateModified":"2025-06-23T18:33:13+00:00","mainEntityOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/"},"wordCount":3250,"commentCount":0,"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/#primaryimage"},"thumbnailUrl":"https:\/\/origin-unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/03\/Pisces-NK-A-1920x900-1.png","keywords":["Cryptocurrency","DPRK","GitHub","Infostealer","JavaScript Malware","Slow Pisces","social engineering"],"articleSection":["Crimine informatico","Gruppi di autori delle minacce","Malware"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/","url":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/","name":"Slow Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/#primaryimage"},"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/it\/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-14T18:29:32+00:00","dateModified":"2025-06-23T18:33:13+00:00","author":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639"},"description":"Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose. Il gruppo nordcoreano sponsorizzato dallo Stato Slow Pisces (Jade Sleet) ha preso di mira gli sviluppatori di criptovalute con una campagna di ingegneria sociale che comprendeva sfide di codifica dannose","breadcrumb":{"@id":"https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/unit42.paloaltonetworks.com\/it\/slow-pisces-new-custom-malware\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/unit42.paloaltonetworks.com\/it\/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\/it\/slow-pisces-new-custom-malware\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/unit42.paloaltonetworks.com\/"},{"@type":"ListItem","position":2,"name":"Slow Pisces prende di mira gli sviluppatori con false sfide di programmazione e introduce un nuovo malware Python personalizzato"}]},{"@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":"it-IT"},{"@type":"Person","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639","name":"Sheida Azimi","image":{"@type":"ImageObject","inLanguage":"it-IT","@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\/it\/author\/sheida-azimi\/"}]}},"_links":{"self":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/posts\/144104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/users\/366"}],"replies":[{"embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/comments?post=144104"}],"version-history":[{"count":5,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/posts\/144104\/revisions"}],"predecessor-version":[{"id":144221,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/posts\/144104\/revisions\/144221"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/media\/138786"}],"wp:attachment":[{"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/media?parent=144104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/categories?post=144104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/tags?post=144104"},{"taxonomy":"product_categories","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/product_categories?post=144104"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/origin-unit42.paloaltonetworks.com\/it\/wp-json\/wp\/v2\/coauthors?post=144104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}