Urgent.News

What's breaking now, across thousands of outlets.

Tech

When is an aggregate really anonymous? Differencing attacks on AI query layers

A sum is not anonymization. Whether a number over special-category personal data (Art. 9 GDPR) says something about one person does not depend on its shape but on the population behind it. If fewer than k people stand behind a number, the aggregate is a single-person disclosure in table form. A worked example with invented numbers An HR department analyses union membership. The minimum group size…

An aggregate is not automatically anonymized, even if it appears to obscure individual identities. The level of anonymity within a number depends on the population behind it. If fewer than k people are represented by a number, that aggregate constitutes a disclosure of information about a single individual. To illustrate, imagine an HR department analyzing union membership, with a minimum group size set at 5.

Queries A and B ask about union membership in purchasing. Query A returns 6 union members, while Query B returns 5. The difference between the two queries reveals that one person - the one who joined the purchasing department in 2026 - is a union member. Despite both queries meeting the k-anonymity threshold independently, the difference between their results discloses sensitive information.

Two consequences arise from this scenario. First, a rule attached to the shape of a query (requiring at least k rows) can be circumvented by filtering the population down to a single person. Second, k-anonymity is merely a minimum condition, not a comprehensive solution. At Nowl, a self-hosted semantic access layer for existing business software, the system automatically applies a group-size condition to grouped queries, counting the population before execution and rejecting the query if the count falls below k.

The rejection does not provide any information about the data, except whether the count is below k. While k is customizable per project, it cannot be set to 1. Moreover, the system logs every request, including rejections. However, this approach does not prevent differencing attacks across multiple queries, nor does it provide l-diversity guarantees.

Additionally, it does not address whether all sensitive fields have been properly classified. Currently, this system is in the pilot phase, tested on synthetic data, and has not been validated on a live customer dataset. To ensure the proper handling of sensitive data in AI systems, vendors should be asked about several key factors.

First, who determines which fields are special categories, and is this decision confirmed by a human? Second, does the query itself contain the sensitive statement? Third, is the threshold determined by the shape of the query or the population behind it? Fourth, who sets the k value, and can it be adjusted to disable the check? Fifth, does the system count individuals or joined rows?

Sixth, what happens when the k-anonymity check fails? Seventh, does a rejection leak any information about the data? And finally, is there any tracking of queries or a noted gap in this area?

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Bounce-Safe Welcome App: Transactional Email API or SMTP for Custom-Domain Backends

A welcome message is allowed to be late; it is not allowed to keep targeting an address already known to be invalid. That operational constraint changes the transport choice: keep template ownership…

  • Welcome messages require verification of suppression before dispatch
  • Transactional email API provides structured request and delivery events
  • SMTP offers universally recognized submission boundary for existing mail relays

Layered Abuse Control for Self-Hosted Laravel Admins

You locked HTTPS. You hardened login. Backups are on a calendar. Bots still hammer admin login and public forms all day. Credential stuffing does not need a clever zero-day.

  • Security experts recommend layered approach to protect self-hosted Laravel admin panels.
  • Use reverse proxy like Nginx or Caddy for TLS termination, security headers, and traffic forwarding.
  • Implement Laravel rate limiting on high-value endpoints with shared cache for consistency.

More from Monday 21 September →