A Developer Accidentally Found CSAM in AI Data. Google Banned Him for It
Posted by markatlarge 20 hours ago
Comments
Comment by gillesjacobs 20 hours ago
Comment by winchester6788 19 hours ago
I just scraped data from reddit and other sources so i could build a nsfw classifier and chose to open source the data and the model for general good.
Note that i was a 1 year experienced engineer working solely on this project in my free time, so it was basically impossible for me to review or clear out the few csam images in the 100,000+ images in the dataset.
Although, now i wonder if i should never have open sourced the data. Would have avoided lot of these issues.
Comment by markatlarge 18 hours ago
Your dataset wasn’t the problem. The real problem is that independent developers have zero access to the tools needed to detect CSAM, while Big Tech keeps those capabilities to itself.
Meanwhile, Google and other giants openly use massive datasets like LAION-5B — which also contained CSAM — without facing any consequences at all. Google even used early LAION data to train one of its own models. Nobody bans Google. But when I touched NudeNet for legitimate testing, Google deleted 130,000+ files from my account, even though only ~700 images out of ~700,000 were actually problematic. That’s not safety — that’s a detection system wildly over firing with no independent oversight and no accountability.
Big Tech designed a world where they alone have the scanning tools and the immunity when those tools fail. Everyone else gets punished for their mistakes. So yes — your dataset has done good. ANY data set is subject to this. There needs to be tools and process for all.
But let’s be honest about where the harm came from: a system rigged so only Big Tech can safely build or host datasets, while indie developers get wiped out by the exact same automated systems Big Tech exempts itself from.
Comment by lynndotpy 17 hours ago
I want to add some technical details, since this is a peeve I've also had for many years now:
The standard for this is Microsoft's PhotoDNA, a paid and gatekept software-as-a-service which maintains a database of "perceptual hashes." (Unlike cryptographic hashes, these are robust against common modifications).
It'd be very simple for Microsoft to release a small library which just wraps (1) the perceptual hash algorithm and provides (2) a bloom filter (or newer, similar structures, like an XOR filter) to allow developers to check set membership against it.
There are some concerns that an individual perceptual hash can be reversed to a create legible image, so I wouldn't expect or want that hash database to be widely available. But you almost certainly can't do the same with something like a bloom filter.
If Microsoft wanted to keep both the hash algorithm and even an XOR filter of the hash database proprietary, that's understandable. But then that's ok too, because we also have mature implementations of zero-knowledge set membership proofs.
The only reason I could see is that security-by-obscurity might be a strategy that makes it infeasible for people to find adversarial ways to defeat the proprietary secret-sauce in their perceptual hash algorithm. But I that means giving up opportunities to improve the algorithm, while excluding so many ways it could be useful to combat CSAM.
Comment by markatlarge 15 hours ago
They’re also running AI-based classifiers on Drive content, and that second layer is far more opaque and far more prone to false positives.
That’s how you get situations like mine: ~700 problematic images in a ~700k-image dataset triggered Google to delete 130,000+ completely unrelated files and shut down my entire developer ecosystem. Hash-matching is predictable.
AI classification is not. And Google’s hybrid pipeline: isn’t independently vetted isn’t externally audited isn’t reproducible
has no recourse when it’s wrong
In practice, it’s a black box that can erase an innocent researcher or indie dev overnight. I wrote about this after experiencing it firsthand — how poisoned datasets + opaque AI detection create “weaponized false positives”: https://medium.com/@russoatlarge_93541/weaponized-false-posi...
I agree with the point above: if open, developer-accessible perceptual hashing tools existed — even via bloom filters or ZK membership proofs — this entire class of collateral damage wouldn’t happen.
Instead, Big Tech keeps the detection tools proprietary while outsourcing the liability to everyone else. If their systems are wrong, we pay the cost — not them.
Comment by Hizonner 17 hours ago
Yeah no. Those hashes aren't big enough to encode any real image, and definitely not an image that would actually be either "useful" to yer basic pedo, or recognizable as a particular person. Maybe they could produce something that a diffusion model could refine back into something resembling the original... if the model had already been trained on a ton of similar material.
> If Microsoft wanted to keep both the hash algorithm and even an XOR filter of the hash database proprietary
That algorithm leaked years ago. Third party code generates exactly the same hashes on the same input. There are open-literature publications on creating collisions (which can be totally innocent images). They have no actual secrets left.
Comment by lynndotpy 13 hours ago
> Yeah no.
Well, kind of. Towards Data Science had an article on it that they've since removed:
https://web.archive.org/web/20240219030503/https://towardsda...
And this newer paper: https://eprint.iacr.org/2024/1869.pdf
They're not very good at all (it just uses a GAN over a recovered bitmask), but it's reasonable for Microsoft to worry that every bit in that hash might be useful. I wouldn't want to distribute all those hashes on a hunch they could never be be used to recover images. I don't think any such thing would be possible, but that's just a hunch.
That said, I can't speak on the latter claim without a source. My understanding is that PhotoDNA still has proprietary implementation details that aren't generally available.
Comment by Hizonner 11 hours ago
I think you're making my point here.
The first one's examples take hashes of known headshots, and recover really badly distorted headshots, which even occasionally vaguely resemble the original ones... but not enough that you'd know they were supposed to be the same person. Presumably if they had a better network, they'd get things that looked more human, but there's no sign they'd look more like the originals.
And to do even that, the GAN had to be trained over a database of... headshots. They can construct even more distorted headshots that collide with corporate logos. If they'd used a GAN trained on corporate logos, they would presumably get a distorted corporate logo when they tried to "reverse" any hash. A lot of the information there is coming from the model, not the hash.
The second one seems to be almost entirely about collisions. And the collisions they find are in fact among images that don't much resemble one another.
In the end, a PhotoDNA hash is 144 bytes, made from apparently a 26 by 26 pixel grayscale version of the original image (so 676 bytes). The information just isn't there. You might be able to recover the poses, but that's no more the original image than some stick figures would be, probably less.
Here's [the best "direct inversion" I can find](https://anishathalye.com/inverting-photodna/). That's still using machine learning, and therefore injects some information from the model... but without being trained on a narrow class of source images, it does really badly. Note that the first two sets of images are cherry picked; only the last set is representative, and those are basically unrecognizable.
Here's [a paper](https://eprint.iacr.org/2021/1531.pdf) where they generate collisions (within reasonable values for the adjustable matching threshold) that look nothing like the original pictures.
> That said, I can't speak on the latter claim without a source. My understanding is that PhotoDNA still has proprietary implementation details that aren't generally available.
For original PhotoDNA, only for basically irrelevant reasons. First, actually publishing a complete reverse-engineering of it would be against many people's values. Values aside, even admitting to having one, let alone publishing it, would probably draw some kind of flak. At least some and probably dozens of people have filled in the small gaps in the public descriptions. Even though those are unpublished, I don't think the effort involved in doing it again is enough to qualify it as "secret" any more.
Indeed, it probably would've been published regardless of those issues, except that there's no strong incentive to do so. Explanations of the general approach are public for people who care about that. For people who actually want to compute hashes, there are (binary) copies of Microsoft's actual implementation floating around in the wild, and there are [Python](https://github.com/jankais3r/pyPhotoDNA) and [Java](https://github.com/jankais3r/jPhotoDNA) wrappers for embedding that implementation in other code.
There are competitors, from openly disclosed (PDQ) to apparently far less fully reverse engineered (NeuralHash), plus probably ones I don't know about... but I think PhotoDNA is still dominant in actual use.
[On edit: but I probably shouldn't have said "third party code", since the public stuff is wrapped around Microsoft's implementation. I haven't personally seen a fully independent implementation, although I have reason to be comfortable in believing they exist.]
Comment by bigfatkitten 16 hours ago
Comment by johnea 13 hours ago
Stop using goggle!
It's as simple, and as necessary, as that.
No technically astute person should use ANY goggle services at this point...
Comment by lynndotpy 12 hours ago
Comment by brokenmachine 7 hours ago
I've read it's almost impossible to run your own email server without getting blocked by all recipients in 2025.
Comment by jenadine 3 hours ago
Comment by petee 18 hours ago
Comment by markatlarge 18 hours ago
Comment by rolph 17 hours ago
google should be fully accountable for possesion and distribution, perhaps even manufacturing.
Comment by wang_li 18 hours ago
E: But also make sure every image in the dataset is properly licensed. This would have eliminated this entirely from the get go. Playing fast and loose with the distribution rights to these images led to this problem.
Comment by qubex 18 hours ago
Comment by deltoidmaximus 20 hours ago
I've tried to find this graphic against several times over the years but it's either been scrubbed from the internet or I just can't remember enough details to find it. Amusingly, it only just occurred to me that maybe I should ask ChatGPT to help me find it.
Comment by jsheard 20 hours ago
We know they did, an earlier version of the LAION dataset was found to contain CSAM after everyone had already trained their image generation models on it.
https://www.theverge.com/2023/12/20/24009418/generative-ai-i...
Comment by jsnell 20 hours ago
Comment by markatlarge 18 hours ago
The dataset had been online for six years. In my appeal I told Google exactly where the data came from — they ignored it. I was the one who reported it to C3P, and that’s why it finally came down. Even after Google flagged my Drive, the dataset stayed up for another two months.
So this idea that Google “did a good thing” and 404 somehow did something wrong is just absurd.
Google is abusing its monopoly in all kinds of ways, including quietly wiping out independent developers: https://medium.com/@russoatlarge_93541/déjà-vu-googles-using...
Comment by jfindper 20 hours ago
They uploaded the full "widely-used" training dataset, which happened to include CSAM (child sexual abuse material).
While the title of the article is not great, your wording here implies that they purposefully uploaded some independent CSAM pictures, which is not accurate.
Comment by AdamJacobMuller 19 hours ago
There is important additional context around it, of course, which mitigates (should remove) any criminal legal implications, and should also result in google unsuspending his account in a reasonable timeframe but what happened is also reasonable. Google does automated scans of all data uploaded to drive and caught CP images being uploaded (presumably via hashes from something like NCMEC?) and banned the user. Totally reasonable thing. Google should have an appeal process where a reasonable human can look at it and say "oh shit the guy just uploaded 100m AI training images and 7 of them were CP, he's not a pedo, unban him, ask him not to do it again and report this to someone."
The headline frames it like the story was "A developer found CP in AI training data from google and banned him in retaliation for reporting it." Totally disingenuous framing of the situation.
Comment by jfindper 19 hours ago
Indeed, which is why a comment that has infinitely more room to expand on the context should include that context when they are criticizing the title for being misleading.
Both the title and the comment I replied to are misleading. One because of the framing, the other because of the deliberate exclusion of extremely important context.
Imagine if someone accused you of "Uploading CSAM to Google Drive" without any other context. It's one of the most serious accusations possible! Adding like five extra words of context to make it clear that you are not a pedophile trafficking CSAM is not that much of an ask.
Comment by jsnell 18 hours ago
I bet the journalists and editors working for 404 will not correct their intentionally misleading headline. Why hold a random forum post buried in the middle of a large thread to a higher standard then the professionals writing headlines shown in 30-point font on the frontpage of their publication?
Comment by jfindper 18 hours ago
How many times do I need to repeat that I agree the headline is misleading? Yes, the article here has a shit title. You already made that point, I have already agreed to that point.
If I had an easy and direct line to the editor who came up with the title, I would point that out to them. Unfortunately they aren't on HN, that I'm aware, or I could also write a comment to them similar to yours.
Comment by bnallambsna 19 hours ago
Comment by jeffbee 20 hours ago
Comment by amelius 19 hours ago
Make an LLM read the articles behind the links, and then rewrite the headlines (in a browser plugin for instance).
Comment by add-sub-mul-div 19 hours ago
Comment by amelius 18 hours ago
Also, it could be optional. It probably should be, in fact.
Comment by shakna 16 hours ago
Comment by jeffbee 18 hours ago
Comment by amarcheschi 20 hours ago
Comment by ipython 19 hours ago
Comment by amarcheschi 19 hours ago
Edit i read the informations given in the briefing before the task, and they say that there might be offensive content displayed. They say to tell them if it happens, but well I did and got no answer so weeeell, not so inclined to believe they care about it
Comment by jfindper 19 hours ago
This varies by country, but in many countries it doesn't matter if it is a drawing, AI, or a real image -- they are treated equally for the purposes of CSAM.
Comment by amarcheschi 19 hours ago
Comment by ipython 11 hours ago
So screw the company, report it yourself and make sure to cite the company and their lack of a response. There’s a Grand Canyon sized chasm between “offensive content” and csam.
Comment by moi2388 5 hours ago
It needs to be sexually abused or exploited for something to be CSAM.
Comment by amarcheschi 5 minutes ago
Comment by kotaKat 18 hours ago
Can confirm. The amount of people I see in my local news getting arrested for possession that "... came from a cybertip escalated to NCMEC from <BIGCOMPANY>" is... staggering. (And it's almost always Google Drive or GMail locally, but sometimes a curveball out there.)
Comment by lostmsu 11 hours ago
Comment by kennyloginz 13 hours ago
Comment by giantg2 20 hours ago
Comment by jsheard 20 hours ago
Maybe AI-based heuristic detection is more ethically/legally fraught since you'd have to stockpile CSAM to train on, rather than hashing then destroying your copy immediately after obtaining it.
Comment by tcfhgj 19 hours ago
why?
the damage is already done
Comment by pseudalopex 16 hours ago
Comment by tremon 19 hours ago
Comment by jjk166 19 hours ago
Comment by pseudalopex 16 hours ago
Comment by tcfhgj 18 hours ago
Comment by boothby 19 hours ago
Comment by jjk166 19 hours ago
Comment by boothby 18 hours ago
Comment by jjk166 16 hours ago
Nevermind the importance of context, such as distinguishing a partially clothed child playing on a beach from a partially clothed child in a sexual situation.
Comment by wang_li 18 hours ago
Comment by jjk166 16 hours ago
Comment by Nevermark 18 hours ago
Comment by Nevermark 18 hours ago
Not a perfect CP detection system (might detect kids playing in a room with a rated R movie playing on a TV in the background), but it would be a good first attempt filter.
Of course, if you upload a lot of files to Google Drive and run a sanity check like this on the files, it is too late to save you from Google.
Avoiding putting anything with any risk potential on Google Drive seems like an important precaution regarding the growing tyranny of automated and irreversible judge & juries.
Comment by cs02rm0 19 hours ago
Comment by mossTechnician 18 hours ago
Comment by mflkgknr 18 hours ago
Comment by codedokode 18 hours ago
Comment by Hizonner 16 hours ago
And there's a subset of crusaders (not all of them, admittedly) who will say, with a straight face, that there is abuse involved. To wit, she abused herself by creating and sending the image, and he abused her either by giving her the idea, or by looking at it.
Comment by codedokode 13 hours ago
Comment by Hizonner 12 hours ago
Please tell me that's meant to be a joke.
Comment by iamnothere 10 hours ago
Comment by xethos 18 hours ago
https://laws-lois.justice.gc.ca/eng/acts/c-46/section-163.1....
Comment by djoldman 9 hours ago
Otherwise you could send one image to every American email account and put every American adult in prison.
Comment by bigfatkitten 16 hours ago
Prosecutors have broad discretion to proceed with a matter based on whether there is a reasonable prospect of securing a conviction, whether it’s in the public interest to do so and various other factors. They don’t generally bring a lot of rigour to these considerations.
Comment by jfindper 18 hours ago
Comment by stavros 18 hours ago
Comment by jfindper 18 hours ago
(I didn't really want to start looking up the exact details of this topic while at work, so just went from memory. At the very least, the terminology "Romeo & Juliet Law" should give the original commenter enough to base a search on)
Comment by burnt-resistor 18 hours ago
Comment by josefritzishere 16 hours ago
Comment by bsowl 20 hours ago
Comment by jkaplowitz 20 hours ago
Again, to avoid misunderstandings, I said unknowingly - I'm not defending anything about people who knowingly possess or traffic in child porn, other than for the few appropriate purposes like reporting it to the proper authorities when discovered.
Comment by jjk166 19 hours ago
We should make tools readily available and user friendly so it is easier for people to detect CSAM that they have unintentionally interacted with. This both shields the innocent from being falsely accused, and makes it easier to stop bad actors as their activities are detected earlier.
Comment by pixl97 16 hours ago
Comment by jjk166 15 hours ago
Comment by burnt-resistor 17 hours ago
Comment by jmogly 8 hours ago
Comment by UberFly 19 hours ago
Comment by stronglikedan 16 hours ago