cross-posted from: https://lemmy.dbzer0.com/post/95652

Hey everyone, you may have noticed that some of us have been raising alarms about the amount of spam accounts being created on insufficiently protected instances.

As I wanted to get ahead of this before we’re shoulders deep in spam, I developed a small service which can be used to parse the Lemmy Fediverse Observer and retrieve instances which are suspicious enough to block.

The Overseer provides fully documented REST API which you can use to retrieve the instances in 3 different formats. One with all the info, one with just the names, and one as a csv you can copy-paste into your defederation setting. You can even adjust the level of suspicion you want to have.

Not only that, I also developed a python script which you can edit and run and it will automatically update your defederation list. You can set that baby to run on a daily schedule and it will take care that any new suspicious instances are also caught and any servers that cleared up their spam accounts will be recovered.

I plan to improve this service further. Feel free to send me ideas and PRs.

  • db0@lemmy.dbzer0.comOP
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 year ago

    It’s based on dynamic count. For now it’s a very simple how many users per post there are and each instance can set their own threshold for it.

    It’s not about few users, it’s about a tons of users and no activity. If you have 5000 users and 3 posts, it’s likely those are all spam accounts. This is what we’re checking for right now.

    This is not a manual process currently, but I’m planning to add the possibility to whitelist and blacklist instances manually in the future.

    • Fauxreigner@beehaw.org
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      1 year ago

      Isn’t it trivial for bot farms to just spam posts on their home instance? And how does this handle cases where the number of posts is zero?

      • Lucien@beehaw.org
        link
        fedilink
        English
        arrow-up
        7
        ·
        1 year ago

        Ideally the list of behaviors which trigger suspicion would be expanded over time, yes? Low hanging for first, just because it’s easy doesn’t mean spammers will program around it unless we check for it.

    • rho50@lemmy.nz
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Looks like a very cool project, thanks for building it and sharing!

      Based on the formula you mentioned here, it sounds like an instance with one user who has posted at least one comment will have a maximum score of 1. Presumably the threshold would usually be set to greater than 1, to catch instances with lots of accounts that have never commented.

      This has given me another thought though: could spammers not just create one instance per spam account? If you own something like blah.xyz, you could in theory create ephemeral spam instances on subdomains and blast content out using those (e.g. spamuser@esgdf.blah.xyz, spamuser@ttraf.blah.xyz, etc.)

      Spam management on the Fediverse is sure to become an interesting issue. I wonder how practical the instance blocking approach will be - I think eventually we’ll need some kind of portable “user trustedness” score.

      • db0@lemmy.dbzer0.comOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        yes, constantly adding new domains and spamming with them is a probably vector, but I’m not quite sure if that works due to how federation works. I am not quite that familiar with the implementations.