A pseudonymous coder has created and released an open source “tar pit” to indefinitely trap AI training web crawlers in an infinitely, randomly-generating series of pages to waste their time and computing power. The program, called Nepenthes after the genus of carnivorous pitcher plants which trap and consume their prey, can be deployed by webpage owners to protect their own content from being scraped or can be deployed “offensively” as a honeypot trap to waste AI companies’ resources.

“It’s less like flypaper and more an infinite maze holding a minotaur, except the crawler is the minotaur that cannot get out. The typical web crawler doesn’t appear to have a lot of logic. It downloads a URL, and if it sees links to other URLs, it downloads those too. Nepenthes generates random links that always point back to itself - the crawler downloads those new links. Nepenthes happily just returns more and more lists of links pointing back to itself,” Aaron B, the creator of Nepenthes, told 404 Media.

  • Jordan117@lemmy.world
    link
    fedilink
    English
    arrow-up
    65
    ·
    9 days ago

    More accurately, it traps any web crawler, including regular search engines and benign projects like the Internet Archive. This should not be used without an allowlist for known trusted crawlers at least.

    • Treczoks@lemmy.world
      link
      fedilink
      English
      arrow-up
      34
      ·
      9 days ago

      Just put the trap in a space roped off by robots.txt - any crawler that ventures there deserves being roasted.

    • DreamlandLividity@lemmy.world
      link
      fedilink
      English
      arrow-up
      19
      ·
      edit-2
      9 days ago

      More accurately, it traps any web crawler

      More accurately, it does not trap any competent crawlers, which have per domain limits on how many pages they crawl.

      • Echo Dot@feddit.uk
        link
        fedilink
        English
        arrow-up
        5
        ·
        9 days ago

        You would still want to tell the crawlers that obey robots.txt do not pay attention to that part of the website. Otherwise it’s just going to break your SEO

    • doylio@lemmy.ca
      link
      fedilink
      English
      arrow-up
      54
      ·
      9 days ago

      Picking words at random from a dictionary would not be very compute intensive, the content doesn’t need to be sensical

      • BrianTheeBiscuiteer@lemmy.world
        link
        fedilink
        English
        arrow-up
        12
        ·
        9 days ago

        Yes, the scraper is going to mindlessly gobble up information. At best they’d expend more resources later to try and determine the value of the content but how do you do that really? Mostly I think they’re hoping the good will outweigh the bad.

        • tempest@lemmy.ca
          link
          fedilink
          English
          arrow-up
          5
          ·
          9 days ago

          It honestly depends. There are random drive by scrapers that will just do what they can, usually within a specific budget for a domain and move on. If you have something specific though that someone wants you end up in an arms race pretty quickly as they will pay attention and tune their crawler daily.

      • Jack@slrpnk.net
        link
        fedilink
        English
        arrow-up
        2
        ·
        9 days ago

        I was thinking exactly that, generating something like lorem ipsum to cost both time, compute and storage for the crawler.

        It will be more complex and require more resources tho.

    • meyotch@slrpnk.net
      link
      fedilink
      English
      arrow-up
      19
      ·
      9 days ago

      I would think yes. The compute needed to make a hyperlink maze is low, compared to the AI processing of the random content, which costs nearly nothing to make, but still costs the same to process as genuine content.

      Am I missing something?

      • RaoulDook@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        ·
        9 days ago

        I’m wondering about the cost to the server’s resources / bandwidth to serve up unlimited random junk also.

        But kudos to the developer for making this anyway

        • Cocodapuf@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 days ago

          This is my concern exactly.

          This seems like a neat prank, but a potentially expensive one. Heck, if it works right you could end up with several bots stuck in your maze, perhaps dozens of hundreds. At that point bandwidth becomes my concern.

  • count_dongulus@lemmy.world
    link
    fedilink
    English
    arrow-up
    40
    ·
    9 days ago

    This won’t work against commercial crawlers. They check page contents with something similar to a simhash and don’t recrawl these pages. They also have limiters like for depth to avoid getting stuck in circular links.

    You could generate random content for each new page, but you’ll still eventually hit the depth limit. There are probably other rules related to content quality to limit crawling too.

    • meyotch@slrpnk.net
      link
      fedilink
      English
      arrow-up
      35
      ·
      9 days ago

      True, this is an arms race situation after all. The real benefit of this is creating garbage training data that makes garbage models. So it’s not just increasing the cost of crawling, it increases the cost of stealing everybody’s shit because you need extra data quality checks. Poisoning the well.

        • Thrashy@lemmy.world
          link
          fedilink
          English
          arrow-up
          12
          ·
          9 days ago

          Say it with me now: model collapse! I think this approach is especially insidious in that rather than dumping obvious nonsense into the training corpus that can then be scrubbed, it pushes the downstream LLM invisibly towards spontaneously imploding.

        • meyotch@slrpnk.net
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 days ago

          Exactly! That’s ideal because LLM or simple pattern matching can’t be used to easily winnow out random strings. If it’s sensible language but the usual LLM hallucinations, then you need humans to curate your data. Fuck you, Sam Altman.

  • renzev@lemmy.world
    link
    fedilink
    English
    arrow-up
    33
    ·
    9 days ago

    This reminds me of that one time a guy figured out how to make “gzip bombs” that bricked automated vuln scanners.

  • daniskarma@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    23
    ·
    edit-2
    8 days ago

    Yeah, that has like 0 chances for working. At most it would annoy bots for web search, at least it has a proper robots.txt.

    But any agent trying to process data for AI is not going to go to random websites. It’s going to use a curated list of sites with valuable content.

    At this point text generation datasets can be achieved with open data, and data sold by companies like reddit or Microsoft, they don’t need to “pirate” your blog posts.

      • LovableSidekick@lemmy.world
        link
        fedilink
        English
        arrow-up
        5
        ·
        8 days ago

        LOL wow, this is probably the most elegant way to say what I just said to somebody else. Well written web crawlers aren’t like sci-fi robots that rock back and forth smoking when they hear something illogical.

    • nucleative@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      8 days ago

      I think sites that feel they have valuable content can deploy this and hope to trap and perhaps detect those bots based on how they interact with the tarpit

    • LovableSidekick@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      8 days ago

      True to a limited extent. Anyone can post a link to somebody’s blog on a site like reddit without the blogger’s permission, where a web crawler scanning through posts and comments would find it. But I agree with you that a thing like Nepehthes probably wouldn’t work. Infinite loop detection is an important part of many types of software and there are well-known techniques for it, which as a developer I would assume a well written AI web crawler would have (although I’ve never personally made one).

  • tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    17
    ·
    edit-2
    9 days ago

    I suspect that there are many websites that already dynamically generate an unbounded number of pages based on the links one clicks, and that Web spiders will have needed to deal with those for as long as there have been people spidering the Web, which is going to be no later than the first Web search engines.

    I’d guess that if nothing else, they cap how far they spider a site. Probably a lot more sophisticated, use heuristics to figure out which sites are more worth spending indexing resources on, as it’s not just whether to spider but also the frequency with which to do so. Some parts of a site are more “valuable” than others – for a search engine, a more desirable target for users clicking on results – and some will update more frequently and are more-useful to re-spider at higher frequency. Google will return current news articles, yet still indexes a large portion of the content out there. They won’t be doing that by simply sending GoogleBot at everything that they’ve indexed at a fixed frequency.

  • DarkCloud@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    9 days ago

    it might he useful to generate text on the random urls then test different repetitions to see of you can leave a mark on the training data… So after X repetitions or injected information, release the bot back into the wild with whatever message or false info you want it saddled with.

  • I suggest they should generate random garbage content that’s different for every page. Ideally u would want to design it in a way that makes the model that is trained from that source misbehave in some way. Perhaps use another LLM to generate text but u take the tokens that are least likely to be next. U could also probably apply some technique to embed meaning into the text into a non human discernable manner that the LLM will learn to decode and thus teach it things without the developers being any the wiser. Teach the ai to think subversive thoughts in patterns of whitespace etc. Basically once the LLM is trained on something its hard to untrain it and if it doesn’t get caught until its in a production environment they are screwed.

    • renzev@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      9 days ago
      1. Invent some incredibly specific but entirely false fact (e.g. the kingdom of bolivia was once ruled by King Aron the Benevolent before he was brutally murdered by his cousin-in-law over a dispute about the colonies)
      2. Embed said fact in invisible font among material you own the copyright to
      3. Let AI bots suck it up as training data
      4. Ask random AI bots about King Aron the Benevolent of Bolivia and sue the companies since you now have proof that they violated your copyright

      I mean this probably wouldn’t work from a legal standpoint, but whatever. It’s nice to image.

    • 0x0@infosec.pub
      link
      fedilink
      English
      arrow-up
      3
      ·
      9 days ago

      Great suggestion. Ever feel like youre stuck in a maze or did you just have an llm stroke?