The Pirate Post reshared this.

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 Pirate Post reshared this.

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…

reshared this

The Pirate Post reshared this.

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 Pirate Post reshared this.

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 Pirate Post reshared this.

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

Stimmrechtsbeschwerde gegen E-ID


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

Die Piratenpartei beobachtet mit Spannung die heutigen Beratungen am Bundesgericht bezüglich der Beschwerden zur E-ID-Abstimmung vom letzten September. Als Referendumsführer gegen die E-ID waren die Piraten vom Volksbeschluss auch direkt betroffen.

Die Einmischung der Swisscom in den Abstimmungskampf hat gegen das Gebot der Neutralität von staatsnahen Unternehmen verstossen. Ob das sehr knappe Abstimmungsergebnis ohne diese Involvierung anders ausgefallen wäre und das Gesetz abgelehnt worden wäre bleibt weiterhin die grosse Frage.

Die Piratenpartei hat in der Vergangenheit mehrere Transparenzinitiativen mitlanciert. Die heute gültige Transparenzregulierung zeigt wieder mal deutlich auf, wie wichtig klare Vorgaben und entsprechende Meldungen sind. (siehe https://www.piratenpartei.chhttps://www.piratenpartei.ch/2021/06/15/15484956/ und https://www.piratenpartei.chhttps://www.piratenpartei.ch/2022/03/31/vernehmlassungsantwort-zur-verordnung-ueber-die-transparenz-bei-der-politikfinanzierung/)

Jorgo Ananiadis, Präsident der Piratenpartei: „Die Argumente der Bundesrichter zeigen auf, dass politische Transparenz immer noch viel zu viel „Interpretationsspielraum“ erlaubt. Das muss jetzt aufhören!“

Auch die Einmischung von Ringier und TX Group mit massenhaft gratis Werbung fürs Pro-E-ID-Lager war sehr bedenklich, insbesondere da diese Zuwendungen (zu) spät gemeldet wurden. Dass Medien tendenziös berichten dürfen, ist aber legal und wohl im Sinne der Medienfreiheit. Von einem Identifikationszwang ihrer Leser würden sie auch direkt profitieren, vermuten sie wohl.

Stimmrechtsbeschwerden haben in der Schweiz generell einen schweren Stand, die Piraten haben damit zahlreiche Erfahrungen gemacht. Berechtigte Beschwerden der Piratenpartei wurden in der Vergangenheit mehrmals unter Verweis auf Art. 189 Abs. 4 BV abgewiesen. (siehe z.B. https://www.piratenpartei.chhttps://www.piratenpartei.ch/2021/11/23/nach-ablehnung-stimmrechtsbeschwerde-pmt-piraten-empfehlen-dringend-ein-ja-zur-justizinitiative/ Urteil des BGer: 1C_359/2021) Nur einmal führte dies zu einer Wiederholung der Abstimmung (Abstimmung über die Initiative „Für Ehe und Familie – gegen die Heiratsstrafe“ Urteil des BGer: 1C_315/2018).


piratenpartei.ch/2026/04/21/st…

The Pirate Post reshared this.

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 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…


The Pirate Post reshared this.

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…

The Pirate Post reshared this.

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 Pirate Post reshared this.

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 Pirate Post reshared this.

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 Pirate Post reshared this.

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 Pirate Post reshared this.

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…

This entry was edited (7 hours ago)

Through the Spyglass: Hibition


No one likes being told what to do.

Even if you’re being told something that would genuinely be helpful, just being told to do it can often make you not want to do it. Good advice quickly turns into nagging if the person delivering the advice delivers it poorly, or you’re not ready to hear it.

Deep down, you might even know what they’re saying is correct, but it doesn’t matter. You’re going to push back on positive change because it’s still change, and changing is uncomfortable.

But what if the advice isn’t suggesting you change; it’s suggesting you take a hold of yourself and your faculties. Not that you change who you are, but you take control of who you are instead.

What if the suggestion is: you need to drink less, maybe even entirely?

In the 19th century, alcoholism was at an all-time high. U.S. citizens were drinking 5 to 7 gallons of pure alcohol per person per year. That is an astronomical amount of booze being consumed by your friends, family members, neighbors, etc.

If you are an advocate of self-determination, you would likely find yourself defending a person’s right to self-determination from the most likely culprit to interfere with it: government or private entities.

But would you not find yourself, upon taking a step back, advocating that people regain their self-determination from the bottle as well?

It is clear that one’s ability to pursue self-determination is entirely dependent on their freedom. How free are they to pursue their interests? Their aspirations? Their dreams?

If the government is not actively kneecapping your attempts to live free, and if a private company isn’t keeping you from your freedom, but you are addicted to the bottle, are you truly free?

Alcohol is a serious problem and alcoholism permeates many peoples lives. There are few who do not know someone suffering from alcoholism.

Organizations sprang up to address such problems, such as the American Temperance Society, founded in 1826, having members pledge to abstain from distilled liquor (through not necessarily beer or wine) when alcoholism was at an all-time high. The ATS started as a voluntary temperance pledge organization; a pledge to take control of yourself and hold yourself together through maintaining your sobriety.

It was completely voluntary, and evidently welcomed, as over a million had taken the pledge within ten years.

Further, sticking with the 19th century, the role women played in the home was very different than what we see today. Many could not work, and many were at the whim of their husbands.

So if their husband was a slave to the bottle, one of the most impacted people from the alcohol is the one who likely wasn’t even partaking in said drinking.

You, a believer in self-determination, can see that women’s self-determination was already at a limit, but now alcohol’s impact on the men in the United States is robbing women of their self-determination as well, further worsening the lives of wives/sisters/daughters, etc.

Someone should sound the alarms about that. If only someone could tackle all these issues at once.

Someone like Frances Willard.

Frances Willard was born near Rochester, New York in 1839. A teacher by trade, Willard began her career working for various women’s colleges, including becoming the first Dean of Women at Illinois’s Northwestern University before she’d resign her role and begin focusing on what she would be remembered for: the women’s temperance movement.

While not the first, Frances Willard was the second and longest reigning President of the Women’s Christian Temperance Union (WCTU). Before Willard, the WCTU was a single-issue, anti-alcohol organization. Under Willard, the WCTU focused on connecting the relationship between temperance and women’s suffrage.

Their philosophy became “Do Everything,” in which their goals would focus on policies from a variety of issues (education, women’s rights, public health, etc.). The idea of “Home Protection,” connecting temperance and women’s suffrage and making them inseparable to the goals of the WCTU, was appealing to many women across the states.

In essence, their goals of a “sober and pure” world was an earnest self-determination movement. Women’s suffrage as a self-determination movement is apparent enough, but tying sobriety to self-determination is genuinely inspired. They are inseparable, as how can one be free if they are controlled by their demons? How can those around and dependent on you be free when they live in fear of your intoxicated state?

Of course, they did have the wrong final conclusion on how to solve that problem.

Frances Willard was far from perfect (Ida B. Wells sends her regards), nor was the WCTU itself. Willard’s inability (or perhaps unwillingness) to condemn lynching in a timely manner and the WCTU’s willingness to uphold racial segregation for white southerners remain a stain on her legacy and cannot be ignored for brevity.

Perfection not substantiated, she had still done something unmistakably clever for women’s suffrage and made an undoubtedly important observation.

In the beginning, the WCTU was non-partisan. Their work was focused on raising awareness on and seeking to eliminate the evils of alcohol consumption, largely stemming from “Dry” Protestant ethics, but come the 1884 elections, that would officially change.

While Willard had made earlier attempts to step into politics, including briefly forming her own “Home Protection Party” in 1881, it was officially the 1884 Presidential election when she would throw the WCTU’s support behind the Prohibition Party, which her Home Protection Party merged with in 1882.

The Prohibition Party actually predates the WCTU by nearly half a decade. It was September 1st, 1869 when the Prohibition Party officially came together as a political party dedicated to supporting legislative alcohol prohibition; a to-be-proven-faulty remedy to a genuine problem.

One will have to put themselves in the context of the United States of America at the time. The Civil War had only ended five years prior. Slavery, an evil that people said was an unbreakable and “peculiar” institution of the South, was abolished.

Many folks must have thought “If one evil could be banished by law, certainly this other evil could, too.”

But no one likes being told what to do.

It is at this point the story must pause to state the obvious: the United States Pirate Party is not in support of a governmental ban on alcohol.

Nor would we ever support such a measure.

In fact, one could venture to guess that most Pirates would support laws closer to the drug decriminalization of Portugal.

Those battling alcohol addiction (or addiction of any kind) need assistance in quitting, not a government mandate. Many need to be treated, not to be criminalized.

What the Pirate Party is, however, is a party that advocates for self-determination and free and open society. Pirates calling for the outlawing of alcohol would be beyond bizarre. Grog and rum are essentially inseparable images from the whole Pirate persona. We celebrate our freedom and ability to do so.

But a Pirate can recognize and respect an individual’s personal decision to maintain their sobriety and hold themselves together.

When looking at the word “prohibition,” it is easy to see the word “prohibit” in clear etymological terms. But etymologically speaking, why not break that down further?

“Pro-” often either means “in front of/before,” “forward,” “on behalf of/in favor of,” “instead proportion to/according to” or “instead of/in place of”.

In “prohibition,” the word stems from “pro-” the meaning “in front of” and the Latin “hibēre” meaning “to hold,” so “to hold in front of,” ie. to block.

“Hibition” never did find its way into the English language as a word on its own. Which is a shame, because I think it explains the temperance movement far better than “banning alcohol” ever could.

If one is to understand “-hibition” as meaning “to hold,” then why wouldn’t “Hibition” as a stand alone word mean something like “holding (yourself together).”

Ie, to take control of yourself and maintain control of your faculties is “Hibition.”

That is, dear reader, a form of self-determination.

In a way, that makes the Prohibition Party not simply one of temperance, but a party that is Pro-Hibition. A health-and-wellness party. A party advocating for self-determination from the bottle and drugs.

Which makes what they are famous for all the more unfortunate.

You see, the banning of slavery was an act of liberation. You could use the law to free individuals from the shackles of slavery and people would be better off for it.

However, slavery was a power structure, not a product. The evils of alcohol cannot simply be legislated away.

More moderate members of the Prohibition Party understood this. Many were Pro-Hibition advocates (as they’d be retroactively deemed by the U.S. Pirate Party’s Captain 150 years later), others simply wanted hard liquor banned while keeping beer and wine in the spirit of the original ATS pledge.

But a third group, a later arrival to the temperance movement, would be the final push towards the realization that it wouldn’t work: the Anti-Saloon League.

Stripped of all the things that made temperance a movement of self-determination, led by Wayne Wheeler, the Anti-Saloon League was a single-issue proto-lobbyist group, trailblazing many tactics such as targeting politicians not pro-alcohol ban and utilizing public campaigns against said politicians.

Aggressive, powerful and feared by many in D.C., and far more extreme than folks like Willard before him, Wayne Wheeler led the final charge to ban alcohol. He was instrumental in getting the 18th Amendment and the Volstead Act passed.

Again, abolitionists felt that they had defeated a great evil with the passing of the 13th Amendment; and for the most part, they absolutely had. Folks in the temperance movement must have thought the same; but for the most part, they absolutely had not.

Moderate Prohibition Party members and temperance leaders could perhaps see the inevitable consequences. Freeing slaves is an act of providing self-determination, while banning alcohol is the government mandating what you can and cannot do.

After the rise of organized crime, the criminalization of a vice and the lack of enforcement on the alcohol ban itself, enough was enough.

It took nearly 15 years for the United States to change course and say “We made a mistake,” but they did come to that conclusion. The 18th amendment was repealed by the 21st amendment.

No one likes being told what to do.

Neither did the WCTU nor Prohibition Party die after the 21st amendment, and the Prohibition Party remains the oldest minor party in the United States today, no longer advocating for governmental bans on vices.

Their roles in history are important, if not for the reasons they had hoped.

However, Prohibition Party’s place in the minor party echelon today is also important. The United States needs a party that promotes health and wellness. It’s imperative to have a party focused on the betterment of our fellow people.

We need a party who is Pro-Hibition.

We also need fewer Anti-Saloon Leagues. We need to remember them as zealots of a noble cause who took something good to its very extreme and bastardized it.

This is an issue not-unique to the temperance movement.

Wayne Wheeler was not a bad man. When he was young, he was stabbed with a pitchfork by an intoxicated farmhand and it shaped his anti-alcohol stance for the rest of his life. But if your response is “we must force its banning by the legislator’s pen and the threat of the barrel of a gun,” then you have come to the wrong conclusion.

Over 200 years removed from the temperance movement’s beginning and with the failures of outlawing alcohol now easily traceable, there are lessons to be learned from how to and how to not go about changing society.

Temperance, at its best and least coercive, is a form of self-determination. The WCTU had genuinely noble intentions having fought for the women’s suffrage alongside temperance, locking them together as inseparable causes. That should be recognized and celebrated.

The misguided belief you can have it go away via amendment, the way the abolitionists did a generation before, is a lesson learned, but not a reason to throw away the original idea of temperance as self-determination all together.

As of time of writing, the youth of the United States are drinking less than generations prior. In a way, the temperance movement is finding their successes naturally and without legislative arm wringing.

Which is, perhaps, how it was always meant to be.

The Prohibition Party has been around continuously since the late 19th century and is still kicking today. A past that haunts them, an era synonymous with failure, crime and paternalistic governmental overreach, never let it destroy them. Lessons learned, strategies adapted, platforms updates and the fight continues.

That kind of resilience, whether you agree with them personally or not, should be commended.

Minor parties in the United States face an uphill battle for ballot access and recognition, but to stick around and maintain that fight is another battle entirely. Many do not survive pressures and eras of stagnation.

In the United States, there are minor parties that advocate for things like libertarian governance, ecosocialism, transhumanism, legalization of marijuana, etc.

Each and every minor party in this country plays an important role and fills in an important niche. The Prohibition Party’s role as one focused our countrymen’s Hibition is essential.

If there wasn’t a need to have this niche filled, the whole “Make America Healthy Again” campaign from 2024 might have fallen on deaf ears.

But it didn’t. It resonated with a number of voters from both sides of the aisle.

If the two-party system is to ever be defeated, we need as many parties fighting for their causes and against the duopoly as possible. Not every cause is noble and not every party is one to hold in high regard, but the modern Prohibition Party is not one you should write off.

You don’t need to join the Prohibition Party.

You can think the government outlawing of alcohol was stupid, which it absolutely was. You can think the current War on Drugs has done more harm than good and must end, which it absolutely has and should.

None of that means a party like the Prohibition Party, the only party holding onto a lost idea of self-determination, has no place in modern day politics.

In a healthy democracy, we need the Prohibition Party just as much as we need the Legal Marijuana Now Party.

Compromise is a dirty word in the 21st century under the two party system. Compromise in our two-party system has often looks more like concessions than halfway points. Causes get thrown to the wayside as disposable; bargaining chips and false promises by both sides.

In a healthy democracy, more diversity of thought, more to shop around in the market place of ideas would be a good thing. We would appreciate having parties with issues they are unwilling to compromise on, allowing for certain issues to be addressed and stay in the public sphere.

You would appreciate folks pointing out something is harming you and those around you and raising the alarm bells on it. You would feel grateful there’s someone out there making sure the government isn’t trying to poison you via lack of regulation or actual health hazards.

But you’d feel less grateful if that same party was trying to force you to live a healthier lifestyle by coercion, because that is a bastardization of self-determination.

And no one likes being told what to do.

I am a Pirate. I am a Wet Catholic. I am an advocate of self-determination. I am going to celebrate 4/20, because I have the freedom to choose to do so.

I am also Pro-Hibition.


uspirates.org/through-the-spyg…

The Pirate Post reshared this.

#Palantir ist offensichtlich #Verfassungswidrig 🔥

Automatisierte Datenanalyse in NRW: Palantir-Gesetz nicht verfassungskonform

netzpolitik.org/2026/automatis…

The Pirate Post reshared this.

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 Pirate Post reshared this.

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 Pirate Post reshared this.

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

This entry was edited (22 hours ago)

reshared this

in reply to FairB

@netzpolitik_feed @dleisegang

"…aller Patienten u Patientinnen in #Deutschland…" Das ist meines Wissens nicht korrekt.

Wer, wie #NinaWarken #privatVersichert ist, bzw. wie #FriedrichMerz sogar — O-Ton — "von Geburt an" in der #PKV, ist nicht betroffen. Es geht nur um den #GKV-Bodensatz. Wie schon bei der #ePA.

#Datenschutz wird immer mehr zu einem #Privileg.

#Gesundheit #Gesundheitsdaten

in reply to Debacle

@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 "

Endorsed! Pete Karas for Wisconsin Secretary of State!


April 20

During last night’s Pirate National Committee meeting, the board members in attendance unanimously voted to endorse Pete Karas’s campaign for Wisconsin’s Secretary of State.

Pete Karas, a member of the Green Party, joined us on Talk the Plank! a few weeks prior to pitch his campaign to the Pirate Party members and supporters, hoping to gain our endorsement.

The endorsement is one in which we take great pride, in the spirit of minor party unity against the control of the duopoly.

Even without having an active Wisconsin Pirate Party, it is gratifying to be able to lend our support to someone seeking the betterment of all Wisconsinites (Editor’s Note: You guys aren’t legally called “Cheeseheads” the same way we call people from Indiana “Hoosiers,” why? Feels like a waste of a good nickname, and I say that as a Bears fan!)

Pete, all the best wishes as we strive towards breaking the two-party duopoly. Here’s hoping you can make a real difference in Wisconsin, and here’s to the United States Pirate Party having your back. You and your campaign have our full endorsement.

Pete Karas, Victory is Arrrs.


uspirates.org/endorsed-pete-ka…

The Pirate Post reshared this.

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
This entry was edited (1 day ago)

reshared this

The Pirate Post reshared this.

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…
The Pirate Post reshared this.

Le 10 avril dernier, le système européen "Entry/Exit System" de contrôle biométrique aux frontières est entré en vigueur. Il impose l'enregistrement des empreintes digitales et de la photographie du visage de toute personne venant dans l'espace Schengen, afin de vérifier qu'elles ne dépassent pas la durée de leur visa.

L'occasion de regarder à nouveau notre émission sur la surveillance des frontières :
video.lqdn.fr/w/uw4CDTUfm3yHF7…

reshared this

The Pirate Post reshared this.

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

Rust 1.95.0: cfg_select!, if-let guard nei match e nuove API per Vec e atomici
#tech
spcnet.it/rust-1-95-0-cfg_sele…
@informatica


Rust 1.95.0: cfg_select!, if-let guard nei match e nuove API per Vec e atomici


Il 16 aprile 2026 è uscita Rust 1.95.0, una release che porta novità significative al linguaggio e alla sua libreria standard. Questa versione si segnala in particolare per l’introduzione della macro cfg_select!, il supporto agli if-let guard nei blocchi match, e una serie di nuove API per la gestione della memoria e degli atomici.

Vediamo nel dettaglio cosa cambia e come queste novità influenzano il codice quotidiano dei Rustaceans.

cfg_select!: condizionali di compilazione senza dipendenze esterne


La macro cfg_select! introduce un modo più espressivo per scrivere codice condizionale basato sulla configurazione di compilazione. Si comporta come un match valutato a compile-time sulle condizioni cfg, rimpiazzando di fatto il crate esterno cfg-if che molti progetti Rust usano da anni.

Prima di Rust 1.95, per scrivere codice dipendente dalla piattaforma si usava tipicamente:

// Prima: con cfg-if (dipendenza esterna nel Cargo.toml)
cfg_if::cfg_if! {
    if #[cfg(target_os = "linux")] {
        fn get_system_info() -> String {
            linux_system_info()
        }
    } else if #[cfg(target_os = "macos")] {
        fn get_system_info() -> String {
            macos_system_info()
        }
    } else {
        fn get_system_info() -> String {
            String::from("unknown")
        }
    }
}

Con cfg_select!, la stessa logica si esprime ora senza aggiungere dipendenze al progetto:
// Ora: built-in nella libreria standard
fn get_system_info() -> String {
    cfg_select! {
        target_os = "linux" => { linux_system_info() }
        target_os = "macos" => { macos_system_info() }
        _ => { String::from("unknown") }
    }
}

La sintassi è più pulita e il fatto di essere nella libreria standard elimina la necessità di dichiarare cfg-if nel Cargo.toml. Particolarmente utile per chi sviluppa librerie cross-platform o crate che devono supportare più sistemi operativi e architetture CPU.

if-let guard nei match: pattern matching più espressivo


Rust 1.95 stabilizza gli if-let guard all’interno delle espressioni match, costruendo sulle let chain introdotte in Rust 1.88. Un guard in un match è la condizione if che può seguire un pattern. Finora, questa condizione doveva essere un’espressione booleana semplice. Ora si può usare if let per abbinare pattern aggiuntivi direttamente nella guardia:

fn process(value: Option<Result<i32, String>>) {
    match value {
        Some(x) if let Ok(y) = x => {
            println!("Valore ottenuto: {}", y);
        }
        Some(Err(ref e)) => {
            println!("Errore: {}", e);
        }
        None => {
            println!("Nessun valore");
        }
    }
}

Questo permette di scrivere logica di pattern matching più complessa senza ricorrere a blocchi match annidati. Un caso d’uso pratico è la validazione combinata di metodo HTTP e corpo della richiesta:
fn handle_request(req: &Request) -> Response {
    match req.method() {
        Method::POST if let Ok(body) = serde_json::from_str::<Payload>(req.body()) => {
            process_payload(body)
        }
        Method::POST => {
            Response::bad_request("Payload JSON non valido")
        }
        _ => {
            Response::method_not_allowed()
        }
    }
}

Nota importante sull’esaustività: il compilatore non tiene conto dei pattern negli if-let guard per il controllo di esaustività (exhaustiveness checking). Questo significa che il compilatore non avvertirà se un pattern nell’if-let guard è irraggiungibile. Occorre quindi prestare attenzione quando si usano questi costrutti in match che devono essere esaustivi per correttezza.

Nuove API per Vec, VecDeque e atomici

push_mut e push_back_mut: riferimenti mutabili post-inserimento


Una delle aggiunte più pratiche riguarda i metodi push_mut e varianti per Vec e VecDeque. Questi metodi inseriscono un elemento e restituiscono immediatamente un riferimento mutabile all’elemento appena inserito, eliminando il doppio accesso che prima era necessario:

// Prima: due operazioni separate
let mut v: Vec<String> = Vec::new();
v.push(String::new());
let last = v.last_mut().unwrap(); // secondo accesso necessario
last.push_str("hello");

// Ora con push_mut: un unico accesso, più efficiente
let mut v: Vec<String> = Vec::new();
let elem = v.push_mut(String::new());
elem.push_str("hello"); // riferimento diretto all'elemento appena inserito

Metodi analoghi (push_back_mut, push_front_mut) sono disponibili anche su VecDeque, utile per code e buffer circolari.

update e try_update sugli atomici


I tipi atomici (AtomicUsize, AtomicBool, AtomicI32, ecc.) guadagnano i metodi update e try_update per semplificare i pattern read-modify-write senza dover scrivere manualmente il loop CAS (Compare-And-Swap):

use std::sync::atomic::{AtomicUsize, Ordering};

let counter = AtomicUsize::new(0);

// Incrementa atomicamente, restituisce il vecchio valore
let old = counter.update(Ordering::SeqCst, |x| x + 1);
println!("Valore precedente: {}", old);

// try_update: permette di fallire condizionalmente
// (ritorna Err se la chiusura restituisce None)
let result = counter.try_update(Ordering::SeqCst, |x| {
    if x < 100 { Some(x + 1) } else { None }
});

match result {
    Ok(old_val) => println!("Aggiornato da {}", old_val),
    Err(_) => println!("Limite raggiunto, nessun aggiornamento"),
}

Questi metodi gestiscono internamente il retry loop in caso di contesa tra thread, rendendo il codice più leggibile e meno soggetto a errori.

Stabilizzazioni in const context


Rust 1.95 estende il supporto ai const context per alcune API già stabili, consentendo un uso più ampio della valutazione a compile-time:

  • fmt::from_fn ora utilizzabile in contesti const
  • Metodi di ControlFlow ora const-stabili
  • Nuovi metodi unsafe per puntatori: as_ref_unchecked e as_mut_unchecked
  • Layout::dangling_ptr per manipolazione avanzata della memoria in allocatori custom


Breaking change: JSON target spec non più supportata su stable


Rust 1.95 rimuove il supporto alle specifiche di target in formato JSON sul canale stable. Questa funzionalità era già effettivamente limitata al canale nightly (costruire core richiedeva già nightly), quindi l’impatto pratico è minimo per la maggior parte dei progetti. Chi usa target custom non standard dovrà assicurarsi di usare il canale nightly o di migrare a definizioni di target ufficialmente supportate.

Come aggiornare


Per aggiornare Rust all’ultima versione stabile, basta eseguire:

rustup update stable

Per verificare la versione installata:
rustc --version
# rustc 1.95.0 (xxxxxxxx 2026-04-16)

Conclusioni


Rust 1.95.0 è una release solida che porta miglioramenti trasversali all’ergonomia del linguaggio. cfg_select! riduce la dipendenza da crate esterni per il codice condizionale, gli if-let guard aumentano l’espressività del pattern matching, e le nuove API per Vec e atomici semplificano pattern comuni nella gestione dello stato condiviso in contesti concorrenti.

Nel complesso, questa release conferma la direzione del progetto Rust: migliorare l’ergonomia senza compromettere la sicurezza, incorporando nella libreria standard soluzioni che prima richiedevano crate esterni.

Fonte: Announcing Rust 1.95.0 — The Rust Programming Language Blog


The Pirate Post reshared this.

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

Omnistealer Malware Uses Blockchain Permanence to Host Unremovable Payloads, Compromising 300,000 Credentials
#CyberSecurity
securebulletin.com/omnistealer…
The Pirate Post reshared this.

Die von der Polizei erfasste Kriminalität geht in vielen Feldern deutlich herunter. Dennoch will CSU-Innenminister Dobrindt mehr Überwachungmaßnahmen und schärfere Gesetze.

netzpolitik.org/2026/polizeili…

reshared this

in reply to netzpolitik.org

In der Welt eines Innenpolitikers oder Polizeigewerkschafters kann es - nein, darf es - keine abnehmende Kriminalität geben. Wo kämen wir denn da hin? Die Politik der Angst und Ausgrenzung würde nicht mehr funktionieren. Und dann käme noch jemand auf die Idee, bei Polizei oder Innerer Sicherheit zu sparen. Das ist die Dialektik: Die Institution Polizei braucht das Verbrechen - es nährt sie. Davon bekommt sie nie genug.

ICYMI: Updates from the 4/19 Meeting


ICYMI

Arizona – Arizona recently had their election for the AZPP board (for real this time!) and incumbent Blase Henry is indeed back in the role.

Blase Henry – Speaking of Blase, he was recently a guest on the United States Transhumanist Party’s “Virtual Enlightenment Salon,” which you can watch here.

Colorado – We are actively seeking volunteers for the forming Colorado Pirate Party. If you are interested in getting involved and thought “I’m just waiting for the right opportunity for a Coloradan like me to join,” one, that’s oddly specific, but two, your time has come! Reach out, we’d looking forward to hearing from you and bringing you aboard.

Drew Bingaman – Drew’s campaign is moving and more volunteers are coming aboard to assist in signature collection. Facebook has also approved Drew’s campaign to run adds on Facebook! Thanks Mark!

Endorsements – Pete Karas, Green Party candidate for Wisconsin’s Secretary of State, has received the endorsement of the United States Pirate Party from the Pirate National Committee. A separate announcement will be made later today so that news doesn’t get buried.

Hunter Rand – Spark’s City Council Ward 2 candidate Hunter Rand has been running a fantastic campaign that deserves some recognition from the national party. Not only has Hunter been putting in the work on the ground to run an honest and transparent campaign for his neighbors, but he’s represented the Pirate Party and our values with great enthusiasm and integrity. Check out some of the videos Hunter has put out, and visit his website.

Illinois – The Illinois Pirate Party, inspired by the forming Maryland Pirate Party, is currently considering running stream and shoreline cleanup events, in the spirit of the clean water plank quintessential to the Pirate Party platform. More info to come following the May 3rd meeting.

Maryland – As mentioned in Illinois, the Maryland Pirate Party is currently organizing. If you are from Maryland and thought “I’m just waiting for the right opportunity for a Marylander like me to join,” one, why does everyone keep having these thoughts, but two, your time has come!

Pirate National Conference – Just a reminder that the 2026 Pirate National Conference: Piratey McPirateface, of the House of Supreme, Heir to the Crown of the United States of America, Held By His Father Vermin Supreme, and Sole Heir to the Kingdom of Libertalia, By the Grace of God, King of Castile, of León, of Aragon, of the Two Sicilies, of Jerusalem, of Dalmatia, of Croatia, of Navarre, of Granada, of Toledo, of Valencia, of Galicia, of Mallorca, of Seville, of Sardinia, of Córdoba, of Corsica, of Murcia, of Jaén, of the Algarves, of Algeciras, of the Canary Islands, of the East and West Indies, of the Islands and Mainland of the Ocean Sea; Archduke of Austria; Duke of Burgundy, of Brabant, of Milan, of Athens and Neopatria; Count of Habsburg, of Flanders, of Tyrol, of Barcelona, of Roussillon, and of Cerdanya; Marquess of Oristano and Count of Goceano, Duke of Sealand, Mayor of Des Moines, Mr. Florida 1999, Reborn, Runs for Something to Spill This Tea and Hoist the Colours Over the Stolen Pirate National Conference of 2024, aka Hoist the Colours and Spill the Tea

20 YEARS A PIRATE!


will take place on June 6th-7th in Boston, Massachusetts. There will also be an option to attend online if you cannot make the trip. You can find out all the information you are looking for here.

If you wanted to know more about last night’s meeting, you can watch it back here.


uspirates.org/icymi-updates-fr…

The Pirate Post reshared this.

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

Fortinet FortiClientEMS Under Active Attack: Critical CVE-2026-35616 (CVSS 9.1) Added to CISA KEV Catalog
#CyberSecurity
securebulletin.com/fortinet-fo…
The Pirate Post reshared this.

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

BLACKWATER Ransomware Group Debuts with 3.3 TB Heist from Turkey’s Largest Hospital Network
#CyberSecurity
securebulletin.com/blackwater-…
The Pirate Post reshared this.

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

Vercel Confirms April 2026 Breach: ShinyHunters Accessed Source Code, API Keys, and Employee Data via AI Tool Compromise
#CyberSecurity
securebulletin.com/vercel-conf…
The Pirate Post reshared this.

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.

PRISMEX: la suite di cyberspionaggio di APT28 che prende di mira Ucraina e alleati NATO con steganografia e cloud C2
#CyberSecurity
insicurezzadigitale.com/prisme…


PRISMEX: la suite di cyberspionaggio di APT28 che prende di mira Ucraina e alleati NATO con steganografia e cloud C2


Si parla di:
Toggle


Una suite di malware inedita, battezzata PRISMEX, porta la firma del GRU russo e punta diritto al cuore delle reti militari e governative legate al conflitto in Ucraina. La campagna combina steganografia proprietaria, COM hijacking e abuso di cloud storage cifrato per raggiungere i propri obiettivi restando praticamente invisibile agli strumenti di difesa tradizionali.

APT28 nel 2026: evoluzione di una minaccia permanente


APT28 — tracciato anche come Forest Blizzard, Fancy Bear e Pawn Storm — è l’unità cyber attribuita al GRU, l’intelligence militare russa. Operativo da oltre vent’anni, il gruppo ha all’attivo compromissioni di altissimo profilo: dal Partito Democratico USA nel 2016 al WADA, passando per decine di istituzioni europee e governi NATO. Ciò che distingue APT28 è la capacità di weaponizzare vulnerabilità ancora prima della loro divulgazione pubblica e di costruire toolchain modulari estremamente evasive.

La campagna documentata tra febbraio e aprile 2026 da Trend Micro, Zscaler ThreatLabz e Trellix — denominata Operation Neusploit — rappresenta un ulteriore salto qualitativo in questa direzione. L’analisi delle infrastrutture mostra che i preparativi erano in corso da settembre 2025, con exploitation attiva dal gennaio 2026.

I bersagli: una mappa geopolitica della catena logistica NATO


La selezione dei target riflette la precisa intelligence operativa del GRU. La campagna ha colpito organi esecutivi centrali ucraini, servizi di difesa, protezione civile e servizi idrometeorologici; operatori ferroviari polacchi coinvolti nella logistica degli aiuti militari; settore marittimo e trasportistico in Romania, Slovenia e Turchia; partner della filiera di approvvigionamento di munizioni in Slovacchia e Repubblica Ceca; unità droni nelle regioni di Kyiv e Kharkiv. Il denominatore comune è la catena di supporto alle operazioni militari ucraine — la stessa che il Cremlino ha interesse a monitorare e potenzialmente compromettere.

La catena di attacco: due zero-day, un RTF e un server WebDAV


Il vettore iniziale è uno spear-phishing particolarmente contestualizzato: email con lure tematici su addestramenti militari, allerte meteorologiche o contrabbando di armi — argomenti credibili per i destinatari designati. L’allegato è un documento RTF che sfrutta CVE-2026-21509, una vulnerabilità di bypass delle funzionalità di sicurezza di Microsoft Office.

All’apertura, il sistema vittima viene forzato a connettersi a un server WebDAV controllato dagli attaccanti, da cui viene recuperato automaticamente un file LNK malevolo. Questo sfrutta CVE-2026-21513 per bypassare le protezioni del browser ed eseguire silenziosamente il payload successivo. La tempistica è rivelatrice: l’infrastruttura per CVE-2026-21509 era operativa il 12 gennaio 2026, due settimane prima della divulgazione pubblica del 26 gennaio. La patch per CVE-2026-21513 è arrivata il 10 febbraio, lasciando una finestra di undici giorni da zero-day sfruttabile.

Anatomia di PRISMEX: quattro componenti, un ecosistema invisibile


PRISMEX non è un singolo malware ma una suite modulare di quattro componenti progettate per operare in concerto, ciascuna con un ruolo preciso:

  • PrismexSheet: dropper Excel con macro VBA che estrae payload nascosti nel file tramite steganografia. Mostra un documento decoy convincente (inventari droni, listini prezzi militari) per non destare sospetti e stabilisce persistenza via COM hijacking.
  • PrismexDrop: dropper nativo che prepara l’ambiente per lo sfruttamento successivo utilizzando scheduled task e COM DLL hijacking abbinati al riavvio di explorer.exe per la persistenza tra i riavvii.
  • PrismexLoader: proxy DLL che esegue codice malevolo mascherandosi da libreria legittima. Impiega la tecnica steganografica proprietaria “Bit Plane Round Robin” per estrarre payload nascosti all’interno di immagini apparentemente normali, con esecuzione interamente in memoria per minimizzare le tracce su disco.
  • PrismexStager: implant .NET basato sul framework Covenant, fortemente offuscato con nomi di funzione randomizzati. Comunica con i server C2 abusando di Filen.io, un servizio di cloud storage cifrato legittimo, rendendo il traffico malevolo indistinguibile da normali operazioni cloud.

In alcuni scenari di attacco è stato rilevato anche il deployment di MiniDoor, uno stealer specificamente progettato per l’esfiltrazione di email da Microsoft Outlook — un indicatore diretto del tipo di intelligence ricercata.

Living-off-the-Cloud: Filen.io come infrastruttura C2


L’abuso di Filen.io come canale C2 rappresenta una raffinata applicazione del paradigma Living-off-the-Cloud (LotC). Filen.io offre storage cifrato end-to-end, rendendo l’ispezione del contenuto del traffico particolarmente difficile anche per soluzioni avanzate di network detection. I sistemi di filtraggio basati su reputazione IP o domain non rilevano anomalie poiché il dominio è genuinamente legittimo e ampiamente utilizzato. Questa strategia, già osservata con OneDrive, Google Drive e Dropbox in campagne APT precedenti, viene qui applicata con un servizio meno noto e con cifratura robusta — un ostacolo aggiuntivo per i Blue Team.

Indicatori di compromissione (IOC)

# Domini usati per hosting/delivery degli exploit Office
wellnessmedcare[.]org
wellnesscaremed[.]com
freefoodaid[.]com
longsauce[.]com

# CVE sfruttate nella campagna
CVE-2026-21509 - Microsoft Office Security Feature Bypass
  Divulgazione pubblica: 26 gennaio 2026
  Infrastruttura attaccante attiva dal: 12 gennaio 2026

CVE-2026-21513 - Browser Security Feature Bypass
  Prime sample osservate: 30 gennaio 2026
  Patch Microsoft: 10 febbraio 2026 (finestra 0-day: 11 giorni)

# C2 infrastructure
Filen.io (cloud storage legittimo abusato per C2 cifrato)

# Framework C2 utilizzato
Covenant (Grunt implant) tramite PrismexStager

# Tecniche MITRE ATT&CK
T1566.001 - Spearphishing Attachment
T1221   - Template Injection (RTF)
T1574.001 - COM DLL Hijacking (PrismexDrop, PrismexSheet)
T1027.003 - Steganography: Bit Plane Round Robin (PrismexLoader)
T1053.005 - Scheduled Task/Job: Scheduled Task
T1102.002 - Web Service: Bidirectional Communication (Filen.io C2)
T1218.011 - Signed Binary Proxy Execution (Rundll32)

Consigli pratici per i difensori


La campagna PRISMEX evidenzia quanto i modelli di difesa basati su firme statiche e reputazione siano inadeguati contro attori di questo livello. Per i team di sicurezza che operano in settori ad alto rischio è essenziale: applicare immediatamente le patch CVE-2026-21509 e CVE-2026-21513 se non già fatto; monitorare comportamenti anomali di processi legittimi come explorer.exe, regsvr32 e processi COM; implementare regole di detection per COM hijacking e creazione non autorizzata di scheduled task; bloccare o monitorare il traffico verso servizi di cloud storage non approvati aziendalmente (incluso Filen.io); disabilitare le macro VBA nei documenti Office provenienti da fonti esterne tramite Group Policy o Intune; adottare una postura “assume breach” con hunting proattivo su anomalie comportamentali piuttosto che su indicatori statici.


The Pirate Post reshared this.

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…

The Pirate Post reshared this.

📅 Gli eventi della settimana

Log Out @ Roma

🕒 28 aprile, 18:30 - 28 aprile, 21:30

🔗 mobilizon.it/events/e411e86a-2…


Log Out @ Roma


Martedì 28 aprile torniamo con il Logout di TWC Roma, il ritrovo per tech workers che vogliono incontrarsi dopo il lavoro: un'occasione per socializzare, conoscersi, parlare del nostro lavoro e come organizzarci nei prossimi mesi!

Ci vediamo martedi 28 aprile, dalle 18:30 alle 21:30, alla Casa del Parco in Caffarella (ingressolargo Tacchi Venturi angolo Via Latina)

E' raggiungibile a piedi dalla Metro A fermata Colli Albani.

Unisciti ai gruppi Telegram Tech Workers Coalition !

Roma

t.me/twcroma

Italia

t.me/twcitagruppo


The Pirate Post reshared this.

The Pirate Post reshared this.

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

Come GitHub usa eBPF per rendere i deploy sicuri: architettura e implementazione
#tech
spcnet.it/come-github-usa-ebpf…
@informatica


Come GitHub usa eBPF per rendere i deploy sicuri: architettura e implementazione


Quando si parla di deployment safety, pochi casi studio sono più istruttivi di quello di GitHub: un’azienda che ospita il proprio codice sorgente sulla piattaforma che sta cercando di aggiornare. Questo crea una dipendenza circolare potenzialmente devastante — durante un’interruzione del servizio, il deploy che dovrebbe ripristinarlo potrebbe fallire proprio perché si appoggia alla piattaforma non disponibile.

Un recente articolo del blog di ingegneria di GitHub descrive come il team abbia risolto questo problema usando eBPF (extended Berkeley Packet Filter), una tecnologia kernel Linux che permette di eseguire codice sandboxed direttamente nel kernel senza modificarlo.

Il problema delle dipendenze nei deploy


GitHub ha identificato tre categorie di dipendenze problematiche nei propri script di deploy:

  • Dipendenze dirette: script che scaricano binari da github.com durante il deploy
  • Dipendenze nascoste: tool che controllano aggiornamenti su GitHub senza una richiesta esplicita
  • Dipendenze transitive: servizi interni che chiamano dipendenze esterne in modo indiretto

Il rischio è evidente: se github.com non è disponibile e il deploy ne dipende, si entra in un loop da cui è difficile uscire. Serviva un meccanismo per rilevare — e bloccare — queste dipendenze prima che causassero problemi in produzione.

eBPF: filtraggio kernel-level senza modificare il kernel


eBPF è un framework che consente di iniettare programmi nel kernel Linux in modo sicuro e verificato. Originariamente nato per il filtraggio dei pacchetti di rete (da cui il nome “Berkeley Packet Filter”), si è evoluto in una piattaforma generale per osservabilità, sicurezza e networking a bassa latenza.

GitHub ha sfruttato due tipi specifici di programmi eBPF:

  • BPF_PROG_TYPE_CGROUP_SKB: monitora il traffico in uscita (egress) e applica regole di blocco IP basate sui risultati della risoluzione DNS
  • BPF_PROG_TYPE_CGROUP_SOCK_ADDR: intercetta le query DNS e le reindirizza a un proxy userspace che valuta le richieste rispetto a una lista di domini bloccati

I cgroup Linux vengono usati per isolare i processi di deploy. A questi cgroup vengono poi agganciate (attached) le mappe e i programmi eBPF, che possono così osservare e controllare il traffico di rete generato da quei processi specifici.

L’architettura del sistema


Il flusso di funzionamento è il seguente:

  1. Un processo di deploy tenta di risolvere un nome di dominio (es. github.com)
  2. Il programma eBPF intercetta la query DNS tramite BPF_PROG_TYPE_CGROUP_SOCK_ADDR
  3. La query viene reindirizzata a un proxy userspace
  4. Il proxy verifica il dominio rispetto alla policy attiva
  5. Se il dominio è nella lista bloccata, la risposta viene falsificata (restituendo un IP non raggiungibile)
  6. Il programma BPF_PROG_TYPE_CGROUP_SKB monitora il traffico IP per rafforzare il blocco
  7. Tutte le violazioni vengono loggate con PID, nome del processo, comando e transaction ID DNS

Particolarmente elegante è l’uso di mappe eBPF (BPF maps) per condividere stato tra i programmi kernel e il proxy userspace, consentendo aggiornamenti dinamici alla policy senza dover ricaricare i programmi.

Implementazione con cilium/ebpf e Go


Per semplificare lo sviluppo, il team ha usato la libreria Go cilium/ebpf, uno dei wrapper eBPF più maturi disponibili oggi. I programmi eBPF sono scritti in C e compilati con bpf2go, uno strumento che genera automaticamente le struct Go corrispondenti per interagire con le mappe e i programmi nel kernel.

Un esempio semplificato di come si carica e aggancia un programma eBPF con cilium/ebpf:

// Carica i programmi eBPF compilati
objs := bpfObjects{}
if err := loadBpfObjects(&objs, nil); err != nil {
    log.Fatalf("loading objects: %v", err)
}
defer objs.Close()

// Aggancia il programma al cgroup del processo di deploy
l, err := link.AttachCgroup(link.CgroupOptions{
    Path:    "/sys/fs/cgroup/deploy",
    Attach:  ebpf.AttachCGroupInetEgress,
    Program: objs.FilterEgress,
})
if err != nil {
    log.Fatalf("attaching cgroup: %v", err)
}
defer l.Close()

log.Println("eBPF program attached, monitoring egress traffic...")

La policy viene aggiornata dinamicamente scrivendo nelle mappe eBPF, senza necessità di riavviare nulla:
// Blocca un dominio aggiungendolo alla mappa eBPF
key := []byte("github.com")
value := uint32(1) // 1 = blocked
if err := objs.BlockedDomains.Put(key, value); err != nil {
    log.Fatalf("updating map: %v", err)
}

Questo approccio consente di modificare le policy a runtime, ad esempio durante un incidente, aggiungendo o rimuovendo domini dalla blocklist senza interrompere i processi in esecuzione.

Correlazione PID e DNS transaction ID


Uno degli aspetti più sofisticati dell’implementazione è la capacità di correlare le query DNS bloccate al processo specifico che le ha generate. Il sistema usa una mappa eBPF per tenere traccia della coppia (PID, DNS transaction ID): quando il proxy userspace vede una query, può risalire al processo che l’ha originata e loggare il percorso completo dell’esecuzione, incluso il comando invocato.

Questo livello di visibilità è fondamentale per il debugging: anziché sapere solo che “qualcosa ha chiamato github.com”, gli ingegneri possono vedere esattamente quale script, a quale riga, stava tentando di accedere alla risorsa bloccata.

Risultati dopo sei mesi di rollout


Dopo sei mesi di utilizzo in produzione, il sistema ha permesso a GitHub di:

  • Rilevare dipendenze problematiche prima che causino guasti durante i deploy
  • Identificare tool e script che accedevano silenziosamente a github.com durante le operazioni di deploy
  • Migliorare la velocità di recovery dagli incidenti, eliminando la circolarità delle dipendenze
  • Costruire un inventario delle dipendenze esterne degli script di deploy, utile per la pianificazione della resilienza


Perché eBPF è la scelta giusta per questo caso d’uso


Soluzioni alternative avrebbero avuto limitazioni significative: un firewall a livello di rete avrebbe bloccato il traffico in modo troppo grossolano, impedendo anche il normale funzionamento dei servizi. Proxy applicativi avrebbero richiesto modifiche agli script di deploy. eBPF consente invece di applicare policy granulari, per-processo e dinamiche, senza modificare gli script esistenti né aggiungere overhead significativo alle operazioni normali.

Il fatto che sia una tecnologia kernel-level la rende anche difficile da aggirare accidentalmente: non è sufficiente usare una libreria di networking alternativa o bypassare il resolver DNS del sistema per evadere i controlli.

Conclusioni


L’approccio di GitHub dimostra come eBPF stia trasformando la sicurezza e l’osservabilità delle infrastrutture moderne. Non più solo strumento per profiling di rete, eBPF diventa un componente architetturale per l’enforcement di policy a runtime, invisibile alle applicazioni e aggiornabile senza downtime.

Per chi gestisce infrastrutture critiche o pipeline CI/CD complesse, questo caso studio offre un modello replicabile: usare eBPF per imporre vincoli ai processi di deploy e garantire che il sistema possa sempre ripristinarsi indipendentemente dallo stato dei servizi che ospita.

Fonte: How GitHub uses eBPF to improve deployment safety — GitHub Engineering Blog


The Pirate Post è una rassegna informativa per chi vuole conoscere le iniziative dei Pirati del mondo.

Friendica mi consente di impostare a ricondivisione automatica di alcuni account di area #pirata.
Questo non mi rende un "bot", ma sicuramente può dare fastidio a qualcuno. Fortunatamente esiste il silenziamento!
La selezione che effettuo comunque è abbastanza stringente e nel tempo mi preoccupo di effettuare qualche accorgimento per rendere la mia timeline meno noiosa. I miei follower talvolta mi fanno notare che alcuni contenuti non sono più in linea con il tema principale del mio account e mi è capitato di accogliere alcune di queste richieste e di rimuovere la ricondivisione automatica da alcuni fonti.

The Pirate Post is a review of information for those who want to know the initiatives of the Pirates of the world

Friendica allows me to set up automatic resharing for some #pirate accounts.
This doesn't make me a "bot," but it can definitely annoy some people. Fortunately, there's a mute option!
My selection is quite strict, and over time, I've made some adjustments to make my timeline less boring. My followers sometimes point out that certain content no longer aligns with the main theme of my account, and I've granted some of these requests and removed automatic resharing from some sources.