The Privacy Post ha ricondiviso questo.

Das war ja klar, dass in Baden-Württemberg unter Özdemir und Hagel ein Ausbau der Überwachung zu erwarten ist. Aber dass dann gleich alle Hemmschwellen fallen ... Im Koalitionsvertrag versprechen die Herren, in drei Städten Videokameras zu installieren, die gleichzeitig Verhalten und Gesichter erkennen können. Die Kombination beider Technologien galt bislang als unvermittelbar, weil jede einzelne schon so tief in die Persönlichkeitsrechte eingreift. Aber naja, da sind wir. netzpolitik.org/2026/koalition…
The Privacy Post ha ricondiviso questo.

Grün-Schwarz will in Baden-Württemberg als erstem Bundesland doppelte KI-Videoüberwachung ausrollen: Kameras, die Menschen auf verdächtiges Verhalten überprüfen und sie gleichzeitig mit Gesichtserkennung analysieren. In Mannheim und zwei weiteren Städten soll das Pilotprojekt starten. netzpolitik.org/2026/koalition…
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.

📰 "Selling data to its own users is a popular practice among companies. In reality, however, people have the right to receive their own data free of charge," Noyb data protection lawyer Martin Baumann said. #LinkedIn #GDPR

👉 Read more: theregister.com/2026/05/05/lin…

Questa voce è stata modificata (3 mesi fa)

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.

DigiCert Breached via Weaponized Screensaver: Threat Actor Steals EV Code Signing Certificates to Spread Zhong Stealer
#CyberSecurity
securebulletin.com/digicert-br…
The Privacy Post ha ricondiviso questo.

Die Alterskontroll-App der EU- Kommission nutzt ein Verfahren von Google-Entwicklern. IT-Fachleute warnen vor Abhängigkeiten und Datenschutzrisiken – auch mit Blick auf die geplante EUDI-Wallet.

netzpolitik.org/2026/europaeis…

in reply to netzpolitik.org

Ich frag mich ja immer noch, wofür diese digitale Funktion im Personalausweis in Verbindung mit der Ausweis-App gut ist? Warum muss ich personenbezogene und sensible Daten an weitere Akteure offenlegen, obwohl es doch schon Möglichkeiten gäbe, auch wenn diese evtl. weiterentwickelt werden müssten? Ist "digitale Unabhängigeit" nur ne moderne Worthülse? Wer profitiert von diesem Unfug oder ist es einfach nur mangelnde Kompetenz?
in reply to netzpolitik.org

Wenn es ja nur das Verfahren (also der Algorithmus) wäre! Die App nutzt aber sogar Googles Implementation (als Programmbibliothek). Die kann Google jederzeit ändern. Das heißt: Selbst wenn diese Bibliothek momentan datenschutzkonform arbeiten sollte, kann sich das durch ein Update jederzeit ändern.

/cc @dleisegang

Questa voce è stata modificata (3 mesi fa)
The Privacy Post ha ricondiviso questo.

Danke für die stetige Berichterstattung, @netzpolitik_feed!

Die Kritik an den verschiedenen geplanten Elementen von Massenüberwachung geht in vielen Medien unter.


Die Bundesdatenschutzbeauftragte warnt weiterhin vor der #Chatkontrolle. Eine „anlasslose Massenüberwachung“ aller Bürger:innen „wäre in einem Rechtstaat beispiellos“. Auch die Datenschutzkonferenz fordert die EU-Gesetzgeber auf, die Chatkontrolle „endgültig abzusagen“.

netzpolitik.org/2026/anlasslos…


The Privacy Post ha ricondiviso questo.

Auch in #SchleswigHolstein sind wir vor einem dystopischen #Polizeigesetz nicht gefeit.

netzpolitik.org/2026/polizeige…

Danke für die unermüdliche Berichterstattung @netzpolitik_feed!

#überwachung #dystopie #überwachungsstaat #polizei #PolizeiSH

The Privacy Post ha ricondiviso questo.

Fuck tha Police - Gli agenti di polizia 🦘australiani 🦘 possono essere rintracciati a causa di una falla di sicurezza nei taser e nelle telecamere indossabili

I taser e le telecamere indossabili con tecnologia Bluetooth, utilizzati da migliaia di agenti di polizia australiani, possono inavvertitamente rivelare la loro posizione in tempo reale a qualsiasi criminale in possesso di un telefono o di un computer portatile.

Le forze di polizia di tutto il paese sono state avvertite della falla di sicurezza. Ma nonostante i rischi per la sicurezza, soprattutto per gli agenti in borghese, nelle unità tattiche o che portano a casa la propria attrezzatura, nessuno sembra aver preso provvedimenti.

abc.net.au/news/2026-05-04/pol…

@privacypride

The Privacy Post ha ricondiviso questo.

Die Bundesdatenschutzbeauftragte warnt weiterhin vor der #Chatkontrolle. Eine „anlasslose Massenüberwachung“ aller Bürger:innen „wäre in einem Rechtstaat beispiellos“. Auch die Datenschutzkonferenz fordert die EU-Gesetzgeber auf, die Chatkontrolle „endgültig abzusagen“.

netzpolitik.org/2026/anlasslos…

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.

Pattern matching in C#: scenari avanzati che probabilmente non conosci
#tech
spcnet.it/pattern-matching-in-…
@informatica


Pattern matching in C#: scenari avanzati che probabilmente non conosci


Il pattern matching in C# non è solo un modo più elegante di scrivere condizioni: è un cambio di paradigma nel modo in cui si ragiona sulla struttura dei dati. A partire da C# 7 e con evoluzioni significative nelle versioni successive, il pattern matching è diventato uno strumento potentissimo per scrivere codice più leggibile, manutenibile e talvolta anche più efficiente.

In questo articolo esploreremo i pattern avanzati che molti sviluppatori .NET tendono a ignorare o a sottoutilizzare, partendo da un progetto concreto che dimostra ogni scenario.

Setup del progetto di esempio


Prima di tutto, creiamo un’applicazione console di test:

dotnet new console -n PatternMatchingDemo
cd PatternMatchingDemo

Definiamo i modelli come record, ideali per il pattern matching grazie alla loro natura value-based:
namespace PatternMatchingDemo.Records;

public record Address(string City, string Country);
public record User(string Name, int Age, Address Address, List<string> Roles);
public record Request(string Source, int Priority);
public record Point(int X, int Y);

E popoliamo alcune collezioni di test:
var users = new List<User>
{
    new("Ali", 25, new Address("Milano", "Italy"), new List<string> { "Admin", "User" }),
    new("Sara", 17, new Address("Roma", "Italy"), new List<string> { "User" }),
    new("Kennedy", 65, new Address("London", "UK"), new List<string> { "Guest" })
};

var requests = new List<Request>
{
    new("System", 10),
    new("User", 3),
    new("System", 2)
};

Property Pattern: matching annidato


Uno dei pattern più utili è il property pattern, che permette di verificare le proprietà di un oggetto direttamente nell’espressione di matching, incluse proprietà annidate:

foreach (var user in users)
{
    if (user is { Address.City: "Milano" })
    {
        Console.WriteLine($"{user.Name} è di Milano");
    }
}

Il confronto tradizionale richiederebbe:
if (user != null && user.Address != null && user.Address.City == "Milano")

La versione con property pattern è non solo più compatta, ma anche null-safe per definizione: se user o user.Address sono null, il pattern semplicemente non matcha.

Pattern con not: negazione elegante

foreach (var user in users)
{
    if (user is not { Address.City: "Milano" })
    {
        Console.WriteLine($"{user.Name} non è di Milano");
    }
}

Il keyword not inverte il risultato del pattern, rendendo esplicito il significato senza bisogno di operatori logici aggiuntivi.

Matching su casi multipli con or

foreach (var user in users)
{
    if (user is { Address.City: "Milano" or "Roma" })
    {
        Console.WriteLine($"{user.Name} vive in una grande città italiana");
    }
}

Il combinatore or all’interno di un pattern è molto più leggibile di una serie di condizioni concatenate con ||, specialmente quando le condizioni riguardano la stessa proprietà.

Pattern Matching dentro LINQ


Il pattern matching si integra perfettamente con LINQ, permettendo query molto espressive:

var adultiItaliani = users
    .Where(u => u is { Age: > 18, Address.Country: "Italy" })
    .ToList();

foreach (var user in adultiItaliani)
{
    Console.WriteLine($"{user.Name} è un adulto italiano");
}

Questa combinazione è particolarmente potente per filtrare DTO complessi, validare oggetti di dominio o implementare query su collezioni in memoria.

Pattern relazionali e logici


I pattern relazionali (>, <, >=, <=) combinati con i pattern logici (and, or) permettono di esprimere range e condizioni composite in modo molto naturale:

foreach (var user in users)
{
    if (user.Age is > 18 and < 60)
    {
        Console.WriteLine($"{user.Name} è un adulto lavorativo");
    }
    else if (user.Age is < 18 or > 60)
    {
        Console.WriteLine($"{user.Name} appartiene a una categoria di età speciale");
    }
}

Switch Expression


La switch expression (introdotta in C# 8) è una versione compatta e restituisce un valore. Elimina la verbosità del tradizionale switch statement:

foreach (var user in users)
{
    var categoria = user.Age switch
    {
        < 13 => "Bambino",
        < 20 => "Adolescente",
        < 60 => "Adulto",
        _     => "Senior"
    };

    Console.WriteLine($"{user.Name} => {categoria}");
}

Rispetto allo switch classico, la versione expression è più concisa, obbliga a coprire tutti i casi (o aggiungere il wildcard _) e restituisce direttamente un valore senza variabili intermedie.

Pattern Type + Condition


Il pattern di tipo permette di verificare il tipo di un oggetto e aggiungere una condizione contemporaneamente:

object value = 150;

// Modo tradizionale
if (value is int number && number > 100)
{
    Console.WriteLine("Numero grande (vecchio stile)");
}

// Con pattern matching
if (value is int and > 100)
{
    Console.WriteLine("Numero grande (pattern matching)");
}

Questo è particolarmente utile quando si lavora con object, dynamic, o con gerarchie di tipi complesse.

List Pattern (C# 11+)


Introdotto in C# 11, il list pattern consente di matchare la struttura e il contenuto di array e liste:

int[] nums = { 1, 2, 3 };

if (nums is [1, 2, 3])
{
    Console.WriteLine("Match esatto");
}

if (nums is [1, .., 3])
{
    Console.WriteLine("Inizia con 1 e finisce con 3");
}

if (nums is [_, _, _])
{
    Console.WriteLine("Array con esattamente 3 elementi");
}

Il slice pattern .. è molto flessibile: può matchare zero o più elementi nel mezzo di una sequenza. Questo pattern è molto utile per validare payload di API che arrivano come array, controllare header HTTP, o verificare strutture di dati fisse.

Positional Pattern

var point = new Point(10, 20);

if (point is (10, 20))
{
    Console.WriteLine("Il punto è (10,20)");
}

// Con switch expression
var descrizione = point switch
{
    (0, 0) => "Origine",
    (_, 0) => "Sull'asse X",
    (0, _) => "Sull'asse Y",
    _      => $"Punto generico ({point.X},{point.Y})"
};
Console.WriteLine(descrizione);

Il positional pattern decostruisce l’oggetto usando il metodo Deconstruct (disponibile automaticamente per i record) e permette di matchare ogni componente individualmente.

Combined Pattern: la vera potenza


Combinare più pattern insieme permette di esprimere logica di business complessa in modo dichiarativo:

foreach (var user in users)
{
    if (user is
        {
            Age: > 18,
            Address.Country: "Italy",
            Roles: ["Admin", ..]
        })
    {
        Console.WriteLine($"{user.Name} è un admin adulto italiano");
    }
}

Questo esempio combina property pattern annidato, relational pattern e list pattern in un’unica espressione. In scenari reali, questa tecnica è applicabile per authorization checks, validazione di DTO, o routing di request handler.

Null Pattern

User? maybeUser = null;

if (maybeUser is not null)
{
    Console.WriteLine("L'utente esiste");
}
else
{
    Console.WriteLine("L'utente è null");
}

Il null pattern con is not null è semanticamente più preciso di != null in contesti di nullable reference types, ed è la forma raccomandata nelle linee guida di C# moderno.

Guard Clause nelle switch expression

int number = 7;

var result = number switch
{
    int n when n % 2 == 0 => "Pari",
    int n when n % 2 != 0 => "Dispari",
    _ => "Sconosciuto"
};

Console.WriteLine(result);

La clausola when aggiunge una condizione aggiuntiva a un pattern. Utile quando il solo pattern non è sufficiente a discriminare i casi.

Request Handling pattern


Un esempio pratico di uso combinato in un sistema di routing delle request:

foreach (var request in requests)
{
    var response = request switch
    {
        { Source: "System", Priority: > 5 } => "Richiesta di sistema critica",
        { Source: "User",   Priority: <= 5 } => "Richiesta utente normale",
        _ => "Fallback generico"
    };

    Console.WriteLine($"{request.Source} ({request.Priority}) => {response}");
}

Questo schema è applicabile in moltissimi contesti: event sourcing, command dispatcher, middleware pipeline, validazione di business rules.

Considerazioni sulle performance


Oltre alla leggibilità, il pattern matching in C# è progettato per essere efficiente. Il compilatore ottimizza le switch expression in jump table o sequenze di confronto ottimizzate. Per tipi primitivi, le performance sono equivalenti o superiori a catene di if-else.

Per scenari di alta performance con molti branch (es. parser, protocol handler), vale la pena misurare con BenchmarkDotNet, ma nella stragrande maggioranza dei casi applicativi il pattern matching non introduce overhead significativo.

Conclusione


Il pattern matching in C# è uno strumento che va ben oltre il semplice is o lo switch. Combinando property pattern, list pattern, relational pattern e switch expression, è possibile scrivere logica complessa in modo dichiarativo e leggibile.

La chiave per sfruttarlo al meglio è conoscere tutti i tipi di pattern disponibili e riconoscere le situazioni in cui possono sostituire costrutti più verbosi. Un codice che legge come il problema che risolve è un codice di qualità superiore.

Il codice sorgente di esempio è disponibile su GitHub: github.com/elmahio-blog/Patter…


Fonte originale: Pattern matching in C#: Advanced scenarios you didn’t know — elmah.io Blog


The Privacy Post ha ricondiviso questo.

Schleswig-Holstein ist ganz vorne mit dabei, wenn es um die Entwicklung von Überwachungs-Dystopien geht. Das schwarz-grün regierte Bundesland will sich Verhaltensscanner, Echtzeit-Gesichtserkennung, Internet-Gesichtersuche, Datenanalyse a la Palantir und eine Ausweitung der Videoüberwachung erlauben. Ach ja: Bis zu acht Wochen Prophylaxe-Haft für Menschen, die in Freiheit womöglich Ordnungswidrigkeiten begehen, kommen auch noch dazu. Expert*innen gehen mit dem Entwurf hart ins Gericht. Heute wurde er erstmals im Landtag verhandelt. netzpolitik.org/2026/polizeige…
The Privacy Post ha ricondiviso questo.

Heute haben die Abgeordneten im Landtag von Schleswig-Holstein erstmals eine Novelle des Polizeigesetzes diskutiert. Es geht um Verhaltensscanner und Gesichtserkennung. Expert*innen zweifeln, ob das Gesetz verfassungsgemäß ist; die Opposition warnt vor einer Dystopie. netzpolitik.org/2026/polizeige…
The Privacy Post ha ricondiviso questo.

Il Garante per la protezione dei dati personali partecipa alla Race for the Cure, l’iniziativa di Komen Italia

Il 7 e 8 maggio, al Circo Massimo, all’interno del Villaggio della Salute, il #GarantePrivacy sarà presente con uno spazio informativo dedicato al diritto all’oblio oncologico. Sarà un’occasione aperta a tutti per ricevere informazioni e orientamento su come esercitare tale diritto nei confronti di banche, assicurazioni, datori di lavoro e nell’ambito delle procedure di adozione

@Privacy Pride

gpdp.it/home/docweb/-/docweb-d…

The Privacy Post ha ricondiviso questo.

:fsfe: May Newsletter! 🗞️

🔸 April brought LLW, where we gathered with Legal Network members
🔹 #DMA legislation is keeping us busy: we are exposing how Apple keeps blocking third-party developers, denying their interoperability requests.
🔸 On a brighter note, over ten years of advocacy paid off: the @EUCommission is protecting users' right to install any software on radio devices. 🚀
🔹 And we reached episode 50 in our SFP!🎧 🎉

fsfe.org/news/nl/nl-202605.en.…
#SoftwareFreedom #RED #Freesoftware

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.

🎙️ BREAKING NEWS!!1! noyb has filed a #GDPR complaint against #Linkedin 📝 Why? The #Microsoft​ subsidiary tracks the visits to profile pages. However, if you want to see who has visited your own profile, you have to pay. 💸

To learn more, visit: noyb.eu/en/linkedin-locks-your…

The Privacy Post ha ricondiviso questo.

1 Jahr Merz-Regierung, 1 Jahr Intransparenz: Schon vor ihrem Amtsantritt wollte die CDU das Informationsfreiheitsgesetz abschaffen. Seit dem setzt die schwarz-rote Koalition immer wieder auf Abschottung und Schweigen, anstatt gesetzlichen Auskunftspflichten nachzukommen. Das ist gefährlich, denn gerade mehr Transparenz könnte autoritären Entwicklungen und Desinformation etwas entgegensetzen.

Die ganze Bilanz lest ihr bei den Kolleg*innen von @netzpolitik_feed

netzpolitik.org/2026/ein-jahr-…

The Privacy Post ha ricondiviso questo.

Eine Recherche von @ckoever und @yoshiXYZ wurde mit einem Sonderpreis bei der Verleihung des Datenschutz Medienpreises prämiert. Wir freuen uns sehr über die Auszeichnung und gratulieren den Kolleg:innen! 🍾 🎉 🏆

netzpolitik.org/2026/datenschu…

The Privacy Post ha ricondiviso questo.

EDRi condemns Zambia's de facto cancellation of #RightsCon2026 following Chinese pressure.

This violates freedom of expression & assembly and further strains the digital rights and democracy community at a critical moment.

We stand with @accessnow.bsky.social and Bloggers for Zambia.

Full statement → epd.eu/news-publications/state…

reshared this

The Privacy Post ha ricondiviso questo.

Von Katherina Reiches Lobby-Gipfel in den Alpen bis zu Wolfram Weimers Buchhandlungspreis: Das erste Jahr Schwarz-Rot ist geprägt von skandalöser Intransparenz und zähem Ringen um Informationsfreiheit.

Der vielleicht größte Umbruch: Unter Bundeskanzler Friedrich Merz ist Transparenz erstmals seit langem kein politisches Ziel mehr.

Eine vernichtende Bilanz zum Einjährigen von @fragdenstaat @lobbycontrol & @a_watch

Aufgeschrieben von @roofjoke

netzpolitik.org/2026/ein-jahr-…

Questa voce è stata modificata (3 mesi fa)
in reply to netzpolitik.org

Und wie steht es jetzt mit dem Auskunftverhalten der Merz Regierung nachdem BlackRock am DAX so viel verdient hat? Da gab es doch neulich eine Dividenden Rekord Ausschüttung? abgeordnetenwatch.de/recherche…
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.

Redaktionsbesuch bei netzpolitik.org: Teresa Sickert führt euch fürs Medienmagazin von radio eins (rbb) durch unser Büro, spricht mit Chefredaktion und Geschäftsführung. Danke für das schöne Porträt unserer Arbeit! Mittendrin erzähle ich von unseren Recherchen mit @br_data zu den #DatabrokerFiles.

🎧 (37 min) ardsounds.de/episode/urn:ard:e…

The Privacy Post ha ricondiviso questo.

Taking stock: The Impact of the India AI Impact Summit 2026
fpf.org/blog/taking-stock-the-…
@privacy
India’s hosting of the AI Impact Summit 2026 was an ambitious undertaking. With 600,000 attendees and 92 signatories to the New Delhi Declaration, the Summit was a showcase of a Global South country taking a leading role in shaping the AI governance agenda. The Summit’s official framing centered on infrastructure, compute, and equitable

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.

«I feed RSS mi portano più traffico di Google» dal Blog di Terence Eden

Ho letto di recente un post sul blog di Susam in cui si affermava che "la maggior parte del traffico verso il mio sito web personale proviene ancora dai feed web" - mi chiedevo se fosse vero anche per il mio sito.
Ecco le visualizzazioni del mio blog negli ultimi 28 giorni.

Il post di @eden

shkspr.mobi/blog/2026/05/rss-f…

@eticadigitale


RSS Feeds Send Me More Traffic Than Google

shkspr.mobi/blog/2026/05/rss-f…
Yeah yeah, I know, data-point of 1.

I recently read Susam's blog post where they said that "most of the traffic to my personal website still comes from web feeds" - I wondered if that was true for my site.

I've been writing this blog for a while. I've never much bothered with "aggressive" SEO - I have a fairly semantic layout, all my reviews have metadata, and stuff like that - but I'm not cramming in keywords, using AMP, or whatever other chickens Google requires to be sacrificed for a higher ranking. Nevertheless, I do OK.

Last year, I added a bit of local-only, lightweight statistics-gathering to my blog. I can see which sites people click on to reach mine. Google is right up the top, DuckDuckGo is surprisingly high, Bing is lucky to crack the top 20 on any day. Similarly, I can see how much traffic I get from the Fediverse and BlueSky (Twitter has all but vanished).

A few weeks ago I added RSS and Newsletter tracking. These data are very lossy. If someone is subscribed to my RSS feed and opens a post and their client downloads a lazy-loaded image at the end of the post, I get a hit. For email it's broadly the same. If an email is opened and the tracker image is loaded, I get a hit (although Gmail does obfuscate that somewhat).

I'm not looking for super-accurate numbers (although I do block as many AI crawlers and bots as possible). I'm not creepily following people around the web nor am I trying to sell them anything. I just want a rough idea of where people find me.

Here are my blog's views for the last 28 days.
Atom 13774. Google 10833. RSS 10419. DuckDuckGo 2302. Email 2123.
Some months I get a surge of hits from link aggregators like HN or Reddit. Sometimes I'm linked to from a popular site or cited in academic work. But most of the time I bumble along getting hits from here, there, and everywhere. Nevertheless, it's lovely to see so many people choosing to subscribe0 (for free!) and astonishing that they provide more traffic than a major search engine.

Obviously, these are two very different types of traffic. People who are searching for a specific thing and stumble upon my blog are different from those who decide to like and subscribe.

But, yeah, about 25% of my traffic comes from people who have chosen to subscribe.

I'm just delighted that so many people read my random thoughts.


  1. For historic reasons, I have separate Atom and RSS feeds. Perhaps I should consider merging them? But it doesn't take much effort to publish in two subtly different formats. ↩︎

#blog #blogging #meta #statistics


The Privacy Post ha ricondiviso questo.

I ragazzi dicono di poter eludere i controlli sull'età disegnandosi dei baffi finti

Il 46% afferma che i controlli sull'età sono facili da eludere e quasi un terzo ammette di riuscire a aggirarli.

@eticadigitale

theregister.com/2026/05/04/uk_…

reshared this

The Privacy Post ha ricondiviso questo.

Speriamo che sIA FEMMINA! Evento il 19 maggio 2026
istitutoitalianoprivacy.it/202…
@informatica
Evento in presenza e online webinar martedì 19 maggio 2026 – 17:00-19:30 BINARIO F – via Marsala, 29/h – Roma – Stazione Termini Speriamo che sIA FEMMINA! Evento congiunto di Privacy She Leaders e dell’Istituto Italiano per la Privacy e la Valorizzazione dei Dati (IIP),...
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.

📰 "LinkedIn is facing a privacy complaint in Austria over a feature that lets only paying users see who’s viewed their profile on the professional social network."

Read all about it on Euractiv 👇
euractiv.com/news/linkedin-fac…

reshared this

The Privacy Post ha ricondiviso questo.

Riduci la tua impronta digitale: usa sistemi operativi orientati alla privacy come Ufficio Zero. In alternativa, Tails per attività davvero sensibili.

@sicurezza

#privacy #linux #sicurezza

The Privacy Post ha ricondiviso questo.

Immer mehr Bundesländer bekommen Kameras, die Verhalten analysieren. Nach welcher Art Bewegungen die suchen ist eine Art Black Box und kann von den Einsatzkräften auch weitgehend freihändig festgelegt werden. Davy Wang von @Freiheitsrechte hat mit mir über die grundrechtlichen Implikationen dieser Technologie gesprochen.
netzpolitik.org/2026/verhalten…
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.

La Corea del Nord ha rubato il 76% di tutte le criptovalute hackerate nel 2026: due attacchi, $577 milioni, e una macchina da guerra finanziata dal cyber
#CyberSecurity
insicurezzadigitale.com/la-cor…


La Corea del Nord ha rubato il 76% di tutte le criptovalute hackerate nel 2026: due attacchi, $577 milioni, e una macchina da guerra finanziata dal cyber


Si parla di:
Toggle

Con solo due attacchi portati a termine nel corso di quattro mesi, gli hacker nordcoreani hanno sottratto il 76% di tutti i fondi rubati in operazioni di hacking crypto nel 2026. Un dato che non è semplice statistica: è la prova di come la Corea del Nord abbia trasformato il furto di criptovalute in una macchina di finanziamento statale su scala industriale.

Il dato che cambia tutto: $577 milioni in due colpi


Secondo il report aggiornato di TRM Labs, nei primi quattro mesi del 2026 gli attori nordcoreani hanno sottratto $577 milioni in criptovalute attraverso appena due operazioni distinte: il colpo da $285 milioni contro Drift Protocol e quello da $292 milioni contro KelpDAO/LayerZero. La somma rappresenta il 76% di tutti i fondi rubati a livello globale nel settore crypto nello stesso periodo, e porta il totale attribuibile alla Corea del Nord dal 2017 a oltre $6 miliardi.

Questi numeri, da soli, raccontano una storia che va ben al di là del crimine informatico tradizionale. Il regime di Pyongyang ha costruito nel tempo un’infrastruttura offensiva sofisticatissima, capace di eseguire operazioni di ingegneria sociale protratte per mesi, sfruttare vulnerabilità architetturali in protocolli DeFi e riciclare rapidamente fondi attraverso mixer e bridge cross-chain.

L’operazione Drift: pazienza come arma principale


Il caso Drift Protocol è quello che meglio illustra l’evoluzione tattica dei gruppi nordcoreani. L’analisi on-chain effettuata dai ricercatori ha ricostruito che lo staging dell’attacco era iniziato l’11 marzo 2026 — settimane prima dell’esecuzione finale. Ma la parte più inquietante riguarda il vettore umano: secondo la ricostruzione, operatori nordcoreani si sono infiltrati nell’ecosistema Drift attraverso incontri di persona con dipendenti dell’exchange, costruendo relazioni di fiducia nel corso di mesi.

Il metodo ricorda l’attacco Bybit del 2025, quando il gruppo Lazarus riuscì ad accedere ai sistemi tramite un contractor di fiducia. La differenza è che nel caso Drift il social engineering si è spinto fino al contatto fisico diretto, segnalando una capacità operativa di intelligence umana (HUMINT) che va ben oltre il phishing tradizionale. Gli analisti hanno ipotizzato che gli operatori nordcoreani stiano ora integrando strumenti di intelligenza artificiale nei flussi di ricognizione e ingegneria sociale.

L’operazione KelpDAO: vulnerabilità architetturali nei bridge cross-chain


Il secondo attacco, da $292 milioni contro KelpDAO tramite un bridge LayerZero, segue una logica completamente diversa ma altrettanto raffinata. Gli attaccanti hanno identificato e sfruttato un design flaw nel modello a singolo verificatore del bridge cross-chain, che permetteva la manipolazione dei messaggi tra chain Ethereum e Arbitrum. Dopo aver drenato i fondi, il gruppo ha tentato di riciclare i proventi attraverso THORChain, sebbene circa $75 milioni siano stati congelati su Arbitrum grazie all’intervento tempestivo di Uniswap e altri protocolli.

L’attribuzione di questo secondo attacco è stata attribuita a un gruppo distinto dal Lazarus Group classico — indicando che la Corea del Nord mantiene più unità cyber parallele specializzate in diversi vettori di attacco, con una struttura organizzativa comparabile a quella di un’agenzia di intelligence statale.

Il quadro strategico: il crypto come motore del programma nucleare


Per comprendere la portata di queste operazioni è necessario inquadrarle nel contesto geopolitico. Le Nazioni Unite e diversi governi occidentali hanno più volte documentato come i fondi rubati dalla Corea del Nord finanzino direttamente il programma missilistico e nucleare del regime. Con il sistema bancario nordcoreano quasi completamente escluso dal sistema finanziario internazionale a causa delle sanzioni, il crimine crypto è diventato una delle principali fonti di valuta estera.

Il modello operativo si è raffinato nel tempo: nelle prime operazioni del Lazarus Group (2016-2019) si ricorreva principalmente a spear phishing contro exchange centralizzati. Dal 2020 in poi l’attenzione si è spostata progressivamente verso i protocolli DeFi — più difficili da congelare, con meno meccanismi di KYC/AML, e spesso caratterizzati da vulnerabilità architetturali nei contratti smart o nei bridge.

Tattiche, tecniche e indicatori di compromissione (TTPs)


I pattern ricorrenti nelle operazioni nordcoreane contro il settore crypto includono:

  • Social engineering prolungato: infiltrazione nelle community, creazione di identità false su LinkedIn e GitHub, costruzione di relazioni di fiducia per mesi prima dell’attacco.
  • Targeting dei bridge cross-chain: sfruttamento di vulnerabilità nei protocolli di interoperabilità, spesso caratterizzati da minore maturità di sicurezza rispetto ai layer base.
  • Riciclaggio tramite THORChain e mixer: uso di protocolli decentralizzati per frammentare e offuscare il trail on-chain dei fondi rubati.
  • Insider threat via contractor: inserimento di operatori nordcoreani travestiti da sviluppatori o consulenti all’interno di team crypto legittimi.


Due parole per i difensori


Per i protocolli DeFi e gli exchange crypto, la minaccia nordcoreana richiede una risposta che vada oltre i controlli tecnici tradizionali. Il vettore umano è oggi il punto di ingresso primario: ogni processo di hiring di sviluppatori e contractor dovrebbe includere verifiche rafforzate dell’identità, con particolare attenzione ai profili che non possono essere verificati fisicamente o che mostrano pattern comportamentali anomali (riluttanza ai video call, timezone inconsistenti con la localizzazione dichiarata).

Sul fronte tecnico, la priorità dovrebbe essere la revisione dei modelli di fiducia nei bridge cross-chain: la dipendenza da un singolo verificatore o da un set ristretto di validatori crea un single point of failure che gli attaccanti sanno come sfruttare. I programmi di bug bounty con scope allargato ai bridge e ai contratti di interoperabilità sono diventati una necessità, non un’opzione.

Infine, la coordinazione con le agenzie di intelligence e i partner di blockchain analytics (TRM Labs, Chainalysis, Elliptic) al momento della scoperta di un’anomalia può fare la differenza tra il recupero parziale dei fondi e la perdita totale — come dimostra il congelamento di $75 milioni su Arbitrum nel caso KelpDAO.


The Privacy Post ha ricondiviso questo.

Gerade gibt es bundesweit Bestrebungen, Überwachungskameras mit Systemen zu koppeln, die vollautomatisiert erkennen, was die abgebildeten Menschen gerade tun. Davy Wang von der Gesellschaft für Freiheitsrechte erklärt, warum das eine schlechte Idee ist.
netzpolitik.org/2026/verhalten…
The Privacy Post ha ricondiviso questo.

Das ist heftig:

China positioniert sich gerne als Partner für den Globalen Süden und hat durch die Finanzierung und Umsetzung von Infrastrukturprojekten in den vergangenen Jahrzehnten massive Abhängigkeiten geschaffen. Jetzt soll die Volksrepublik diese Macht genutzt haben, um die #RightsCon in Sambia zu verhindern, eine der wichtigsten Konferenzen für Grund- und Menschenrechte in der digitalen Welt.

Der mutmaßliche Grund: Konferenzteilnehmende aus Taiwan.

netzpolitik.org/2026/konferenz…

Questa voce è stata modificata (3 mesi fa)
The Privacy Post ha ricondiviso questo.

🚨 NHS England should not hide public code behind closed doors

England’s National Health Service (#NHS England) is preparing to make most of its public source code repositories private by default, according to recent reports. 🫣

The reported internal guidance would require public repositories to be made private unless an explicit exception is approved.

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

#SoftwareFreedom #FreeSoftware

reshared this

in reply to Free Software Foundation Europe

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

I believe Terence Eden's blog from last Friday is revelant here too: shkspr.mobi/blog/2026/05/nhs-g…


NHS Goes To War Against Open Source

shkspr.mobi/blog/2026/05/nhs-g…
The NHS is preparing to close nearly all of its Open Source repositories.

Throughout my time working for the UK Government - in GDS, NHSX, i.AI, and others - I championed Open Source. I spoke to dozens of departments about it, wrote guidance still in use today, and briefed Ministers on why it was so important.

That's why I'm beyond disappointed at recent moves from NHS England to backtrack on all the previous commitments they've made about the value of open source to the UK's health service.

It's rare that multiple people leak the same story to me, but that's what gives me confidence that lots of people within the NHS are aghast at this news.

A few days ago, I was sent this quote which was attributed to a senior technical person in NHS England.

We are obviously looking at things like Mythos, which is more sophisticated at finding vulnerabilities. In the next week or so, we will be changing our tack on coding the open and making our code public until we're on top of that risk.

Most of our repos, unless they're essential, will be removed for security reasons.


As I've written before, this is not the correct response to the purported threat by Mythos. Neither the AI Safety Institute nor the NCSC recommend this action. While there may be some increase in risk from AI security scanners, to shutter everything would be a gross overreaction.

Nevertheless, that's what the NHS is preparing to do.

On the 29th of April, guidance note SDLC-8 was sent out. Here's what it says:
All source code repositories must be private by default. Repositories may be internal where there is a legitimate need for visibility within the enterprise. Repositories must not be public unless there is an explicit and exceptional need, and public access has been formally approved by the Engineering Board. Purpose Public repositories materially increase the risk of unintended disclosure of source code, architectural decisions, configuration detail, and contextual information that may be exploited — particularly given rapid advancements in Al models capable of large-scale code ingestion, inference, and reasoning (e.g. developments such as the Mythos model). This red line establishes a default-closed posture for code while the organisation assesses the impact of these changes and ensures that any public publication of code is a deliberate, reviewed, and justified decision. • For P&P Public repositories we will switch to Private on Monday the 11th May 2026 • Teams that have a need for an exemption need to declare this to the Engineering mailbox by COP Wednesday 6th May 2026 • Teams can change to private at any time ahead of this • Central tracking of public repositories: NHSE public repositories.xlsx
The majority of code repos published by the NHS are not meaningfully affected by any advance in security scanning. They're mostly data sets, internal tools, guidance, research tools, front-end design and the like. There is nothing in them which could realistically lead to a security incident.

When I was working at NHSX during the pandemic, we were so confident of the safety and necessity of open source, we made sure the Covid Contact Tracing app was open sourced the minute it was available to the public. That was a nationally mandated app, installed on millions of phones, subject to intense scrutiny from hostile powers - and yet, despite publishing the code, architecture and documentation, the open source code caused zero security incidents.

Furthermore, this new guidance is in direct contradiction to the UK's Tech Code of Practice point 3 "Be open and use open source" which insists on code being open.

Similarly, the Service Standard says:

There are very few examples of code that must not be published in the open.

The main reason for code to be closed source is when it relates to policy that has not yet been announced. In this case, you must make the code open as soon as possible after the policy is published.

You may also need to keep some code closed for security reasons, for example code that protects against fraud. Follow the guidance on code you should keep closed and security considerations for open code.


There's also the DHSC policy "Data saves lives: reshaping health and social care with data":

Commitment 601 – completed May 2022

We will publish a digital playbook on how to open source your code for health and care organisations


And, here's NHS Digital's stance on open source in their Software Engineering Quality Framework:

The position of all three of these documents is that we should code in the open by default.


All of which is reflected in the NHS service standard:

Public services are built with public money. So unless there's a good reason not to, the code they're based should be made available for other people to reuse and build on.


All of which is to say - open source should be baked into the DNA of the NHS by now. There are thousands of NHS repositories on GitHub. The work undertaken to assess all of them and then close them will be massive. And for what?

Even if we ignore the impracticality of closing all the code - it is too late! All that code has already been slurped up. If Mythos really is the ultimate hacker, hiding the code now does nothing. It has likely already retained copies of the repositories.

And if it were both practical and effective to hide source code - that doesn't matter. These AI tools are just as effective against closed-source. They can analyse binaries and probe websites with ease.

There are tens of thousands of NHS website pages which refer to their GitHub repos - will they all need to be updated? What's the cost of that?

I've no idea what led to NHS England making this retrograde decision - so I've send a Freedom of Information request to find out.

I am convinced that closing all their excellent open source work is the wrong move for the NHS. I hope they see sense and reverse course.

Until then, I've helped make sure that every single NHS repository has been backed up and, because the software licence permits it, can be re-published if the original is closed.

In the meantime, you should email your MP and tell them that the NHS is wrong to shutter its world-leading open source repositories.

Don't let them take away your right to see the code which underpins our nation's healthcare.


Further Reading



#government #nhs #OpenSource #politics


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 Apache HTTP Server 2.4.67 Patches RCE Flaw CVE-2026-23918 — Upgrade All Servers Immediately
#CyberSecurity
securebulletin.com/critical-ap…
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.

Jenkins Secret Guard Plugin: blocca i segreti hardcoded nelle pipeline CI/CD
#tech
spcnet.it/jenkins-secret-guard…
@informatica


Jenkins Secret Guard Plugin: blocca i segreti hardcoded nelle pipeline CI/CD


I segreti hardcoded nelle pipeline Jenkins sono uno dei problemi di sicurezza più sottovalutati nell’ecosistema CI/CD. Token API incollati direttamente in un campo di configurazione durante un test rapido, URL di webhook con query parameter segreti rimasti nel config.xml, header di autorizzazione in Jenkinsfile scritti una volta e mai più rivisti: situazioni ordinarie che, però, aprono falle di sicurezza concrete e difficili da intercettare manualmente.

Il nuovo Secret Guard Plugin per Jenkins è stato creato esattamente per risolvere questo problema: un plugin focalizzato, deterministico e pronto per ambienti di produzione che analizza le configurazioni Jenkins e le Pipeline alla ricerca di pattern ad alto rischio di esposizione di segreti.

Cosa analizza Secret Guard


Il plugin esamina le posizioni più comuni dove i segreti finiscono per errore:

  • File config.xml dei job
  • Script Pipeline inline
  • Jenkinsfile recuperati da SCM (quando è disponibile l’accesso SCM leggero)
  • Valori di default dei parametri
  • Definizioni di variabili d’ambiente
  • Contenuto di comandi come sh, bat, powershell e chiamate HTTP

L’approccio è intenzionalmente stretto nel perimetro: Secret Guard non cerca di essere uno strumento di governance generalista né un analizzatore di qualità del codice. Si concentra su pattern ad alta confidenza e ben documentati, riducendo il rumore prodotto da euristiche troppo aggressive.

Un esempio pratico


Il caso più frequente è una Pipeline che incorpora un token direttamente in una variabile d’ambiente o in un header HTTP. Ecco un Jenkinsfile problematico:

pipeline {
    agent any
    environment {
        API_TOKEN = 'ghp_012345678901234567890123456789012345'
    }
    stages {
        stage('Call API') {
            steps {
                sh "curl -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.abc123456789' https://api.example.com"
            }
        }
    }
}

Una volta che questo segreto è memorizzato nella configurazione del job, diventa difficile da ruotare e facile da esporre tramite export, backup, log o screenshot. Secret Guard rileva questi pattern prima che diventino un problema.

Il pattern corretto prevede di archiviare il segreto nelle Jenkins Credentials e iniettarlo solo a runtime:

pipeline {
    agent any
    stages {
        stage('Call API') {
            steps {
                withCredentials([string(credentialsId: 'api-token', variable: 'API_TOKEN')]) {
                    sh 'curl -H "Authorization: Bearer $API_TOKEN" https://api.example.com'
                }
            }
        }
    }
}

Con questo approccio, il valore del token non compare mai nel codice sorgente né nella configurazione del job: viene risolto da Jenkins solo al momento dell’esecuzione e mascherato automaticamente nei log.

Modalità di utilizzo


Secret Guard può essere usato in diversi contesti pratici:

  • Enforcement al salvataggio: blocca o segnala configurazioni di job che introducono segreti hardcoded nel momento in cui vengono salvate
  • Scansione a runtime: analizza la Pipeline durante l’esecuzione del build
  • Scan a livello di job: tramite l’azione “Scan Now” disponibile sulla pagina del job
  • Scan globale: la pagina amministrativa “Secret Guard” permette di analizzare tutti i job con un solo click

I risultati vengono archiviati in forma mascherata: gli amministratori possono esaminare i findings senza che i valori raw vengano persistiti nei report del plugin.

Tre livelli di enforcement


Per consentire un’adozione graduale, il plugin supporta tre modalità configurabili:

  • AUDIT: registra i findings senza bloccare nulla, ideale come punto di partenza per capire la situazione attuale
  • WARN: l’operazione viene completata ma il rischio viene segnalato esplicitamente
  • BLOCK: impedisce il salvataggio o l’esecuzione quando vengono trovati findings non esentati al di sopra della soglia configurata

Questa progressione permette di partire con la visibilità (AUDIT) e spostarsi verso un enforcement più rigoroso man mano che i team sanano i problemi esistenti.

Installazione


Il plugin è disponibile nel Jenkins Plugin Manager con il nome secret-guard. L’installazione è standard: Manage Jenkins → Plugins → Available plugins → cerca “Secret Guard”. Dopo il riavvio, la pagina “Secret Guard” apparirà nel menu di amministrazione globale.

Conclusione


Secret Guard colma un gap reale nelle pipeline Jenkins: la mancanza di uno strumento specifico, leggero e a basso rumore per intercettare i segreti hardcoded prima che finiscano in backup, log o nelle mani sbagliate. L’approccio deterministico — in contrapposizione all’inferenza AI o alle euristiche generiche — lo rende particolarmente adatto agli ambienti di produzione dove la prevedibilità del comportamento è critica.

Per team che già usano Jenkins in modo intensivo, introdurlo in modalità AUDIT per qualche settimana prima di passare a WARN o BLOCK è la strategia più sicura per ottenere subito visibilità senza interrompere i workflow esistenti.

Fonte: Introducing the Secret Guard Plugin – Jenkins Blog


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.

Microsoft Edge Stores Your Entire Password Vault in Cleartext Process Memory — Every Session
#CyberSecurity
securebulletin.com/microsoft-e…
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.

Gemma 4 con Ollama e .NET Aspire: LLM in locale con il visualizzatore GenAI completo
#tech
spcnet.it/gemma-4-con-ollama-e…
@informatica


Gemma 4 con Ollama e .NET Aspire: LLM in locale con il visualizzatore GenAI completo


Se hai già usato l’integrazione Azure Foundry o Azure OpenAI in .NET Aspire, conosci già quella funzionalità: il visualizzatore GenAI che mostra le conversazioni con il modello all’interno del dashboard di tracing. Fai clic su una traccia, scorri fino alla chiamata LLM, e appare una piccola icona “sparkles”. Cliccandola, si apre un pannello con il log completo: system prompt, messaggio utente, risposta del modello, tool call, conteggio token e finish reason.

A prima vista sembra una funzionalità esclusiva di Azure Foundry. Non lo è. Il dashboard Aspire non controlla se gen_ai.system == "openai" né fa chiamate ad Azure. Si basa sulle OpenTelemetry GenAI semantic conventions: qualsiasi backend che emette span gen_ai.* con la forma corretta ottiene lo stesso trattamento. Ollama, LM Studio, llama.cpp — se espone un’API compatibile con OpenAI Chat Completions, può illuminare lo stesso popup.

Questo articolo mostra come configurare Ollama con il modello Gemma 4 in locale e ottenere il visualizzatore GenAI completo nel dashboard Aspire, senza Azure e senza costi cloud.

Perché eseguire LLM in locale?


I motivi sono diversi a seconda del contesto:

  • Compliance e data privacy: i dati non escono dall’infrastruttura aziendale.
  • Costi prevedibili: niente fatture cloud che raddoppiano durante i picchi di sviluppo AI.
  • Sviluppo offline: il modello funziona anche senza connessione Internet.
  • Iterazione rapida: nessun rate limit durante i test intensivi.


Il meccanismo: OpenTelemetry GenAI conventions


Il dashboard Aspire renderizza il visualizzatore GenAI quando trova span con questi attributi OpenTelemetry:

  • gen_ai.operation.name (es. chat, embedding)
  • gen_ai.request.model — il modello richiesto
  • gen_ai.response.model — il modello che ha risposto
  • gen_ai.input.messages — il prompt, serializzato in JSON
  • gen_ai.output.messages — la risposta, serializzata in JSON
  • gen_ai.usage.input_tokens / gen_ai.usage.output_tokens
  • gen_ai.response.finish_reasons

Quando uno span con questi attributi appare nella vista traces sull’activity source Experimental.Microsoft.Extensions.AI, il dashboard aggiunge l’icona sparkles e mostra il popup.

IChatClient è l’astrazione di Microsoft.Extensions.AI per qualsiasi cosa a cui si possano inviare messaggi chat. Azure OpenAI, Ollama e i modelli locali la implementano direttamente o si adattano ad essa. Il wrapper OpenTelemetry che ci interessa sa solo come tracciare oggetti con la forma di IChatClient.

Le quattro cose da configurare


Per ottenere il visualizzatore GenAI con un modello locale servono esattamente quattro elementi:

  1. Un’integrazione di hosting che esegue il backend del modello come risorsa Aspire e produce una connection string.
  2. Un IChatClient nel servizio consumer, decorato con UseOpenTelemetry() e content capture abilitato.
  3. La registrazione della sorgente di tracing in ServiceDefaults per far fluire gli span GenAI nel tracer provider.
  4. Il toggle di content capture, tramite variabile d’ambiente o via UseOpenTelemetry. Senza di esso il popup appare ma i messaggi sono vuoti.

Mancarne anche solo uno produce output silenziosamente degradato: senza il punto 3 gli span non escono dal processo; senza il punto 4 il popup è vuoto; senza il punto 2 si ottengono solo span HTTP generici.

1. Integrazione hosting: Ollama come risorsa Aspire


Aspire non include un’integrazione Ollama out of the box. Il Community Toolkit ne ha una, ma costruirla da zero mostra il pattern applicabile a qualsiasi backend OpenAI-compatible.

In una nuova class library referenziata dall’AppHost (con il package Aspire.Hosting):

public sealed class OllamaResource(string name)
    : ContainerResource(name), IResourceWithConnectionString
{
    internal const string PrimaryEndpointName = "http";
    private EndpointReference? _primaryEndpoint;

    public EndpointReference PrimaryEndpoint =>
        _primaryEndpoint ??= new EndpointReference(this, PrimaryEndpointName);

    public ReferenceExpression ConnectionStringExpression =>
        ReferenceExpression.Create(
            $"Endpoint={PrimaryEndpoint.Property(EndpointProperty.Url)}");
}

public static class OllamaResourceBuilderExtensions
{
    public static IResourceBuilder<OllamaResource> AddOllama(
        this IDistributedApplicationBuilder builder,
        string name,
        int? port = null)
    {
        var resource = new OllamaResource(name);
        return builder.AddResource(resource)
            .WithImage("ollama/ollama", "latest")
            .WithHttpEndpoint(port: port ?? 11434, targetPort: 11434, 
                             name: OllamaResource.PrimaryEndpointName)
            .WithVolume("ollama-data", "/root/.ollama");
    }
}

Nell’AppHost si aggiunge la risorsa Ollama e si collega al servizio che la usa:
var ollama = builder.AddOllama("ollama")
    .WithModel("gemma4:e2b");

var api = builder.AddProject<Projects.ScrumSummary_Api>("api")
    .WithReference(ollama)
    .WaitFor(ollama);

2. IChatClient con OpenTelemetry nel servizio consumer


Nel servizio che usa il modello, si registra il client con la catena di decoratori corretta:

builder.Services.AddSingleton(sp =>
{
    var connectionString = builder.Configuration.GetConnectionString("ollama")!;
    var endpoint = new Uri(connectionString.Replace("Endpoint=", ""));

    return new OllamaApiClient(endpoint)
        .AsChatClient("gemma4:e2b")
        .AsBuilder()
        .UseOpenTelemetry(configure: options =>
        {
            // Abilita la cattura del contenuto dei messaggi
            options.EnableSensitiveData = true;
        })
        .Build();
});

Il flag EnableSensitiveData = true è il toggle critico. Senza di esso, il popup nel dashboard compare ma non mostra i messaggi (per motivi di privacy è disabilitato di default).

3. Registrazione della sorgente di tracing in ServiceDefaults


Nel progetto ServiceDefaults, aggiungere la sorgente activity di Microsoft.Extensions.AI:

builder.Services.AddOpenTelemetry()
    .WithTracing(tracing =>
    {
        tracing
            .AddAspNetCoreInstrumentation()
            .AddHttpClientInstrumentation()
            // Questa è la riga chiave
            .AddSource("Experimental.Microsoft.Extensions.AI");
    });

Senza questa riga gli span GenAI vengono emessi ma non raggiungono l’exporter e non appaiono nel dashboard.

4. Alternative al flag EnableSensitiveData


In ambienti dove non si vuole abilitare il flag nel codice (ad esempio per motivi di compliance), si può usare la variabile d’ambiente:

DOTNET_EXTENSIONS_AI_TELEMETRY_ENABLE_SENSITIVE_DATA=true

Oppure impostarla nell’AppHost solo per i progetti in development:
var api = builder.AddProject<Projects.ScrumSummary_Api>("api")
    .WithReference(ollama)
    .WithEnvironment("DOTNET_EXTENSIONS_AI_TELEMETRY_ENABLE_SENSITIVE_DATA", "true");

Il risultato nel dashboard


Una volta configurati tutti e quattro gli elementi, ogni chiamata al modello Ollama locale appare nelle traces di Aspire come span GenAI. Cliccando sull’icona sparkles si apre il pannello con il log completo della conversazione: system prompt, messaggi utente, risposta del modello con i token usati e il finish reason — esattamente come con Azure OpenAI o Azure Foundry, ma con il modello che gira sulla propria macchina.

Generalizzare ad altri backend


Il pattern si applica a qualsiasi backend compatibile con l’API OpenAI Chat Completions: LM Studio, llama.cpp con server HTTP, vLLM. L’unico requisito è che il client implementi o si adatti a IChatClient e che il wrapper UseOpenTelemetry() venga applicato. Il resto — la registrazione del tracing, il flag di content capture — rimane identico.

Conclusione


Il visualizzatore GenAI di .NET Aspire non è un’esclusiva di Azure. È un’interfaccia costruita sopra gli standard OpenTelemetry, accessibile a chiunque emetta gli span corretti. Quattro configurazioni, nessun servizio cloud obbligatorio, e si ottiene la stessa esperienza di debugging degli LLM che si avrebbe con Azure Foundry — con Gemma 4, Ollama e tutto in locale.

Fonte: Run Gemma 4 with Ollama locally, and keep the Aspire LLM Insights (sparkles and all) — Erik Lieben


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 Android Zero-Click Vulnerability CVE-2026-0073 Allows Remote Shell Access Without User Interaction
#CyberSecurity
securebulletin.com/critical-an…
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.

Fine del supporto NGINX Ingress su AKS: guida alla migrazione verso Gateway API
#tech
spcnet.it/fine-del-supporto-ng…
@informatica


Fine del supporto NGINX Ingress su AKS: guida alla migrazione verso Gateway API


Se gestisci workload su Azure Kubernetes Service (AKS), nelle ultime settimane potresti aver ricevuto un’email da Microsoft che annuncia la fine del supporto per NGINX Ingress su AKS entro novembre 2026. Non si tratta di una comunicazione da ignorare: la migrazione è inevitabile e conviene pianificarla per tempo. In questo articolo vediamo cosa sta succedendo, perché è successo e cosa fare concretamente.

Il contesto: perché Ingress è diventato obsoleto


La risorsa Ingress di Kubernetes nasce con una specifica intenzionalmente minimale: regole di host e path, niente di più. Ma i load balancer cloud (AWS, Azure, GCP e altri) sono in grado di fare molto di più — timeout configurabili, retry policy, routing per header, circuit breaker — e gli utenti hanno cercato di esprimere queste funzionalità tramite annotation proprietarie sulle risorse Ingress. Il risultato è stato un’esplosione di annotation non standardizzate, specifiche per ogni controller, che rendono ogni configurazione di Ingress portabile solo sulla carta.

Gateway API è la risposta della community a questo problema. Sostituisce Ingress con risorse strutturate e tipizzate — HTTPRoute, Gateway, GatewayClass — capaci di esprimere comportamenti di routing avanzati in modo nativo e standardizzato, con una separazione netta tra il ruolo del platform team (che gestisce i Gateway) e il ruolo del team applicativo (che gestisce le HTTPRoute). Gateway API è stabile dalla versione 1.28 di Kubernetes ed è la direzione verso cui si sta muovendo l’intero ecosistema.

La fine di ingress-nginx e le conseguenze su AKS


Il progetto upstream ingress-nginx — il controller Ingress più diffuso nell’ecosistema Kubernetes — è stato formalmente ritirato a marzo 2026. Il progetto era mantenuto da un esiguo gruppo di volontari, aveva accumulato debito tecnico significativo e presentava vulnerabilità di sicurezza note rimaste senza patch. Con il ritiro, qualsiasi nuova vulnerabilità scoperta rimarrà indefinitamente senza correzione.

Microsoft ha fissato la propria data di fine supporto al novembre 2026, concedendo agli utenti AKS un margine aggiuntivo. Fino ad allora, le vulnerabilità critiche continueranno a essere corrette, ma non ci sarà sviluppo di nuove funzionalità.

Chi è impattato e con quale urgenza

Installazione self-managed via Helm


Se hai installato ingress-nginx manualmente tramite Helm, sei esposto direttamente al ritiro upstream avvenuto a marzo 2026. Da quel momento, qualsiasi vulnerabilità nel controller resta senza patch: mantenerlo in produzione è un rischio di sicurezza crescente nel tempo.

AKS Application Routing add-on


Se usi l’add-on gestito di AKS abilitato con --enable-app-routing, hai tempo fino a novembre 2026. Microsoft garantisce patch per le vulnerabilità critiche fino a quella data. È un margine utile, ma non è una soluzione permanente.

Altro controller Ingress (Traefik, Istio, HAProxy…)


Se non usi NGINX Ingress, questo annuncio non ti impatta direttamente. Vale però la pena iniziare a familiarizzare con Gateway API, che è la direzione dell’intero ecosistema Kubernetes.

Gateway API: il nuovo modello di risorse


La migrazione da Ingress a Gateway API cambia il modello di risorse con cui si lavora. Ecco un confronto diretto tra i due approcci.

Una configurazione Ingress tipica con annotation NGINX:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-app
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: app.example.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: my-api
            port:
              number: 80

La configurazione equivalente con Gateway API:
# Definito dal platform team (una volta sola)
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: my-gateway
  namespace: gateway-system
spec:
  gatewayClassName: azure-application-lb
  listeners:
  - name: http
    port: 80
    protocol: HTTP
---
# Definito dal team applicativo
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: my-app
spec:
  parentRefs:
  - name: my-gateway
    namespace: gateway-system
  hostnames:
  - app.example.com
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /api
    backendRefs:
    - name: my-api
      port: 80

Il vantaggio principale non è solo sintattico: la separazione tra Gateway e HTTPRoute permette al platform team di gestire centralmente le policy di sicurezza, TLS e throttling, mentre i team applicativi possono modificare le route senza toccare l’infrastruttura condivisa.

Piano di migrazione consigliato


Microsoft sta investendo nel supporto nativo di Gateway API nell’add-on Application Routing di AKS, con Azure Application Gateway for Containers (AGC) come backend raccomandato. I passi pratici per avviare la migrazione sono:

  1. Inventario: esegui kubectl get ingress -A -o yaml per elencare tutte le risorse Ingress e mappare le annotation nginx in uso nel cluster.
  2. Assessment delle annotation: identifica quali annotation hanno un equivalente nativo in Gateway API (la maggior parte) e quali richiedono configurazioni alternative (timeout avanzati, snippet custom).
  3. Ambiente di test: crea un cluster AKS di test con Gateway API abilitato e migra prima i workload meno critici per acquisire familiarità con il nuovo modello.
  4. Migrazione progressiva: usa la funzionalità di traffic splitting di HTTPRoute per spostare gradualmente il traffico dai vecchi Ingress alle nuove route, validando il comportamento prima di dismettere il vecchio controller.
  5. Cleanup: rimuovi le risorse Ingress e disabilita o disinstalla ingress-nginx una volta completata la validazione su tutti gli ambienti.


Conclusione


La fine di NGINX Ingress su AKS era prevedibile da quando il progetto upstream ha iniziato a mostrare segni di abbandono. La buona notizia è che Gateway API è tecnicamente superiore: più espressiva, più portabile, con una governance delle responsabilità più chiara tra platform team e team applicativi. Chi pianifica la migrazione adesso, con il margine di tempo concesso da Microsoft fino a novembre 2026, può affrontarla con calma. Chi aspetta l’ultimo momento si troverà a gestire una migrazione d’emergenza in un contesto di sicurezza degradante.

La documentazione ufficiale di Gateway API è disponibile su gateway-api.sigs.k8s.io. La roadmap di AKS per Gateway API è tracciabile nelle release note del servizio Azure.

Fonte: The End of NGINX Ingress on AKS: What You Need to Know – Trailhead Technology


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.

Es droht ein EU VPN-Verbot, weil mit deren Hilfe auch die auf Europaebene geplante #Altersverifikation umgangen werden kann. Wir #PIRATEN sagen: VPNs bieten Schutz vor Filtern und Zensur. Sie sichern das freie Internet und dürfen nicht von der EU verboten werden!
The Privacy Post ha ricondiviso questo.

🚨 Today, noyb has filed a complaint against LinkedIn. The Microsoft-subsidiary refuses to provide the data hidden behind a premium membership as part of a free access request under Article 15 GDPR.

Read all about it here 👇
noyb.eu/en/linkedin-locks-your…

LinkedIn blocca i vostri diritti GDPR dietro un paywall


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

Data Subject Rights

[strong]LinkedIn tiene traccia delle visite alle pagine del profilo. Tuttavia, se si vuole vedere chi ha visitato il proprio profilo, bisogna pagare. La filiale di Microsoft utilizza questi e altri "insight" per incentivare le persone a iscriversi all'abbonamento Premium a pagamento. Non è chiaro se questo monitoraggio dei visitatori sia legale. Ciò che è chiaro, tuttavia, è che se questi dati vengono visualizzati come parte di un abbonamento Premium, dovrebbero anche essere accessibili in risposta a una richiesta di accesso ai sensi dell'articolo 15 del GDPR. Ma LinkedIn si rifiuta di rispettare la norma, adducendo improvvisamente presunti problemi di protezione dei dati che, a quanto pare, si presentano solo in caso di richiesta di accesso.[/strong]

LinkedIn Header


Vendita di dati: Sì! Diritto di accesso: No? LinkedIn cerca costantemente di invogliare i propri utenti a sottoscrivere un abbonamento premium a pagamento. Questo viene promosso principalmente attraverso una funzione che consente agli utenti di visualizzare un elenco di tutti i visitatori del loro profilo negli ultimi 365 giorni. Anche molti altri provider cercano di utilizzare i dati degli utenti per creare un prodotto premium. Tuttavia, secondo la legge dell'UE, tali dati personali dovrebbero essere accessibili gratuitamente. Ciò pone LinkedIn di fronte a un dilemma legale: i dati nascosti dietro un abbonamento premium dovrebbero essere resi disponibili anche nell'ambito di una richiesta di accesso gratuito ai sensi dell'articolo 15 del GDPR.

LinkedIn tiene traccia delle visite al profilo. Il motivo è che i dati dei visitatori, in una certa misura, costituiscono dati condivisi tra i visitatori e coloro i cui profili vengono visitati. Tali dati sulle attività vengono spesso analizzati per personalizzare i contenuti o le pubblicità visualizzate. Sebbene LinkedIn consenta agli utenti di rinunciare a questo tracciamento, non chiede un consenso attivo (opt-in). È quindi lecito chiedersi fino a che punto la registrazione delle visite al profilo sia legale.

Martin Baumann, avvocato specializzato in protezione dei dati presso noyb: "Vendere i dati ai propri utenti è una pratica molto diffusa tra le aziende. In realtà, però, le persone hanno il diritto di ricevere gratuitamente i propri dati. È assurdo che le aziende sembrino riconoscere l'importanza della protezione dei dati solo quando vogliono venderli. Per esempio, quando LinkedIn non ha problemi a consegnare alcuni dati in cambio di denaro - ma improvvisamente si preoccupa della privacy degli altri utenti quando si esercita il diritto di accesso"

Protezione dei dati contro protezione dei dati. È particolarmente assurdo che LinkedIn utilizzi un presunto "interesse alla protezione dei dati" come argomento per negare il diritto di accesso ai dati ai sensi del GDPR. O i dati non devono essere accessibili a nessuno, oppure - se è chiaro al visitatore che i dati sono visibili - devono essere divulgati in conformità all'articolo 15 del GDPR.

Martin Baumann, avvocato specializzato in protezione dei dati presso noyb: "La protezione dei diritti e delle libertà altrui può sicuramente essere un motivo per non divulgare i dati personali condivisi. Tuttavia, se un'azienda ha richiesto il relativo consenso ed è chiaramente disposta a rendere disponibili gli stessi dati a pagamento, questo argomento non regge più"

I diritti del GDPR come opportunità di guadagno? Il GDPR stabilisce vari diritti per consentire agli utenti di accedere e modificare i propri dati nella società dell'informazione. Tuttavia, le aziende spesso continuano a chiedere un compenso per questo, sia che si tratti di richieste di accesso con un'associazione di creditori o la correzione dei correzione dei nomi sui biglietti. Spesso si tratta di tariffe stabilite da tempo, ma illegali.

Denuncia presentata.noyb ha quindi presentato un reclamo all'Autorità austriaca per la protezione dei dati per conto di un utente di LinkedIn e chiede una risposta completa alla sua richiesta di accesso. Inoltre, noyb propone l'imposizione di una multa per evitare violazioni simili in futuro.


noyb.eu/it/linkedin-locks-your…