mattludwigs

mattludwigs

DeceptionRouter - trap scanners, spambots, and crawlers in an infinite number of pointless requests

Hey Elixir friends!

I stumbled across an interesting library in the Python community called spidertrap. It traps scanners, spambots, and crawlers in an infinite loop. This type of tool comes out of the field of cyber deception. Cyber deception is a proactive way to protect against bad actors. A trap like this will likely waste a bad actors time and resources.

I thought this was a cool tool and figured it would be fun to build it specifically for Elixir. So, here is DeceptionRouter.

How it works

DeceptionRouter is a plug router that can be integrated within an existing Phoenix project or any other plug based system. It will generate a list of random strings to make into links for the automated scanner to follow, however, each link leads back to another page of randomly generated links, and so on.

Since many of the scanning tools are automated, the bad actor will probably run it and wait, and wait they will! Even better if they run it on a type of cron job and they aren’t monitoring progress as closely - we can waste their time and resources even more!

Go forth and deceive

It’s always a good time to troll bad actors! I had fun exploring the topic of cyber deception and I hope this library can be the first of many Elixir specific security tooling (yes, please read this as forshadowing :smile:). Please feel free to open pull requests and give feedback.

Thank you!

Hex

Many thanks to spidertrap as the core inspiration!

Most Liked

BartOtten

BartOtten

Like the idea, like the effort you make on adding security libs to Phoenix.

DR, meet Crawly. I wonder if Crawly can be improved by letting them date and see how Crawly behaves :slight_smile:

Where Next?

Popular in Libraries Top

tmbb
I’ve been working on two packages (not on hex.pm yet) to build admin interfaces for phoenix apps: bureaucrat - which contains a bunch ...
New
treble37
Just looking for a little feedback on a tiny helper library I built - Sometimes I find the need to convert maps with atom keys to maps...
New
praveenperera
FastRSS Parse RSS feeds very quickly: This is rust NIF built using rustler Uses the RSS rust crate to do the actual RSS parsing Speed...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
OvermindDL1
Been making an MLElixir thing (not released yet…) for fun in spare time in the past day. I’m just trying to see how much I can get an ML...
132 13487 106
New
woutdp
Hi! I wanted to introduce my latest project LiveSvelte. It allows you to render Svelte inside LiveView with end-to-end reactivity. It’s ...
New
Qqwy
Hello everyone, I wrote a small library today called MapDiff. It returns a map listing the (smallest amount of) changes to get from map...
New
Jskalc
Hi! Today, after a couple weeks of development I’ve released v0.1 of LiveVue. It’s a seamless integration of Vue and Phoenix LiveView, i...
New
ahamez
Hi everyone, I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
Hal9000
Here is my first stab at this. README pasted below. https://github.com/Hal9000/elixir_random Comments and critiques are welcome. Th...
New

Other popular topics Top

JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
vac
Hi, I'm quite new in Elixir and I'm trying to format a string to a PEM format. I have the certificate value like MIIDBTCCAe2...... and ...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

Sub Categories:

We're in Beta

About us Mission Statement