Today, a bunch of new instances appeared in the top of the user count list. It appears that these instances are all being bombarded by bot sign-ups.
For now, it seems that the bots are especially targeting instances that have:
- Open sign-ups
- No captcha
- No e-mail verification
I have put together a spreadsheet of some of the most suspicious cases here.
If this is affecting you, I would highly recommend considering one of the following options:
- Close sign-ups entirely
- Only allow sign-ups with applications
- Enable e-mail verification + captcha for sign-ups
Additionally, I would recommend pre-emptively banning as many bot accounts as possible, before they start posting spam!
Please comment below if you have any questions or anything useful to add.
This should be probably pinned.
This might be related but I’ve noticed that someone is [likely automatically] following my posts and downvoting them. Kind of funny in a 'verse without karma.
Karma may mean nothing but the information space is a strategic domain.
I don’t think it’s the case here, as I’ve noticed this after posts in small communities:
- c/linguistics (~240 members)
- c/parana (1 member - new comm)
I think that the person/bot/whatever is following specific people.
CAPTCHA is the bare minimum. Who the hell turns it off?
There is an argument to be made that captchas can be automatically bypassed with some effort.
OTOH, the current wave of bots is quite clearly favoring instances with captcha disabled, so clearly it’s acting as at least a small deterrent.
Edit: Forgot to mention this earlier, but the upcoming update to Lemmy will actually remove captchas. Discussion:
Sometimes, security just means not being the low-hanging fruit.
Doing no captcha is like leaving the door open, hoping no-one breaks in, instead of at least closing the door (a closed door decreases chance of break in by near 100%, even if it’s not locked)
captchas block script kiddies at the very least
there’s a browser addon that lets you solve Recaptcha with one click:
https://addons.mozilla.org/en-US/firefox/addon/buster-captcha-solver/it automatically switches to the alternative accessibility option, which is based on typing in words that you hear, and uses speech recognition software to solve it. I’m fairly sure it could be automated quite easily.
Still way better than nothing at all
Some advanced OCR can hack the easier ones, but it’s unusual.
deleted by creator
99% of fedi instances should require sign-ups with applications and email. It does not make sense to let in users indiscriminately unless you have a 24h staff in charge of moderation.
We’re trying to capture the reddit refugees as well. It’s a fine-line to walk.
Email + Captcha should be doable right?
yes, that’s the bare minimum until we get better toolset
Agreed. An application that must be human reviewed is a very large gate that many people will see and just close the site. Myself included.
Email verification + captcha should be enough. The application part is cringe and a bad idea, unless you really want to be your own small high school clique and don’t have any growth ambitions, which is perfectly fine but again should not be expected from general instances looking to welcome Redditors.
Sounds like a spez sponsored attack on Lemmy.
Or just the unavoidable spam bot accounts coming as long as it’s easy and the instance operators being still unprepared.
I highly doubt spez did this. Reddit is currently doing fine. Even if it all goes away he’s sitting on over a decade of genuine human conversations he can sell to AI companies and make millions. He isn’t worried.
Steve Huffman doesn’t do anything, he’s a greedy little pigboy who profits off of the creation of his dead “friend”. He claims ownership of your ideas, for reddit’s exclusive profit, at no benefit (if anything, at penalty) to yourself.
However it would be naive to assume that he hasn’t directed at least some shade towards reddit. Almost as naive as to think that Google doesn’t create bots to target websites that don’t use their own captcha services.
PSA: When “proving you’re human”, always try to poison the data. They’re using your input to train visual AI, without paying you for your efforts. With Google, they will typically put the training up front - there will be one or two images that a bot isn’t sure about. If you give the unexpected response, the next test will be one that the machine knows, to check that you’re a human who knows what they’re talking about. With hcaptcha or some others, they might put the obvious one first, then check your guesses are human after.
The services will determine that you’re human by other means anyway (eg mouse movements) and eventually let you through, but by giving them the wrong answer when they don’t know but the right answer when they do, you can make their AI less effective.
They should be paying you for your input into their commercial enterprise, so fuck them.
Thanks for the heads up, StarTrek.website has enabled CAPTCHA and purged the bots from our database.
Starfleet takes changeling infiltrations seriously :P
Here we go: https://overseer.dbzer0.com/
API doc: https://overseer.dbzer0.com/api/
curl -X 'GET' \ 'https://overseer.dbzer0.com/api/v1/instances' \ -H 'accept: application/json'
Will spit out suspicious instances based on fediverse.observer . You can adjust the threshold to your own preference.
Nice! Would be cool if you could also include current statuses of captchas, emails, and application requirements.
Tell me how to fetch them and it will. ;)
I think the easiest option is to just iterate through the list of suspicious instances, and then check
{instance_url}/api/v3/site
for each of them. Relevant keys of the response json aresite_view.local_site.captcha_enabled
,site_view.local_site.registration_mode
, andsite_view.local_site.require_email_verification
.Since it’s a bunch of separate requests, probably it makes sense to do these in parallel and probably also to cache the results at least for a while.
It occurs to me that this kind of thing is better left to observer, as it’s set up to poll instances and gather data. I would suggest you ask them to ingest and expose this data as well
I’m noobish, but could they be defederated until they get their act together before they spam everybody?
Yes, and I believe some instances are already doing this
I suspect that there’s going to need to be some analysis software that can run on the kbin and lemmy server logs looking for suspicious stuff.
Say, for instance, a ton of accounts come from one IP. That’s not a guarantee that they’re malicious – like, could be some institution that NATs connections or something. But it’s probably worth at least looking at, and if someone signed up 50 accounts from a single IP, that’s probably at least worth red-flagging to see if they’re actually acting like a normal account. Especially if the email provider is identical (i.e. they’re all from one domain).
Might also want to have some kind of clearinghouse for sharing information among instance admins about abuse cases.
One other point:
I would recommend pre-emptively banning as many bot accounts as possible,
A bot is not intrinsically a bad thing. For example, I was suggesting yesterday that it would be neat if there was a bot running that posted equivalent nitter.net links in response to comments providing twitter.com links, for people who want to use those. There were a number of legitimately-helpful bots that ran on Reddit – I personally got a kick out of the haiku bot, that mentioned to a user when their comment was a haiku – and legitimately-helpful bots that run on IRC.
Though perhaps it would be a good idea to either adopt a convention ("bots must end in “Bot”) or have some other way for bots to disclose that they are bots and provide contact information for a human, in case they malfunction and start causing problems.
But if someone is signing up hordes of them, then, yeah, that’s probably not a good actor. Shouldn’t need a ton of accounts for any legit reason.
Maybe this is what’s implied or I’m just being silly; What is to stop a bad actor spinning up a Lemmy instance, creating a bunch of bot accounts with no restrictions, and spamming other instances? Would the only route of action be for the non spam instances to individually defederate the spam ones? Seems like that would be a bit of a cat and mouse situation. I’m not too familiar with the inner workings and tools that Lemmy has that would be useful in this situation
They can do this, and it is cat and mouse. But…
- It generally costs money to stand up an instance. It often requires a credit-card, which reduces anonymity. This will dissuade many folks.
- A malicious instance can be defederated, so it might not be all that useful.
- People can contact the security team at the host providing infra/internet to the spammer. Reputable hosts will kill the account of a spammer, which again is harder to duplicate if the host requires payment and identity info.
- Malicious hosts that fail to address repeated abuse reports can be ip-blocked.
- Eventually Lemmy features can be built to protect against this kind of thing by delaying federation, requiring admin approval, or shadow -banning them during a trial period.
Email has shown us that there’s a playbook that kind of works here, but it’s not easy or pleasant.
I’ve been thinking about this as well. As a user of a private instance, I would be absolutely fine with a “federation application” much like user registration is currently.
It was brought to my attention that my instance was hit with the spam bots regs. I’ve disabled registration and deleted the accounts from the DB. is there anything else I can do to clear the user stats on the sidebar? EDIT: I have reversed the stats too.
You can do this by updating
site_aggregates.users
in your database (WHERE site_id = 1
)
Any tips on how to get rid of all the spam accounts? I have been affected by this as well and thankfully captcha stopped them, but about 100 bots signed up before I could stop.
Normally i’d just look through all the accounts and pick out the 4 or so users that are real. But there is no apparent way to view every user account as an admin.
Did you figure out how to clean it up? You can see a list of users in your
local_user
table.I did manage to get a list of all users without a verified email using a postgress command, but sadly no, I can not figure out how to use the PurgePerson or AdminPurgePerson endpoints that are “described” in the documentation. I ended up just writing a small python script to ban all of them for now until I can figure out how to purge them.
It’s extra tough because user management in Lemmy is tied to posts and comments right now. Since none of the spam accounts have made posts, there’s no way in the UI to purge their accounts.
I’ll try to help you out in DMs in a minute, hang tight!
Fun fact, they’re removing Captcha in the next release.
I won’t be upgrading and I anticipate I’ll be defederating with any instance that upgrades to v0.18.
That is true, but because of the recent spam wave there is also an issue to re-add captcha. https://github.com/LemmyNet/lemmy/issues/3200
We’ll just have to see how it all shakes out.
Sure, but as it stands v.0.18 WILL ship with captcha removed. (They’re already in the Release Candidate phase).
Unless the maintainers mark this issue as a priority I recommend that we ALL stay away from that release.
Yep, I noticed that as well: https://lemmy.dbzer0.com/post/87761
Are you already defederating from suspicious instances? If not, What are you planning to do?
I am and I’ve already started work on https://github.com/db0/lemmy-overseer
I know from talking to admins when pbpBB was really popular that fighting spammers and unsavory bots was the big workload in running a forum. I’d expect the same for Fediverse instances. I hope a system can be worked out to make it manageable.
As a user I don’t have a big problem with mechanisms like applications for the sake of spam control. It’s hugely more convenient when an account can be created instantaneously, but I understand the need.
I do wonder how the fediverse is going to deal with self-hosting bad actors. I would think some kind of vetting process for federation would need to exist. I suppose you could rely on each admin to deal with that locally, but that does not sound like an efficient or particularly effective solution.