Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

@ilPost ha appena rilasciato due nuove formule per abbonarsi e sostenere il suo progetto giornalistico: "abbonamento Famiglia" e "abbonamento Studenti Universitari


Con l’abbonamento Famiglia fino a quattro persone possono avere accesso con un account individuale a tutti i contenuti del Post: i podcast – Wilson, Globo, Morning e tutti gli altri – le newsletter, gli sconti sugli eventi e gli inviti alle cose che il Post organizza in giro per l'Italia. L’abbonamento Famiglia costa 170 euro all'anno, conviene già se a farlo si è in due, e non serve vivere insieme: puoi farlo con chiunque per te sia “famiglia”. Per farlo, si inizia da qui.

L’abbonamento per chi fa l’università permette a studenti e studentesse delle università italiane di abbonarsi pagando 45 euro all’anno, cioè metà del costo dell’abbonamento: dell’altra metà si fa carico il Post. Per abbonarsi come studenti basta andare qui, e poi seguire i passaggi di autenticazione sul sito della propria università.

@universitaly

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

If the lesson of the Holocaust had truly been absorbed, States -especially those historically responsible for it- would prevent injustice, instead of championing double standards, selective outrage and racialised inconsistency in the face of atrocities.
zeteo.com/p/misan-harriman-att…
in reply to Francesca Albanese, UN Special Rapporteur oPt

Apparently Hitler quite admired America's efficiency in wiping out most of the idigenous population. A role model, as were the British with concentration camps for the Boers.

jewishjournal.com/mobile_20111…

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

Nakba significa catastrofe. E per il popolo palestinese non è solo un ricordo: è una ferita ancora aperta.

Dal 1948 a oggi, espulsione, occupazione, colonie illegali, assedio, distruzione hanno segnato la vita di milioni di palestinesi. A Gaza, oggi, questa violenza è sotto gli occhi di tutti: decine di migliaia di morti, famiglie cancellate, diritto internazionale completamente ignorato.

E l’Unione Europea continua a parlare di valori mentre mantiene rapporti privilegiati con Israele.

Basta ipocrisia!

L’Accordo di associazione UE-Israele si fonda anche sul rispetto dei diritti umani. Se quella clausola non vale davanti alle occupazioni, alle punizioni collettive e alle distruzioni di massa, allora è carta straccia.

Sospenderlo è il minimo che dovremmo fare.

Perché quando il diritto vale solo per alcuni, non protegge più nessuno.

Volt sta con la Palestina, con la giustizia, con il diritto internazionale. Senza eccezioni.

#Nakba #Palestina #Gaza #DirittoInternazionale #FreePalestine #EuropaFederale #Volt #VoltItalia #VoltEuropa

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

The media in this post is not displayed to visitors. To view it, please go to the original post.

ApocalypseZ: come gli hacker russi automatizzano il furto di account Signal su scala industriale
#CyberSecurity
insicurezzadigitale.com/apocal…


ApocalypseZ: come gli hacker russi automatizzano il furto di account Signal su scala industriale


Si parla di:
Toggle

Il 14 maggio 2026 TechCrunch ha pubblicato una storia che ha del cinematografico: un ricercatore specializzato nell’investigare attacchi spyware diventa lui stesso bersaglio di hacker governativi russi, ma invece di soccombere trasforma l’attacco in un’indagine che porta alla scoperta di un’infrastruttura di spionaggio capace di prendere di mira oltre 13.500 persone. La storia di Donncha Ó Cearbhaill, responsabile del Security Lab di Amnesty International, è la dimostrazione pratica di come lo spionaggio digitale di Stato oggi lavori in modo industrializzato, automatizzato e scalabile.

Il messaggio che non inganna (ma quasi)


Tutto è iniziato con un messaggio sul suo account Signal: “Dear User, this is Signal Security Support ChatBot. We have noticed suspicious activity on your device, which could have led to data leak. We have also detected attempts to gain access to your private data in Signal. To prevent this, you have to pass verification procedure, entering the verification code to Signal Security Support Chatbot. DON’T TELL ANYONE THE CODE, NOT EVEN SIGNAL EMPLOYEES.”

Il messaggio è grossolano per un esperto di sicurezza — nessuna piattaforma legittima chiede mai codici di verifica via chat — ma per un utente ordinario è sufficientemente convincente. La minaccia di una violazione imminente, il tono urgente, la richiesta di non condividere il codice: tutti elementi classici di ingegneria sociale progettati per innescare una risposta emotiva prima che quella razionale possa intervenire.

Il meccanismo tecnico: device linking via codice OTP


L’obiettivo dell’attacco non è rubare la password (Signal non ha password tradizionali), ma sfruttare la funzionalità legittima di linked devices di Signal. Quando si collega un nuovo dispositivo a un account Signal esistente, l’app genera un QR code o un codice numerico. Se l’utente viene ingannato a condividere questo codice con gli attaccanti, questi possono aggiungere un dispositivo controllato da loro come “dispositivo secondario” dell’account — ottenendo così accesso a tutti i messaggi futuri e a quelli precedenti sincronizzati.

La tecnica non richiede zero-day, exploit sofisticati o accesso fisico al dispositivo: bastano ingegneria sociale e un utente che si fida abbastanza da inserire un codice. Ó Cearbhaill, riconoscendo immediatamente la natura del tentativo, ha deciso di non bloccare l’interazione ma di utilizzarla come punto d’ingresso per investigare la campagna.

ApocalypseZ: la piattaforma di attacco di Stato


La scoperta più significativa dell’indagine è lo strumento che gli attaccanti utilizzano: ApocalypseZ. Si tratta di una piattaforma di automazione degli attacchi che consente agli operatori di prendere di mira molte persone simultaneamente con supervisione umana minima. Il codebase e l’interfaccia operativa sono in russo, e lo strumento include funzionalità di traduzione automatica dei messaggi delle vittime in russo — elemento che allinea l’attribuzione ai servizi intelligence russi confermata da CISA, NCSC britannico e intelligence olandese.

La logica operativa di ApocalypseZ funziona come un “funnel” automatizzato: il sistema invia messaggi di phishing in bulk, traccia le risposte, e quando una vittima interagisce attivamente, allerta un operatore umano per gestire la fase di convincimento finale. Questo approccio semi-automatizzato consente di scalare la campagna a decine di migliaia di bersagli mantenendo l’efficacia del social engineering.

La “snowball hypothesis”: come si espande il targeting


Ó Cearbhaill ha identificato un pattern importante nel modo in cui gli attaccanti selezionano i propri bersagli. Egli chiama questo meccanismo la “snowball hypothesis”: quando gli hacker compromettono con successo un account Signal, ottengono accesso alla lista dei contatti e alle chat di gruppo di quella persona. Questo fornisce una lista pronta di nuovi potenziali bersagli — colleghi, giornalisti, attivisti, fonti — che vengono aggiunti automaticamente alla coda di attacco.

Il ricercatore ritiene di essere diventato un bersaglio perché era membro di una chat di gruppo con qualcuno che era già stato compromesso. Tra i target identificati figurano giornalisti con cui aveva lavorato e un collega diretto — confermando che il network di contatti delle vittime è il principale meccanismo di espansione della campagna.

Scala e attribuzione: 13.500 bersagli e CISA


Analizzando l’infrastruttura di ApocalypseZ, Ó Cearbhaill ha determinato di essere tra almeno 13.500 bersagli identificati — e lui stesso precisa che il numero reale è certamente molto più alto, poiché la campagna era ancora attiva al momento della pubblicazione del suo report. Tra le vittime confermate vi sarebbero anche politici di alto profilo tedeschi, come riportato da Der Spiegel.

L’attribuzione a hacker governativi russi è stata formalizzata da più agenzie: la CISA statunitense, il NCSC britannico e i servizi d’intelligence olandesi hanno tutti emesso avvisi pubblici su questa campagna. Il targeting include giornalisti, ricercatori di sicurezza, funzionari governativi, attivisti e personale delle ONG — il tipico profilo di interesse dei servizi d’intelligence russi (FSB/GRU/SVR).

Il contesto: una campagna di lunga durata contro le app di messaggistica sicura


Questo attacco non è isolato. Da inizio 2026, Signal ha emesso avvisi pubblici su campagne di phishing contro i propri utenti. L’intelligence olandese aveva già messo in guardia a marzo 2026 contro hacker russi che prendono di mira Signal e WhatsApp. Il pattern è chiaro: man mano che la crittografia end-to-end è diventata lo standard per le comunicazioni sensibili, i servizi d’intelligence hanno spostato i propri sforzi dall’intercettazione delle comunicazioni al compromissione degli endpoint — cioè del dispositivo o dell’account dell’utente.

Signal stesso, nella sua architettura, è resistente agli attacchi a livello di rete. Ma nessuna crittografia può proteggere da un utente che viene convinto a consegnare volontariamente l’accesso al proprio account.

Indicatori e vettori di attacco

# Campagna phishing Signal - APT russo (ApocalypseZ)
# Rilevata: inizio 2026 | Pubblicata: 14 maggio 2026

## Vettore di attacco
- Piattaforma: Signal (messaggistica diretta)
- Metodo: impersonificazione "Signal Security Support ChatBot"
- Obiettivo: ottenere codice OTP per device linking
- Automazione: strumento ApocalypseZ (codebase in russo)

## Tecnica (MITRE ATT&CK)
- T1566 - Phishing
- T1078 - Valid Accounts (device linking tramite codice OTP legittimo)
- T1119 - Automated Collection (scraping lista contatti post-compromissione)

## Targeting
- 13.500+ bersagli identificati (numero reale superiore)
- Profili: giornalisti, ricercatori sicurezza, funzionari gov, attivisti, ONG
- Nazioni: USA, UK, Germania, Paesi Bassi, altri paesi NATO/UE

## Attribuzione
- CISA (USA): hacker governativi russi
- NCSC (UK): campagna attribuita a spie russe
- AIVD (NL): servizi intelligence russi

## Indicatori comportamentali (social engineering)
- Messaggio urgente da "Signal Security Support"
- Richiesta codice OTP/verifica
- Istruzione "non condividere il codice"
- Pressione temporale per completare verifica

## Difesa specifica
- Abilitare Registration Lock in Signal (Impostazioni > Account > PIN)
- Non condividere MAI codici OTP ricevuti su Signal
- Verificare dispositivi collegati: Impostazioni > Dispositivi collegati

Due righe per i difensori


La difesa contro questo tipo di attacco è paradossalmente semplice rispetto alla sofisticazione dell’infrastruttura offensiva. Ó Cearbhaill raccomanda di attivare immediatamente la funzione Registration Lock di Signal (nelle impostazioni come PIN di blocco registrazione): questa feature impedisce che il proprio numero di telefono venga registrato su un nuovo dispositivo senza conoscere il PIN, vanificando il device linking non autorizzato anche se l’attaccante ottiene il codice OTP.

Più in generale, per le organizzazioni che gestiscono profili ad alto rischio — giornalisti investigativi, difensori dei diritti umani, ricercatori di sicurezza, funzionari governativi — è fondamentale adottare un approccio sistematico alla sicurezza delle comunicazioni: audit periodico dei dispositivi collegati a ogni account, formazione sul riconoscimento del social engineering su piattaforme di messaggistica, e protocolli di verifica out-of-band quando si ricevono richieste inusuali anche da fonti apparentemente note.

La storia di Ó Cearbhaill termina con una nota di sfida aperta: il ricercatore ha dichiarato di dubitare che gli attaccanti proveranno a colpirlo di nuovo, e di dare il benvenuto a futuri messaggi — specialmente se contenessero zero-day da condividere. Un invito ironico che sintetizza l’essenza del lavoro di chi studia lo spionaggio digitale: trasformare ogni attacco in conoscenza.


Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

Strage dei sub alle Maldive, il cordoglio dell’Università di Genova

@scuola

corriereuniv.it/strage-dei-sub…

Cordoglio negli ambienti accademici e istituzionali genovesi, per la tragedia delle Maldive che ha colpito il mondo universitario, con la morte della ricercatrice Monica Montefalcone, della figlia Giorgia

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

Lavoro, le 10 professioni introvabili oggi

@scuola

corriereuniv.it/lavoro-le-10-p…

In Italia non c’è lavoro, o almeno questo è il sentire comune sull’argomento. Ma è veramente così? Secondo uno studio realizzato dalle Camere di commercio, in collaborazione con ELIS, i posti di lavoro ci sono, ma il 50% dei giovani li scarta a priori. Un paradosso, oppure un

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

CVE-2026-26083: Critical Fortinet FortiSandbox Flaw Allows Unauthenticated Remote Code Execution — Patch Now
#CyberSecurity
securebulletin.com/cve-2026-26…
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

84 TanStack npm Packages Poisoned in Sophisticated Supply-Chain Attack Stealing Cloud and CI Credentials
#CyberSecurity
securebulletin.com/84-tanstack…
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

CVE-2026-43898: Critical SandboxJS Escape (CVSS 10.0) Enables Full Host Takeover via npm
#CyberSecurity
securebulletin.com/cve-2026-43…
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

BitUnlocker: New Tool Breaks BitLocker on Patched Windows 11 Systems in Under 5 Minutes
#CyberSecurity
securebulletin.com/bitunlocker…
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

L’INTELLIGENZA ARTIFICIALE PROVOCA DIPENDENZA COME ALCOOL, DROGA E GIOCO D’AZZARDO

@news
La notizia di una ragazza in cura in Veneto per una preoccupante sindrome di dipendenza da un “chatbot” ha lasciato tutti stupiti.
L'articolo L’INTELLIGENZA ARTIFICIALE PROVOCA DIPENDENZA COME ALCOOL, DROGA E GIOCO D’AZZARDO proviene da GIANO NEWS.

#EDITORIALI

reshared this

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

#evento

Giochi anche tu? 🎲 Il 16 maggio, in Aula Magna, giocheremo con il nostro “Stai fermo un girone”, basato sull’Inferno dantesco! ✨

📜 Concepita sul modello del tradizionale “gioco dell’oca”, la partita si svolge lungo i gironi infernali attraverso varie sfide sulla Divina Commedia. Insieme al pubblico parteciperanno anche le classi di alcune scuole superiori.

Prenotazione consigliata su Eventbrite | ingresso libero fino a esaurimento posti: eventbrite.com/e/biglietti-sta…

@cultura

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

Il test di Blue Moon, un passo importante per il ritorno sulla Luna


Sono finiti da poco i test ambientali di Blue Moon Mark 1, noto anche come Endurance: un lander lunare senza equipaggio sviluppato da Blue Origin, l’azienda spaziale di Jeff Bezos, il proprietario di Amazon.

I test termici si sono svolti nella colossale Camera A del Johnson Space Center, una struttura alta 36 metri, quanto un palazzo di dodici piani, costruita molti anni fa per il programma Apollo.

Questo tipo di test, chiamato in gergo “termovuoto”, è la mia specializzazione professionale. Per i satelliti è il collaudo più importante che si possa fare prima del lancio, perché riproduce le condizioni di vuoto e temperature estreme dello spazio e permette di verificare che il sistema funzioni correttamente in un ambiente del tutto diverso da quello a cui siamo abituati sulla Terra.

Una volta avviata, una campagna di termovuoto va avanti giorno e notte per settimane, con squadre di tecnici che si danno il cambio per simulare le operazioni più importanti previste durante la missione. Non può essere sostituito da simulazioni al computer, perché la combinazione del vuoto e delle temperature estreme calde e fredde può far emergere problemi che a temperatura e pressione ambiente non ci sarebbero e che non sono pienamente prevedibili. In vita mia ho fatto una trentina di test di questo genere e ogni volta ho incontrato qualche imprevisto che ha richiesto lavoro di gruppo e creatività per essere risolto. Per chi lavora nel settore il termovuoto è uno dei momenti più delicati, faticosi e gratificanti dello sviluppo di un veicolo spaziale.

La missione di Endurance è prevista per quest’anno, con un atterraggio nella regione del Polo Sud lunare. Servirà a dimostrare capacità di propulsione, navigazione e atterraggio essenziali per le successive missioni con equipaggio del lander Mark 2, nell’ambito del programma Artemis. Inoltre Endurance trasporterà sulla Luna due payload: un sistema di telecamere ad alta risoluzione che studierà l'interazione tra il getto dei motori del lander e la superficie lunare durante la discesa e l'atterraggio e un sistema laser che consentirà ai veicoli spaziali in orbita di determinare la propria posizione in modo più accurato.

Lo scorso mese di aprile il lanciatore New Glenn di Blue Origin ha avuto un problema al secondo stadio che ha impedito il corretto dispiegamento di un satellite in orbita bassa. Anche lo sviluppo del lander concorrente di SpaceX sta incontrando contrattempi. Se la missione di Endurance avrà successo, rafforzerà la posizione di Blue Origin come fornitore di lander lunari e sarà un segnale positivo per tutto il programma Artemis. Al contrario, problemi significativi potrebbero comportare ulteriori ritardi nel ritorno americano sulla Luna.


Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

Men use "vocal fry" more than women, counter to stereotype

Study suggests "the bias is real but socially constructed, rather than grounded in how women actually sound."
arstechnica.com/science/2026/0…

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

ATTENZIONE - Durante la giornata di oggi e di domani potrebbe verificarsi una temporanea interruzione di servizio del forum federato citiverse.it


Informiamo tutti gli utenti iscritti a Citiverse.it e a tutti gli altri utenti che utilizzano le categorie di Citiverse.it come "gruppi federati" dalle loro istanze Mastodon, Friendica, Pixelfed o Lemmy, che

durante la giornata di oggi e di domani potrebbe verificarsi una temporanea interruzione di servizio sul dominio citiverse.it


a causa del cambio di gestore del dominio.

Ci scusiamo per il disguido e ricordiamo che il problema non riguarderà le altre nostre tre istanze:

  • poliverso.org: la nostra istanza Friendica
  • feddit.it: la nostra istanza Lemmy, che con le sue comunità è da anni un punto di riferimento anche per gli utenti Mastodon
  • poliversity.it: la nostra istanza Mastodon potenziata che consente di scrivere anche con testo formattato e senza lmitazione di caratteri

Quando il problema si sarà risolto, provvederemo a comunicarlo tempestivamente

@fediverso


I Gruppi del Fediverso: un modo per incontrare altri utenti Mastodon, Friendica o Pixelfed in base ai loro interessi

Il Fediverso è un luogo fatto soprattutto di interazioni sociali ma rispetto ai social commerciali non è facilissimo trovare utenti che condividano i nostri stessi interessi. Ecco come giocarsi la carta dei “Gruppi”

informapirata.it/2025/02/03/i-…

#Calabria #Campania #comunità #Fediverso #Friendica #gruppi #Lemmy #Mastodon

informapirata.it/2025/02/03/i-…


Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

21 maggio, roma, goethe institut: “ancora un dialogo di roma”


Ancora un dialogo di Roma

L’Accademia Tedesca Roma Villa Massimo e il Goethe-Institut Roma presentano in anteprima italiana, nell’ambito della rassegna Ritorno a Roma, il film-saggio Ancora un dialogo di Roma della scrittrice e vincitrice del Premio Roma Villa Massimo 2023/24 Katerina Poladjan e dell’autore e regista Henning Fritsch. Al termine della proiezione seguirà un incontro con gli autori e il curatore Marius Babias con traduzione simultanea in italiano.

In una rivisitazione del film Il dialogo di Roma (1982) di Marguerite Duras, Katerina Poladjan e Henning Fritsch mostrano immagini della città di Roma, sovrapponendovi una voce fuori campo. L’io narrante rievoca frammenti di memoria: l’arrivo in uno spazio indefinito di possibilità e il ricordo di un’infanzia immaginaria trascorsa a Ostia. Come nell’opera di Duras, la narrazione si muove nel solco dell’intimità e dell’esperienza personale. Lo sguardo rifugge dalle vedute emblematiche per indagare una città sospesa tra bellezza e marginalità, superando ogni distinzione tra ciò che è “proprio” e ciò che è “straniero”.

Ingresso gratuito su registrazione: goethe.de/ins/it/it/sta/rom/ve…

Accademia Tedesca Roma Villa Massimo
Largo di Villa Massimo, 1
#AccademiaTedescaRomaVillaMassimo #AncoraUnDialogoDiRoma #anteprimaItaliana #film #filmSaggio #GoetheInstitut #HenningFritsch #KaterinaPoladjan #MargueriteDuras #MariusBabias #memoria #Ostia #PremioRomaVillaMassimo #RitornoARoma #Roma #VillaMassimo

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

Parisi, con oligarchi dell'IA a rischio l'accesso alla conoscenza

@scienza

Gruppo 2003, difendere l'autonomia della ricerca per difendere la libertà della società
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

L'evoluzione umana corre: la selezione naturale negli ultimi 10.000 anni. Il nuovo video di #EntropyForLife


Negli ultimi 10 millenni l’uomo si è evoluto più velocemente che in passato. Uno studio su 15.000 genomi rivela che agricoltura e densità abitativa hanno spinto la selezione di geni per la resistenza alle malattie, la digestione del lattosio e tratti cognitivi, cambiando il nostro DNA.

youtu.be/I-BQFdshIJ0

@scienza

Questa voce è stata modificata (4 settimane fa)
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The interim decision by the US judge gives me respite but the battle is not over. ICC judges and Palestinian NGOs remain sanctioned with no recourse to justice. The stakes are incredibly high.
Please sign and share the petition: DEFEND THE DEFENDERS!

petition.qomon.org/0b54a0b8-de…

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

Papa Leone XIV alla Sapienza, Polimeni: “L’università deve formare cittadini liberi e consapevoli”

@scuola

corriereuniv.it/papa-leone-xiv…

Nonostante una mattinata impegnativa anche dal punto di vista emotivo, la rettrice Polimeni non si sottrae e ci rilascia un’intervista sulla visita storica di Papa Leone XIV alla comunità di studenti,

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

SimpleChat: un template Blazor provider-agnostico per chat AI con .NET 10 Aspire
#tech
spcnet.it/simplechat-un-templa…
@informatica


SimpleChat: un template Blazor provider-agnostico per chat AI con .NET 10 Aspire


Chi sviluppa applicazioni AI in .NET lo sa bene: ogni volta che si integra un LLM in un progetto Blazor, si finisce a riscrivere lo stesso boilerplate per connettere OpenAI, Azure OpenAI, Anthropic o Google. SimpleChat è un template open-source che risolve esattamente questo problema — un’applicazione Blazor Server + .NET 10 Aspire che gestisce quattro provider AI in modo intercambiabile, esponendo un unico IChatClient all’intera applicazione.

Il progetto è disponibile su GitHub: github.com/ADefWebserver/SimpleChat

Perché esiste SimpleChat


Il problema che SimpleChat risolve è concreto: ogni provider AI ha il proprio contratto REST, le proprie intestazioni e le proprie particolarità. OpenAI usa una API key e un base URL. Azure OpenAI richiede un endpoint, un deployment name e una versione API. Anthropic ha il proprio formato di richiesta e rifiuta il parametro temperature sui modelli Claude 4 con ragionamento. Google AI (Gemini) ha ancora un’altra struttura REST sotto generativelanguage.googleapis.com.

SimpleChat risolve tutto questo costruendo su Microsoft.Extensions.AI e centralizzando la logica di creazione del client in una sola classe: ChatClientFactory. Tutto il codice upstream non deve mai sapere quale provider è attivo.

Architettura del progetto


La soluzione Aspire è composta da tre progetti:

  • SimpleChat — l’app web Blazor Server
  • SimpleChat.AppHost — l’orchestratore Aspire
  • SimpleChat.ServiceDefaults — OpenTelemetry condiviso, health check e resilienza

I componenti principali dell’applicazione sono:

  • AIConfigurationService — legge la sezione AI della configurazione e scrive le modifiche dell’utente su disco
  • ChatClientFactory — l’unico posto dove l’app conosce la differenza tra i provider; restituisce un IChatClient
  • ChatService — orchestratore stateless che fa streaming delle risposte dall’IChatClient attivo
  • AIModelService — chiama l’endpoint /models di ogni provider, con una lista di fallback


Il modello di configurazione


Tutta la configurazione AI vive in una sezione AI di appsettings.json:

{
  "AI": {
    "ActiveProvider": "OpenAI",
    "Providers": {
      "OpenAI": {
        "Enabled": true,
        "ApiKey": "",
        "Endpoint": "https://api.openai.com/v1",
        "DefaultModel": "gpt-4o-mini",
        "Models": ["gpt-4o-mini", "gpt-4o", "gpt-5-mini", "o4-mini"]
      },
      "AzureOpenAI": {
        "Enabled": false,
        "ApiKey": "",
        "Endpoint": "",
        "DeploymentName": "",
        "ApiVersion": "2024-10-21"
      },
      "Anthropic": {
        "Enabled": false,
        "ApiKey": "",
        "Endpoint": "https://api.anthropic.com",
        "DefaultModel": "claude-sonnet-4-20250514"
      },
      "GoogleAI": {
        "Enabled": false,
        "ApiKey": "",
        "Endpoint": "https://generativelanguage.googleapis.com",
        "DefaultModel": "gemini-2.5-flash"
      }
    },
    "Defaults": {
      "Temperature": 0.7,
      "MaxOutputTokens": 1024,
      "SystemPrompt": "You are a helpful assistant."
    }
  }
}

Questa struttura è il contratto. Per scambiare il layer di storage (database, Key Vault, browser storage, file share), basta modificare solo AIConfigurationService — nient’altro nell’app cambia.

La ChatClientFactory: un solo posto per tutta la logica provider


La factory è il cuore del template. Dopo che questo metodo ritorna, tutto il codice downstream vede solo un IChatClient:

public (IChatClient Client, string Model) Create(string providerKey)
{
    var key = NormalizeProviderKey(providerKey);
    var settings = _config.GetProvider(key);

    if (!settings.Enabled)
        throw new InvalidOperationException($"Provider '{providerKey}' is disabled.");

    IChatClient inner;
    string model;

    switch (key)
    {
        case "OpenAI":
            model = settings.DefaultModel ?? "gpt-4o-mini";
            var openAI = new OpenAIClient(
                new ApiKeyCredential(settings.ApiKey!),
                new OpenAIClientOptions { Endpoint = ... });
            inner = openAI.GetChatClient(model).AsIChatClient();
            break;

        case "AzureOpenAI":
            model = settings.DeploymentName!;
            var azure = new AzureOpenAIClient(
                new Uri(settings.Endpoint!),
                new AzureKeyCredential(settings.ApiKey!));
            inner = azure.GetChatClient(model).AsIChatClient();
            break;

        case "Anthropic":
            model = settings.DefaultModel ?? "claude-sonnet-4-20250514";
            inner = new AnthropicChatClient(settings.ApiKey!, model, _httpClientFactory.CreateClient(...));
            break;

        case "GoogleAI":
            model = settings.DefaultModel ?? "gemini-2.5-flash";
            inner = new GoogleAIChatClient(settings.ApiKey!, model, _httpClientFactory.CreateClient(...));
            break;

        default:
            throw new InvalidOperationException($"Unknown provider '{providerKey}'.");
    }

    return (inner, model);
}

Per Anthropic e Google AI, SimpleChat include client personalizzati (AnthropicChatClient e GoogleAIChatClient) che adattano le rispettive REST API all’interfaccia IChatClient di Microsoft.Extensions.AI — necessari perché questi provider non hanno ancora un pacchetto MEAI ufficiale.

Streaming e configurazione runtime


ChatService.StreamAsync restituisce un IAsyncEnumerable<string> di chunk di token. L’interfaccia utente fa lo streaming degli aggiornamenti nella bolla dell’assistente man mano che arrivano, e supporta un pulsante Cancel che interrompe la chiamata in corso.

Una delle funzionalità più interessanti è il cambio di provider e modello a runtime senza riavviare l’app. Il dropdown viene popolato dall’endpoint /models live di ogni provider. Il trucco tecnico è in Program.cs:

builder.Configuration.AddJsonFile(userOverlay, optional: true, reloadOnChange: true);
// ...
builder.Services.AddOptions<AIOptions>()
    .Bind(builder.Configuration.GetSection(AIOptions.SectionName));

reloadOnChange: true fa sì che salvare il file faccia scattare IOptionsMonitor<AIOptions>.OnChange, al quale il ChatPanel è sottoscritto — così il dropdown del provider si aggiorna senza ricaricare la pagina.

Gestione sicura delle chiavi API


In Development, le modifiche alla pagina Settings vengono scritte su appsettings.Development.json. In Production vengono scritte su un file separato appsettings.User.json che viene sovrapposto ad appsettings.json all’avvio — così le chiavi reali non devono mai essere committate nel repository.

private string WritablePath => _env.IsDevelopment()
    ? Path.Combine(_env.ContentRootPath, "appsettings.Development.json")
    : Path.Combine(_env.ContentRootPath, "appsettings.User.json");

Come usarlo come template per i propri agenti AI


Il vero valore di SimpleChat non è l’applicazione in sé, ma il pattern riutilizzabile che porta con sé. Quando si inizia una nuova app, si può puntare un agente AI di coding verso questo repository con l’istruzione: “implementa la configurazione di SimpleChat, ma salva le impostazioni AI in un database (o in un file JSON, o in Azure Key Vault, o dove mi dici).” Tutta la logica di incollaggio specifica per provider è già fatta.

Il contratto è semplice: l’agente deve implementare solo AIConfigurationService per leggere e scrivere lo stesso grafo di oggetti AIOptions. Nient’altro nell’app deve cambiare.

Conclusione


SimpleChat è un punto di partenza concreto per chiunque voglia costruire applicazioni AI con Blazor e .NET 10 Aspire senza dover reinventare ogni volta la ruota dell’integrazione multi-provider. L’architettura è intenzionalmente piccola e comprensibile: un frontend Blazor Server, un servizio di configurazione, una factory che produce un IChatClient, e un orchestratore di streaming leggero sopra. Il codice è aperto e modificabile per adattarsi a qualsiasi layer di storage.

Per chi lavora regolarmente con LLM in progetti .NET, avere questo template a disposizione può fare risparmiare ore di lavoro ripetitivo ad ogni nuovo progetto.

Fonte originale: SimpleChat: A Provider-Agnostic AI Chat Starter for Blazor di Michael Washington — via Morning Dew #4664


Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

LINQ in C#: guida completa alle operazioni di aggregazione (Count, Sum, MinBy, MaxBy, Aggregate)
#tech
spcnet.it/linq-in-c-guida-comp…
@informatica


LINQ in C#: guida completa alle operazioni di aggregazione (Count, Sum, MinBy, MaxBy, Aggregate)


Le operazioni di aggregazione sono tra le più frequenti in qualsiasi applicazione .NET che lavora con collezioni di dati. LINQ mette a disposizione un toolkit completo: dagli operatori di base come Count e Sum, alle più potenti MinBy/MaxBy introdotte in .NET 6, fino ad Aggregate, il fold generico che permette di sostituire loop complessi con pipeline dichiarative. In questo articolo approfondiamo ogni operatore con esempi pratici, evidenziamo le trappole di performance più comuni e mostriamo come costruire aggregazioni efficienti anche in scenari avanzati.

Il modello di dominio


Tutti gli esempi utilizzano tre record che rappresentano un sistema di ordini e vendite:

public record Order(int Id, string CustomerId, string Status, decimal Total, DateTimeOffset PlacedAt);
public record Product(int Id, string Name, string Category, decimal Price, int StockLevel);
public record SalesData(string Region, string ProductId, int UnitsSold, decimal Revenue, DateTimeOffset Period);


Count e LongCount


Count() restituisce il numero di elementi come int. La versione con predicato conta solo gli elementi che soddisfano la condizione:

IEnumerable<Order> orders = GetOrders();

int total        = orders.Count();
int pendingCount = orders.Count(o => o.Status == "Pending");
int paidCount    = orders.Count(o => o.Status == "Paid");

Console.WriteLine($"Totale: {total}, In attesa: {pendingCount}, Pagati: {paidCount}");


Per sequenze con più di int.MaxValue elementi (circa 2,1 miliardi), usare LongCount() che restituisce long. Nella pratica, questo scenario si presenta principalmente in contesti di log aggregation o telemetria su larga scala.

La trappola di performance: Count vs Any


Questo è uno degli errori di performance più diffusi con LINQ. Quando si vuole verificare l’esistenza di almeno un elemento, molti sviluppatori usano Count() > 0 invece di Any():

IEnumerable<Order> orders = GetOrders();

// ❌ Count() valuta l'intera sequenza — O(n)
if (orders.Count(o => o.Status == "Pending") > 0)
{
    Console.WriteLine("Ci sono ordini in attesa.");
}

// ✅ Any() si ferma al primo match — O(1) nel caso migliore
if (orders.Any(o => o.Status == "Pending"))
{
    Console.WriteLine("Ci sono ordini in attesa.");
}


Any(predicate) cortocircuita non appena trova il primo elemento corrispondente. Count(predicate) deve valutare ogni elemento per produrre un conteggio accurato, anche quando la risposta a “esiste almeno un elemento?” sarebbe nota immediatamente. La differenza di performance è particolarmente evidente con sorgenti lazy, query EF Core o sequenze molto lunghe.

Stesso principio per il test di sequenza vuota:

// ❌ Enumera tutta la sequenza
if (orders.Count() == 0) { }

// ✅ Si ferma al primo elemento
if (!orders.Any()) { }


La regola da memorizzare: usare Any() per verifiche di esistenza, Count() solo quando serve il numero esatto.

Sum e Average


Sum(selector) e Average(selector) accettano un selettore per proiettare ogni elemento a un valore numerico prima di aggregare:

IEnumerable<Order> orders = GetOrders();

decimal totalRevenue = orders.Sum(o => o.Total);
decimal averageOrder = orders.Average(o => o.Total);

Console.WriteLine($"Fatturato totale: €{totalRevenue:F2}");
Console.WriteLine($"Ordine medio: €{averageOrder:F2}");


Importante: Average() lancia InvalidOperationException su una sequenza vuota. È buona pratica proteggersi con un controllo preventivo:
decimal? safeAverage = orders.Any()
    ? orders.Average(o => o.Total)
    : null;


Un esempio più articolato che combina GroupBy con Sum e Average per ottenere statistiche per regione geografica:
IEnumerable<SalesData> sales = GetSalesData();

var revenueByRegion = sales
    .GroupBy(s => s.Region)
    .Select(g => new
    {
        Region       = g.Key,
        TotalRevenue = g.Sum(s => s.Revenue),
        AverageUnits = g.Average(s => s.UnitsSold)
    })
    .OrderByDescending(x => x.TotalRevenue);

foreach (var row in revenueByRegion)
{
    Console.WriteLine($"{row.Region}: €{row.TotalRevenue:F0}, media {row.AverageUnits:F1} unità");
}


Min e Max


Min(selector) e Max(selector) restituiscono il valore scalare minimo o massimo — non l’elemento che lo contiene:

IEnumerable<Product> products = GetProducts();

decimal cheapest      = products.Min(p => p.Price);
decimal mostExpensive = products.Max(p => p.Price);

Console.WriteLine($"Range prezzi: €{cheapest:F2} — €{mostExpensive:F2}");


Il limite: se serve il prodotto più economico (non solo il suo prezzo), prima di .NET 6 si era costretti a enumerare la sequenza due volte:
// Prima di .NET 6 — due passaggi, potenziale bug con prezzi duplicati
decimal minPrice     = products.Min(p => p.Price);
Product? cheapestOld = products.FirstOrDefault(p => p.Price == minPrice);


Questo approccio ha un bug sottile: se più prodotti condividono il prezzo minimo, FirstOrDefault sceglie il primo trovato nell’ordine di iterazione, che potrebbe non essere quello desiderato. Inoltre itera la sequenza due volte.

MinBy e MaxBy: l’elemento, non il valore (.NET 6+)


MinBy(keySelector) e MaxBy(keySelector) restituiscono l’elemento che ha il valore minimo o massimo della chiave, in un singolo passaggio sulla sequenza:

// .NET 6+ — singolo passaggio, restituisce l'elemento
Product? cheapest      = products.MinBy(p => p.Price);
Product? mostExpensive = products.MaxBy(p => p.Price);

Console.WriteLine($"Più economico: {cheapest?.Name} a €{cheapest?.Price:F2}");
Console.WriteLine($"Più costoso: {mostExpensive?.Name} a €{mostExpensive?.Price:F2}");


Quando più elementi condividono la stessa chiave minima/massima, MinBy/MaxBy restituiscono il primo incontrato, coerentemente con la semantica di OrderBy().First().

Esempio reale: trovare il periodo di vendita con fatturato più alto e la regione con performance peggiore:

// Periodo con il singolo record di fatturato più alto
SalesData? topPeriod = sales.MaxBy(s => s.Revenue);
Console.WriteLine($"Periodo migliore: {topPeriod?.Region} — €{topPeriod?.Revenue:F2}");

// Regione con fatturato totale più basso
var revenueSummary = sales
    .GroupBy(s => s.Region)
    .Select(g => (Region: g.Key, Total: g.Sum(s => s.Revenue)));

(string Region, decimal Total) worstRegion = revenueSummary.MinBy(r => r.Total);
Console.WriteLine($"Regione con fatturato minore: {worstRegion.Region} (€{worstRegion.Total:F2})");


Aggregate: fold personalizzato


Aggregate è l’operatore più generale: accetta un valore seed e una funzione accumulatrice, piegando ogni elemento nel risultato accumulato. È il fold funzionale di LINQ, e può fare tutto ciò che i metodi specializzati fanno — e molto di più:

IEnumerable<Order> orders = GetOrders();

// Concatena gli ID degli ordini come stringa CSV
string orderList = orders.Aggregate(
    string.Empty,
    (acc, order) => string.IsNullOrEmpty(acc)
        ? order.Id.ToString()
        : $"{acc},{order.Id}");

Console.WriteLine($"ID ordini: {orderList}");


Caso pratico: calcolo del fattore di sconto combinato (moltiplicativo):
decimal[] discounts = [0.10m, 0.05m, 0.15m]; // 10%, 5%, 15%

// Il fattore risultante dopo l'applicazione di tutti gli sconti in sequenza
decimal combinedFactor = discounts.Aggregate(
    1.0m,
    (factor, discount) => factor * (1 - discount));

Console.WriteLine($"Fattore combinato: {combinedFactor:P2}"); // es. 72,54%


Aggregate con result selector


La variante a tre argomenti aggiunge una proiezione finale applicata al risultato accumulato dopo aver processato tutti gli elementi. Questo permette di calcolare la media in un singolo passaggio senza dover iterare due volte:

IEnumerable<SalesData> sales = GetSalesData();

decimal averageRevenue = sales.Aggregate(
    seed: (Total: 0m, Count: 0),
    func: (acc, s) => (acc.Total + s.Revenue, acc.Count + 1),
    resultSelector: acc => acc.Count > 0 ? acc.Total / acc.Count : 0m);

Console.WriteLine($"Fatturato medio: €{averageRevenue:F2}");


Aggregazioni multiple in un singolo passaggio


Calcolare più aggregazioni sulla stessa sequenza in modo ingenuo significa iterarla più volte. Per sorgenti costose — query su database, chiamate di rete, lettura di file — questo ha un impatto reale. La soluzione è usare Aggregate con un accumulatore composito che raccoglie tutti i valori contemporaneamente:

public record AggregateSummary(int Count, decimal Sum, decimal Min, decimal Max);

IEnumerable<Order> orders = GetOrders();

AggregateSummary summary = orders.Aggregate(
    new AggregateSummary(0, 0m, decimal.MaxValue, decimal.MinValue),
    (acc, order) => new AggregateSummary(
        acc.Count + 1,
        acc.Sum   + order.Total,
        Math.Min(acc.Min, order.Total),
        Math.Max(acc.Max, order.Total)));

decimal average = summary.Count > 0 ? summary.Sum / summary.Count : 0m;

Console.WriteLine($"Count:   {summary.Count}");
Console.WriteLine($"Somma:   €{summary.Sum:F2}");
Console.WriteLine($"Minimo:  €{summary.Min:F2}");
Console.WriteLine($"Massimo: €{summary.Max:F2}");
Console.WriteLine($"Media:   €{average:F2}");


Un passaggio, quattro valori. Questo pattern è particolarmente utile nei query handler CQRS in cui il risultato richiede più statistiche e la sorgente dati è un database o un servizio esterno.

TryGetNonEnumeratedCount (.NET 6)


Prima di calcolare aggregazioni che richiedono il conteggio, conviene verificare se è disponibile senza enumerare la sequenza:

IEnumerable<Order> orders = GetOrders();

if (orders.TryGetNonEnumeratedCount(out int count))
{
    Console.WriteLine($"Conteggio rapido: {count}");
    // Disponibile senza iterare — usabile per pre-allocazione o logging
}
else
{
    // Fallback: deve enumerare
    count = orders.Count();
}


TryGetNonEnumeratedCount restituisce true per List<T>, array, HashSet<T> e altri tipi che implementano ICollection<T>. Restituisce false per pipeline lazy, risultati di GroupBy e qualsiasi IEnumerable che deve essere valutato per conoscere la propria lunghezza.

Novità .NET 9: CountBy e AggregateBy


.NET 9 ha introdotto due nuovi operatori di aggregazione per chiave che migliorano i pattern basati su GroupBy:

IEnumerable<Order> orders = GetOrders();

// CountBy: conta gli elementi per chiave — più conciso di GroupBy + Count
var countByStatus = orders.CountBy(o => o.Status);
foreach (var (status, count) in countByStatus)
{
    Console.WriteLine($"{status}: {count} ordini");
}

// AggregateBy: aggregazione personalizzata per chiave
var totalByCustomer = orders.AggregateBy(
    keySelector: o => o.CustomerId,
    seed: 0m,
    func: (total, order) => total + order.Total);

foreach (var (customerId, total) in totalByCustomer)
{
    Console.WriteLine($"Cliente {customerId}: €{total:F2}");
}


Per aggregazioni per chiave in .NET 9+, preferire CountBy e AggregateBy rispetto a GroupBy seguito da aggregazione: il codice è più leggibile e spesso più efficiente.

Guida rapida alla scelta dell’operatore


  • Verificare se esiste almeno un elementoAny(predicate)
  • Contare elementiCount() / Count(predicate)
  • Somma di valori proiettatiSum(selector)
  • Media di valori proiettatiAverage(selector)
  • Valore scalare minimo/massimoMin(selector) / Max(selector)
  • Elemento con chiave minima (.NET 6+)MinBy(keySelector)
  • Elemento con chiave massima (.NET 6+)MaxBy(keySelector)
  • Conteggio per chiave (.NET 9+)CountBy(keySelector)
  • Aggregazione personalizzata per chiave (.NET 9+)AggregateBy(keySelector, seed, func)
  • Fold generico con seedAggregate(seed, func)
  • Fold generico con proiezione finaleAggregate(seed, func, resultSelector)


Conclusione


Le operazioni di aggregazione LINQ coprono l’intero spettro delle necessità di riduzione dei dati. Conoscere la differenza tra Any e Count, sapere quando usare MinBy/MaxBy invece di un doppio passaggio, e saper costruire fold multi-valore con Aggregate sono competenze che migliorano sia le performance che la leggibilità del codice. Con l’aggiunta di CountBy e AggregateBy in .NET 9, il toolkit di aggregazione LINQ è oggi più completo che mai: vale la pena tenerlo presente come alternativa ai foreach loop ogni volta che si lavora con trasformazioni di collezioni.

Fonte: LINQ Aggregation in C#: Count, Sum, Min, Max, Average, and Aggregate — Dev Leader


Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

There is not even any pretense of #democracy in Europe:
#UK citizens, doctors, human rights orgs oppose #Palantir's access to their #healthData, but the British government goes ahead

Read #BritishMedicalJournal on #Palantir:

bmj.com/content/393/bmj.s941.f…

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

we expect #NYTimes will experience pressure to retract/water down #NickKristof's article on the horrific torture against #PalestinianPrisoners,including #rape by military #dogs
We need pictures,as for the #AbuGhraib horrors.

Leak, leak, leak safely here:

stefaniamaurizi.it/en-contactm…

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

pictures were absolutely crucial to expose the #AbuGhraibTorture scandal

Do you have pics of the horrific #torture and #rape of #Palestinian prisoners by #Israel, documented by #Kristof?
Please share them safely here:

stefaniamaurizi.it/en-contactm…

nytimes.com/2026/05/11/opinion…

in reply to stefania maurizi

NYT:

* " 'Rampant sexual abuse of Palestinian prisoners is a thing; it's been normalized,' said #SariBashi, an IL-US human rights lawyer"

* "... #BenMarmarelli, told me that ... rape of Palestinian prisoners with objects 'is going on across the board' "

* "Other Palestinian prisoners and human rights monitors have also cited reports of police dogs being coached to rape prisoners."

Brief section in Wikipedia:

en.wikipedia.org/wiki/Sexual_a…

#SGBV #Israel #PalestinianPrisoners #DogRape

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

The media in this post is not displayed to visitors. To view it, please go to the original post.

FamousSparrow nel Caucaso: tre ondate di spionaggio cinese colpiscono il gas azero che alimenta l’Europa
#CyberSecurity
insicurezzadigitale.com/famous…


FamousSparrow nel Caucaso: tre ondate di spionaggio cinese colpiscono il gas azero che alimenta l’Europa


Quando il 25 dicembre 2025 un processo silenzioso ha tentato di scrivere una web shell in una directory pubblica di un server Microsoft Exchange di un’azienda petrolifera azera, nessuno sapeva ancora che quello era l’inizio di un’operazione di cyberspionaggio in tre ondate. Il gruppo cinese FamousSparrow ha dimostrato una persistenza metodica e una sofisticazione tecnica che va ben oltre la semplice opportunismo: ha continuato a rientrare nello stesso sistema, cambiando ogni volta backdoor, per quasi due mesi. La ricerca di Bitdefender pubblicata il 13 maggio 2026 ricostruisce l’intera catena.

Un bersaglio di valore strategico nel Caucaso meridionale


L’Azerbaigian non è mai stato un paese secondario per la sicurezza energetica europea, ma la sua importanza è cresciuta esponenzialmente negli ultimi anni. Con la scadenza nel 2024 del transito del gas russo attraverso l’Ucraina e le successive interruzioni dello Stretto di Hormuz nel 2026, Baku si è trasformata in uno snodo critico per l’approvvigionamento energetico del continente. Chi controlla l’informazione che circola all’interno di quelle aziende ha accesso a dati di valore incalcolabile: prezzi di vendita futuri, capacità estrattive, negoziati contrattuali, infrastrutture fisiche.

È esattamente in questo contesto che Bitdefender Labs ha individuato un’intrusione plurifase attribuita con fiducia da moderata ad alta al gruppo FamousSparrow, noto anche come UAT-9244 e storicamente sovrapponibile a cluster come Earth Estries e Salt Typhoon — tutte denominazioni che orbitano intorno all’ecosistema dello spionaggio informatico legato allo stato cinese. L’obiettivo era un’azienda petrolifera e del gas azerbaigiana non nominata. L’operazione è durata dalla fine di dicembre 2025 alla fine di febbraio 2026.

Tre ondate, stesso ingresso: la tattica della porta sempre aperta


L’aspetto più rilevante dal punto di vista operativo è la persistenza attraverso lo stesso vettore iniziale nonostante i tentativi di bonifica. Gli attaccanti hanno sfruttato la catena ProxyNotShell (CVE-2022-41082 / CVE-2022-41040) su un server Microsoft Exchange esposto, una vulnerabilità che risale al 2022 ma che molte organizzazioni non hanno ancora patchato correttamente.

Il processo w3wp.exe è stato osservato tentare di scrivere una web shell in una directory pubblica del server Exchange il 25 dicembre 2025, avviando la prima ondata. Invece di cambiare punto di accesso quando il team difensivo ha tentato la remediation, FamousSparrow ha semplicemente sostituito la backdoor, dimostrando che la vulnerabilità non era stata effettivamente chiusa:

  • Ondata 1 — Dicembre 2025: Deploy di Deed RAT (aka Snappybee), successore di ShadowPad, strumento condiviso tra molteplici gruppi di spionaggio cinesi. Caricato tramite DLL sideloading sul binario legittimo di LogMeIn Hamachi.
  • Ondata 2 — Fine gennaio / inizio febbraio 2026: Sostituzione con TernDoor, un backdoor recentemente documentato in attacchi alle telecomunicazioni sudamericane nel 2024, mai visto prima nel Caucaso.
  • Ondata 3 — Fine febbraio 2026: Ritorno a una variante modificata di Deed RAT, probabilmente aggiornata per eludere le firme generate dopo le prime rilevazioni.


L’arsenale tecnico: DLL sideloading di nuova generazione


Ciò che distingue questa campagna da molte altre operazioni APT è l’evoluzione della tecnica di DLL sideloading utilizzata per caricare Deed RAT. Il metodo tradizionale si limita a rimpiazzare una libreria legittima; la variante di FamousSparrow va oltre, sovrascrivendo due specifiche funzioni esportate all’interno della DLL malevola. Questo crea un meccanismo a doppio trigger che subordina l’esecuzione del loader di Deed RAT al flusso di controllo naturale dell’applicazione host — in questo caso il client Hamachi di LogMeIn.

Il risultato pratico è duplice: il processo appare legittimo agli strumenti di monitoring basati su firma, e l’analisi statica del binario non rivela comportamenti anomali fino all’esecuzione del secondo trigger. Un design che porta il segno di un gruppo con elevate capacità di sviluppo custom.

Deed RAT è un impianto modulare a plug-in, successore architetturale di ShadowPad, storicamente associato a gruppi come APT41, Bronze Atlas e altri cluster dell’ecosistema China-nexus. Supporta esecuzione di comandi, manipolazione del filesystem, tunneling di rete e caricamento dinamico di moduli aggiuntivi. TernDoor è invece un backdoor relativamente nuovo, scoperto per la prima volta nel contesto delle telecomunicazioni sudamericane: la sua comparsa in Azerbaigian suggerisce una condivisione di tooling tra operazioni geograficamente distinte.

Chi è FamousSparrow: storia di un gruppo nell’ombra


FamousSparrow è stato documentato per la prima volta da ESET nel 2021, quando veniva osservato sfruttare ProxyLogon contro hotel, studi legali e organizzazioni governative in cinque continenti. Da allora, il gruppo ha mantenuto un profilo basso, operando con tooling condiviso e sovrapposizioni tattiche con altri cluster China-nexus. La sua attribuzione rimane complessa proprio a causa di questa natura di “contractor” dell’ecosistema: usa strumenti come Deed RAT che circolano tra più gruppi, rendendo difficile tracciare confini netti tra operazioni distinte.

Bitdefender nota sovrapposizioni tattiche con Earth Estries (il gruppo noto per aver colpito le telecomunicazioni globali nel 2022-2024) e con Salt Typhoon, il cluster che nel 2024 aveva compromesso le infrastrutture di intercettazione legale di diversi carrier americani. Questa rete di attribuzioni incrociate riflette quella che gli analisti definiscono la “shared malware economy” del cyberspionaggio cinese: un ecosistema in cui strumenti, infrastrutture e accessi vengono riutilizzati tra operazioni con mandanti potenzialmente diversi.

Due righe per i difensori


Il caso azerbaigiano offre lezioni concrete per i team di sicurezza operanti in settori ad alto valore strategico. La prima, forse la più scomoda, è che un tentativo di remediation che non chiude completamente la vulnerabilità iniziale può essere peggio del non fare nulla: dà al team difensivo una falsa sensazione di sicurezza mentre l’avversario osserva e si riadatta. L’attaccante ha dimostrato di monitorare le azioni difensive e di rispondervi con una nuova backdoor.

Alcune raccomandazioni pratiche: verificare che ProxyNotShell (CVE-2022-41082 e CVE-2022-41040) sia effettivamente patchato attraverso validazione post-patch, non solo applicazione dell’aggiornamento; monitorare l’esecuzione di processi Exchange come w3wp.exe per attività di scrittura su filesystem inusuali; implementare detection per DLL sideloading tramite binari firmati di terze parti come strumenti di remote access legittimi; e adottare una strategia di threat hunting proattiva basata sui TTP di FamousSparrow anche dopo la chiusura di un incidente confermato.

Indicatori di Compromissione (IoC)

# Campagna FamousSparrow - Azerbaigian Oil & Gas (Dic 2025 - Feb 2026)
# Fonte: Bitdefender Labs / The Hacker News (13 maggio 2026)
## File IoC identificati
# Ondata 2 - TernDoor loader
MD5: 762f787534a891eca8aa9b41330b4108
Percorso: C:\ProgramData\USOShared\USOShared.exe
## Vettore di accesso iniziale
Vulnerabilità: ProxyNotShell
CVE: CVE-2022-41082 (RCE) / CVE-2022-41040 (SSRF)
Processo sfruttato: w3wp.exe (IIS Worker Process su Exchange)
## Tecniche MITRE ATT&CK
T1190 - Exploit Public-Facing Application (Exchange ProxyNotShell)
T1505.003 - Web Shell
T1574.002 - DLL Side-Loading (LogMeIn Hamachi binary)
T1027 - Obfuscated Files or Information
T1071 - Application Layer Protocol (C2)
## Malware families
Deed RAT (aka Snappybee) - modulare, successore di ShadowPad
TernDoor - backdoor, prima rilevato in telecomunicazioni SA 2024
## Nota ai defender
# Verificare presenza di web shell residue su:
# %ExchangeInstallPath%\FrontEnd\HttpProxy\
# %ExchangeInstallPath%\ClientAccess\

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

Il 3 giugno il Parlamento discuterà di fine vita. Potrebbero discutere il testo del Pd, sottoscritto da tutte le opposizioni, che si limita a recepire le regole emanate dalla Corte costituzionale, con delle restrizioni per le condizioni di accesso all'aiuto alla morte volontaria.

Ma si rischia anche di peggio. Perché c'è il testo di legge del Governo che cancellerebbe totalmente i diritti esistenti, che hanno consentito finora a 16 persone di ottenere l'aiuto a morire da parte del SSN.

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

LA POLIZIA FA PULIZIA: LA BRUTTA STORIA DEI DATI VENDUTI

@news
Le nostre informazioni sono un bene prezioso, forse addirittura un oro di cui ovunque esistono filoni che non richiedono di scavare con fatica o di setacciare interi corsi d’acqua.
L'articolo LA POLIZIA FA PULIZIA: LA BRUTTA STORIA DEI DATI VENDUTI proviene da GIANO NEWS.

#EDITORIALI

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

Il Ministero dell'Istruzione che ci Meritiamo ma di cui non abbiamo bisogno


Il comunicato ministeriale che annuncia le nuove Indicazioni Nazionali per i Licei è il risultato mediocre di un'elaborazione in cui i contenuti tecnici ministeriali sono stati passati attraverso un LLM con un prompt scritto con il culo

informapirata.it/2026/05/14/il…

@scuola


Il Ministero dell’Istruzione che ci Meritiamo (ma di cui non abbiamo bisogno)

Il comunicato ministeriale che annuncia le nuove Indicazioni Nazionali per i Licei è il risultato mediocre di un’elaborazione in cui i contenuti tecnici ministeriali sono stati passati attraverso un LLM con un prompt scritto con il culo
informapirata.it/2026/05/14/il…


Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

Papa Leone XIV alla Sapienza: “Noi siamo un desiderio, non un algoritmo”

@scuola

corriereuniv.it/papa-leone-xiv…

Un lungo discorso attraversato da temi centrali per le nuove generazioni: guerra, università, salute mentale, diritto allo studio, crisi climatica e intelligenza artificiale. Nel suo incontro con la comunità della Sapienza Università di Roma,

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

Matteo Salvini, incalzato da Tiziana Panella ai microfoni di LA7, sostiene che gli insulti contro i meridionali fossero solo “tifo calcistico”. Nulla di più.

L’onorevole, oggi Ministro, suggerisce di non prenderlo troppo sul serio.

Che dire: siamo d’accordo. Salvini non va preso sul serio. Ed è proprio per questo che è inspiegabile come possa ricoprire una carica di governo.

E tu, #teloricordi?

Video di Francesca Romana D’Antuono, copresidente di Volt Europa.

#Salvini #Lega #SudItalia #Meridionali #TeLoRicordi #EuropaFederale #Volt #VoltItalia #VoltEuropa

Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

ClickFix Evolves: Attackers Combine Social Engineering With Decade-Old PySoxy SOCKS5 Proxy for Persistent Access
#CyberSecurity
securebulletin.com/clickfix-ev…
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

Critical Exim Vulnerability (EXIM-Security-2026-05-01.1): Remote Code Execution via GnuTLS BDAT Flaw — Patch Now
#CyberSecurity
securebulletin.com/critical-ex…
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

The media in this post is not displayed to visitors. To view it, please go to the original post.

CVE-2026-32185: Microsoft Teams for Android Vulnerability Enables Local Spoofing Attacks — Patch Available
#CyberSecurity
securebulletin.com/cve-2026-32…
Poliversity - Università ricerca e giornalismo ha ricondiviso questo.

Per chi di voi si fosse perso la live con @lorenzodm @skariko e @macfranc eccovi link alla stessa

@lealternative

youtube.com/watch?v=-QomN5wg5Q…

#lealternative #boostmedia #fediverso #poliversity #poliverso #citiverse #fedinews #fediverso