Stop Killing the Internet!


For decades, the Internet has empowered people to communicate, organise, learn, create businesses, share culture and participate in democracy across borders. Its openness has been one of its greatest strengths. Today, however, that openness is increasingly under threat.

Across the world, governments are responding to concerns about online harms with proposals that risk undermining fundamental rights. Mandatory age verification, device scanning, digital identity requirements: broad surveillance measures and restrictions on access are often presented as simple solutions to complex problems. Yet these approaches frequently come at the expense of privacy, freedom of expression and the open nature of the Internet itself.

As Pirates, we reject the false choice between safety and fundamental rights. We believe it is possible to protect people online without creating systems of mass surveillance or limiting access to information and communication.

The European Pirates is proud to support the Stop Killing the Internet campaign, which brings together organisations, activists, creators and citizens who share our vision of a free and open Internet.

Rather than accepting increasingly intrusive measures as inevitable, the campaign advocates for evidence-based, proportionate and rights-respecting approaches to tackling online harms. It promotes transparency, democratic accountability, better platform governance and policies that address the root causes of problems instead of restricting the rights of everyone.

This aligns closely with the principles the European Pirates has defended for many years. We have consistently opposed indiscriminate surveillance, mandatory upload filters, mass data retention, client-side scanning and other proposals that weaken digital rights in the name of security or safety. We believe that a free society depends on a free Internet.

The challenges facing the Internet are international, and so must be the response. By joining forces with organisations from across the world, we can better defend an Internet that remains secure, open, interoperable and accessible for everyone.

If you share this vision, we encourage you to learn more about the campaign by visiting Stop Killing the Internet. You can also stay informed about new developments and opportunities to get involved by subscribing to the campaign’s newsletter. Together, we can help ensure that the future of the Internet is built on freedom, privacy and democratic values—not surveillance and exclusion.


europeanpirates.eu/stop-killin…


Stop Killing the Internet!


For decades, the Internet has empowered people to communicate, organise, learn, create businesses, share culture and participate in democracy across borders. Its openness has been one of its greatest strengths. Today, however, that openness is increasingly under threat.

Across the world, governments are responding to concerns about online harms with proposals that risk undermining fundamental rights. Mandatory age verification, device scanning, digital identity requirements: broad surveillance measures and restrictions on access are often presented as simple solutions to complex problems. Yet these approaches frequently come at the expense of privacy, freedom of expression and the open nature of the Internet itself.

As Pirates, we reject the false choice between safety and fundamental rights. We believe it is possible to protect people online without creating systems of mass surveillance or limiting access to information and communication.

The European Pirates is proud to support the Stop Killing the Internet campaign, which brings together organisations, activists, creators and citizens who share our vision of a free and open Internet.

Rather than accepting increasingly intrusive measures as inevitable, the campaign advocates for evidence-based, proportionate and rights-respecting approaches to tackling online harms. It promotes transparency, democratic accountability, better platform governance and policies that address the root causes of problems instead of restricting the rights of everyone.

This aligns closely with the principles the European Pirates has defended for many years. We have consistently opposed indiscriminate surveillance, mandatory upload filters, mass data retention, client-side scanning and other proposals that weaken digital rights in the name of security or safety. We believe that a free society depends on a free Internet.

The challenges facing the Internet are international, and so must be the response. By joining forces with organisations from across the world, we can better defend an Internet that remains secure, open, interoperable and accessible for everyone.

If you share this vision, we encourage you to learn more about the campaign by visiting Stop Killing the Internet. You can also stay informed about new developments and opportunities to get involved by subscribing to the campaign’s newsletter. Together, we can help ensure that the future of the Internet is built on freedom, privacy and democratic values—not surveillance and exclusion.


reshared this

The Pirate Post ha ricondiviso questo.

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

FBI Warns Russian State Hackers Are Tricking Signal Users Into Handing Over Backup Keys
#CyberSecurity
securebulletin.com/fbi-warns-r…
The Pirate Post ha ricondiviso questo.

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

Researchers Show How a Hidden Prompt Can Turn Word Copilot Into a Self-Spreading AI Worm
#CyberSecurity
securebulletin.com/researchers…
The Pirate Post ha ricondiviso questo.

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

Podman: l’alternativa a Docker che ogni sysadmin Linux dovrebbe conoscere
#tech
spcnet.it/podman-lalternativa-…
@informatica


Podman: l’alternativa a Docker che ogni sysadmin Linux dovrebbe conoscere


Per anni Docker è stato il default indiscusso quando si parlava di container su Linux. Ma l’architettura basata su un daemon centrale che gira come root ha sempre lasciato sul tavolo un problema di superficie d’attacco: se qualcuno compromette dockerd, ha di fatto accesso root all’intero host. Podman nasce proprio per chiudere questo gap, offrendo un motore container daemonless, compatibile con le immagini OCI e con la CLI Docker, che si integra in modo molto più nativo con systemd e con il modello di permessi di Linux.

Vediamo come installarlo, come si differenzia realmente da Docker oltre gli slogan, e come portarlo in produzione con systemd e le Quadlet, che sono probabilmente la ragione migliore per prenderlo sul serio.

Cos’è Podman, in pratica


Podman (da Pod Manager) è un motore container open source senza demone centrale. Ogni container gira come processo figlio dell’utente che lo ha avviato, non come figlio di un servizio di sistema con privilegi elevati. Questo significa che è possibile eseguire container completamente rootless, senza mai invocare sudo, riducendo drasticamente cosa un container compromesso può effettivamente toccare sull’host.

Sotto il cofano Podman usa gli stessi runtime OCI di Docker e parla lo stesso formato immagine, quindi la stragrande maggioranza dei comandi Docker funziona invariata sostituendo semplicemente il nome del binario (o creando un alias docker=podman, oppure installando il pacchetto podman-docker che fa da shim trasparente).

Un concetto che Docker non ha nativamente è quello di pod: gruppi di uno o più container che condividono rete e storage, concettualmente vicini ai pod di Kubernetes. Comodo quando si vogliono far girare insieme più container che devono comunicare come se fossero sulla stessa macchina.

Installazione

# Debian/Ubuntu (Debian 11+, Ubuntu 20.10+)
sudo apt-get update
sudo apt-get -y install podman

# Fedora/CentOS/RHEL 8+
sudo dnf -y install podman

# openSUSE
sudo zypper install podman

# Arch/Manjaro
sudo pacman -S podman

Verifica dell’installazione:
podman --version
podman info
podman run hello-world

Se l’ultimo comando restituisce il messaggio di benvenuto di Podman, l’installazione è a posto.

Uso quotidiano: i comandi non cambiano quasi nulla


Shell interattiva dentro un container Ubuntu:

podman run -it ubuntu bash

Servizio in background, con Nginx esposto sulla porta 8080 dell’host:
podman run -d --name web -p 8080:80 nginx
podman ps

Il resto della CLI ricalca Docker praticamente 1:1: podman pull, podman images, podman stop/start, podman rm/rmi. Dietro le quinte, podman build è in realtà un wrapper attorno a Buildah, mentre lo spostamento di immagini tra registry passa per Skopeo: strumenti separati che Podman orchestra per te, senza che serva conoscerli nel dettaglio per l’uso base.

Dove Docker e Podman divergono davvero


La compatibilità è alta ma non totale, e i problemi emergono quasi sempre dal modello rootless. Il caso più comune sono i bind mount: poiché i container rootless usano user namespace e mapping subuid/subgid, una directory montata dall’host non sempre ha la proprietà che il container si aspetta. Su sistemi con SELinux attivo serve anche il suffisso :z o :Z per far ri-etichettare correttamente i file:

podman run -v /host/path:/container/path:Z myimage

:z minuscolo condivide il volume tra più container, :Z maiuscolo lo rende privato per un singolo container. Se serve far coincidere esattamente la proprietà con quella dell’host, l’opzione --uidmap permette un controllo fine, oppure si può far girare il container in modalità rootful per replicare il comportamento di Docker.

Altri attriti da conoscere prima di migrare: l’accesso GPU da container rootless è limitato (NVIDIA richiede nvidia-container-toolkit e setup CDI, con i container da ricreare a ogni aggiornamento driver), e i Docker secrets insieme ad alcune configurazioni di rete non hanno una corrispondenza 1:1. Niente di bloccante, ma va testato prima di assumere che la migrazione sia un semplice “find and replace”.

Container come servizi systemd: le Quadlet


Questo è probabilmente il motivo migliore per scegliere Podman in un contesto server. Invece di lasciare un demone in background a gestire lo stato dei container, si delega tutto a systemd, che diventa responsabile di avvio, riavvio e supervisione, esattamente come per qualsiasi altro servizio di sistema.

Il meccanismo si chiama Quadlet: un file dichiarativo con estensione .container che Podman traduce automaticamente in una unit systemd. Per un servizio utente rootless, il file va in ~/.config/containers/systemd/. Esempio minimo per Nginx:

[Container]
ContainerName=web
Image=docker.io/library/nginx:latest
PublishPort=8080:80

[Install]
WantedBy=default.target

Attivazione:
systemctl --user daemon-reload
systemctl --user start web

Da questo momento il container è gestito da systemd come un servizio qualsiasi: si riavvia in caso di crash, si integra con i log di journald, si può abilitare al boot. Aggiungendo l’etichetta AutoUpdate=registry a un container, inoltre, podman auto-update può controllare periodicamente nuove versioni dell’immagine e riavviare il servizio in automatico, senza bisogno di Watchtower o strumenti equivalenti.

Migrare da Docker Compose


Chi ha un’infrastruttura basata su Compose ha due strade percorribili. La prima è continuare a usare Compose così com’è: il binario standalone docker compose può puntare al socket di Podman senza toccare i file docker-compose.yml esistenti:

systemctl --user enable --now podman.socket

La seconda è convertire i file Compose in Quadlet, così che sia systemd a gestire tutto nativamente. Scrivere le unit a mano è tedioso, quindi conviene usare podlet, un tool che legge un docker-compose.yml e genera i file Quadlet corrispondenti. C’è una curva di apprendimento, ma è comunque più veloce che partire da zero.

Docker resta rilevante


Nonostante i vantaggi di Podman, Docker non sta scomparendo. L’ecosistema attorno a Docker (Compose, Swarm, e tutta la tooling che si integra con esso, inclusi molti sistemi CI/CD già configurati per il socket Docker) resta enorme, e non tutte le piattaforme gestiscono bene le peculiarità rootless di Podman. Se un team è già standardizzato su Docker, spesso ha più senso restare sull’esistente piuttosto che affrontare una migrazione per un guadagno marginale.

Dove Podman convince davvero è quando si parte da zero: setup più sicuro per default, nessun demone da tenere sotto controllo, integrazione diretta con systemd per la gestione del ciclo di vita dei servizi.

Conclusione


Podman è un motore container completo, compatibile con Docker, che funziona senza demone e senza bisogno di privilegi root. Per l’uso quotidiano è quasi un drop-in replacement: si installa dal repository della distribuzione, si usano gli stessi comandi (o si crea l’alias docker=podman), e si ottengono benefici di sicurezza concreti senza dover reimparare nulla. I limiti di compatibilità, soprattutto su bind mount, GPU e secrets, vanno conosciuti e testati prima di una migrazione in produzione, ma per chi sta impostando nuovi ambienti containerizzati su Linux, specialmente se pensa di gestirli con systemd e Quadlet, vale decisamente la pena valutarlo.

Fonte originale: Hayden James, “Docker Alternative: Podman on Linux”, LinuxBlog.io.


The Pirate Post ha ricondiviso questo.

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

Fake CAPTCHA Pages Are Now Tricking Mac Users Into Installing Password-Stealing Malware
#CyberSecurity
securebulletin.com/fake-captch…
The Pirate Post ha ricondiviso questo.

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

C# 15 introduce le union: basta OneOf e Results per modellare i tipi (.NET 11 Preview 6)
#tech
spcnet.it/c-15-introduce-le-un…
@informatica


C# 15 introduce le union: basta OneOf e Results per modellare i tipi (.NET 11 Preview 6)


Da anni gli sviluppatori C# aspettano un modo nativo per dire “questo valore è esattamente uno tra questi tipi, e nient’altro”, con il compilatore in grado di garantirlo. In assenza di un supporto di linguaggio, la community si è arrangiata con pattern come Results<T> di ASP.NET Core Minimal API o con librerie come OneOf. Funzionano, ma con un limite strutturale: se aggiungi un quarto caso possibile a una funzione che prima ne restituiva tre, nessuno ti avvisa che uno switch a valle non gestisce il nuovo tipo. Manca l’esaustività, che è poi il punto centrale delle discriminated union.

Con .NET 11 Preview 6 (rilasciata il 14 luglio 2026) e C# 15, questa lacuna si chiude: arriva la parola chiave union, insieme a un intero pacchetto di funzionalità correlate (conversioni implicite, pattern matching esaustivo, gestione della nullabilità) che rendono i union type un cittadino di prima classe del linguaggio.

La sintassi: dichiarare un union type


La forma più semplice è la union declaration, una sintassi compatta che genera automaticamente uno struct:

public union Pet(Cat, Dog, Bird);

Questa singola riga dice al compilatore che un Pet è esattamente un Cat, un Dog o un Bird, e nient’altro. Sotto il cofano, il compilatore genera uno struct che implementa l’interfaccia System.Runtime.CompilerServices.IUnion e conserva il valore effettivo in una proprietà Value di tipo object?.

I union generici sono immediatamente utili per modellare risultati di operazioni che possono fallire, un caso d’uso ricorrentissimo in codice di produzione:

public union Result<TSuccess, TError>(TSuccess, TError);

Result<User, Error> Register(string username)
{
    if (string.IsNullOrEmpty(username))
        return new Error("Username cannot be empty");

    return new User(username);
}

Da notare l’ultima riga: nessun wrapping esplicito, nessuna chiamata a un factory method. Il valore User o Error viene convertito implicitamente in Result<User, Error> grazie alle union conversion generate automaticamente per ogni case type.

Pattern matching esaustivo, finalmente


Il vero salto di qualità è nel matching. Se dimentichi un caso in uno switch su un union type, il compilatore te lo dice:

string Describe(Pet pet) => pet switch
{
    Dog d => d.Name,
    Cat c => c.Name,
    // CS8509: switch expression does not handle all
    // possible values of its input type (Bird)
};

Aggiungendo il caso mancante, l’avviso scompare, e non serve più il classico _ => throw new InvalidOperationException("unreachable") per zittire il compilatore:
string Describe(Pet pet) => pet switch
{
    Dog d => d.Name,
    Cat c => c.Name,
    Bird b => b.Name,
};

Il punto interessante è che questa esaustività è dinamica: se in futuro aggiungi un nuovo case type al union (per esempio un quarto animale), ogni switch esistente che non lo gestisce si illumina di un warning. Per chi ha inseguito bug di produzione causati da un case dimenticato in un evento di dominio, è un cambiamento non da poco.

I pattern si applicano direttamente al union, senza bisogno di accedere manualmente a .Value: il compilatore effettua l’unwrapping in automatico, anche negli if pattern classici:

if (pet is Dog d)
{
    Console.WriteLine(d.Name);
}

Gestione del null


Il valore di default di un union type ha Value == null, ed è possibile intercettarlo esplicitamente con il pattern null:

string Describe(Pet pet) => pet switch
{
    null => "nessun animale",
    Dog d => d.Name,
    Cat c => c.Name,
    Bird b => b.Name,
};

La necessità o meno del ramo null dipende dal fatto che il parametro o il campo union-typed sia nullable: l’analisi di nullabilità del compilatore guida correttamente questi casi, in coerenza con le annotazioni #nullable enable già in uso nella maggior parte delle codebase moderne.

Un caso pratico: modellare eventi di dominio


I union type diventano davvero interessanti quando li si combina con i record per il domain modeling, per esempio in un sistema di elaborazione ordini con eventi distinti:

public record OrderPlaced(Guid OrderId, decimal Total);
public record OrderShipped(Guid OrderId, string TrackingNumber);
public record OrderCancelled(Guid OrderId, string Reason);
public union OrderEvent(OrderPlaced, OrderShipped, OrderCancelled);

string Summarize(OrderEvent evt) => evt switch
{
    OrderPlaced p    => $"Ordine {p.OrderId} piazzato per {p.Total:C}",
    OrderShipped s   => $"Ordine {s.OrderId} spedito, tracking: {s.TrackingNumber}",
    OrderCancelled c => $"Ordine {c.OrderId} annullato: {c.Reason}",
};

Quando tra tre mesi qualcuno aggiungerà OrderRefunded al union, ogni handler che non lo gestisce lancerà un warning in fase di compilazione, invece di fallire silenziosamente in produzione. È il compilatore che fa da revisore di esaustività al posto tuo.

I union possono anche esporre metodi e proprietà calcolate (ma non campi d’istanza), utile per incapsulare logica di conversione:

public union Length(Meters, Feet)
{
    public double TotalMeters => this switch
    {
        Meters m => m.Value,
        Feet f   => f.Value * 0.3048,
        _        => throw new InvalidOperationException(),
    };
}

Union personalizzati con l’attributo [Union]


La parola chiave union genera sempre uno struct. Se per motivi di identità, ereditarietà o layout di memoria serve un tipo reference, è possibile costruire un union personalizzato applicando direttamente l’attributo System.Runtime.CompilerServices.UnionAttribute e implementando l’interfaccia IUnion:

[System.Runtime.CompilerServices.Union]
public class Shape : System.Runtime.CompilerServices.IUnion
{
    private readonly object? _value;
    public Shape(Circle value)    { _value = value; }
    public Shape(Rectangle value) { _value = value; }
    public object? Value => _value;
}

Nella grande maggioranza dei casi, però, la sintassi union compatta copre già ogni esigenza pratica: l’approccio con attributo è pensato per scenari con requisiti specifici che lo struct generato non può soddisfare.

Come provarlo oggi


I union type sono attualmente in preview. Per sperimentarli serve l’SDK .NET 11 Preview e questa configurazione nel file di progetto:

<PropertyGroup>
    <LangVersion>preview</LangVersion>
    <TargetFramework>net11.0</TargetFramework>
</PropertyGroup>

Vale la pena ricordare che si tratta di una feature specification ancora in evoluzione: alcuni dettagli di comportamento (per esempio le regole esatte su nullabilità di default o sulle conversioni sollevate/”lifted”) sono ancora oggetto di discussione nel repository dotnet/csharplang, quindi è normale osservare piccoli cambiamenti tra una preview e l’altra prima del rilascio finale.

Conclusioni


F# ha le discriminated union fin dalle origini, e la richiesta di un equivalente in C# (csharplang issue #113) è aperta da anni. Con l’arrivo dei union type, non ogni problema di modellazione richiede più una gerarchia di classi: per rappresentare “uno tra un insieme chiuso di tipi”, ora esiste un costrutto di linguaggio dedicato, con conversioni implicite, pattern matching esaustivo e un’ottima integrazione con i record esistenti. Per chi lavora ogni giorno con API che possono restituire risultati eterogenei, o con event sourcing e domain modeling, è una delle novità più concrete della prossima versione di C#.

Fonte: .NET Blog, C# language reference proposal: Unions e Maarten Balliauw.


The Pirate Post ha ricondiviso questo.

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

Critical Ruby on Rails Flaw Lets Attackers Steal Server Secrets Through Image Uploads
#CyberSecurity
securebulletin.com/critical-ru…
The Pirate Post ha ricondiviso questo.

Stop Killing the Internet!


For decades, the Internet has empowered people to communicate, organise, learn, create businesses, share culture and participate in democracy across borders. Its openness has been one of its greatest strengths. Today, however, that openness is increasingly under threat. Across the world, governments are responding to concerns about online harms with proposals that risk undermining fundamental rights. Mandatory age verification, device scanning, digital identity requirements: broad […]

For decades, the Internet has empowered people to communicate, organise, learn, create businesses, share culture and participate in democracy across borders. Its openness has been one of its greatest strengths. Today, however, that openness is increasingly under threat.

Across the world, governments are responding to concerns about online harms with proposals that risk undermining fundamental rights. Mandatory age verification, device scanning, digital identity requirements: broad surveillance measures and restrictions on access are often presented as simple solutions to complex problems. Yet these approaches frequently come at the expense of privacy, freedom of expression and the open nature of the Internet itself.

As Pirates, we reject the false choice between safety and fundamental rights. We believe it is possible to protect people online without creating systems of mass surveillance or limiting access to information and communication.

The European Pirates is proud to support the Stop Killing the Internet campaign, which brings together organisations, activists, creators and citizens who share our vision of a free and open Internet.

Rather than accepting increasingly intrusive measures as inevitable, the campaign advocates for evidence-based, proportionate and rights-respecting approaches to tackling online harms. It promotes transparency, democratic accountability, better platform governance and policies that address the root causes of problems instead of restricting the rights of everyone.

This aligns closely with the principles the European Pirates has defended for many years. We have consistently opposed indiscriminate surveillance, mandatory upload filters, mass data retention, client-side scanning and other proposals that weaken digital rights in the name of security or safety. We believe that a free society depends on a free Internet.

The challenges facing the Internet are international, and so must be the response. By joining forces with organisations from across the world, we can better defend an Internet that remains secure, open, interoperable and accessible for everyone.

If you share this vision, we encourage you to learn more about the campaign by visiting Stop Killing the Internet. You can also stay informed about new developments and opportunities to get involved by subscribing to the campaign’s newsletter. Together, we can help ensure that the future of the Internet is built on freedom, privacy and democratic values—not surveillance and exclusion.


Between Agency and Determinism, Who Holds the Wheel in Digital Society?


Every morning, before most people have spoken a word out loud, a sequence of decisions has already been made on their behalf, what news surfaces, what products to buy, what version of the world gets presented as the relevant one. It arrives as a feed, a recommendation, a notification. Frictionless. Invisible. User well-being does not enter into the calculation, it is the emotional amplification that is rewarded and it is how engagement incentives can dangerously influence public discourse.

  • Digital agency is self-determination applied to the online environment. It means your choices online are genuinely yours, shaped by your values, your curiosity, your judgment.
  • Determinism is the condition in which the erosion of agency becomes structural. It describes an environment so thoroughly engineered toward specific behavioral outcomes that genuine choice becomes constrained; Not through force, but through machines making certain thoughts, emotions, and decisions far more likely than others.
  • Digital agency is not the same as digital literacy, though literacy helps. It is not the same as having access to technology, it is closer to what political theorists call effective freedom. Not just the theoretical right to act, but the actual practical capacity to do it, with consequences that are visible and legible.

Users technically have the right to opt out of data collection. To read the privacy policy. To choose a different platform. But if opting out means losing access to your professional network, if the alternative has no users, and if the privacy policy runs to forty-seven pages of legal language designed to exhaust rather than inform, then your theoretical right is not worth very much. It is freedom in name, performance in practice.

The reason this matters politically is straightforward: democracy runs on it. If citizens cannot understand the systems that allocate resources, shape information environments, and mediate their relationship with institutions, then the quality of democratic participation degrades. You cannot meaningfully consent to what you cannot see. Digital agency is, in this sense, the infrastructure of democracy in a digital society. Without it, everything else – elections, courts, parliament – floats on a substrate where somebody else controls the outcome.

In May 2026, Meta quietly discontinued end-to-end encryption for Instagram private messages. The announcement was buried in a product update. The framing was about improving “safety features” and content moderation capabilities.

What changed: Meta can now read your private Instagram messages.

No law required this; it was a business decision made by a private company about the privacy of hundreds of millions of people, most of whom do not know it happened. The ones who do know, have no practical alternative if their social and professional lives are embedded in Meta’s network.

Everyone has the ability to disagree with the privacy policy, but it runs to nearly 20,000 words. Reading the privacy policies for a typical person would take hours, that is before you open any of Meta’s other services, each governed by its own separate terms. This is what the loss of digital agency looks like from the inside: invisible, incremental, and explained in the passive voice.

What can you do?
The hard thing about claiming digital agency is that it requires sustained attention to things that are deliberately made boring, complex, and remote. It requires engaging with legislation that does not trend, understanding technology that resists simplification, and insisting on accountability from institutions that have become expert at deflecting it.

Conclusion


The platforms you use daily were not designed around you.

They were designed around attention, which is a different thing entirely. The feed scrolled through is not a window onto the real world, it is a curated environment, shaped by systems that have spent years learning exactly which emotional frequencies keep the masses present the longest.

Technology is a set of decisions. Decisions have authors that can be held accountable, but only if people understand what it is built upon, insist on transparency about how it operates, and refuse to accept that this is simply how things are.

The European Pirates have been arguing, not against technology, but for better technology. Made for the public, governed democratically, and answerable to the people it was supposedly built to serve. Democratic self-governance starts by citizens informing themselves independently, forming political judgments around accurate information, invoking their rights, and drawn from multiple and deliberately varied sources rather than a single curated feed.

None of this requires becoming a technologist. It requires becoming a slightly more deliberate inhabitant of a digital world that has been carefully designed to reward passivity. Recognising the architecture is the first act of resistance against it.


Questa voce è stata modificata (1 mese fa)

reshared this

The Pirate Post ha ricondiviso questo.

🚨 Complaint filed: the online dictionary dict.cc tries to nudge users into consenting to online tracking by 1,741 (!) “partners” with a single click.

👉 This makes it impossible for users to know exactly who has access to their data and how it is actually used. However, the GDPR requires that consent is freely given, informed, specific and unambiguous.

noyb.eu/en/1741-informed-conse…

in reply to noyb.eu

and again nobody knows how TCF integration with consent platform works.

I'm going to hazard that 1,741 is just the latest total number of partners on the TCF list.

When you "switch on" TCF integration and you forget (more often, don't know it even exists as a thing) to list the actual partners, you end up passing an empty array which is interpreted, rather stupidly as "all of the known partners".

The Pirate Post ha ricondiviso questo.

☕ CYBERBRIEFING — Giovedì 30 luglio 2026

👉 Leggi tutti gli aggiornamenti delle ultime 24 ore:
ilpuntocyber.rfeed.it/article.…

#newsletter #cybersecurity
@informatica

The Pirate Post ha ricondiviso questo.

Identificazione biometrica: per il #Garanteprivacy, il dlgs sull’uso della #IntelligenzaArtificiale per l’attività di polizia "necessita di alcune integrazioni volte a rafforzare le garanzie rispetto al trattamento dei dati personali"

Il parere riguarda il decreto legislativo volto ad adeguare la normativa interna alle disposizioni del regolamento (UE) 2024/1689 del Parlamento europeo e del Consiglio, del 13 giugno 2024 (infra: “regolamento IA”)

gpdp.it/web/guest/home/docweb/…

@aitech

The Pirate Post ha ricondiviso questo.

Attendiamo il login con SPID!
Poi si riempiono la bocca con la privacy protetta dal GDPR


I governi dell'UE hanno voluto il ritorno di Chat Control 1.0 – Breyer: “I veri perdenti sono i nostri figli”

#ChatControl 1.0 è tornato: i governi UE (tranne 🇭🇺+🇧🇪) hanno prorogato la scansione indiscriminata dei messaggi privati da parte dei servizi USA fino al 2028, aggirando il Parlamento europeo. Cosa cambia ora e i prossimi passi

pirati.io/2026/07/i-governi-de…

@privacypride


reshared this

The Pirate Post ha ricondiviso questo.

Einzelne EU-Staaten dürfen Plattformen wie TikTok derzeit nicht zu Alterskontrollen verpflichten, betont die EU-Kommission. Das könnte nationale Social-Media-Verbote zur Luftnummer machen. Unter anderem Frankreich und Österreich preschen mit eigenen Gesetzen voran.

netzpolitik.org/2026/social-me…

The Pirate Post ha ricondiviso questo.

Einzelne EU-Staaten dürfen Plattformen wie TikTok derzeit nicht zu Alterskontrollen verpflichten, betont die EU-Kommission. Das könnte nationale Social-Media-Verbote wie in Frankreich zur Luftnummer machen. Zumindest vorläufig.

Lest hier, wer wann wo die Altersschranken hochziehen darf. 🚧

netzpolitik.org/2026/social-me…

Now confirmed as DNI, Jay Clayton is threat to press freedom


FOR IMMEDIATE RELEASE:

New York, July 28, 2026 — U.S. Attorney Jay Clayton, President Donald Trump’s nominee for director of national intelligence, was confirmed in the role today.

Not even three weeks ago, in his former position as the Department of Justice’s U.S. attorney for the Southern District of New York, Clayton signed the now-withdrawn subpoenas seeking to force several New York Times reporters to reveal confidential sources, after they reported that the new Air Force One gifted to Trump by Qatar was deemed unsafe to fly the president.

Clayton then appears to have lied to or misled Congress about the subpoenas, raising serious questions about his fitness for office.

The following statement can be attributed to FPF Executive Director Trevor Timm:

“It’s crystal clear that Clayton abused his subpoena power to violate the press freedom rights of several reporters, in direct contradiction of the DOJ’s own rules and established law. If he’s willing to sign off on a violation of DOJ’s policies at Donald Trump’s request, what will he do now that he’s in charge of the intelligence community’s incredibly powerful surveillance apparatus?

“With Clayton now officially in office, it’s more important than ever for Congress to pass a federal shield law like the PRESS Act to protect journalists from these kinds of legal abuses and prevent episodes like this from ever happening again.”

Please contact us if you would like further comment.


freedom.press/issues/now-confi…

Elezioni e Politica 2026 reshared this.

ICYMI: Updates from the 7/26 Meeting


ICYMI

Arizona – The AZPP had an in-person meeting last Wednesday. They have updated their bylaws to officially change the title of their “Native Chief” to “Director of Indigenous Outreach.” A special election will take place on Wednesday to fill that role. A game night is currently being planned. Finally, there is an effort to focus more projects and attention on the Phoenix area.

Endorsement – Jacob Anders, independent candidate for TN-04, received the endorsement of the USPP on a 4-3 vote. Due to the rushed nature of the meeting, Jacob has been asked to return for the 8/2 Pirate National Committee open meeting to answer more questions from the board. Jacob becomes our second Congressional endorsement after Michael Veloff, and our seventh total endorsement this cycle; by far the largest endorsement total in recent memory and perhaps in all our 20 years.

Maryland – the Maryland Pirate Party has slowly be building up membership, reporting a membership/interest total of 10+ people. More in-person events are being planned by the MDPP.

Pete Karas – Pete Karas, the Green Party nominee for Wisconsin’s Secretary of State, held a fundraiser in Milwaukee on Sunday and had multiple guests speak, including United States Pirate Party Captain, yours truly, Jolly Mitch. You can watch that livestream from the fundraiser here. You can jump to 6:00 mark to see the speech in full.


The meeting was rushed due to illness and birthday party related obligations. As such, there is some fallout to how the meeting took place. There is an expectation that the following two meetings on 8/2 and 8/9 will be more evenly paced and not expected to be sent to an early conclusion. Check out our latest meeting here.


uspirates.org/icymi-updates-fr…

Elezioni e Politica 2026 reshared this.

The Pirate Post ha ricondiviso questo.

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

Der Schock sitzt immer noch tief. Trotz oder gerade wegen der Trauer müssen wir über die teils heuchlerischen Reaktionen führender Politiker*innen sprechen. Denn die unbequeme Wahrheit gehört in das große Bild dazu: Kürzungen, weniger Hilfeangebote und steigende Diskriminierung erschweren das alltägliche Leben von queeren Menschen massiv und legen einen politischen Nährboden für Hass und letzten Endes auch Gewalt. netzpolitik.org/2026/forderung…
Questa voce è stata modificata (1 mese fa)
in reply to netzpolitik.org

Ich hab nicht den Überblick über alle Kürzungen - aber wird nicht auch bei Prävention von Rechtsextremismus, Islamismus etc gekürzt?
Ah, hier ein link mit Bericht zu den o.g. Kürzungen
digitalcourage.social/@Thorste…
Questa voce è stata modificata (1 mese fa)
The Pirate Post ha ricondiviso questo.

Vous avez peut-être entendu parler de Chat Control ces dernières semaines mais beaucoup d’approximations et erreurs ont pu être dites sur la nature et les conséquences de ce règlement européen.

Et c’est normal car il y a en réalité deux « Chat Control » ! On fait le point pour vous aider à comprendre.

reshared this

in reply to La Quadrature du Net

Depuis 2021, l’Union européenne autorise les plateformes en ligne à analyser proactivement les contenus qu’elles hébergent en vue de détecter ceux liés aux abus sexuels sur les enfants. Ce règlement, c’est ce que l’on appelle « Chat Control 1.0 ». Il est temporaire et a été renouvelé plusieurs fois. Début juillet 2026, le Parlement a voté une nouvelle prolongation.
in reply to La Quadrature du Net

Si ce texte pose évidemment des problèmes en matière de vie privée, il donne uniquement une base légale pour les plateformes comme Facebook ou Instagram qui font déjà volontairement de l’analyse des messages depuis des années. Il ne concerne pas les échanges chiffrés de bout en bout comme ceux qui passent via Signal, qui ne sont donc pas concernés par ce vote de début juillet.
in reply to La Quadrature du Net

En parallèle, un autre règlement est en négociation. Afin de prendre la suite de ce mécanisme de détection volontaire, la Commission européenne avait proposé en 2022 un nouveau texte : il s’agit de « Chat Control 2.0 ».

Nous vous en parlions dès 2023 car celui-ci voulait obliger toutes les plateformes et messageries à scanner les messages, y compris ceux qui sont chiffrés.
laquadrature.net/2023/09/18/re…

in reply to La Quadrature du Net

Ce deuxième texte est extrêmement dangereux et mobilise partout en Europe depuis quatre ans. Grâce à ces contestations, des victoires ont été obtenues et le processus législatif a longtemps été bloqué.

Aujourd’hui il est toujours dans la phase de négociations appelée « trilogues » et l’analyse des messages chiffrés n’est plus envisagée mais des mesures de vérification d’age sont en revanche sur la table et menacent l'anonymat en ligne et le droit à la vie privée.

in reply to La Quadrature du Net

Pour résumer : le vote de juillet permet à Instagram, Facebook et consorts de continuer de scanner les messages comme ils le font depuis des années, mais il ne concerne pas les applications de messagerie chiffrée comme Signal.

Un récent article de France Info résume bien les enjeux complémentaires autour de ces textes.
franceinfo.fr/vrai-ou-fake/vra…

Siam reshared this.

in reply to La Quadrature du Net

Pour vous tenir informé·es des suites concernant « Chat Control 2.0 », nous vous invitons également à suivre les articles de nos camarades de @edri qui suivent activement le dossier à Bruxelles.
edri.org/our-work/chat-control…
@EDRi

kappazeta reshared this.

The Pirate Post ha ricondiviso questo.

Mit der geplanten Geheimdienstreform sollen BND und Verfassungsschutz viele neue Befugnisse bekommen. In einem Krieg würden noch mehr Schranken fallen. Doch die Machtverschiebung zugunsten der Spion:innen kann schon deutlich vorher beginnen.

netzpolitik.org/2026/geheimdie…

The Pirate Post ha ricondiviso questo.

Il vero rischio dell'IA si annida all'interno dei laboratori. Un nuovo e interessante post di Salvatore Sanfilippo aka @antirez


Credo che non dovremmo considerare l'IA sicura.
Un evento critico che potrebbe portare all'estinzione dell'Homo sapiens è possibile, ma il pericolo non risiede nei modelli aperti o nel fatto che la Cina stia facendo progressi più rapidi degli Stati Uniti. Il pericolo è che alcuni CEO (in tutto il mondo), privi delle competenze e della legittimità necessarie, si trovino nella posizione di dover prendere decisioni difficili per l'intera umanità. Non sono stati scelti per farlo; è stata solo la casualità degli eventi a creare questa situazione. Non possono parlare a nome di tutti, viste le poste in gioco, solo perché dispongono di GPU e denaro. Questo è il primo problema da risolvere.


antirez.com/news/172

@aitech

Bastian’s Night #487 July, 30th


Every Thursday of the week, Bastian’s Night is broadcast from 21:30 CEST/DST.

Bastian’s Night is a live talk show in German with lots of music, a weekly round-up of news from around the world, and a glimpse into the host’s crazy week in the pirate movement.


If you want to read more about @BastianBB: –> This way


piratesonair.net/bastians-nigh…

Elezioni e Politica 2026 reshared this.

The Pirate 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.

✨ JadeProx: il cluster cinese che si è tradito da solo mentre colpiva ospedali, ministeri e università in Asia
#CyberSecurity
insicurezzadigitale.com/jadepr…

@informatica


JadeProx: il cluster cinese che si è tradito da solo mentre colpiva ospedali, ministeri e università in Asia


Un server Alibaba Cloud lasciato aperto per errore ha smascherato un intero cluster di cyberspionaggio China-nexus: intrusioni attive contro un ospedale vietnamita, il Ministero degli Esteri malese, decine di istituti universitari di Hong Kong e persino un pacchetto di spear-phishing indirizzato al Congresso dell’Honduras. Group-IB lo chiama JadeProx, e la sua tradecraft ruota attorno a un loader Windows mai documentato prima, il TriBack Loader, distribuito anche tramite un finto installer di Claude.

Un errore operativo che vale un intero dossier


A metà aprile 2026 i ricercatori di Group-IB hanno individuato, nella regione Singapore di Alibaba Cloud, un server di staging esposto senza alcuna autenticazione. Al momento della pubblicazione del report, il 23 luglio 2026, il server era già stato smantellato, ma la sua cronologia bash, i pacchetti di phishing, gli strumenti post-exploitation e i path dei webshell hanno permesso di ricostruire in dettaglio un’operazione attiva su tre continenti diversi.

Gli obiettivi identificati sono eterogenei ma coerenti con un mandato di raccolta informativa ad ampio spettro tipico degli operatori legati alla Cina: il sistema di imaging medicale (PACS, Picture Archiving and Communications System) di un ospedale pubblico vietnamita, da cui transitano radiografie, TAC e risonanze dei pazienti; il Ministero degli Esteri della Malesia, violato con webshell e strumenti di tunneling; l’infrastruttura universitaria di Hong Kong, colpita con una scansione massiva; e un pacchetto di spear-phishing con decoy finanziario indirizzato al Congresso Nazionale dell’Honduras. Gli operatori sono arrivati al server dell’ospedale vietnamita attraverso webshell piazzate su un’interfaccia di gestione Java esposta su Internet.

TriBack Loader: un unico loader, quattro varianti


Al centro della tradecraft c’è un loader Windows che Group-IB battezza TriBack Loader, mai documentato in precedenza. Compare in quattro catene di infezione, tutte costruite attorno al DLL sideloading: un eseguibile legittimo firmato viene abbinato a una DLL malevola e a un payload cifrato in formato .dat o .log.

La DLL inverte i byte del payload, li decifra con XOR a chiave rotante, ed esegue lo shellcode tramite chiamate Win32 che gli EDR monitorano meno rispetto alla classica CreateThread. Le quattro varianti si differenziano proprio nella chiamata finale usata per l’esecuzione: due si affidano a InitOnceExecuteOnce e a un callback TimerQueue, una terza sfrutta EtwpCreateEtwThread, una routine non documentata di ntdll per la creazione di thread. Anche il binario firmato ospite cambia da variante a variante. Per i ricercatori, la ripetizione sistematica della stessa sequenza di API suggerisce l’esistenza di un builder automatizzato per la generazione del loader.

Due varianti distribuiscono AdaptixC2, framework open source di post-exploitation già osservato in altre campagne ransomware. Una terza variante, particolarmente insidiosa, si maschera da software Claude: usa DonutLoader per eseguire Beagle, una backdoor documentata per la prima volta da Sophos. La quarta variante resta un mistero: il file cifrato che ne conteneva il payload non è mai stato recuperato.

L’esca perfetta: un finto Claude con MSI malevolo


Uno degli aspetti più rilevanti per un pubblico di professionisti è la campagna di impersonificazione del software Anthropic. Il dominio claude-pro[.]com, registrato il 28 marzo 2026, ha distribuito un installer MSI malevolo che, superato un prompt UAC, posizionava la catena di sideloading nella cartella di avvio di Windows per garantirsi la persistenza. La backdoor Beagle consegnata da questa variante comunicava con license[.]claude-pro[.]com come infrastruttura di comando e controllo.

Sophos, lavorando a partire dal sito fasullo, dalla sua infrastruttura di hosting e dai campioni di malware raccolti, ha rilevato la stessa chiave XOR riutilizzata in build risalenti a febbraio 2026, ma ha specificato che una chiave condivisa non basta da sola a confermare un singolo attore dietro tutte le campagne: nell’ecosistema China-nexus gli strumenti circolano liberamente tra gruppi diversi. Lo stesso approccio prudente vale per Group-IB, che raggruppa le intrusioni asiatiche sotto l’etichetta JadeProx senza attribuirle in modo definitivo a un gruppo APT già catalogato.

Se la valutazione di Sophos è corretta e il sito fasullo faceva parte di una campagna di malvertising attiva, l’esposizione va ben oltre ministeri e ospedali: raggiunge chiunque, nel mondo, stesse semplicemente cercando di scaricare Claude.

Vulnerabilità vecchie di anni per colpire infrastrutture nuove


Sul fronte dello scanning contro l’istruzione di Hong Kong, gli operatori hanno lanciato Nuclei con template a severità critica contro una lista di 14.653 URL legati al settore educativo, individuando 13 vulnerabilità uniche. Il report non specifica quanti tentativi di sfruttamento successivi abbiano avuto successo, ma indica quattro CVE specifiche tentate contro singoli host, tutte con punteggio CVSS 9.8: CVE-2018-11511 (ASUSTOR ADM), CVE-2021-24139 (plugin WordPress 10Web Photo Gallery), CVE-2021-31755 (router Tenda AC11) e CVE-2021-32305 (WebSVN).

Il dettaglio interessante per i difensori è che la falla su Tenda AC11 è nel catalogo KEV (Known Exploited Vulnerabilities) di CISA dal 3 novembre 2021, con una scadenza di remediation federale spirata appena due settimane dopo. In altre parole: la parte “artigianale” e sofisticata di questa operazione — loader custom, sideloading, ETW abuse — si appoggia a un ingresso iniziale banale, fatto di CVE pubbliche e non patchate da anni. L’ingegneria del loader conta poco se la porta d’ingresso resta aperta dal 2021.

Cosa monitorare


Group-IB e i ricercatori coinvolti raccomandano di concentrare il rilevamento sulla catena di sideloading piuttosto che sui singoli indicatori di rete, dato che nomi file e host firmati cambiano a ogni build:

  • Segnalare binari vendor firmati eseguiti da directory scrivibili dall’utente, temporanee o dalla cartella Startup, specialmente in presenza di file .dat o .log cifrati nella stessa cartella.
  • Cercare copie sospette di hostfxr.dll, avk.dll o MpClient.dll, insieme a cartelle annidate del tipo _CL_###### e allo script ~del.vbs.bat.
  • Bloccare o investigare i domini del cluster: claude-pro[.]com, license[.]claude-pro[.]com, sylverixstrategy[.]com, gouvvbo[.]top, vertextrust-advisors[.]com, e tre domini civetta che imitano vendor di sicurezza condividendo lo stesso IP — update-trellix[.]com, update-crowdstrike[.]com, update-sentinelone[.]com.
  • Dare priorità alle applicazioni Java esposte su Internet, quindi a qualsiasi sistema pubblico con una falla non patchata di severità 9.8, incluse le quattro citate.


Indicatori di compromissione

Domini:
claude-pro[.]com (registrato 28/03/2026)
license[.]claude-pro[.]com
sylverixstrategy[.]com
gouvvbo[.]top
vertextrust-advisors[.]com
update-trellix[.]com
update-crowdstrike[.]com
update-sentinelone[.]com

Infrastruttura di staging:
43.106.71[.]28:8000

CVE sfruttate (CVSS 9.8):
CVE-2018-11511 - ASUSTOR ADM
CVE-2021-24139 - 10Web Photo Gallery (WordPress)
CVE-2021-31755 - Tenda AC11 (KEV CISA dal 03/11/2021)
CVE-2021-32305 - WebSVN

Artefatti su disco:
hostfxr.dll / avk.dll / MpClient.dll (copie sospette)
_CL_###### (cartelle annidate)
~del.vbs.bat

Malware associato:
TriBack Loader (loader custom, DLL sideloading)
AdaptixC2 (post-exploitation open source)
DonutLoader -> Beagle backdoor

Fonti: report Group-IB, The Hacker News, Sophos.

It sure looks like Jay Clayton lied to Congress about the NYT subpoenas


U.S. Attorney Jay Clayton, who signed the now-withdrawn subpoenas for several New York Times reporters, testified in front of Congress last week as Donald Trump’s nominee for the director of national intelligence.

Under questioning from Sen. Michael Bennet, Clayton said that he followed the Trump administration’s media guidelines before signing the Times subpoenas. These guidelines include the following: “The government should have made all reasonable attempts to obtain the information, communications records, or business records from alternative sources.”

Clayton proactively called out this “all reasonable attempts” plank in his testimony:

“I’m confident that the procedures we have in place to protect the First Amendment and protect the freedom of the press … were followed. They depend on the facts and circumstances, how much time you have.

“Those matters include … ‘Are there other available sources for the information we seek?’ And have we sought that.”

He later repeated, “We followed the protocols” and “I want to assure this committee that … that concept of ‘least intrusive possible’ is front of mind for me.”

As we pointed out at the time, this was likely impossible. Given the Times’ story came out on a Wednesday and the subpoenas were issued on a Friday (after an hourslong White House meeting discussing the case with FBI Director Kash Patel), there was almost no way “all reasonable attempts” were made before the subpoenas were issued. These investigations usually take months.

It sure seemed like false testimony to us.

But on Friday, the Department of Justice itself seems to have confirmed that Clayton lied to Congress when he indicated they had pursued “all reasonable attempts” before issuing the subpoenas to the reporters.

In a court hearing in the Times subpoena case, a federal judge castigated government lawyers for an hour for making a multitude of errors when issuing the subpoenas, misleading the court, and not following the law, including the legal test in NY Times v. Gonzales that determines reporter’s privilege in the Second Circuit.

The judge specifically and repeatedly brought up the “all reasonable attempts” language, and how it was clear the government did not follow it:

Judge: I’m just asking you, am I wrong that the regulations and cases like Gonzales say that subpoenas issued to reporters and for the reporter’s records are not the first thing you do, they are the last thing you do? That is the reason why not obtainable from other sources is part of the Gonzales test. It’s the reason why in the regulation it specifically says that before you seek a subpoena, you need to make “all reasonable attempts to obtain the information from alternative sources.” It’s not a matter of classified or Rule 6 information. It’s a matter of just complying — basic compliance with the law.

The DOJ didn’t even attempt to argue they took any investigative steps before issuing the subpoenas. Instead, they claimed there was an “exception” to that rule that allowed them to bypass it entirely, which left the judge flabbergasted:

Judge: No, which language within this provision is clear that it’s an exception to the rule that’s stated two provisions above this that says, “The government should have made all reasonable attempts to obtain the information, communication records, or business records from alternative sources?” Maybe I’m missing it. You’re familiar with the regulations, so I just want to see where that is where it says except where it’s in this category, then subpoenas are the first thing you do, and you don’t do anything else. You go right to the subpoenas, and you don’t try to investigate otherwise, as Gonzales and the regulations otherwise provide.

The DOJ lawyer Sean Buckley responded:

Buckley: I would distinguish the language “should” in Section (4) from the language “must” in Section (c)(1) through (3). “Should” is advisory. And if the Attorney General authorizes the issuance of these subpoenas, it’s not a violation of the rule.

So DOJ is admitting: We did not actually do any investigation before issuing the subpoenas; we don’t have to, the rules only say we should. And the attorney general can just disregard them any time he wants.

The judge was not buying it, to say the least. He said he would quash the subpoenas unless the government withdrew them, and said if this was a civil case, he would be considering sanctions against the DOJ. The government ultimately withdrew them in disgrace.

You can read the full court transcript below.

freedom.press/static/pdf.js/we…

It makes crystal clear that Clayton either lied to Congress that “all reasonable attempts” were made; or 2) he was purposefully misleading Congress by neglecting to mention that the Trump administration is manufacturing a magical exception to the DOJ guidelines that allows the attorney general to disregard them whenever he wants.

Clayton should be immediately called back to the Senate to answer for his seemingly false statement, and to tell lawmakers what other policies he believes agency heads don’t need to follow because they include the word “should.” And if you want to make your voice heard, use our action center to tell the Senate “No” on Clayton’s nomination.


freedom.press/issues/it-sure-l…

Elezioni e Politica 2026 reshared this.

The Pirate Post ha ricondiviso questo.

Nach dem Anschlag auf den Christopher Street Day in Berlin ist der Schock groß. Doch die Reaktionen der führenden CDU-Politiker lassen sich leicht als bloße Heuchelei entlarven. Ein Kommentar.
netzpolitik.org/2026/forderung…
in reply to netzpolitik.org

Bei aller berechtigter Kritik an der angeprangerten Heuchelei der führenden Politiker:

Politiker, allen voran Herr Dobrint und Frau Klöckner, welche bislang jede Regenbogenfahne als Indiz für den Untergang des Abendlandes gehalten haben, haben jetzt öffentlich ausgesprochen, dass der CSD und die zugehörige queere Kultur integraler Bestandteil unserer Gesellschaft und unseres Freiheitsverständnisses ist.

Auch wenn es vielleicht nicht ehrlich gemeint war: Es wirkt.

The Pirate Post ha ricondiviso questo.

Il #Garanteprivacy sanziona #Lusha per 2 milioni di euro. Monitorati e in vendita i dati di un elevato numero di persone

Il data broker Usa, che fornisce a pagamento informazioni “arricchite” su persone fisiche, ha trattato illecitamente i dati personali di un elevato numero di individui presenti sul territorio italiano

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

@privacypride@feddit.it

The Pirate Post ha ricondiviso questo.

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

Five-Year-Old Bugs in a JSON Parser Open a Code Execution Hole in Self-Managed GitLab
#CyberSecurity
securebulletin.com/five-year-o…
The Pirate Post ha ricondiviso questo.

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

Foxit’s Own Update Service Can Be Turned Into a SYSTEM-Level Backdoor on Windows
#CyberSecurity
securebulletin.com/foxits-own-…
The Pirate Post ha ricondiviso questo.

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

OpenAI Patches ‘AgentForger’ Flaw That Let One Link Hijack ChatGPT Workspace Agents
#CyberSecurity
securebulletin.com/openai-patc…
The Pirate Post ha ricondiviso questo.

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

JetBrains Patches a Wave of Critical Flaws Across IntelliJ IDEA and TeamCity
#CyberSecurity
securebulletin.com/jetbrains-p…
The Pirate Post ha ricondiviso questo.

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

Claude AI’s Shared Chat Links Briefly Turned Up in Google Search, Exposing Private Conversations
#CyberSecurity
securebulletin.com/claude-ais-…
The Pirate Post ha ricondiviso questo.

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

Inside the Pro-Iran Hacktivist Coalition Racing to Mobilize During the US-Iran Conflict
#CyberSecurity
securebulletin.com/inside-the-…
The Pirate Post ha ricondiviso questo.

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

AI-Powered Pentest Uncovers Eight Security Holes in Popular NodeBB Forum Software
#CyberSecurity
securebulletin.com/ai-powered-…
The Pirate Post ha ricondiviso questo.

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

PHP-FPM: perché pm static batte dynamic e ondemand sui server ad alto traffico
#tech
spcnet.it/php-fpm-perche-pm-st…
@informatica


PHP-FPM: perché pm static batte dynamic e ondemand sui server ad alto traffico


Il process manager sbagliato è spesso il vero collo di bottiglia di PHP


Quando un’applicazione PHP inizia a rallentare sotto traffico reale, la prima cosa che si tende a ottimizzare è il codice: query più efficienti, cache applicativa, opcache. Tutte cose giuste, ma c’è un parametro a monte che viene sistematicamente sottovalutato e che, su un server con traffico costante, può pesare quanto tutto il resto messo insieme: il process manager (PM) di PHP-FPM.

La quasi totalità delle installazioni lascia pm impostato su dynamic, il valore di default, oppure viene consigliato di passare a ondemand quando la memoria disponibile è scarsa. Per un server che riceve traffico costante e prevedibile, però, esiste una terza opzione quasi sempre trascurata: pm = static. In questo articolo vediamo perché, come calcolare i parametri corretti e in quali scenari conviene davvero.

Le tre modalità del process manager


PHP-FPM gestisce un pool di processi worker che eseguono lo script PHP per ogni richiesta. Il parametro pm nel file di configurazione del pool decide come questi worker vengono creati e distrutti nel tempo:

  • dynamic: il numero di processi figli varia dinamicamente in base a pm.max_children, pm.start_servers, pm.min_spare_servers e pm.max_spare_servers. All’avvio del servizio vengono lanciati pm.start_servers worker, poi il pool si espande e si contrae seguendo il carico.
  • ondemand: i processi vengono avviati solo quando arriva una richiesta, invece di essere già pronti all’avvio del servizio come accade con dynamic. Ottimo per il risparmio di memoria, meno per la latenza sul primo hit.
  • static: il numero di processi figli è fisso, determinato unicamente da pm.max_children. Nessuna logica di scaling: i worker vengono creati all’avvio e restano attivi.

La documentazione ufficiale di PHP elenca tutte le direttive globali di php-fpm.conf, ma la scelta tra queste tre modalità è più una questione di architettura del server che di singola direttiva.

Un parallelo utile: il governor della CPU


Chiunque abbia mai armeggiato con le impostazioni di risparmio energetico della CPU (CPUFreq governor, presenti sia su *nix che su Windows) riconoscerà lo stesso identico compromesso:

  • ondemand: scala la frequenza dinamicamente in base al carico corrente, saltando rapidamente alla frequenza massima per poi scendere durante i periodi di inattività.
  • conservative: scala la frequenza in modo più graduale rispetto a ondemand.
  • performance: mantiene sempre la CPU alla frequenza massima.

Il compromesso è lo stesso che si ritrova in PHP-FPM: un’impostazione privilegia la reattività immediata, le altre il risparmio di risorse durante i periodi di inattività. Con il governor performance, i core mantengono la frequenza massima invece di scalare verso il basso in idle: è un boost di prestazioni relativamente sicuro, il cui costo dipende quasi solo dai limiti termici della CPU. Lo stesso principio, applicato ai processi PHP-FPM invece che ai cicli di clock, è ciò che rende pm = static efficace su un server sotto carico costante.

Usare pm static per il massimo delle prestazioni


L’impostazione pm = static dipende fortemente dalla memoria libera disponibile sul server. Se la memoria è scarsa, ondemand o dynamic restano scelte più sicure. Se invece la memoria è disponibile, static elimina gran parte dell’overhead di gestione del pool impostando il numero di worker al massimo che il server può sostenere.

In pratica, pm.max_children con static va calcolato come il numero massimo di processi PHP-FPM che possono girare senza generare pressione sulla memoria disponibile o sulla cache del sistema, e senza saturare le CPU con una coda di operazioni PHP-FPM in attesa.

Un caso reale: un server con 32 GB di RAM installata, pm = static e pm.max_children = 100, usa un massimo di circa 10 GB. Anche con circa 200 utenti attivi negli ultimi 60 secondi (dato preso da Google Analytics), circa il 70% dei worker PHP-FPM resta idle. Questo è precisamente il punto: PHP-FPM lavora sempre alla capacità massima configurata, indipendentemente dal traffico istantaneo, e i worker idle restano pronti a rispondere immediatamente ai picchi di traffico invece di dover attendere che il process manager ne generi di nuovi (e poi li termini dopo che pm.process_idle_timeout scade).

Calcolare pm.max_children, non indovinarlo


Il passaggio più importante, spesso saltato, è misurare invece di stimare a occhio. Prima si misura la dimensione media residente (RSS) di un worker PHP-FPM sotto carico reale:

ps --no-headers -o rss -C php-fpm | awk '{ sum += $1; n++ } END { print sum/n/1024 " MB" }'

A questo punto si divide la memoria che si è disposti a dedicare a PHP-FPM per questo valore medio. Se un worker occupa in media 60 MB e si vogliono allocare 6 GB a PHP-FPM, il calcolo è circa pm.max_children = 100 (6144 / 60). È fondamentale lasciare margine per il sistema operativo, il web server e il database: non va mai assegnata a PHP-FPM tutta la RAM fisica disponibile.

Da qui si procede per iterazioni: si testa sotto carico reale e si affina il valore osservando uso di memoria, utilizzo CPU e tempi di risposta. Con pm = static, poiché i worker restano già residenti in memoria, i picchi di traffico si traducono in picchi di carico e CPU molto più contenuti, e le medie restano più stabili nel tempo.

Per monitorare i processi attivi in tempo reale si può usare top filtrato per utente:

top -bn1 | grep php-fpm

Impostando anche pm.max_requests a un valore alto (o a 0 per disabilitare il riavvio periodico dei worker) si evita ulteriore overhead di gestione, ma questa scelta ha senso solo su un server di produzione senza memory leak noti negli script PHP. In generale conviene comunque impostare un valore alto ma finito, ad esempio pm.max_requests = 1000, per garantire un riavvio periodico dei worker senza reintrodurre overhead significativo.

Quando usare ondemand e dynamic invece di static


Con pm = dynamic capita spesso di incontrare un warning simile a questo nei log:

WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers,
or pm.min/max_spare_servers), spawning 32 children, there are 4 idle,
and 59 total children

Il consiglio più comune, in questi casi, è passare a ondemand. Su un server costantemente sotto carico, però, questa scelta si ritorce contro: ondemand azzera i worker idle appena il traffico cala, per poi doverli rigenerare non appena il traffico torna a salire, scambiando risparmio di memoria con latenza di spawn esattamente nel momento peggiore. Un timeout di idle molto alto attenua il problema, ma a quel punto conviene semplicemente passare a pm.static con un pm.max_requests elevato.

dynamic e soprattutto ondemand restano invece la scelta giusta in scenari con molti pool PHP-FPM distinti sullo stesso server, ad esempio hosting condiviso con centinaia di account cPanel o siti diversi ciascuno con il proprio pool. In un ambiente con 100+ pool e 200+ domini, dove la maggior parte dei siti riceve pochissimo traffico, static o dynamic sprecherebbero enormi quantità di memoria su worker perennemente idle: ondemand chiude i worker inattivi liberando memoria, motivo per cui è diventato il default in ambienti come cPanel.

Un cenno ai container


Lo stesso ragionamento va adattato quando PHP-FPM gira dentro un container con risorse limitate (ad esempio 0.5 vCPU e 1 GB di RAM) e la scalabilità è orizzontale, tramite orchestrazione (Docker Swarm, Kubernetes). In questi contesti pm.static resta spesso l’unica scelta sensata a livello di singolo container, ma la decisione su quando far partire un nuovo container non può basarsi solo su CPU e memoria: va monitorato anche il numero di processi PHP-FPM attivi rispetto a pm.max_children. Se il pool ha 50 worker configurati e 40 sono già occupati, è il momento di avviare un nuovo container, indipendentemente da quanto CPU e RAM stiano effettivamente segnalando in quel momento. Questo richiede di esporre lo stato di php-fpm status al sistema di autoscaling, valutato a intervalli brevi.

Conclusione


Superata una certa soglia di traffico costante, ondemand e dynamic introducono un overhead di gestione dei processi che una configurazione static ben calcolata elimina alla radice. La regola pratica è semplice da enunciare ma richiede disciplina nell’applicarla: non indovinare pm.max_children, misurarlo a partire dal consumo medio di RSS dei worker sotto carico reale, lasciare margine per OS, web server e database, e poi affinare osservando le metriche reali. Su un server dedicato o una VM con traffico prevedibile, il guadagno in stabilità di CPU e tempi di risposta è concreto. Su hosting condiviso con centinaia di pool a bassissimo traffico, ondemand resta la scelta più razionale. Conoscere il proprio sistema, prima ancora del proprio codice PHP, è ciò che fa la differenza.

Fonte: PHP-FPM tuning: Using ‘pm static’ for max performance, LinuxBlog.io (Hayden James)


The Pirate Post ha ricondiviso questo.

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

A Booby-Trapped Git Repository Can Quietly Leak Files Through Claude Code, Researchers Show
#CyberSecurity
securebulletin.com/a-booby-tra…
The Pirate Post ha ricondiviso questo.

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

Nmap su Linux: la guida pratica a scanning e discovery di rete per sistemisti
#tech
spcnet.it/nmap-su-linux-la-gui…
@informatica


Nmap su Linux: la guida pratica a scanning e discovery di rete per sistemisti


Chi amministra server Linux prima o poi si trova a dover rispondere a una domanda apparentemente semplice: “cosa è realmente esposto su questa macchina, e su questa rete?” La risposta corretta non arriva mai da un elenco di regole firewall letto a memoria, ma da una verifica attiva. Nmap (Network Mapper) resta lo strumento di riferimento per questo tipo di verifica: open source, nato nel 1997, ancora oggi il punto di partenza per audit di sicurezza, mappatura di reti e troubleshooting di connettività.

In questo articolo vediamo un percorso pratico per usare nmap in scenari reali di amministrazione sistemi: dalla discovery degli host alla scansione delle porte, fino agli script NSE per individuare vulnerabilità e configurazioni deboli.

Nota importante: esegui scansioni solo su reti e host di tua proprietà o per cui hai autorizzazione esplicita. La scansione non autorizzata può costituire reato in molte giurisdizioni, Italia compresa (accesso abusivo a sistema informatico, art. 615-ter c.p.).

Installazione


Nmap è disponibile nei repository di tutte le distribuzioni principali:

# Debian/Ubuntu
sudo apt install nmap

# Fedora/RHEL/CentOS
sudo dnf install nmap

# Arch/Manjaro
sudo pacman -S nmap

# Verifica
nmap --version

Host discovery: chi è vivo sulla rete


Il primo passo in qualsiasi audit è capire quali host rispondono. Per questo si usa la scansione “ping”, che salta completamente il controllo delle porte:

nmap -sn 192.168.1.0/24

Su una rete locale nmap non si limita all’ICMP: usa il protocollo ARP, molto più veloce e capace di scovare anche dispositivi che ignorano i normali ping. Su reti instradate, invece, combina richieste ICMP echo, TCP SYN sulla porta 443, TCP ACK sulla porta 80 e timestamp ICMP. Il risultato è un inventario rapido e silenzioso di ciò che è realmente connesso, utile ad esempio quando serve scoprire quale indirizzo IP il DHCP ha assegnato a un nuovo dispositivo.

Scansione delle porte


Una volta identificati gli host attivi, il passo successivo è capire quali servizi espongono. Senza opzioni, nmap scansiona le 1.000 porte TCP più comuni e non richiede privilegi root:

nmap 192.168.1.10

Da root, il tipo di scansione predefinito diventa la SYN scan (o “stealth scan”), più veloce perché non completa mai l’handshake TCP a tre vie e lascia meno tracce nei log applicativi:
sudo nmap -sS 192.168.1.10

Le 1.000 porte di default lasciano fuori parecchio. Un’istanza MySQL su una porta non standard, o un demone SSH spostato sulla 2222, restano invisibili. Per una copertura completa:
sudo nmap -sS -p- 192.168.1.10   # tutte le 65.535 porte
sudo nmap -p 22,80,443,3306 192.168.1.10   # porte specifiche
sudo nmap -p 1-1024 192.168.1.10   # un intervallo

Va tenuto d’occhio anche l’UDP, spesso trascurato ma sede di servizi critici come DNS (53), SNMP (161) e NTP (123):
sudo nmap -sU -p 53,161,123 192.168.1.1

Le scansioni UDP sono più lente perché una porta chiusa non sempre genera una risposta esplicita: conviene limitare l’intervallo di porte o armarsi di pazienza.

Version detection e OS fingerprinting


Sapere che la porta 22 è aperta è utile. Sapere che dietro c’è OpenSSH 8.9p1 lo è molto di più, soprattutto per intercettare versioni obsolete durante un audit di sicurezza:

sudo nmap -sV 192.168.1.10

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6
80/tcp   open  http    nginx 1.24.0
3306/tcp open  mysql   MySQL 8.0.35

Con --version-intensity (da 0 a 9, default 7) si regola quanto nmap insiste nel probing: abbassarlo a 2-3 velocizza la scansione senza perdere molta precisione sui servizi comuni.

Per un’ipotesi sul sistema operativo, tramite fingerprinting dello stack TCP/IP, serve almeno una porta aperta e una chiusa:

sudo nmap -O 192.168.1.10

Su macchine virtuali o stack TCP personalizzati la stima può essere imprecisa, ma resta un segnale utile per separare rapidamente server Linux, macchine Windows e dispositivi embedded su uno stesso segmento di rete.

Per un quadro completo in un colpo solo (OS detection, version detection, script scanning e traceroute) c’è la scansione aggressiva:

sudo nmap -A 192.168.1.10

Genera molto traffico: da evitare su reti di produzione senza una finestra di manutenzione concordata.

Nmap Scripting Engine (NSE): oltre il semplice port scan


La vera potenza di nmap emerge con NSE, il motore di scripting che esegue controlli automatizzati sugli host scoperti: dalla ricerca di vulnerabilità note alla verifica di configurazioni deboli. Gli script risiedono in /usr/share/nmap/scripts/ e sono organizzati in categorie (default, auth, vuln, discovery, intrusive, safe).

# Vulnerabilità note (categoria più invasiva, usarla con criterio)
sudo nmap --script=vuln 192.168.1.10

# Accesso FTP anonimo
sudo nmap --script=ftp-anon -p 21 192.168.1.10

# Header HTTP (spesso rivelano versioni software o debug info)
sudo nmap --script=http-headers -p 80,443 192.168.1.10

# Open relay SMTP
sudo nmap --script=smtp-open-relay -p 25 192.168.1.20

Un controllo rapido su porta 80/443 con http-headers capita spesso di far emergere header con versioni software esposte inutilmente: una correzione da cinque minuti che chiude una falla di information disclosure.

Output e automazione


Per qualsiasi verifica che vada oltre il controllo estemporaneo, conviene salvare i risultati:

sudo nmap -sV 192.168.1.0/24 -oA scan_results

Il flag -oA genera contemporaneamente output normale (.nmap), XML (.xml, utile per l’integrazione con altri strumenti e dashboard) e formato “grepable” (.gnmap), comodo per il parsing rapido da shell.

Combinazioni utili nel lavoro quotidiano

# Solo porte effettivamente aperte, timing aggressivo su rete affidabile
sudo nmap -sS -T4 --open 192.168.1.10

# Tutti i server SSH su una subnet
sudo nmap -p 22 --open -sV 192.168.1.0/24

# Verifica che MySQL non sia esposto inutilmente
sudo nmap -p 3306 --open 192.168.1.0/24

# Discovery + version scan solo sugli host realmente attivi
sudo nmap -sn 192.168.1.0/24 -oG - | grep "Up" | awk '{print $2}' | sudo nmap -sV -iL -

MySQL esposto senza motivo è uno degli errori di configurazione più comuni e più pericolosi: una scansione mirata come quella sopra richiede due secondi e può intercettare il problema prima che lo trovi qualcun altro.

Nmap ha inoltre sei template di timing, da T0 (paranoico, lentissimo) a T5 (aggressivo): T3 è il default bilanciato, T4 va bene su reti locali affidabili, mentre su VPN o collegamenti lenti conviene scendere a T2 per evitare falsi negativi dovuti a pacchetti persi.

Porte filtrate: un segnale, non un fastidio


Nmap distingue tre stati: open, closed e filtered. Quest’ultimo indica che un firewall o un packet filter sta bloccando silenziosamente la sonda. Se compaiono molte porte filtrate su un server che non ti aspetti sia protetto da firewall, vale la pena indagare: potrebbe essere ufw, firewalld, un ruleset nftables o un security group del provider cloud. In ogni caso, è un’indicazione da non ignorare, e lo stesso principio vale per i probe di version detection e OS fingerprinting, che un firewall può alterare o azzerare.

Conclusione


Nmap non si impara in un pomeriggio, ma i comandi visti coprono la maggior parte del lavoro quotidiano di un sistemista: discovery degli host, scansione delle porte, identificazione di servizi e versioni, script NSE per approfondire, e output strutturato per automazione o revisione successiva. La sequenza tipica è semplice: si parte con -sn per la discovery, si aggiunge -sV quando servono i dettagli sui servizi, e si porta NSE in campo quando serve scavare più a fondo. Timing prudente in produzione, aggressivo nel proprio lab: è una distinzione che vale la pena interiorizzare prima di lanciare la prima scansione su un ambiente che non si controlla del tutto.

Fonte originale: Hayden James, “nmap on Linux: Guide to Network Scanning and Discovery”, LinuxBlog.io.


The Pirate Post ha ricondiviso questo.

"If we still believe that science is a vocation grounded in argument, curiosity and care, we can’t delegate judgement to machines"

timeshighereducation.com/opini…

#ai #peerreview #academia

The Pirate Post ha ricondiviso questo.

New study: "We show…that research assessment is driven more by differences between evaluators than by difference in the evaluated research."
arxiv.org/abs/2607.09783

#Academia #Assessment #PeerReview #ScholComm #Universities

Questa voce è stata modificata (1 mese fa)