The Privacy Post ha ricondiviso questo.

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

12 tecniche per ottimizzare le query PostgreSQL su dataset di grandi dimensioni
#tech
spcnet.it/12-tecniche-per-otti…
@informatica


12 tecniche per ottimizzare le query PostgreSQL su dataset di grandi dimensioni


Quando una tabella PostgreSQL cresce oltre il milione di righe, query che prima restituivano risultati in millisecondi iniziano ad impiegare secondi — o peggio. La buona notizia è che PostgreSQL offre strumenti potenti per affrontare questo problema. La cattiva notizia è che molti sviluppatori conoscono solo una parte di questi strumenti.

In questo articolo passiamo in rassegna le 12 tecniche più efficaci per ottimizzare le query su grandi dataset, con esempi SQL concreti per ciascuna.

1. Creare indici sulle colonne frequentemente filtrate


Il consiglio più noto, ma non per questo meno importante. Un indice trasforma una scansione sequenziale (O(n)) in una ricerca B-tree (O(log n)). La differenza su una tabella da un milione di righe può essere di due ordini di grandezza.

-- Prima: full sequential scan su ordini
SELECT * FROM orders WHERE customer_id = 42;

-- Creazione dell'indice
CREATE INDEX idx_orders_customer_id ON orders(customer_id);

-- Dopo: index scan, da 240ms a pochi ms

Usate EXPLAIN ANALYZE per verificare che l’indice venga effettivamente utilizzato.

2. Normalizzare il database in modo strategico


La normalizzazione riduce la ridondanza e migliora la coerenza dei dati, ma va applicata con giudizio. Una normalizzazione eccessiva crea decine di JOIN che possono diventare colli di bottiglia. La regola pratica: normalizzate i dati che cambiano spesso o che hanno alta cardinalità (liste di prodotti, clienti, categorie), denormalizzate i dati storici o di report dove la velocità di lettura è critica.

3. Evitare SELECT *


Selezionare tutte le colonne ha due costi nascosti: aumenta il volume di I/O e impedisce a PostgreSQL di soddisfare la query direttamente dall’indice (index-only scan). Specificate sempre le colonne necessarie:

-- Evitare
SELECT * FROM orders WHERE customer_id = 42;

-- Preferire
SELECT id, created_at, total_amount FROM orders WHERE customer_id = 42;

Quando le colonne selezionate fanno parte di un indice composito, PostgreSQL può restituire i dati senza accedere all’heap, eliminando un intero livello di I/O.

4. Ordinare i JOIN in modo efficiente


Il query planner moderno di PostgreSQL determina autonomamente l’ordine ottimale dei JOIN grazie al cost-based optimizer. Tuttavia, in scenari con molte tabelle o con join_collapse_limit ridotto, conviene strutturare i JOIN in modo che le tabelle più piccole (o più filtrate) vengano processate per prime, riducendo la cardinalità delle operazioni successive.

5. Usare LIMIT durante l’esplorazione dei dati


Apparentemente ovvio, ma spesso trascurato: se l’interfaccia utente mostra al massimo 50 risultati, non ha senso recuperarne un milione dal database.

SELECT id, name, email 
FROM customers 
ORDER BY created_at DESC 
LIMIT 50 OFFSET 0;

Attenzione al pagination problem: con OFFSET elevati, PostgreSQL scansiona comunque tutte le righe precedenti. Per paginazione su grandi dataset, preferite il keyset pagination (cursor-based).

6. Indici parziali per subset frequenti


Un indice parziale indicizza solo le righe che soddisfano una condizione, riducendo dimensioni e costo di manutenzione:

-- Indice solo sugli ordini completati (subset più frequentemente interrogato)
CREATE INDEX idx_completed_orders
ON orders(customer_id)
WHERE status = 'Completed';

-- La query deve includere la stessa condizione per usare l'indice
SELECT id, total_amount 
FROM orders 
WHERE customer_id = 42 AND status = 'Completed';

In un test pratico, questo indice ha dimezzato i tempi rispetto a un indice standard su tutte le righe.

7. Usare i tipi di dato più piccoli necessari


Ogni byte conta quando moltiplicato per milioni di righe. Preferite sempre il tipo più compatto che soddisfa il requisito:

  • integer (4 byte) invece di bigint (8 byte) per chiavi primarie < 2 miliardi
  • smallint (2 byte) per enumerazioni con pochi valori
  • timestamp invece di timestamptz se il fuso orario è fisso
  • varchar(n) con limite appropriato invece di text illimitato dove possibile

Tipi più piccoli significano pagine di dati più dense, quindi meno I/O per ogni query.

8. Non applicare funzioni sulle colonne indicizzate


Applicare una funzione a una colonna indicizzata invalida l’utilizzo dell’indice:

-- L'indice su name NON viene usato
SELECT * FROM customers WHERE LOWER(name) = 'mario rossi';

-- Soluzione: creare un indice funzionale
CREATE INDEX idx_customers_lower_name ON customers(LOWER(name));

-- Ora l'indice viene usato
SELECT * FROM customers WHERE LOWER(name) = 'mario rossi';

Lo stesso vale per funzioni su date come DATE(created_at): usate range di timestamp o create l’indice sulla funzione.

9. Partizionare le tabelle molto grandi


Il partizionamento divide una tabella logica in sotto-tabelle fisiche, permettendo a PostgreSQL di escludere partizioni irrilevanti (partition pruning) durante le query:

-- Tabella partizionata per anno
CREATE TABLE orders_partitioned (
    id         serial NOT NULL,
    customer_id integer,
    created_at  timestamp NOT NULL,
    CONSTRAINT pk_orders PRIMARY KEY (id, created_at)
) PARTITION BY RANGE (created_at);

-- Creazione delle partizioni annuali
CREATE TABLE orders_2024 PARTITION OF orders_partitioned
    FOR VALUES FROM ('2024-01-01') TO ('2025-01-01');

CREATE TABLE orders_2025 PARTITION OF orders_partitioned
    FOR VALUES FROM ('2025-01-01') TO ('2026-01-01');

Una query che filtra per anno legge solo la partizione corrispondente, ignorando completamente le altre.

10. Usare le transazioni per operazioni bulk


PostgreSQL esegue un commit (e quindi una scrittura sincrona su WAL) dopo ogni statement. Raggruppare più operazioni in un’unica transazione riduce drasticamente i costi di I/O:

-- Lento: un commit per ogni INSERT
INSERT INTO log_events VALUES (...);
INSERT INTO log_events VALUES (...);
-- ... x 10.000

-- Veloce: un solo commit per tutto il batch
BEGIN;
INSERT INTO log_events VALUES (...);
INSERT INTO log_events VALUES (...);
-- ... x 10.000
COMMIT;

In test pratici, l’approccio con transazione singola completa lo stesso lavoro in meno della metà del tempo rispetto agli inserimenti individuali.

11. Evitare transazioni long-running


Il modello MVCC (Multi-Version Concurrency Control) di PostgreSQL mantiene versioni multiple delle righe per garantire la consistenza delle letture. Le transazioni long-running bloccano il processo di VACUUM dal rimuovere le versioni obsolete, causando table bloat: tabelle che crescono fisicamente anche quando i dati logici non aumentano.

Spezzettate le operazioni pesanti in batch più piccoli e monitorate le transazioni attive con:

SELECT pid, now() - pg_stat_activity.query_start AS duration, query, state
FROM pg_stat_activity
WHERE state != 'idle' AND query_start IS NOT NULL
ORDER BY duration DESC;

12. Gestire il bloat con VACUUM


Ogni UPDATE e DELETE lascia righe “morte” sul disco. VACUUM le recupera:

-- VACUUM standard: recupera spazio senza bloccare le letture
VACUUM orders;

-- VACUUM FULL: recupera tutto lo spazio ma blocca l'accesso alla tabella
-- Usare solo in finestre di manutenzione programmate
VACUUM FULL orders;

-- Verificare lo stato del bloat
SELECT relname, n_dead_tup, n_live_tup,
       round(n_dead_tup::numeric / NULLIF(n_live_tup + n_dead_tup, 0) * 100, 2) AS dead_pct
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 20;

Per la maggior parte dei workload, autovacuum è sufficiente. Assicuratevi che sia abilitato e calibrate i threshold in base al volume di modifiche della vostra applicazione:
-- Verificare la configurazione autovacuum per una tabella specifica
SELECT reloptions FROM pg_class WHERE relname = 'orders';

Riepilogo operativo


Non tutte le tecniche si applicano a ogni scenario. Un approccio efficace inizia sempre dall’analisi con EXPLAIN (ANALYZE, BUFFERS) per identificare i reali colli di bottiglia, poi applica le ottimizzazioni in modo mirato. L’indice sbagliato o il partizionamento mal configurato possono peggiorare le prestazioni invece di migliorarle.

Il punto di partenza universale resta lo stesso: misurare prima, ottimizzare dopo.


Fonte: 12 practices for optimizing PostgreSQL queries for large datasets — elmah.io Blog


The Privacy Post ha ricondiviso questo.

In Frankfurt am Main wird eine neue Ära eingeleitet – das Ende der Anonymität im öffentlichen Raum. Als ich dort kürzlich vor einer der Gesichtserkennungskameras stand, hat sich das sehr unangenehm angefühlt. Wie das für die Leute ist, die dort ihr Leben verbringen, habe ich hier aufgeschrieben: netzpolitik.org/2026/rotlichtv…
The Privacy Post ha ricondiviso questo.

Are you a Romanian speaker 🇷🇴 ? The FSFE needs your help! @mehanix has started to translate the beloved children's book "Ada & Zangemann" to Romanian on Weblate. Now, we are searching for someone to help with the translation and proofreading.

Help us to spread the word about #FreeSoftware across Europe! hosted.weblate.org/projects/fs…

The Privacy Post reshared this.

The Privacy Post ha ricondiviso questo.

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

Booking.com Notifies Customers of Data Breach Exposing Reservation Details and Personal Information
#CyberSecurity
securebulletin.com/booking-com…
The Privacy Post ha ricondiviso questo.

Die Bundesregierung nimmt einen dritten Anlauf zur Vorratsdatenspeicherung. Internet-Zugangs-Anbieter sollen IP-Adressen aller Nutzer speichern – anlasslos und massenhaft. Internet-Dienste wie E-Mails und Messenger müssen auf Anordnung ebenfalls Daten speichern und herausgeben. netzpolitik.org/2026/dritter-v…
The Privacy Post ha ricondiviso questo.

Die Bundesregierung nimmt einen dritten Anlauf zur Vorratsdatenspeicherung. Internet-Zugangs-Anbieter sollen IP-Adressen aller Nutzer speichern - anlasslos und massenhaft. Internet-Dienste wie E-Mails und Messenger müssen auf Anordnung ebenfalls Daten speichern und herausgeben. netzpolitik.org/2026/dritter-v…

reshared this

The Privacy Post ha ricondiviso questo.

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

Windows Defender Triple Zero-Day: BlueHammer, RedSun, and UnDefend Actively Exploited in the Wild
#CyberSecurity
securebulletin.com/windows-def…
The Privacy Post ha ricondiviso questo.

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

Critical Fortinet FortiClient EMS Zero-Day CVE-2026-35616 Exploited Before Official Patch Was Released
#CyberSecurity
securebulletin.com/critical-fo…
The Privacy Post ha ricondiviso questo.

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

Creare addon nativi per Node.js con .NET Native AOT: addio a Python e node-gyp
#tech
spcnet.it/creare-addon-nativi-…
@informatica


Creare addon nativi per Node.js con .NET Native AOT: addio a Python e node-gyp


Da sempre, creare addon nativi per Node.js significava entrare nel mondo di C++ e node-gyp, con la necessità di installare Python, Visual Studio Build Tools e una serie di dipendenze che trasformavano il setup dell’ambiente in un’impresa. Il team di C# Dev Kit di Microsoft ha trovato una soluzione elegante: usare .NET Native AOT per produrre librerie condivise compatibili con l’interfaccia N-API di Node.js, scritte interamente in C#.

In questo articolo vediamo come funziona questa tecnica, analizzando la struttura del progetto, il meccanismo di interop e i punti critici da tenere d’occhio in produzione.

Perché Node.js supporta addon scritti in qualsiasi linguaggio


Un addon nativo per Node.js è semplicemente una libreria condivisa (.dll su Windows, .so su Linux, .dylib su macOS) che esporta un punto di ingresso preciso: la funzione napi_register_module_v1. Node.js carica la libreria, chiama questa funzione e da quel momento il modulo è disponibile per JavaScript.

L’interfaccia che rende tutto questo possibile è N-API (Node-API), una API C stabile e ABI-compatibile tra le versioni di Node.js. Questo significa che qualsiasi linguaggio in grado di produrre una shared library ed esportare una funzione C può diventare un addon Node.js — incluso C# compilato con Native AOT.

Configurazione del progetto .NET


Il file di progetto è sorprendentemente minimale:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <PublishAot>true</PublishAot>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  </PropertyGroup>
</Project>

Due impostazioni chiave:
  • PublishAot: abilita la compilazione Ahead-of-Time, producendo una shared library nativa invece di un assembly IL.
  • AllowUnsafeBlocks: necessario per l’interop con N-API tramite function pointer e tipi non gestiti.


Il punto di ingresso del modulo


L’entry point usa l’attributo [UnmanagedCallersOnly], che istruisce il compilatore a generare una funzione C-callable con la firma esatta attesa da Node.js:

[UnmanagedCallersOnly(
    EntryPoint = "napi_register_module_v1",
    CallConvs = [typeof(CallConvCdecl)])]
public static nint Init(nint env, nint exports)
{
    // Registrazione delle funzioni esposte
    return exports;
}

Il tipo nint (native-sized integer) rappresenta gli handle opachi che N-API usa per riferirsi agli oggetti JavaScript. Non si tratta di puntatori diretti a memoria, ma di token gestiti dall’engine V8 tramite N-API.

Risoluzione delle funzioni N-API a runtime


Le funzioni N-API (come napi_create_string_utf8 o napi_get_cb_info) sono esportate direttamente da node.exe, non da una DLL separata. Per fare in modo che P/Invoke le risolva correttamente, si registra un custom resolver:

private static void Initialize()
{
    NativeLibrary.SetDllImportResolver(
        System.Reflection.Assembly.GetExecutingAssembly(),
        ResolveDllImport);
}

private static nint ResolveDllImport(string libraryName, Assembly assembly, DllImportSearchPath? searchPath)
{
    if (libraryName == "node")
        return NativeLibrary.GetMainProgramHandle();
    return IntPtr.Zero;
}

Questo permette di dichiarare le importazioni P/Invoke con [LibraryImport("node")] e averle risolte contro il processo host a runtime.

Marshalling delle stringhe UTF-8


Uno dei punti più delicati è la conversione tra stringhe JavaScript (UTF-16 internamente in V8, UTF-8 via N-API) e stringhe .NET. La strategia ottimale prevede:

  • Uso dello stack per stringhe piccole (≤512 byte) tramite stackalloc
  • Uso di ArrayPool<byte> per stringhe più grandi, evitando allocazioni sull’heap


private static string GetStringArg(nint env, nint info, int argIndex)
{
    // Recupera l'handle dell'argomento
    nint value = GetArgument(env, info, argIndex);
    
    // Prima chiamata: ottieni la dimensione necessaria
    nuint byteCount;
    napi_get_value_string_utf8(env, value, null, 0, out byteCount);
    
    // Allocazione efficiente in base alla dimensione
    if (byteCount <= 512)
    {
        Span<byte> buffer = stackalloc byte[(int)byteCount + 1];
        napi_get_value_string_utf8(env, value, buffer, (nuint)buffer.Length, out _);
        return Encoding.UTF8.GetString(buffer[..^1]);
    }
    else
    {
        byte[] buffer = ArrayPool<byte>.Shared.Rent((int)byteCount + 1);
        try
        {
            napi_get_value_string_utf8(env, value, buffer, (nuint)buffer.Length, out _);
            return Encoding.UTF8.GetString(buffer, 0, (int)byteCount);
        }
        finally
        {
            ArrayPool<byte>.Shared.Return(buffer);
        }
    }
}

Implementazione di una funzione reale: lettura dal Registry


L’esempio concreto mostrato dal team di Microsoft è un lettore del Windows Registry, che sostituisce il precedente addon C++:

private static nint ReadStringValue(nint env, nint info)
{
    try
    {
        var keyPath = GetStringArg(env, info, 0);
        var valueName = GetStringArg(env, info, 1);
        
        using var key = Registry.CurrentUser.OpenSubKey(keyPath, writable: false);
        
        return key?.GetValue(valueName) is string value
            ? CreateString(env, value)
            : GetUndefined(env);
    }
    catch (Exception ex)
    {
        // CRITICO: le eccezioni non gestite in [UnmanagedCallersOnly] crashano il processo
        ThrowError(env, $"Registry read failed: {ex.Message}");
        return 0;
    }
}

Attenzione: in un metodo [UnmanagedCallersOnly], le eccezioni non gestite provocano il crash dell’intero processo Node.js. Il pattern try/catch con ThrowError trasforma l’eccezione .NET in un errore JavaScript, mantenendo stabile il runtime.

Integrazione con TypeScript


Dopo dotnet publish, il file prodotto viene rinominato con estensione .node (convenzione Node.js) e caricato normalmente da TypeScript:

interface RegistryAddon {
    readStringValue(keyPath: string, valueName: string): string | undefined;
}

const registry = require('./native/win32-x64/RegistryAddon.node') as RegistryAddon;

const sdkPath = registry.readStringValue(
    'SOFTWARE\\dotnet\\Setup\\InstalledVersions\\x64\\sdk',
    'InstallLocation'
);
console.log(`SDK installato in: ${sdkPath}`);

Limiti e considerazioni


Questa tecnica ha un limite importante: Native AOT non supporta la cross-compilazione. Per ogni piattaforma target (Windows x64, Linux x64, macOS ARM64…) è necessario un ambiente di build separato. In pratica, questo si risolve con pipeline CI che eseguono la build su runner del sistema operativo corrispondente.

Esiste anche un’alternativa di più alto livello, node-api-dotnet, che astrae molti dei dettagli mostrati qui e supporta scenari più complessi come l’esposizione di interi namespace .NET a JavaScript. L’approccio “thin wrapper” descritto in questo articolo è preferibile quando si vuole controllo totale e dipendenze minime.

Conclusioni


L’integrazione tra .NET Native AOT e N-API apre uno scenario interessante per i team che già lavorano con C# e devono interfacciarsi con l’ecosistema Node.js. Eliminare Python e node-gyp dal setup semplifica notevolmente l’ambiente di sviluppo e unifica le competenze necessarie intorno a un unico SDK.

Il risultato è codice nativo con prestazioni paragonabili al C++, scritto con la produttività e la type safety di C# moderno, deployabile su Windows, Linux e macOS.


Fonte: Writing Node.js addons with .NET Native AOT — Microsoft .NET Blog, Drew Noakes


The Privacy Post 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.

Violazione ANTS: un banale difetto IDOR espone 19 milioni di identità francesi in vendita sul dark web
#CyberSecurity
insicurezzadigitale.com/violaz…


Violazione ANTS: un banale difetto IDOR espone 19 milioni di identità francesi in vendita sul dark web


Si parla di:
Toggle

Una vulnerabilità elementare di tipo IDOR (Insecure Direct Object Reference) sull’API del portale governativo francese ANTS ha consentito a un attore di minaccia di estrarre fino a 19 milioni di record contenenti dati anagrafici e di identità dei cittadini francesi. La vicenda, emersa pubblicamente il 21 aprile 2026, solleva interrogativi profondi sulla sicurezza delle infrastrutture digitali dello Stato francese e sulla protezione dei dati biometrici e documentali alla base del sistema di identità nazionale.

Cos’è ANTS e perché la violazione è così grave


L’Agence Nationale des Titres Sécurisés (ANTS), operativa sotto il Ministero dell’Interno francese, gestisce le domande e il ciclo di vita dei documenti d’identità ufficiali dei cittadini: carte d’identità nazionale, passaporti, patenti di guida e permessi di soggiorno. Il portale ants.gouv.fr costituisce il punto di accesso centralizzato attraverso cui milioni di francesi richiedono, rinnovano o tracciano i propri documenti d’identità. Una violazione di questa piattaforma non riguarda quindi dati di servizio generici: tocca direttamente le informazioni anagrafiche certificate dallo Stato, quelle stesse che alimentano i sistemi di identità digitale e i processi di verifica dell’identità.

La timeline: dall’intrusione alla divulgazione


La ricostruzione cronologica dell’incidente è la seguente:

  • 15 aprile 2026: ANTS rileva internamente un incidente di sicurezza sul portale istituzionale e avvia le procedure di risposta agli incidenti.
  • 16 aprile 2026: Un attore di minaccia che opera sotto lo pseudonimo breach3d pubblica su forum underground di hacking la rivendicazione dell’attacco, affermando di essere in possesso di un dataset di 18-19 milioni di record esfiltrati dalla piattaforma ANTS.
  • 19-20 aprile 2026: Il dato viene segnalato da ricercatori di sicurezza e giornalisti specializzati che accedono ai forum underground e verificano i campioni forniti dall’attore.
  • 21 aprile 2026: Il Ministero dell’Interno francese e ANTS confermano ufficialmente l’incidente, notificano il CNIL (Commission Nationale de l’Informatique et des Libertés), la Procura di Parigi e l’ANSSI (Agence Nationale de la Sécurité des Systèmes d’Information).


Il vettore d’attacco: IDOR, una vulnerabilità imbarazzante


Secondo quanto riferito da fonti vicine all’indagine e dalle dichiarazioni dello stesso attaccante, il vettore di compromissione è stato un difetto di tipo IDOR (Insecure Direct Object Reference) sull’API del portale ANTS. Lo stesso breach3d ha descritto la vulnerabilità come “really stupid” — stupida nella sua semplicità — rivelando che era sufficiente modificare un identificatore numerico nelle richieste HTTP all’API per accedere ai record di qualsiasi altro utente registrato sulla piattaforma.

L’IDOR è una vulnerabilità classificata nel OWASP Top 10 da oltre vent’anni (A01:2021 – Broken Access Control). Si verifica quando un’applicazione espone riferimenti diretti a oggetti interni — come ID di database, file o record — senza verificare che l’utente richiedente abbia effettivamente l’autorizzazione ad accedere a quell’oggetto. In questo caso, l’API governativa francese non implementava controlli di autorizzazione adeguati: un utente autenticato poteva iterare sugli ID numerici degli account per raccogliere massivamente i dati di tutti gli utenti registrati. Il processo di esfiltrazione risulta quindi altamente automatizzabile con script elementari.

I dati esposti e le implicazioni per i cittadini


Il Ministero dell’Interno francese ha confermato che i dati potenzialmente esposti includono: nome e cognome, indirizzo email, data di nascita, identificativi di account univoci e credenziali di accesso (login ID). Per un sottoinsieme di utenti, potrebbero essere stati esposti anche l’indirizzo postale, il luogo di nascita e il numero di telefono. ANTS ha precisato che i documenti caricati sul portale (immagini di passaporti o patenti, ad esempio) non risultano compromessi e che i dati esfiltrati non consentono l’accesso diretto agli account.

Tuttavia, la combinazione di dati anagrafici certificati dallo Stato con informazioni di contatto apre scenari di abuso estremamente preoccupanti per i difensori:

  • Phishing e spear-phishing di alta precisione: con nome completo, email, data di nascita e luogo di nascita, gli attaccanti possono costruire comunicazioni altamente credibili che si spacciano per corrispondenza ufficiale del governo francese o di istituti finanziari.
  • Furto di identità e creazione di identità sintetiche: la combinazione di dati anagrafici verificati dallo Stato costituisce una base ideale per aprire conti bancari fraudolenti, richiedere prestiti o commettere frodi fiscali.
  • Sextortion e social engineering: messaggi personalizzati che dimostrano conoscenza di dati specifici (luogo di nascita, data esatta) aumentano drasticamente la credibilità degli schemi di estorsione.
  • Credential stuffing: gli indirizzi email associati agli account ANTS vengono tipicamente testati su altri servizi, sfruttando il riutilizzo delle password.


Il profilo dell’attore: breach3d


L’attore breach3d non è nuovo alla scena underground. Prima di questa rivendicazione aveva già pubblicato dataset di altre organizzazioni su forum frequentati da broker di dati e operatori criminali. Non ci sono elementi pubblici che permettano di attribuire l’attività a un gruppo state-sponsored o a una gang ransomware strutturata: il profilo appare più coerente con quello di un opportunista focalizzato sulla monetizzazione dei dati piuttosto che su obiettivi di intelligence. Il dataset sarebbe stato messo in vendita a un prezzo non divulgato pubblicamente.

La risposta istituzionale e le notifiche


ANTS ha comunicato che non è richiesta alcuna azione immediata da parte degli utenti, invitandoli tuttavia a mantenere alta la vigilanza nei confronti di messaggi sospetti. L’agenzia ha notificato l’incidente alla CNIL, alla Procura di Parigi e all’ANSSI, che coordineranno le indagini e valuteranno la conformità al GDPR (Regolamento Generale sulla Protezione dei Dati). La violazione, se confermata nelle proporzioni dichiarate da breach3d, configurerebbe uno degli incidenti più gravi mai registrati nell’ambito dei sistemi di identità statale europei.

Pavel Durov, fondatore di Telegram, ha pubblicamente commentato l’incidente sottolineando i rischi sistemici legati alla centralizzazione dei dati d’identità governativi su piattaforme web esposte a Internet, alimentando il dibattito sulla progettazione sicura dei portali di e-government.

Cosa possono fare i difensori


Per le organizzazioni che gestiscono portali ad alta sensibilità e per i team di sicurezza che devono valutare il rischio residuo per i propri utenti alla luce di questo dataset circolante, si raccomanda di:

  • Implementare sistematicamente controlli di autorizzazione lato server su ogni endpoint API che restituisce dati associati a un identificatore: verificare sempre che l’utente autenticato sia il proprietario del record richiesto.
  • Adottare test di sicurezza specifici per IDOR e Broken Access Control nei cicli di sviluppo (SAST, DAST, penetration testing con focus su API).
  • Per le organizzazioni che gestiscono dipendenti o clienti francesi: alzare il livello di allerta anti-phishing e considerare campagne di sensibilizzazione mirate sull’utilizzo di questo tipo di dataset per attacchi personalizzati.
  • Monitorare i propri indirizzi email aziendali su servizi di threat intelligence e breach monitoring per rilevare tempestivamente la comparsa del dataset in nuovi marketplace underground.
  • Valutare l’abilitazione di autenticazione multi-fattore su tutti i servizi esposti che accettano email come username, poiché la disponibilità degli indirizzi email alimenta attacchi di account takeover.

La violazione ANTS è l’ennesima dimostrazione che le vulnerabilità più banali — note, documentate e prevenibili — continuano ad affliggere sistemi governativi critici. Una API senza controlli di accesso adeguati, su un portale che gestisce l’identità di decine di milioni di cittadini, rappresenta un rischio sistemico di proporzioni difficilmente accettabili in un’era in cui il furto d’identità digitale alimenta ecosistemi criminali globali.


The Privacy Post ha ricondiviso questo.

🚫 Bans for young people won’t fix broken platforms

Addiction, harmful content, data misuse, harassment - different symptoms, same root cause: platform design.

Young people are pushing back against social media bans for minors.

In this op-ed, co-authored by youth activists and backed by 32 organisations, we say it clearly: we need rules, enforcement, and protection for ALL users, regardless of age

No decisions about young people, without them ✊🏽

Read the op-ed ➡️ brusselstimes.com/belgium/2089…

reshared this

The Privacy Post ha ricondiviso questo.

Update Polizeigesetz Sachsen #SächsPVDG
Die Grünen haben nun einen eigenen Gesetzentwurf in den Landtag eingebracht. Im Unterschied zur Staatsregierung enthält er nur die Umsetzungen der Rechtsprechung des VerfGh + Maßnahmen gegen häusliche Gewalt + Befugnisse zur Drohnenabwehr 🧶 1/9
Questa voce è stata modificata (1 mese fa)

reshared this

The Privacy Post ha ricondiviso questo.

Frankfurt am Main ist ein Freiluftlabor für automatisierte Gesichtserkennung. Die Bilder von Überwachungs-Kameras werden permanent nach bestimmten Personen durchsucht, bei Kontrollen nutzt die Polizei eine Foto-App, um Menschen zu identifizieren. Dabei bleiben hier viele lieber unerkannt: Die Videokameras zeigen auf die Eingänge von 16 Bordellen.

netzpolitik.org/2026/rotlichtv…

reshared this

Pixel invisibili - Mangialumache Vs Les Ritals


@Privacy Pride
Il post completo di Christian Bernieri è sul suo blog: garantepiracy.it/blog/pixel/
Il CNIL, l'autorità Garante francese, ha pubblicato le proprie "raccomandazioni" per l'uso dei pixel invisibili di tracciamento contenuti nelle email. Si tratta di una argomento piuttosto di nicchia, una minuzia che, al confronto delle macro violazioni compiute

The Privacy Post ha ricondiviso questo.

Der KI-Boom wird mehr und mehr zum Problem für Umwelt und Klima. Jetzt haben Expert:innen für das Umweltministerium skizziert, wie eine nachhaltigere Alternative aussehen könnte. Ihr Gutachten vermeidet Kritik am aktuellen Kurs der Bundesregierung, die Empfehlungen laufen jedoch auf eine drastische Politikwende hinaus.

Zusammengefasst von @roofjoke

netzpolitik.org/2026/fachleute…

The Privacy Post ha ricondiviso questo.

Questo truffatore ha usato una ragazza #MAGA generata dall'IA per raggirare uomini "super stupidi".

Uno studente di medicina afferma di aver guadagnato migliaia di dollari vendendo foto e video di una giovane donna conservatrice da lui creata utilizzando strumenti di grafica generativa. E non è il solo.

wired.com/story/ai-generated-m…

@politica

The Privacy Post reshared this.

The Privacy Post 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.

CyberAv3ngers e l’IRGC all’assalto delle infrastrutture critiche USA: sei agenzie federali confermano gli attacchi ai PLC Rockwell Automation
#CyberSecurity
insicurezzadigitale.com/cybera…


CyberAv3ngers e l’IRGC all’assalto delle infrastrutture critiche USA: sei agenzie federali confermano gli attacchi ai PLC Rockwell Automation


Il 7 aprile 2026, sei agenzie federali statunitensi — tra cui CISA, FBI e NSA — hanno pubblicato l’advisory congiunto AA26-097A, confermando che CyberAv3ngers, gruppo di cyberoffensiva direttamente controllato dall’IRGC-CEC (Islamic Revolutionary Guard Corps Cyber-Electronic Command) iraniano, ha condotto attacchi contro infrastrutture critiche americane sfruttando una vulnerabilità critica nei Programmable Logic Controller di Rockwell Automation. L’aspetto più preoccupante: per questa vulnerabilità non esiste alcuna patch del vendor.

Il gruppo: CyberAv3ngers e la struttura del comando IRGC


CyberAv3ngers è un threat group state-directed attivo almeno dal 2020, tracciato dalla comunità di threat intelligence con molteplici denominazioni: Storm-0784 (Microsoft), Bauxite (Dragos), Hydro Kitten, UNC5691 (Mandiant) e classificato da MITRE ATT&CK come G1027. Il gruppo opera come persona ufficiale dell’IRGC-CEC, distinguendosi per la focalizzazione sulle Operational Technology (OT) e i sistemi di controllo industriale (ICS), un dominio in cui pochi gruppi APT hanno sviluppato capacità analoghe.

La traiettoria evolutiva del gruppo è significativa: da attacchi opportunistici con credenziali di default su PLC Unitronics di fabbricazione israeliana nel 2023, alla distribuzione della piattaforma malware ICS custom IOCONTROL nel 2024, fino alla campagna 2026 contro i controller Rockwell Automation, che rappresenta un salto qualitativo nell’ambito delle capacità offensive ICS.

Il contesto geopolitico: rappresaglia cyber dopo gli attacchi del febbraio 2026


La campagna si inserisce in un contesto geopolitico estremamente teso. Il 28 febbraio 2026, USA e Israele hanno condotto un’operazione militare congiunta contro obiettivi iraniani, innescando una campagna di rappresaglia cyber multi-vettore che Unit 42 di Palo Alto Networks ha tracciato come cluster CL-STA-1128. In questo contesto, CyberAv3ngers ha intensificato le operazioni contro infrastrutture critiche americane, spostando il focus dai precedenti target israeliani verso obiettivi statunitensi.

CVE-2021-22681: la vulnerabilità senza patch al centro degli attacchi


Il vettore tecnico primario della campagna è CVE-2021-22681, una vulnerabilità di authentication bypass con CVSS score 9.8 che affligge i controller Logix di Rockwell Automation. La vulnerabilità permette a un attaccante di bypassare l’autenticazione e ottenere accesso ai PLC senza credenziali valide. Il problema strutturale: Rockwell Automation non ha rilasciato una patch, indicando invece misure di difesa in profondità come unica mitigazione disponibile.

I prodotti vulnerabili includono un ampio portfolio:

  • RSLogix 5000 (versioni 16-20)
  • Studio 5000 Logix Designer (versione 21 e successive)
  • Famiglie di controller: CompactLogix, ControlLogix, GuardLogix, DriveLogix, SoftLogix

Secondo la scansione Cortex Xpanse di Palo Alto, risultano esposti su internet globalmente 5.600 indirizzi IP con servizi Rockwell Automation o Allen-Bradley SCADA, inclusi FactoryTalk e vari PLC — una superficie di attacco di proporzioni allarmanti.

Le TTPs operative: preparazione con FactoryTalk su VPS


L’analisi di Unit 42 rivela che gli attaccanti hanno adottato un approccio metodico nella preparazione. Con moderata confidenza, i ricercatori ritengono che CL-STA-1128 abbia installato il software FactoryTalk di Rockwell Automation su infrastruttura VPS per abilitare le proprie attività di exploitation, sviluppando internamente la capacità di interagire con il protocollo CIP (Common Industrial Protocol) prima di colpire i target reali. La mappatura delle porte utilizzate dai dispositivi esposti ha permesso al gruppo di identificare i target mediante pattern statici caratteristici dei prodotti Rockwell.

I settori colpiti confermati dall’advisory federale comprendono Water and Wastewater Systems (WWS), Energy e Government Services and Facilities. L’advisory CISA AA26-097A, primo caso in cui sei agenzie federali attribuiscono congiuntamente un’operazione all’IRGC, conferma interruzioni operative e perdite economiche in organizzazioni multiple.

Escalation della minaccia: dall’hacktivism all’OT warfare


La progressione di CyberAv3ngers illustra una tendenza preoccupante nel panorama delle minacce state-sponsored: la convergenza tra capacità IT e OT in un unico gruppo APT. Nelle prime operazioni del 2023, il gruppo si limitò a modificare i display HMI dei Unitronics PLC presso impianti idrici israeliani e americani, un’azione prevalentemente dimostrativa. Con IOCONTROL nel 2024, il gruppo ha sviluppato malware custom per dispositivi IoT e OT. La campagna del 2026, che sfrutta una vulnerabilità critica senza patch in uno dei vendor di automazione industriale più diffusi al mondo, rappresenta una capacità offensiva significativamente più matura.

Mitigazioni: nessuna patch disponibile, solo difesa in profondità


In assenza di una patch per CVE-2021-22681, le organizzazioni che utilizzano controller Rockwell Automation devono implementare le seguenti misure di difesa in profondità raccomandate dall’advisory federale:

  • Segmentazione di rete: isolare i PLC e i sistemi OT in zone di rete separate, con firewall tra IT e OT, eliminando qualsiasi esposizione diretta a internet
  • Isolamento delle engineering workstation: le workstation che comunicano con i PLC devono essere dedicate e segregate dalla rete corporate generale
  • Abilitazione di CIP Security: configurare il protocollo CIP Security per autenticazione e cifratura delle comunicazioni tra EWS e PLC dove supportato
  • Physical mode switch: impostare i PLC in modalità fisica protetta dove applicabile, impedendo modifiche al firmware via software
  • Monitoraggio anomalie CIP-IP: deployare soluzioni di monitoraggio OT (es. Dragos, Claroty, Nozomi) in grado di rilevare download anomali e cambi di modalità sui PLC tramite protocollo CIP
  • Rimozione dell’esposizione internet: verificare con Shodan o Censys la presenza di dispositivi Rockwell/Allen-Bradley esposti e rimuoverli immediatamente


Implicazioni strategiche


La campagna di CyberAv3ngers evidenzia la crescente militarizzazione del cyberspazio nelle operazioni di rappresaglia tra stati. La scelta di colpire infrastrutture idriche, energetiche e governative — settori con potenziale impatto diretto sulla popolazione civile — segnala una volontà di massimizzare l’effetto psicologico e operativo degli attacchi. Il fatto che Rockwell Automation non abbia rilasciato una patch per CVE-2021-22681 pone interrogativi seri sul modello di sicurezza dei vendor OT: in un settore dove i device lifecycle si misurano in decenni, l’assenza di aggiornamenti di sicurezza per vulnerabilità critiche è un rischio sistemico che va affrontato con urgenza a livello regolatorio.

Con 5.600 dispositivi Rockwell Automation esposti su internet a livello globale e nessuna patch in vista, la superficie di attacco rimane aperta. Le organizzazioni che operano infrastrutture critiche devono trattare l’advisory AA26-097A come una priorità assoluta e avviare immediatamente una revisione dell’esposizione OT.


The Privacy Post ha ricondiviso questo.

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

⚖️🇪🇺 To find out more about your Right of Access and the European Commission's plans to restrict it via the #DigitalOmnibus, click here 👉 noyb.eu/en/digital-omnibus-rea…

#GDPR #EC #Europe #Commission #EU #law #rights

Questa voce è stata modificata (1 mese fa)
The Privacy Post ha ricondiviso questo.

Can software developers write their own software license for their project?

a) Yes, it is best for software developers to write their own software license for their project.

b) Yes, but it is best for software developers to choose an established #FreeSoftware license with predictable legal effects for their project.

c) No, software developers are prohibited by law to write their own software licenses.

d) No, software licenses can only be written by legal professionals.

  • Option A (2%, 7 votes)
  • Option B (93%, 257 votes)
  • Option C (2%, 7 votes)
  • Option D (1%, 5 votes)
276 voters. Poll end: 1 mese fa

The Privacy Post reshared this.

in reply to Free Software Foundation Europe

Are Licensees of GPL/LGPL third-party beneficiaries? I’m not a lawyer, so please forgive me if I’m wrong. According to v3 terms, I don't think Licensees are treated as third-party beneficiary, at least not tenable in court. I hope there are some optional terms in future versions to grant third parties the rights to sue violator for violation without needs to transfer copyright to the suer, so that any willing party can defend against violations.
The Privacy Post ha ricondiviso questo.

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

Cisco Patches Four Critical Flaws in Identity Services Engine and Webex: Unauthenticated RCE and Full User Impersonation at Risk
#CyberSecurity
securebulletin.com/cisco-patch…
The Privacy Post ha ricondiviso questo.

Die Bundesregierung geht gegen zivilgesellschaftliche Organisationen vor, streicht Gelder und lässt Akteure durch den Verfassungsschutz überprüfen. Diese und andere Freiheitseinschränkungen sowie den Ausbau der Überwachung in Deutschland kritisiert der weltweite Menschenrechtsbericht von Amnesty International.

netzpolitik.org/2026/amnesty-r…

The Privacy Post ha ricondiviso questo.

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

Inditex (Zara) Confirms Third-Party Data Breach: Transaction Records Exposed via Analytics Platform with April 21 Leak Deadline
#CyberSecurity
securebulletin.com/inditex-zar…
The Privacy Post ha ricondiviso questo.

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

Primary Constructor e Dependency Injection in C# 12: vantaggi, insidie e quando usarli
#tech
spcnet.it/primary-constructor-…
@informatica


Primary Constructor e Dependency Injection in C# 12: vantaggi, insidie e quando usarli


Con C# 12, Microsoft ha introdotto i primary constructors per tutte le classi e le struct — non solo per i record come in precedenza. Per chi lavora quotidianamente con ASP.NET Core e il pattern di dependency injection, questa feature merita attenzione: riduce il boilerplate in modo significativo, ma nasconde un'insidia che è bene conoscere prima di adottarla sistematicamente.

Il problema: il boilerplate del costruttore classico


Chi ha scritto servizi ASP.NET Core sa bene come appare il costruttore tradizionale con dependency injection:

public class OrderService
{
    private readonly IOrderRepository _orderRepository;
    private readonly ILogger<OrderService> _logger;
    private readonly IEventBus _eventBus;
    private readonly IValidator<Order> _validator;

    public OrderService(
        IOrderRepository orderRepository,
        ILogger<OrderService> logger,
        IEventBus eventBus,
        IValidator<Order> validator)
    {
        _orderRepository = orderRepository;
        _logger = logger;
        _eventBus = eventBus;
        _validator = validator;
    }
}

Per ogni dipendenza: una dichiarazione di campo, un parametro nel costruttore, un'assegnazione nel corpo. Con quattro dipendenze, sono già dodici righe di puro scaffolding. In un servizio con sei o sette dipendenze, il costruttore diventa il blocco di codice più lungo della classe — senza contenere logica.

La soluzione con primary constructors


Con i primary constructors di C# 12, lo stesso servizio si scrive così:

public class OrderService(
    IOrderRepository orderRepository,
    ILogger<OrderService> logger,
    IEventBus eventBus,
    IValidator<Order> validator)
{
    public async Task<Order?> GetOrderAsync(Guid id)
    {
        logger.LogInformation("Fetching order {OrderId}", id);
        return await orderRepository.GetByIdAsync(id);
    }

    public async Task PlaceOrderAsync(Order order)
    {
        await validator.ValidateAndThrowAsync(order);
        await orderRepository.SaveAsync(order);
        await eventBus.PublishAsync(new OrderPlacedEvent(order.Id));
    }
}

I parametri del primary constructor diventano direttamente disponibili in tutta la classe senza dichiarazioni esplicite di campo. Il risultato è codice più snello, con meno rumore visivo e il focus immediato sulla logica di business.

L'insidia della mutabilità: perché Milan Jovanović era inizialmente scettico


Il motivo di resistenza di molti sviluppatori esperti è legittimo: i parametri del primary constructor non sono campi readonly. Il compilatore non impedisce la riassegnazione accidentale:

public class OrderService(IOrderRepository orderRepository)
{
    public void SomeMethod()
    {
        orderRepository = null!;  // Compila senza warning
    }
}

Con i campi privati readonly tradizionali, questo codice causa un errore di compilazione. Con i primary constructors, il compilatore lo accetta silenziosamente. In un servizio DI dove le dipendenze non dovrebbero mai essere rimpiazzate a runtime, questo è un rischio concreto in team di grandi dimensioni.

Mitigazione: assegnazione esplicita a readonly field


Quando la garanzia di immutabilità è critica, si può assegnare esplicitamente il parametro a un campo readonly:

public class CriticalService(IRepository repository)
{
    private readonly IRepository _repository = repository;

    // Da qui in poi si usa _repository, mai repository direttamente
}

Questo reintroduce parte del boilerplate, ma mantiene la sintassi più compatta per la firma del costruttore e garantisce l'immutabilità a livello compilatore.

Quando usare i primary constructors


La valutazione pragmatica è che i primary constructors offrono il massimo vantaggio nelle classi di servizio DI tipiche di ASP.NET Core, dove i parametri vengono usati ma raramente riassegnati. In questi scenari, il rischio di mutabilità accidentale è basso e i benefici di leggibilità sono immediati.

Vale la pena usarli anche per entity e value object dove i parametri di costruzione diventano proprietà read-only:

public class Order(Guid customerId, Money total)
{
    public Guid Id { get; } = Guid.NewGuid();
    public Guid CustomerId { get; } = customerId;
    public Money Total { get; } = total;
    public DateTime CreatedAt { get; } = DateTime.UtcNow;
}

Quando evitarli


Tre scenari in cui i primary constructors non sono la scelta giusta:

  • Logica di validazione nel costruttore: se il costruttore deve eseguire guard clause o validazioni prima dell'assegnazione, il corpo esplicito del costruttore tradizionale è necessario.
  • Multiple signature di costruttore: i primary constructors supportano una sola firma. Con overload multipli (es. per serializzazione), la sintassi tradizionale è l'unica opzione.
  • Cinque o più dipendenze: se una classe richiede molte dipendenze, il problema non è la sintassi del costruttore ma il design della classe. Il segnale che suggerisce un refactoring verso interfacce più coese o il pattern Facade.


Conclusione: adottarli con consapevolezza


I primary constructors di C# 12 non sono una rivoluzione, ma un'evoluzione pragmatica del linguaggio. Per la maggior parte delle classi di servizio in ASP.NET Core, il tradeoff è favorevole: meno boilerplate, codice più leggibile, rischio di mutabilità basso nel contesto DI. L'importante è conoscere il comportamento del compilatore e scegliere consapevolmente quando la garanzia di readonly è effettivamente necessaria.

Come sempre con le feature di C#, il consiglio è adottarle dove migliorano la leggibilità del codice reale, non per seguire una moda sintattica.

Fonte originale: Why I Switched to Primary Constructors for DI in C# di Milan Jovanović.


The Privacy Post ha ricondiviso questo.

Meta verletzte mit seinen „Smart Glasses“ die Privatsphäre der eigenen Nutzer:innen. Leidtragende des Vorfalls sind nun ausgerechnet Datenarbeiter:innen in Kenia. Die am Vorfall beteiligte Outsourcing-Firma hat gerade 1000 Menschen entlassen.

netzpolitik.org/2026/nach-enth…

reshared this

The Privacy Post 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.

The Gentlemen e SystemBC: anatomia di un’operazione ransomware con botnet da 1.570 vittime aziendali
#CyberSecurity
insicurezzadigitale.com/the-ge…


The Gentlemen e SystemBC: anatomia di un’operazione ransomware con botnet da 1.570 vittime aziendali


Si parla di:
Toggle


Un’indagine di Check Point Research ha portato alla luce l’infrastruttura operativa di The Gentlemen, uno dei gruppi ransomware-as-a-service (RaaS) a crescita più rapida del 2026. L’analisi forense di un singolo incidente ha disvelato una botnet SystemBC con oltre 1.570 host aziendali compromessi, un arsenale di post-exploitation maturo e un modello operativo che spiega la rapidità con cui il gruppo ha raggiunto 320 vittime rivendicate, 240 delle quali concentrate nei primi mesi di quest’anno.

Il profilo del gruppo: RaaS ad alta velocità


Emerso intorno alla metà del 2025, The Gentlemen si è rapidamente affermato come uno dei programmi RaaS più aggressivi nel panorama del cybercrime organizzato. Il modello economico è generoso per gli affiliati: 90% dei proventi ai partner, 10% agli operatori. Questo split ha attratto affiliati con elevate competenze tecnico-operative, capaci di orchestrare intrusioni complesse nelle reti enterprise. Il gruppo opera una piattaforma di doppia estorsione con leak site Tor e countdown di 7 giorni prima della pubblicazione dei dati esfiltrati. Le comunicazioni avvengono tramite Tox, Session e l’account X @TheGentlemen25. Tra le vittime documentate: Oltenia Energy Complex (Romania) e Adaptavist Group.

La scoperta della botnet SystemBC


L’elemento più allarmante emerso dall’analisi è la presenza di una botnet SystemBC con 1.570 host compromessi, prevalentemente in ambienti aziendali distribuiti tra Stati Uniti, Regno Unito, Germania, Australia e Romania. SystemBC è un malware proxy che stabilisce tunnel SOCKS5 all’interno della rete vittima, comunicando con il C2 tramite un protocollo custom cifrato RC4. La botnet non è di proprietà esclusiva di The Gentlemen: indica che gli affiliati si integrano in un ecosistema più ampio di tooling condiviso, amplificando l’impatto operativo ben oltre le vittime rivendicate pubblicamente. I settori più colpiti sono manifatturiero e tecnologico, con healthcare in crescita come terzo target.

La kill chain: da accesso iniziale a cifratura domain-wide in poche ore


Il processo di attacco documentato rivela una kill chain estremamente efficiente. Dopo l’accesso iniziale — vettore non ancora determinato nell’incidente analizzato — gli attaccanti procedono con la compromissione del Domain Controller tramite Mimikatz per credential harvesting, seguita dal deploy di Cobalt Strike via RPC per il controllo remoto. Una volta ottenuti i privilegi di Domain Admin, viene attivata la propagazione via Group Policy Objects (GPO) per una detonazione sincronizzata sull’intera rete.

Per il lateral movement, il gruppo implementa sei vettori simultanei: PsExec con credenziali esplicite, WMI tramite wmic /node: process call create, Scheduled Tasks remoti, Windows Services, PowerShell Remoting via WinRM e accesso alle SMB Admin Shares (ADMIN$ e C$\Temp). L’uso parallelo di tutti i vettori massimizza la velocità di propagazione e rende difficile il contenimento.

Evasione difensiva: preparazione metodica alla cifratura


Prima dell’avvio della cifratura, il ransomware esegue una sequenza di operazioni per neutralizzare le difese:

# Disabilita Windows Defender real-time
powershell -Command Set-MpPreference -DisableRealtimeMonitoring $true -Force

# Disabilita Windows Firewall
netsh advfirewall set allprofiles state off

# Elimina le Shadow Copy
vssadmin delete shadows /all /quiet

# Cancella i log di sistema
wevtutil cl System
wevtutil cl Application
wevtutil cl Security

Vengono inoltre rimossi file di prefetch, log RDP e file di supporto di Windows Defender. LSA viene configurato per l’accesso anonimo e SMB1 viene riabilitato per compatibilità. Un comportamento rivelatore: il ransomware ignora esplicitamente la directory “! Cynet Ransom Protection(DON’T DELETE)”, dimostrando una conoscenza specifica dei meccanismi di rilevamento dei vendor di sicurezza.

Schema crittografico ibrido: X25519 + XChaCha20


Il payload Windows è scritto in Go, quello ESXi/Linux in C. Lo schema crittografico è progettato per massimizzare la velocità. Per ogni file viene generata una chiave privata effimera random a 32 byte; l’algoritmo X25519 (Curve25519) effettua lo scambio ECDH e i primi 24 byte del segreto condiviso diventano il nonce per XChaCha20. File inferiori a 1 MB vengono completamente cifrati; file più grandi subiscono cifratura parziale (1%, 3% o 9% del contenuto) per ottimizzare la velocità. Il footer apposto ai file è del tipo: --eph--[base64_key]--marker--GENTLEMEN.

La variante ESXi gestisce le VM tramite vim-cmd vmsvc/power.off e esxcli vm process kill --type=force, con persistenza tramite /etc/rc.local.d/local.sh e crontab @reboot, mascherandosi come /bin/.vmware-authd.

Indicatori di compromissione (IoC)

# Cobalt Strike C2
91.107.247[.]163

# SystemBC C2
45.86.230[.]112

# SystemBC SHA-256
992c951f4af57ca7cd8396f5ed69c2199fd6fd4ae5e93726da3e198e78bec0a5

# Leak site Tor
tezwsse5czllksjb7cwp65rvnk4oobmzti2znn42i43bjdfd2prqqkad.onion

# Contatto operatori
@TheGentlemen25 (X/Twitter)

Raccomandazioni per i difensori


Le priorità difensive si concentrano su tre fronti. Credential protection: implementare Windows Credential Guard, monitorare l’esecuzione di Mimikatz e lsass dumps, imporre MFA su tutti gli account privilegiati e in particolare su quelli con accesso al Domain Controller. GPO e lateral movement: allertare su modifiche non autorizzate ai Group Policy Objects, monitorare la creazione di scheduled task con contesto SYSTEM su host remoti, disabilitare SMB1 dove non strettamente necessario e bloccare PsExec non autorizzato. Detection comportamentale: correlare l’esecuzione parallela di PsExec, WMI e PowerShell Remoting su più host in breve tempo; monitorare la disabilitazione di Windows Defender e la cancellazione massiva di log come precursori di un evento ransomware. Check Point ha rilasciato una YARA rule specifica che rileva campioni compilati in Go tramite le stringhe caratteristiche del gruppo.

The Gentlemen rappresenta l’evoluzione moderna del RaaS: affiliati specializzati, infrastruttura condivisa con altri threat actor, velocità operativa che comprime la finestra di rilevamento a poche ore. La scoperta di 1.570 host aziendali compromessi nella botnet correlata suggerisce che l’impatto reale del gruppo superi significativamente le 320 vittime rivendicate pubblicamente — e che l’ecosistema criminale che supporta le sue operazioni sia molto più vasto di quanto finora documentato.


The Privacy Post ha ricondiviso questo.

Wero verspricht mehr digitale Unabhängigkeit und will eine europäische Alternative zu US-Bezahldiensten sein. Doch der Dienst nutzt ausgerechnet Cloud-Infrastruktur der Amazon-Tochter AWS. Das ist auch ein Sicherheitsrisiko für die dort hinterlegten Daten.

netzpolitik.org/2026/uneingelo…

in reply to netzpolitik.org

@netzpolitik.org
Nicht nur das, er hängt auch von Google-Diensten ab, zur Überprüfung der "Sicherheit des Handies" (Play Integrity API ). Es verlässt sich auf Google zur Bestätigung für die sogenannte Geräteintegrität, App-Integrität. Und fragt Goggle, ob es verdächtige Aktivitäten mit dem Google-Konto! gibt.
Das ist ein Witz. Amazon-Server sollen US-Übergriffigkeit auf Wero-Daten und Googles Sicherheits- und Privacy-Verständnis sollen die Integrität sicherstellen.

Es ist somit weiterhin komplett von US-Diensteanbietern abhängig bei sehr wesentlichen Aspekten und damit keine Beispiel für digitale Souveränität bei länderübergreifendem Zahlungsverkehr.

Questa voce è stata modificata (1 mese fa)
The Privacy Post ha ricondiviso questo.

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

Critical CVE-2026-33032 (MCPwn): Actively Exploited nginx-ui Flaw Enables Full Web Server Takeover in Two HTTP Requests
#CyberSecurity
securebulletin.com/critical-cv…
The Privacy Post ha ricondiviso questo.

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

RAG in .NET con Semantic Kernel: le insidie che i tutorial non ti dicono
#tech
spcnet.it/rag-in-net-con-seman…
@informatica


RAG in .NET con Semantic Kernel: le insidie che i tutorial non ti dicono


RAG — Retrieval-Augmented Generation — è diventato il pattern dominante per integrare conoscenza dominio-specifica nei modelli linguistici. Ma tra un tutorial “hello world” e un sistema RAG che funziona davvero in produzione c’è un abisso. Questo articolo esplora le insidie reali che i tutorial non affrontano, partendo da un’implementazione in .NET con Semantic Kernel.

Il pipeline RAG in cinque fasi


Prima di entrare nei dettagli critici, è utile avere una mappa mentale del pipeline completo. Un sistema RAG ben strutturato si articola in cinque fasi sequenziali:

  1. Ingestion — caricamento dei documenti sorgente
  2. Chunking — suddivisione in segmenti adatti all’embedding
  3. Embedding — conversione dei chunk in vettori numerici
  4. Storage — persistenza dei vettori in un vector store
  5. Retrieval + Generation — ricerca dei chunk rilevanti e generazione della risposta

Ogni fase nasconde decisioni non banali. Vediamo quelle che fanno davvero la differenza.

Il chunking è la variabile più sottovalutata


La qualità del chunking influenza il retrieval più di qualsiasi altra scelta, incluso il modello di embedding. La maggior parte dei tutorial usa split naive basati su caratteri o token fissi, ignorando la struttura semantica del documento.

Con Semantic Kernel, la scelta corretta per documenti Markdown è TextChunker.SplitMarkdownParagraphs(), che rispetta i confini dei paragrafi:

var chunks = TextChunker.SplitMarkdownParagraphs(
    lines: markdownContent.Split('\n').ToList(),
    maxTokensPerParagraph: 512,
    overlapTokens: 50
);

Due parametri critici spesso ignorati:
  • overlapTokens: senza sovrapposizione, le frasi che cadono al confine tra due chunk vengono perse. Una sovrapposizione del 10-15% (qui 50 token su 512) risolve il problema.
  • Pre-processing HTML→Markdown: se i sorgenti sono pagine web, convertire in Markdown prima del chunking (con librerie come HtmlAgilityPack) elimina tag irrilevanti che degradano la qualità dell’embedding.

Un’altra best practice avanzata: separare i blocchi di codice dalla prosa e taggare ogni chunk con metadati (tipo di contenuto, sezione, sorgente) per poter filtrare durante il retrieval.

Le soglie di rilevanza non sono universali


I tutorial usano tipicamente soglie di similarità coseno tra 0.75 e 0.80. Questo valore è quasi sempre sbagliato per il tuo corpus specifico. La soglia ottimale dipende da: qualità dell’embedding model, distribuzione semantica del corpus, tipologia delle query.

L’approccio corretto:

  1. Costruire manualmente un set di valutazione di 20-30 coppie query/risposta attesa
  2. Partire da 0.70 e iterare misurando Context Recall
  3. Non affidarsi mai ai default senza validazione corpus-specifica


Scegliere il vector store giusto


Semantic Kernel supporta diversi backend. La scelta sbagliata genera complessità inutile o performance inadeguate:

  • VolatileMemoryStore — solo per demo, dati persi al restart
  • SqliteMemoryStore — sviluppo locale e prime versioni production: zero infrastruttura, persistenza garantita
  • Elasticsearch — stack esistenti con ricerca ibrida (full-text + vettoriale)
  • Azure AI Search — produzione su Azure, gestione scalabilità automatica
  • Qdrant / Pinecone — carichi vettoriali dedicati ad alta scala

Per molte applicazioni aziendali, SQLite è la scelta razionale fino a migliaia di documenti. Aggiungere infrastruttura vettoriale dedicata ha senso solo con volumi e requisiti di latenza che lo giustificano effettivamente.

Evitare il re-embedding a ogni avvio


Uno degli errori più costosi (in termini economici e di latenza) è re-embeddare l’intero corpus a ogni riavvio dell’applicazione. La soluzione è semplice: verificare l’esistenza della collection prima di procedere all’ingestion:

var collections = await sqliteStore.GetCollectionsAsync().ToListAsync();
if (!collections.Contains(CollectionName))
{
    await ragService.IngestDocumentsAsync(documents, CollectionName);
}

Con Azure AI Search o Qdrant, la logica è analoga ma si basa sulle API specifiche del provider.

Il prompt di grounding non è opzionale


La costruzione del prompt è la difesa principale contro le allucinazioni. C’è una differenza sostanziale tra queste due istruzioni:

  • “Usa il contesto seguente per rispondere” — il modello può integrare con la sua conoscenza generale
  • “Rispondi SOLO usando il contesto seguente. Se la risposta non è nel contesto, dillo esplicitamente.” — vincolo semantico forte

La parola “SOLO” cambia radicalmente il comportamento del modello. In produzione, il prompt di sistema deve essere esplicito e non ambiguo.

Semantic caching per ridurre latenza e costi


Un ottimizzazione ad alto impatto spesso ignorata: se una query è semanticamente simile a una già elaborata, si può restituire la risposta cached senza chiamare il vector store né il modello:

var cachedAnswer = await cacheService.FindSimilarAsync(query, threshold: 0.92f);
if (cachedAnswer != null)
{
    return cachedAnswer.Answer;
}

Con una soglia alta (0.90-0.95), il cache serve solo query davvero simili, evitando risposte errate. Per sistemi con pattern di query ripetitivi (FAQ, assistenti documentali), questo ottimizzazione può ridurre i costi LLM del 40-60%.

Osservabilità: cosa monitorare


Un sistema RAG senza osservabilità è un sistema cieco. I KPI da tracciare per ogni richiesta:

  • TopChunkScore: se costantemente sotto 0.75, il retrieval fatica. Rivedere chunking o embedding model.
  • ChunksRetrieved: se raggiunge sempre il limite massimo, espandere la finestra di ricerca.
  • CacheHit: se sempre false con alta latenza, la soglia del cache è troppo restrittiva.
  • Latency: separare la latenza di retrieval da quella LLM per identificare il bottleneck.


Valutazione continua e CI


Il rischio silenzioso del RAG è la regressione: una modifica al chunking o alla soglia migliora alcune query e ne peggiora altre. La soluzione è integrare un set di valutazione nel pipeline CI con xUnit:

  • Context Recall: i chunk corretti vengono recuperati?
  • Faithfulness: la risposta rimane ancorata al contesto?
  • Answer Correctness: corrisponde alla risposta attesa?

Il set di test deve includere query facili, domande che richiedono sintesi multi-documento, e domande a cui il sistema non dovrebbe rispondere (out-of-scope) — queste ultime sono fondamentali per rilevare allucinazioni.

Conclusione


Costruire un sistema RAG che funziona nei demo è relativamente semplice con Semantic Kernel. Costruirne uno che funziona in produzione — con costi controllati, latenza accettabile, assenza di allucinazioni e monitoraggio efficace — richiede decisioni architetturali precise. Il chunking con overlap, le soglie calibrate sul corpus reale, il caching semantico e l’osservabilità non sono optional: sono la differenza tra un prototipo e un sistema affidabile.

Fonte originale: RAG in .NET: What the Tutorials Don’t Tell You di Jamie Maguire.


The Privacy Post ha ricondiviso questo.

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

ShinyHunters Sets April 21 Deadline for Canada Life Assurance: 5.6 Million Salesforce Records at Risk
#CyberSecurity
securebulletin.com/shinyhunter…
The Privacy Post ha ricondiviso questo.

Demokratie erfordert Trotz: Die Bevölkerung nimmt Gewalt gegen Politiker:innen zunehmend als Bedrohung für die Demokratie wahr. Zu dieser Einschätzung kommt der aktuelle Weizenbaum-Report zu politischer Partizipation. Bei Falschinformationen steigt die Gegenwehr. Es zeigen sich auch Geschlechter-Unterschiede netzpolitik.org/2026/weizenbau…

reshared this

in reply to netzpolitik.org

was für ein Glück das die Bevölkerung indirekte Gewalt der Politik gegen die Bevölkerung nicht als Gefahr für die Demokratie wahr nimmt, auch wenn sie aktuell, meines Erachtens, die Größte Gefahr ist.
Gemeint sind Gesetze die demokratische Rechte massiv einschränken, Gesetze die Sozial schwache Bürger noch mehr in die Armut treiben, Straffreie Polizeigewalt zur Einschüchterung u.s.w.
(Bürger sind halt doof, bis die Bombe Platzt, dann wirds bitter)
The Privacy Post ha ricondiviso questo.

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

🚨 A new analysis of noyb cases shows: 83.5% of all access requests we've sent to companies haven't received a satisfactory reply.

This means that merely 16.5% of requests were fully answered.

In other words: while companies are lobbying Brussels to limit people’s right of access because of an alleged “abuse”, the real problem is non-compliance by these exact companies.

👉 Full story: noyb.eu/en/digital-omnibus-rea…

Questa voce è stata modificata (1 mese fa)

Digital Omnibus reality check: l'83,5% delle richieste di accesso non riceve una risposta adeguata


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

Data Subject Rights

[strong]Il diritto più comunemente esercitato ai sensi del GDPR è il diritto di accesso ai propri dati personali trattati dalle aziende. Dopo tutto, è spesso il prerequisito per sapere se ci sono dati personali inesatti o illegali che devono essere corretti o cancellati. Tuttavia, una nuovaanalisi di noyb mostra che: Solo il 16,5% di tutte le richieste di accesso noyb ha inviato alle aziende negli ultimi 8 anni ha ricevuto una risposta soddisfacente, mentre il 53,7% delle risposte era incompleto - e quasi il 30% non ha ricevuto alcuna risposta. In altre parole: mentre le aziende fanno pressione su Bruxelles per limitare il diritto di accesso dei cittadini a causa di un presunto "abuso", il vero problema è l'inadempienza di queste stesse aziende.[/strong]

Access Requests Statistics Header

Nessun "abuso" da parte degli interessati, ma delle aziende. A seguito di un'intensa pressione lobbistica (soprattutto da parte dell'industria tedesca), la proposta Digital Omnibus della Commissione europea sostiene la necessità di limitare i diritti degli interessati ai sensi del GDPR. In particolare, le modifiche proposte includono una limitazione del diritto di accesso (all'articolo 12, paragrafo 5) Articolo 12, paragrafo 5 e 15 DEL GDPR) a "finalità di protezione dei dati"che si giustifica con un presunto "abuso" diffuso di questo diritto. Ciò significa, ad esempio, che se un dipendente utilizza una richiesta di accesso in una controversia di lavoro sulle ore non retribuite - ad esempio per ottenere un registro delle ore lavorate - il datore di lavoro potrebbe respingerla in quanto "abusiva". In pratica, questo limiterebbe in modo massiccio i diritti che gli europei hanno nei confronti delle aziende.

Max Schrems: "La Commissione europea è caduta in una narrazione lobbistica pesantemente abusata, secondo la quale il diritto di accesso viene costantemente 'abusato', quando in realtà sono soprattutto le aziende a violare queste leggi"

Dati reali: 83.5% delle richieste di accesso non ricevono una risposta adeguata. In pratica, però, il problema principale del diritto di accesso non sono i reclami "abusivi", ma l'enorme quantità di richieste che non ricevono una risposta adeguata. Questo spiega anche perché un numero significativo di reclami presentati alle autorità riguarda la mancanza di una risposta completa alle richieste di accesso. Per saperne di più su come le aziende gestiscono il diritto di accesso, noyb ha analizzato 121 richieste di accesso che sono state presentate in relazione a noyb dal 2018*. I risultati sono chiari: solo il 16,5% di queste richieste ha ricevuto una risposta soddisfacente, mentre il 53,7% è risultato incompleto - e quasi il 30% non ha ricevuto alcuna risposta. Nel complesso, l'83,5% delle richieste non ha ricevuto risposte in linea con la legge.

Only 16.5% of the analysed access requests were fulfilled

Le Big Tech prendono i vostri dati, ma non vogliono darvi accesso. È evidente che molte delle richieste di accesso analizzate sono state presentate alle grandi aziende tecnologiche, che di solito dispongono di strumenti automatizzati per gestire le richieste. Tuttavia, la maggior parte di esse ha ricevuto una risposta incompleta o nulla. Osserviamo questo problema in tutte le noyb e i risultati sarebbero probabilmente peggiori per gli interessati che non hanno una rappresentanza legale o le risorse per inviare più richieste di follow-up. I nostri casi contro TikTok, AliExpress e WeChat forniscono un esempio perfetto: Nonostante le molteplici richieste di follow-up a una risposta incompleta a una richiesta di accesso, le società non sono riuscite a soddisfare la richiesta iniziale. Ciò ha reso impossibile per i ricorrenti verificare se i loro dati sono stati trattati in linea con il GDPR. Un altro buon esempio è il nostro caso contro il broker pubblicitario Xandr (una filiale di Microsoft), che ha riportato un sorprendente tasso di risposta dello 0% alle richieste di accesso e cancellazione nel 2022.

Le richieste di accesso non sono un carico di lavoro rilevante. Allo stesso tempo, un pubblicato di recente noyb pubblicato di recente ha chiarito che la maggioranza (oltre il 70%) dei responsabili della protezione dei dati (DPO) che lavorano nelle aziende ritiene che i diritti degli interessati - e il diritto di accesso in particolare - non creino un carico di lavoro significativo, pur essendo uno strumento utile per proteggere i diritti delle persone.

Workload vs Level of Protection

Nulla è definitivo. Fortunatamente, le proposte della Commissione per modificare il GDPR sono solo questo: proposte. Il Digital Omnibus è attualmente ancora in discussione al Parlamento europeo e al Consiglio e ha già ricevuto una notevole resistenza. noyb lavora costantemente per preservare e rafforzare i diritti degli interessati. Dopo tutto, questa analisi mostra chiaramente che l'applicazione (e il rispetto) del diritto di accesso da parte delle autorità è già carente. Un'ulteriore restrizione danneggerebbe milioni di persone in Europa.


*Nota sulla metodologia: abbiamo analizzato tutte le richieste di accesso presentate in relazione ai casi noyb dal 2018. Poi, ci siamo assicurati di includere solo un massimo di due reclami per azienda per non distorcere il quadro. Abbiamo così ottenuto 121 richieste di accesso.


noyb.eu/it/digital-omnibus-rea…

The Privacy Post ha ricondiviso questo.

#Palantir ist offensichtlich #Verfassungswidrig 🔥

Automatisierte Datenanalyse in NRW: Palantir-Gesetz nicht verfassungskonform

netzpolitik.org/2026/automatis…

The Privacy Post 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.

Dal Roblox script al breach di Vercel: come un infostealer ha quasi compromesso la supply chain di Next.js
#CyberSecurity
insicurezzadigitale.com/dal-ro…


Dal Roblox script al breach di Vercel: come un infostealer ha quasi compromesso la supply chain di Next.js


Un dipendente che scarica script per un gioco su un dispositivo personale. Un infostealer silenzioso che raccoglie credenziali aziendali. Un gruppo criminale che usa quell’accesso come testa di ponte per violare una delle piattaforme di deployment più utilizzate al mondo dagli sviluppatori. La storia del breach di Vercel del 19 aprile 2026 è un manuale perfetto sulle supply chain attack nell’era dell’AI-as-a-service.

L’epicentro: Context.ai e il dipendente con Roblox


Tutto inizia con un’infezione apparentemente irrilevante. A febbraio 2026, un dipendente di Context.ai — un servizio di AI analytics utilizzato da numerose aziende tech tra cui Vercel — scarica sul proprio dispositivo degli script per automatizzare il gioco Roblox. Gli script sono trojanizzati e distribuiscono Lumma Stealer, uno degli infostealer-as-a-service più prolifici del 2025-2026, venduto nei mercati underground per pochi dollari al mese con funzionalità di raccolta credenziali da browser, password manager, wallet di criptovalute e token di sessione.

L’impatto è immediato: Lumma esfiltra le credenziali salvate sul dispositivo, tra cui accessi amministrativi a Google Workspace, Supabase, Datadog, Authkit e — il jackpot — account Vercel con privilegi elevati. I ricercatori di Hudson Rock hanno documentato come questa singola infezione abbia fornito il punto d’accesso iniziale che ha reso possibile tutta la catena successiva.

Il pivot: da Context.ai a Vercel


La vulnerabilità reale non era tecnica ma architetturale: Context.ai aveva accesso all’ecosistema Vercel tramite un’applicazione OAuth di Google Workspace. Una volta compromesso l’account Google del dipendente, il threat actor ha potuto usare quel token OAuth per accedere all’account Vercel collegato — senza bisogno di conoscere la password Vercel, senza trigger di MFA (perché il token era già autenticato), senza lasciare tracce convenzionali di accesso non autorizzato.

Questo tipo di attacco — noto come OAuth token hijacking tramite compromissione di terze parti — è sempre più frequente nell’ecosistema SaaS moderno, dove le integrazioni tra servizi si moltiplicano e la superficie d’attacco cresce esponenzialmente. L’analisi di Hudson Rock evidenzia come la “60-second OAuth Client ID audit” — una revisione rapida delle applicazioni OAuth connesse agli account aziendali — avrebbe potuto identificare e revocare l’accesso compromesso prima che la situazione degenerasse.

ShinyHunters rivendica: $2 milioni per codice sorgente e token


Il 19 aprile 2026, un threat actor utilizzando il nome ShinyHunters pubblica su forum underground l’offerta di un pacchetto di dati esfiltrati da Vercel, con un prezzo richiesto di 2 milioni di dollari. Il pacchetto includerebbe codice sorgente proprietario, token NPM e GitHub con accesso ai repository, credenziali database, API key interne e un file con 580 record di dipendenti Vercel contenenti nomi, email aziendali e timestamp di attività.

È importante notare che il gruppo criminale ShinyHunters — responsabile di breaches storici tra cui Ticketmaster (2024), Snowflake (2024) e decine di altri — ha pubblicamente negato il coinvolgimento in questo specifico breach. Questo è un pattern ricorrente: l’uso del brand di gruppi noti da parte di attori minori o criminali opportunisti che acquistano dati rubati da infostealer operations per poi rivenderli attribuendoli a APT o gruppi di alto profilo.

Il rischio supply chain: Next.js e Turbopack


La preoccupazione più grave non era la fuga di credenziali dei dipendenti, ma il potenziale impatto sulla supply chain software. Vercel è il creatore e maintainer principale di Next.js — il framework React più scaricato al mondo con oltre 6 milioni di download settimanali su NPM — e di Turbopack, il successore di webpack. L’accesso a token NPM e repository GitHub avrebbe potuto consentire la modifica del codice sorgente di questi framework e la pubblicazione di versioni trojanizzate, con un impatto a cascata su milioni di applicazioni web globalmente.

Vercel ha risposto rapidamente: il CEO Guillermo Rauch ha confermato che l’analisi della supply chain condotta con Google Mandiant ha verificato che Next.js, Turbopack e tutti i progetti open source della piattaforma non sono stati modificati. I token compromessi sono stati revocati immediatamente e le credenziali esposte sono state rigenerate. Un numero limitato di clienti è stato contattato direttamente per la rotazione delle variabili d’ambiente.

Il vettore più sottovalutato: i dispositivi dei dipendenti di terze parti


Questo incident è un caso di studio emblematico per un problema strutturale della sicurezza moderna: le organizzazioni investono massicciamente nella protezione dei propri endpoint aziendali, ma la catena di accesso si estende inevitabilmente ai dispositivi dei dipendenti di vendor, partner e fornitori di servizi SaaS — dispositivi su cui non hanno visibilità né controllo. Un dipendente di Context.ai che scarica uno script Roblox su un dispositivo personale non usato per lavoro potrebbe comunque avere credenziali aziendali salvate nel browser, vanificando ogni investimento in EDR aziendale.

Il 2025-2026 ha visto Lumma Stealer protagonista di decine di breaches di alto profilo. La sua distribuzione via gaming scripts, crack software e SEO poisoning è particolarmente insidiosa perché colpisce utenti che non percepiscono il rischio — e i cui dispositivi spesso hanno accesso a ecosistemi aziendali critici proprio in virtù delle integrazioni OAuth che caratterizzano il SaaS moderno.

Indicatori e azioni raccomandate

# Vettore iniziale
Lumma Stealer distribuito tramite script Roblox "auto-farm" trojanizzati

# Credenziali compromesse sul dispositivo Context.ai
- Google Workspace (account dipendente)
- Supabase (database as a service)
- Datadog (monitoraggio/osservabilità)
- Authkit (authentication service)
- Vercel (piattaforma di deployment — accesso admin)

# Dati rivendicati da ShinyHunters
- Codice sorgente proprietario Vercel
- NPM authentication tokens
- GitHub tokens
- Credenziali database
- 580 record dipendenti (nome, email, timestamp attività)

# Prezzo richiesto: $2.000.000 USD (forum underground)

# Stato supply chain (confermato da Vercel + Mandiant)
Next.js: NON compromesso
Turbopack: NON compromesso
Open source projects Vercel: NON compromessi

# Azioni immediate raccomandate per chi usa Vercel
1. Ruotare TUTTE le variabili d'ambiente non marcate "sensitive"
2. Revocare e rigenerare NPM tokens e GitHub tokens connessi a Vercel
3. Revisione audit log per accessi anomali (aprile 2026)
4. Audit OAuth apps connesse agli account Google Workspace aziendali
5. Verificare integrazioni AI tools di terze parti e relativi permessi OAuth

Lezione per i CISO: la sicurezza si ferma all’ultimo anello debole


La catena Roblox script → Lumma Stealer → Context.ai employee → OAuth token → Vercel admin access → potenziale supply chain attack su milioni di app Next.js è una dimostrazione pratica di come la sicurezza di un’organizzazione dipenda dall’anello più debole dell’intera rete di trust. I CISO devono estendere i programmi di gestione del rischio ai vendor di servizi AI — una categoria in rapida espansione con accesso privilegiato agli ambienti produttivi — e implementare politiche di revisione periodica delle OAuth app connesse agli account aziendali. La “60-second OAuth audit” non è un’esagerazione: pochi minuti potrebbero aver evitato un breach da $2 milioni e un potenziale disastro di supply chain.


The Privacy Post ha ricondiviso questo.

Ich war bei neulich auf einer spannenden Veranstaltung: #CablesOfResistance, der "ersten Bewegungskonferenz gegen Big Tech".

Dem falschen Fortschrittsversprechen der Tech-Konzerne setzen Aktivist:innen und Forscher:innen hier Widerstand entgegen: Von der Verweigerung des KI-Hypes über die Mobilisierung für Arbeitskämpfe bis zu lokalem Protest gegen Rechenzentren. Gerne mehr davon!

netzpolitik.org/2026/konferenz…

The Privacy Post ha ricondiviso questo.

Das BMG will ohne Zustimmung aller Patienten u Patientinnen in Deutschland
(Korrektur 20.4./18.00 die gesetzlich versichert sind )
durch das FDZ die Abrechnungsdaten für "Forschungszwecke" verwenden.
Netzpolitik:

"Die Klage hatte die Gesellschaft für Freiheitsrechte (GFF) gemeinsam mit Constanze Kurz, netzpolitik.org-Redakteurin und Sprecherin des Chaos Computer Club (CCC), sowie einem weiteren anonymen Kläger im Mai 2022 eingereicht."

Das Verfahren ruhte seit Februar 2023.
Jetzt wurde es wieder aufgenommen.

netzpolitik.org/2026/gesellsch…
und
forschungsdatenzentrum-gesundh…

#ePA #ePatientenakte #FDZ #CCC
#GFF #Netzpolitik #BMG #Datenschutz
#Forschung #Gesundheitsdaten
#Datenschutz

Questa voce è stata modificata (1 mese fa)

reshared this

Unknown parent

mastodon - Collegamento all'originale

FairB

@debacle @netzpolitik_feed @dleisegang

Danke für deinen Hinweis.
Deshalb kann und soll jeder auch den Originaltext lesen (!) können.
Das ist mir auch deshalb immer wichtig.

Ich muss mich hier kurz halten, und gebe deshalb Ausschnitte aus den Quellen oder Kommentare (auch von mir) dazu.

Ich hatte zunächst den FDZ aufgerufen, die mich bereits auf "die falsche Fährte" brachte:
forschungsdatenzentrum-gesundh…

Hier ist nur von "Bürger u Bürgerinnen" die Rede.
Später wird dann tatsächlich auch von den "gesetzlich Versicherten" geschrieben. Wahrscheinlich habe ich das schon als "alle" interpretiert.

Lieben Dank für deine Aufmerksamkeit
uns sorry für meine UNaufmerksamkeit.

Netzpolitik schreibt :
"..aller gesetzlich Versicherten "

The Privacy Post ha ricondiviso questo.

Und dieser Workshop hat überhaupt nur stattgefundenen, weil ich ständig nachgefragt habe, was denn jetzt mit Einbindung der Zivilgesellschaft ist.
F5 wurde erst zugesagt, nachdem meine Anfrage einging, Terminvereinbarung fand statt, nachdem ich in der Fragestunde nochmal nachgehakt hab.
#BMDS will halt keine Expertise, das stört ja den Lobbyismus 🤷‍♀️


Das Digitalministerium hatte die Zivilgesellschaft dazu aufgerufen, sich beim Deutschland-Stack einzubringen. Doch deren Expertise war am Ende doch nicht gefragt - obwohl die Zivilgesellschaft Fragen einbringt, die sonst untergehen. Das zeigt der Workshop zu „KI in der Verwaltung“ des Bündnisses F5.

netzpolitik.org/2026/deutschla…


#bmds
Questa voce è stata modificata (1 mese fa)

reshared this

The Privacy Post ha ricondiviso questo.

⚠️ #Apple keeps challenging its interoperability obligations under the #DMA

A report, done by the FSFE, exposes how 56 interoperability requests under the Digital Markets Act have produced no concrete solutions by Apple, and how their declines contradict their own official documentation, leaving third-party developers locked out of iOS and iPadOS, despite @EUCommission latest specification decision.

👉 Find out more: fsfe.org/news/2026/news-202604…

#FreeSoftware #SoftwareFreedom

Questa voce è stata modificata (1 mese fa)

reshared this

The Privacy Post ha ricondiviso questo.

Die Regelungen zur automatisierten Datenanalyse im neuen Polizeigesetz sind nicht verfassungsgemäß, schreibt die NRW-Datenschutzbeauftragte. Ihre Einwände seien jedoch ignoriert worden. Derweil wendet sich Innenminister Herbert Reul von #Palantir ab netzpolitik.org/2026/automatis…