Stopping Spambots: A Spambot Trap 312
Neil Gunton writes "Having been hit by a load of spambots on my community site, I decided to write a Spambot Trap which uses Linux, Apache, mod_perl, MySQL, ipchains and Embperl to quickly block spambots that fall into the trap. "
Elements of good design I'd missed (Score:4, Informative)
Eliminate mailto - makes sense. You should have an http based "send me a message system" - force a live person to type stuff in instead of letting a program pick out addresses.
Eliminating mailto alone would probably help in mot of my spam problems (as I have my "contact me" address right on the first page).
Re:Elements of good design I'd missed (Score:5, Interesting)
Re:Elements of good design I'd missed (Score:2)
Re:Elements of good design I'd missed (Score:2)
Re:Elements of good design I'd missed (Score:2)
Re:Elements of good design I'd missed - P.Solution (Score:2, Interesting)
As described at http://www.joemaller.com/js-mailer.shtml [joemaller.com] you can combine JavaScript and Images to protect your mail. Made very good expiriences with this one....
But, as stated on the Website: this game is an arms race...
Re:Elements of good design I'd missed (Score:2)
Re:Elements of good design I'd missed (Score:2, Informative)
Re:Elements of good design I'd missed (Score:2, Funny)
I'm sure you don't want THAT kind of lawsuit.
Re:Elements of good design I'd missed (Score:2)
Dunno about skating, but blind people do ski. They are preceded by a guide who shouts them directions (or uses a wireless intercom, in order to not disturb the other skiers). Have seen such pairs several times at 2 Alpes. It must still be a helluva difficult, but they manage to do it anyways.
Re:Elements of good design I'd missed (Score:2, Informative)
I put my email address in a jpeg image. Haven't found a spambot yet that can decipher that.
But neither could blind internet users...
Add an alt tag that describes how to email you. Eg, "The first part of my email address is 'username' and the second part is 'host.com' - the two parts are separated by an '@' sign." I've been doing the jpeg thing for three years; works great.
Re:problem with not giving an email address ... (Score:2, Insightful)
The only problem with the idea of using entirely http based "send me a message systems" is that some people, like myself, would much rather have an actual email address to use instead of having to use 50 different layouts and 50 different configurations and 50 different methods of communicating with someone or a company. Every html based contact system has its own quirks and problems, I'd rather just need to learn my email programs issues instead.
Re:problem with not giving an email address ... (Score:2)
$0.02USD,
-l
Re:Elements of good design I'd missed (Score:3, Insightful)
You're 100% right. And fighting against spambots by relying on UserAgent is akin to... well.... security thru obscurity, albeit somehow in reverse.
What also looks strange is that he doesn't consider that one can get a link directly to a page on the n-th level: as human browsers don't usually download robots.txt either, sounds like he's gonna ban some poor guys who got a link from a friend...
Re:Elements of good design I'd missed (Score:3, Informative)
other solution: flash 8) (Score:2)
don't worry, and google wil adapt. They read even pdf and
new thought: make a site written in
Re:other solution: flash 8) (Score:2)
Tom.
Here's a Javascript that writes mailto: links... (Score:3, Informative)
http://artificeeternity.com/includes/linkwrite.
Instructions for use are included in comments. The script fragment that replaces mailto: links in the page will actually shorten your code -- it only requires entering the username and domain once. Also, the @ sign is added in by the script, so the address itself never appears in your HTML.
/.ed (Score:2, Funny)
Re:/.ed (Score:3, Funny)
Slashbot (Score:3, Funny)
"I have a truly marvelous demonstration of this proposition which this bandwidth is too narrow to transmit."
Block? Are you kidding? (Score:5, Interesting)
No way, man.
If you realize you're serving to a bot, go on serving. Each time the bot follows the "next page" link, you
Give it thousands, millions of addresses this way.
Re:Block? Are you kidding? (Score:5, Interesting)
Re:Block? Are you kidding? (Score:5, Funny)
Why is this a bad thing? They are owned by Verisign.
How about instead, returning pages with the email address abuse@domain-that-spambot-is-coming-from all over them...
This is also a good idea. In fact, I have a script which does a traceroute to the IP of the bot, and then looks up the admin contact using whois for the last couple of hops, and returns these. Oh, and for additional fun, throw in a couple of addresses of especially loved "friends"...
Re:Block? Are you kidding? (Score:3, Funny)
Like hotline@mpaa.org, cdreward@riaa.org, senator@hollings.senate.gov for example?
Re:Block? Are you kidding? (Score:2)
Re:Block? Are you kidding? (Score:2)
Most spambots know better than to send their crap to email addresses containing things like abuse, root, postmaster,
Also, in regard to the problem of root servers being queried every time a @randomdomain.com is looked up, could you not just use random IP addresses?
Better Addresses To Feed Spiders (Score:3, Informative)
If you're not messing with DNS, though, there are lots of addresses that can cause trouble:
Teergrubes and other traps for spammers (Score:3, Informative)
And somewhere out there is a far nastier variant on a teergrube that can keep a typical smtp session up for hours with only a few kilobits/minute, using tricks like setting TCP windows very small, NAKing lots of packets so TCP retransmits them, etc. (It basically works by saying "No, SMTP/TCP/IP isn't a set of protocol drivers in my Linux kernel, it's a definition of a set of messages and there's no reason I should user a bunch of well-tuned efficient reliable kernel routines when I can send raw IP packets myself designed for maximal ugliness."
Re:Block? Are you kidding? (Score:3, Informative)
From the website: Wpoison is a free tool that can be used to help reduce the problem of bulk junk e-mail on the Internet in general, and at sites using Wpoison in particular.
It solves the problems of trapped spambots sucking up massive bandwidth/CPU time, as well as sparing legitimate spiders (say, google) from severe confusion.
Re:Block? Are you kidding? (Score:3, Interesting)
The bots don't fall for it anymore. Some dorks in Washington state decided to make a couple requests a second to it once, but in the two years I've had it up, they're the only ones.
Re:Block? Are you kidding? (Score:2)
Liberally sprinkled postmaster@127.0.0.1 and abuse]@127.0.0.1.
Re:Block? Are you kidding? (Score:3, Interesting)
Good idea but, I'm sure spam software has been rejecting 127.0.0.1 for many years.
How about a few people volunteering real FQDNs that all resolve to 127.0.0.1? I realize that people would be volunteering horsepower and bandwidth for DNS lookups, but it would be in the name of dramatically reducing spam. Then, keep a list of all the "loopback FQDN's" and let the rest of us feed those FQDN's into spam-trap generators. Eventually, there would be so many real-looking spam trap email addresses that the spam software wouldn't be able to keep up with the list of loopback FQDN's.
To take it to the next level, you could hide the list of "loopback FQDN's" by making a reverse DNS lookup against a couple of volunteered IP addresses return a random FQDN from the list of loopback FQDN's at the time that the spamtrap page is dynamically generated.
Spammers would never know the entire list of FQDN's that resolve to loopback.
Re:Block? Are you kidding? (Score:5, Interesting)
I agree. And, come on, how much technology do you need?
This is my solution to stopping spambots. It's in a JavaServlet technology and I am posting it here to prevent my company's site from being slashdotted. It does not prevent the spammer from harvesting emails it just slows them down.... a lot :) If everyone had a script like this, spambots would be unusable.
Feel free to use the code in anyway you please (LGPL like and stuff)
Put robots.txt in your root folder. Content:
User-agent: *Disallow:
Put StopSpammersServlet.java in WEB-INF/classes/com/parsek/util:
package com.parsek.util;import java.io.File;
import java.io.StringWriter;
import javax.servlet.ServletContext;
import java.net.URL;
import java.util.Enumeration;
import java.lang.reflect.Array;
public class StopSpammersServlet extends javax.servlet.http.HttpServlet {
private static String[] names = { "root", "webmaster", "postmaster", "abuse", "abuse", "abuse", "bill", "john", "jane", "richard", "billy", "mike", "michelle", "george", "michael", "britney" };
private static String[] lasts = { "gates", "crystal", "fonda", "gere", "crystal", "scheffield", "douglas", "spears", "greene", "walker", "bush", "harisson" };
private String[] endns = new String[7];
private static long getNumberOfShashes(String path) {
int i = 1;
java.util.StringTokenizer st = new java.util.StringTokenizer(path, "/");
while(st.hasMoreTokens()) { i++; st.nextToken(); }
return(i);
}
public void doGet (javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException {
response.setContentType("text/html; charset=UTF-8");
java.io.PrintWriter out = response.getWriter();
try {
ServletContext servletContext = getServletContext();
endns[0] = "localhost";
endns[1] = "127.0.0.1";
endns[2] = "2130706433";
endns[3] = "fbi.gov";
endns[4] = "whitehouse.gov";
endns[5] = request.getRemoteAddr();
endns[6] = request.getRemoteHost();
String query = request.getQueryString();
String path = request.getPathInfo();
out.println("<html>");
out.println("<head>");
out.println("<title>Members area</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>Hello random visitor. There is a big chance you are a robot collecting mail addresses and have no place being here.");
out.println("Therefore you will get some random generated email addresses and some random links to follow endlessly.</p>");
out.println("<p>Please be aware that your IP has been logged and will be reported to proper authorities if required.</p>");
out.println("<p>Also note that browsing through the tree will get slower and slower and gradually stop you from spidering other sites.</p>");
response.flushBuffer();
long sleepTime = (long) Math.pow(3, getNumberOfShashes(path));
do {
String name = names[ (int) (Math.random() * Array.getLength(names)) ];
String last = lasts[ (int) (Math.random() * Array.getLength(lasts)) ];
String endn = endns[ (int) (Math.random() * Array.getLength(endns)) ];
String email= "";
double a = Math.random() * 15;
if(a if(a if(a if(a if(a if(a if(a if(a if(a if(a if(a if(a if(a email = email + "@" + endn;
out.print("<a href=\"mailto:" + email + "\">" + email + "</a><br>");
response.flushBuffer();
Thread.sleep(sleepTime);
} while (Math.random()
out.print("<br>");
do {
int a = (int) (Math.random() * 1000);
out.print("<a href=\"" + a + "/\">" + a + "</a> ");
Thread.sleep(sleepTime);
response.flushBuffer();
} while (Math.random() out.println("</body>");
out.println("</html>");
} catch (Exception e) {
out.write("<pre>");
out.write(e.getMessage());
e.printStackTrace(out);
out.write("</pre>");
}
out.close();
}
}
Put this in your WEB-INF/web.xml
<servlet><servlet-name>stopSpammers</servlet-name& gt;
<servlet-class>com.parsek.util.StopSpammersS ervlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>stopSpammers</servlet-name& gt;
<url-pattern>/members/*</url-pattern>
</servlet-mapping>
Here you go. No PHP, no APache, no mySQL, no Perl, just one servlet container.
Ciao
Re:Block? Are you kidding? (Score:4, Informative)
<QUIET ON>
<html><head><title>Members area</title></head><body>
<p>Hello random visitor. There is a big chance you are a robot collecting mail
addresses and have no place being here.
Therefore you will get some random generated email addresses and some random links
to follow endlessly.</p>
<p>Please be aware that your IP has been logged and will be reported to proper
authorities if required.</p>
<DBOPEN "SpamFood", "localhost", "login", "password">
<FOR I=1 TO 100 STEP 1>
<SQL select * from names order by rand() limit 1>
<LET FN="$Name">
</SQL>
<SQL select * from lasts order by rand() limit 1>
<LET LN="$Last">
</SQL>
<SQL select * from addresses order by rand() limit 1>
<LET AD="$Address">
</SQL>
<a href="mailto:$FN.$LN@$AD">$FN.$LN@$AD</a> <br>
</FOR>
</body>
</html>
Re:Block? Are you kidding? (Score:3, Insightful)
Way too much work. Here's similar Escapade [escapade.org] code:
Not similar enough. That makes 300 queries per hit against your database, and I don't think you even used prepared statements. His code slowed their software to a crawl by sleeping. Yours will slow your software to a crawl by excessive database traffic.
Re:Block? Are you kidding? (Score:3, Informative)
However, the instructions for installating Wpoison more or less assumes that one has a single website to protect. I have around 20 virtual hosts. So instead of creating a renamed cgi-bin in every DocumentRoot, I added a single
ScriptAlias /runme/ "/var/www/cgi-bin/"
to httpd.conf and then linked it like this:
<A HREF="/runme/addresses.ext"><IMG SRC="pixel.gif" BORDER=0></A>
I also added a single transparent pixel to the link to keep it invisible but still fool the spiders. Add the runme directory as excluded in the robots.txt and you should be on your way. Muhahahah, and so on.
Problem with wpoison... (Score:3, Informative)
Re:Block? Are you kidding? (Score:3, Insightful)
No way, man.
If you realize you're serving to a bot, go on serving. Each time the bot follows the "next page" link, you
Give it thousands, millions of addresses this way.
This would be good to do with known bad addresses, but random addresses only add more unknowing people to the list. You may add 1000 email addresses to the list and slow them down, but if even 10 of those email addresses are real, you've added to the problem. The bad addresses will be taken out as they are found to be bad, and the good ones will be left in. You've signed JoeRandomUser@RandomDomain.com up for all the spam he can handle, even if he has taken great lengths to keep his email address off the spam lists. In theory this sounds like a great idea, until your the guy getting your email address randomly fed to the bots.
Re:Block? Are you kidding? (Score:2)
Better yet, use a Spam Troll-box (Score:2, Interesting)
A troll-box gives Spam-bots a place to send their spam. When this box intercepts the spam, it reports it to the Vipul's Razor network, and everyone else on this network becomes aware of that spam (if they are also using Vipul's Razor to filter, which, chances are they are, it will filter that spam if they get it).
If Vipul's Razor isn't enough, one can even use something like SpamAssassin [taint.org] in conjunction with Vipul's Razor to get even better results.
Of course, this isn't cutting off Spam-bots at their source... but if enough sites were to cut them off at their source, then I'd imagine the Spam-bot authors would get wise to this and devise a way around it. Whereas with something like a SPam Troll-box, the Spam-bots seem to still be working to those running the Spam bots
Re:Block? Are you kidding? (Score:3, Insightful)
Add a couple of sleep(20); into the cgi script that generates the bot fodder. The bot will still stay busy waiting for your webserver's response, but your script will exactly consume zero resources.
For additional kicks, set up a DNS teergrube.
Re:Block? Are you kidding? (Score:4, Interesting)
Zero resources, except for memory.
A much better solution would be to point the bot at a set of "servers" with IP addresses where you're running a stateless tarpit.
http-referrer (Score:2)
hmm, just a wild guess, but does this technique involve using the http-referrer to see if there are too many clients coming from just a particalar address (which would obviously be a *bad* thingy), and subsequently block them too?
might explain why we can't see it no more
I want it too!!! it seems to work pretty good!
Re: (Score:2, Interesting)
How I track spammers using PHP (Score:5, Interesting)
As it turns out, I really haven't received that much mail to this address. About the only mail I've ever received to it is someone from trafficmagnet.net, who tells me that I'm not listed on a few search engines and that I can pay them to have my site listed. I need to send her a nasty reply saying that I don't care about being listed on Bob's Pay-Per-Click Search Engine, and that if she had actually read the page, she would have noticed that she was sending mail to an invalid address. Besides, the web server is for my inline skate club and we don't have a $10/month budget to pay for search engine placement.
I think I've received more spam from my Usenet posting history, from my other web site, and from my WHOIS registrations than I've received from the skate club web site.
Hammered already.... (Score:5, Funny)
The Problem: Spambots Ate My Website
s/Spambots/Slashdot/
Re:Hammered already.... (Score:2)
re: spidertrap (Score:4, Interesting)
removing mailto: a bad solution (Score:5, Interesting)
Removing mailto: links is a bad solution to the problem. It might be the only solution, but it is bad.
I hate the editor in my web browser. No spell check (and a quick read of this message will prove who diasterious that is to me), not good editing ability, and other problems. By contrast my email client has an excellent editor, and a spell checker. Let me pull up a real mail client when I want to send email, please!
In addition, I want people to contact me, and not everyone is computer literate. I hang out in antique iron groups, I expect people there to be up on the latest in hot tube ignition technology, not computer technology. To many of them computers are just a tool, and they don't have time to learn all the tricks to make it work, they just learn enough to make it do what they want, and then ignore the rest. Clicking on a mailto: link is easy and does the right thing. Opening up a mail client, and typing in some address is error prone at best.
Removing mailto: links might be the only solution, but I hope not. So I make sure to regualrly use spamcop [spamcop.org].
Simple solution! (Score:3)
2) Trash any email sent to dedicatedaddress that doesn't have the [Question] tag in the subject.
Hope this helps.
Re:Simple solution! (Score:3, Insightful)
Re:Simple solution! (Score:3, Informative)
This seems to work fine (the window comes upo with the right email address in the to: line and the '[Question]' tag in the subject: line) in Netscape 4.76
and Lynx Version 2.8.3rel.1
and Mozilla 0.9.7, which implies Netscape 6.x, and Galeon will work as well, though I haven't tested these.
A better solution: obfuscate the mailto: link (Score:5, Insightful)
(Yes, I've posted about this before [slashdot.org], but it does work for me.) Browsers render it so users get the address they want, but spambots try to grab it from the raw html and get something meaningless.
Re:A better solution: obfuscate the mailto: link (Score:5, Interesting)
Some spambots will render that correctly. Less likely, though, is if they'll render an email that has had this [jracademy.com] done to it: it's encrypted through javascript.
It is a rather impressive piece of work. Uses honest-to-god RSA.
You could also encrypt all email addresses, and then in your spambot trap, put really really CPU intensive javascript. You'll win either way: either the spambot doesn't do javascript, and it won't get your addresses, or it does do javascript, and they've just spent an eternity wasting time. It would work the same way as a tarpit, but it wouldn't eat nearly so many resources on your end.
If you're really clever, you could have the javascript do useful work, and then have the results of that work encoded into links in the page. You could then retrieve the results when the spider follows the link.
There was an idea called hashcash floating arount a while back. The idea was that an SMPT server would refuse to deliver email if the sender didn't provide a hash collsion of so many bits to some given value. The sender has to expend way assymetrically more resources to generate the collision than it takes the reciever to check it. That way on can impose a cost on sending a lot of email. It's not so much to be a burden on ordinary users, but if you need to send thousands of emails, it will add up.
The WOrld is now safe. (Score:2, Funny)
Similar to how the new ORBZ works? (Score:4, Interesting)
Re:Similar to how the new ORBZ works? (Score:4, Interesting)
This is the same method I have been using for a while. I have an e-mail account called "cannedham" that I had posted on several web sites as a mailto: anchor on a 1x1 pixel graphic. Any e-mail sent to that address updates my Postfix header_checks file to protect the rest of my accounts. It works like a charm.
Re: SpamBots: PHP Code (Score:2)
{
echo "\n<font size=\"-5\" style=\"display:none\"><a
href=\"mailto:$Email\"
}
SeedFakeEmail("uce@ftc.gov");
SeedFakeEmail("listme@dsbl.org");
SeedFakeEmail("hotline@mpaa.org");
SeedFakeEmail("cdreward@riaa.org");
SeedFakeEmail("senator@hollings.senate.gov");
Put that in your pageheader and smoke it!
Take a look in the mirror (Score:5, Informative)
Superior Labs spambot_trap mirror [superiorlabs.com]
-Spack
A tip (Score:5, Informative)
Here's a tip for those of you writing spambot traps... How about not blindly responding to the faked Return-Path address?
Now that should be illegal. You people whine about your 10 spams a day, try 10,000 from 2000 different email addresses. Idiot postmasters should be caught and jailed.
Re:A tip (Score:2)
Although, the MTA would be looking at the envelope sender if it's any good, but most of the time those are faked too.
he suggests formmail, another spam tool (Score:5, Informative)
formmail itself (even the most recent version) can still be abused by spammers to use your webserver as a bulk mail relay - see the advisory at [monkeys.com]o ry . df
http://www.monkeys.com/anti-spam/formmail-advis
It's a shame he didn't suggest the more robust formmail replacement at nms [sourceforge.net] which is maintained, and attempts to close all the known bugs and insecurities.
Re:he suggests formmail, another spam tool (Score:2)
But there are later versions of formmail that are patched, aren't there?
Re:he suggests formmail, another spam tool (Score:2)
I've seen it happen to sites I administer a number of times in the past, where individuals apparently using some sort of AOL name harvesting tool were using the formmail.pl scripts to send mass messages. Looking at the User-Agent headers, it looks like there's a VB script out there designed specifically to automate this exploit.
Removing the Mailto: may not be the best plan.. (Score:5, Interesting)
<script>document.write("<A CLASS=\"link\" HREF=\"mailto: " + "myname" + String.FromCharCode(64) + "mydomain"</script>
Seems to work fine. Anyone know of any reason it shouldn't, or have any other way to keep down spam without totally removing the Mailto: ? I know this won't work with *every* browser, but it beats totally removing mail links. And I don't think spammers can get it without having a human actually look at the page...
Re:Removing the Mailto: may not be the best plan.. (Score:2)
Re:Removing the Mailto: may not be the best plan.. (Score:4, Interesting)
<img src="myemailaddress.jpg" alt="me at domain dot com">
that way people who use browsers that speak (ie. the blind) would still hear your address correctly, so long as spambots don't start to pick up on the spelling out of "at" and "dot".
Re:Removing the Mailto: may not be the best plan.. (Score:2)
Re:Removing the Mailto: may not be the best plan.. (Score:3, Interesting)
We embed this JavaScript code on each page that needs mailtos:
<script type="text/javascript" language="JavaScript1.3">
function n_mail(n_user) {
self.location = "mailto:" + n_user + "@" + "yourdomain" + "." + "com";
}
</script>
And then make email address links of this form:
<a href="javascript:n_mail('foo');">foo<!-- antispam -->@<!-- antispam -->yourdomain<!-- antispam -->.<!-- antispam -->com<!-- antispam --></a>
Our addresses even show up correctly in lynx, but are "clickable" only in JavaScript-enabled browsers.
Of course, it's probably only a matter of time before spambots can compensate for this code. A more secure approach would be to put email addresses "components" in borderless cells of tables, or as a previous poster suggested, in images.
Similar setup without SQL requirements (Score:4, Interesting)
Setup details at http://www.bero.org/NoSpam/isp.php [bero.org]
Another way to stop spambots (Score:3, Funny)
Removing email addresses (Score:2)
You can generate the code for your own email address here [pgregg.com] or, if you want some source code, then you can find an implementation of it here [uk.net].
my spambot trap (Score:4, Informative)
script that traps bots (and others) that use your robots.txt
to find directories to look through. Requires an
robots.txt
#################
User-agent: *
Disallow:
Disallow:
Disallow:
dont_go_here/index.php
############
$now = date ("h:ia m/d/Y");
$IP=getenv(REMOTE_ADDR);
$host=getenv(
$your_email_address=you@whatever;
$ban_code =
"\n".
'# '."$host banned $now\n".
'RewriteCond %{REMOTE_ADDR} ^'."$IP\n".
'RewriteRule ^.*$ denied.html [L]'."\n\n";
$fp = fopen ("/path/to/.htaccess", "a");
fwrite($fp, $ban_code);
fclose ($fp);
mail("$your_email_address", "Spambot Whacked!", "$host banned $now\n");
Re:my spambot trap (Score:2)
How about rewriting denied.html each time to contain a list of e-mail addresses in the format:
abuse@banned_host [mailto]
That way, the spammers might actually spam their own ISP's abuse account. Now THAT would be funny! :-)
Other options.. (Score:4, Informative)
A pretty good article, but being able to install modules into Apache may not be the best situation for everyone who wants to stop Spambots..
Shameless plug, but I've got an ongoing series in the Apache section of /. that deals with easy ways that administrators *and* regular users can keep Spambots off their sites:
Stopping Spambots with Apache [slashdot.org]
and
Stopping Spambots II - The Admin Strikes Back [slashdot.org]
Just some more options and choices to help people out!
using images is bad for people with text browsers (Score:2, Insightful)
And of course if he uses ALT text for the images, then he has the same problem he was trying to avoid, of creating something the spambots can read.
Another Method (Score:2)
How about sending a parameter to a page which redirects to the mailto: protocol?
For example:
index.html
<a href="filename.php?x=info">E-Mail Me</a>
filename.php
<?php
Header ("Location: mailto:" + $x + "@mydomain.tld")
?>
Take this one step further... (Score:4, Interesting)
You'd have a standardized spambot trap (like the one described in the article) on various webservers. The new spambot info could go into a "New SpamBots" database (which wouldn't be blocked). Once a day, the webserver would connect up with a central database and submit the new spambot info it's obtained. Then the server would download a mirror of the updated "SpamBots" database which it would use to block spambots.
The centralized SpamBots database would take all of the new SpamBot info every day and analyze them in some manner as to detect abuse of the system (ensuring that only true spambots are entered). E-mails could be fired off to the abuse/postmaster/webmaster for the offending IP address. Finally, the new SpamBot info would be integrated into the regular SpamBot database.
This way you'd be able to quickly limit the effectiveness of the Spambot-traps across many websites.
Alas, not practical... (Score:2)
Attn Spambot Authors (Score:5, Interesting)
Thanks again for your interest. I hope that we were able to help you write the spambots of the future that will be able to detect and sidestep as many of the above protection schemes as possible. We tried to work all of our knowledge into one convienient thread for your development team to peruse.
Thanks for your interest in SlashDot, home of too much information.
wonder what this means.. (Score:2)
Let's feed the serpent its own tail (Score:2, Interesting)
Well, I didn't trust (1), and (3) just got me a voice mail box instead of a person I could chew out, which I didn't use. That left (2), and I had a wicked idea:
I hit 2, and input the number that I should call if I was interested in the fax (which appeared in BIG text right above the little text). Their own response number should start eventually getting faxes from them or, as I tend to experience, hangups.
Cute story, I know, but what does this have to do with defeating spambots?
I went to the page indicated...
And I scrolled to the bottom, and looked at the source code, and noted two faaaaaascinating things:
First, the HTML on that page is rather clean; I can see no evidence of anti-spambot code on their page.
And second, the "Contact Us" link at the bottom is a mailto:.
By all appearances, their page is vulnerable to their own spambot.
So I had the thought... what if those generated-random-email-address pages were geared to produce not-so-random email addresses? What if the email addresses on those generated-page traps were geared to generate random email addresses at the domains of the various spambot-- (err, I mean) harvester producing companies? Let them see what it's like when less than discerning spammers use their software for evil. Hundreds of Viagra-substitutes! Thousands of hangover cures! Tens of thousands of opportunities to refinance their home mortgage!
This is just an off-the-top-of-my-head idea. Opinions?
I use two methods on my site.... (Score:2)
On stuff like my FAQs, I use igPay Latin Encoded Email: ahgaray atyay ahgaray otday omcay
Note to self (Score:2, Funny)
What I use (Score:3, Interesting)
<A HREF="mailto:hosting%40slickhosting.com"
onMouse
onMouseOut="window.status='';">hostingsli
<!-- Spam trap
abuse@ (your domain) HREF="mailto:abuse@ (your domain) "
root@ (your domain) HREF="mailto:root@ (your domain) "
postmaster@ (your domain) HREF="mailto:postmaster@ (your domain) "
uce@ftc.gov HREF="mailto:uce@ftc.gov"
-->
Don't stop spambots, feed them with Sugarplum (Score:3, Interesting)
the danger of mailing lists.. esp. SuSE user list (Score:3, Informative)
What about a Terms of Service page (Score:2, Interesting)
The page could have a form with "Accept TOS" and "Reject TOS" buttons. I wonder how many spambots would submit a form?
And to catch spambots that did submit the form, your TOS could have some clauses that make it a violation for evil spiders (ones that don't honor "robots.txt") to use the site. Maybe you could make||lose a few bucks suing the spambotters who go through the TOS and still harvest your email addresses.
New Program - Mailwasher (Score:4, Interesting)
Anyway, AFAIK, it's WinBlows only, and available at http://www.mailwasher.com [mailwasher.com], although right now it seems the site is down, all I get is a 404!
http://www.mailwasher.net/ (Score:3, Informative)
A friendlier solution. (Score:2)
I wrote a bit of PHP a few months ago that applied some spamproofing ala SlashDot (only a bit less agressive) that some might find useful.
Highlighted Source [aagh.net]
Raw Source [aagh.net]
It performs the following munging, depending on what you specify:
freaky@aagh.net
freaky (at) aagh (dot) net
freaky@aagh.N0SPAM.net.SPAMN0
freaky@aag&# 104;.net
random one of the above
random with entity encoding
all of the above
MIRROR MIRROR (Score:2, Informative)
How about trying this (Score:2, Interesting)
How about writing something for these spambots using a special web server that slowly responds to it's requests (sends out a small packet every 10 seconds) so it won't time out and won't consume much cpu time, and just feeds it a line or two lines of junk with each packet. Have it randomly generate a never ending supply of useless information to keep the spambot happy. While it's busy with the useless site, it's not bothering other people nor is it getting any real addresses.
Re:Now, let's fake the other end. (Score:2)
Re:Pollute their database (Score:2, Insightful)
Think about it. With the scarcity of domain names lately, chances are that while the garbage email addresses may not be valid, more than a few domain names would be valid.
So then the spammer fills his database with these non-existant addresses on existing domain names. He then sends his spam to these addresses, and their mail servers not only have to process the message to determine that it's an invalid address, but they also have to bounce the message back as undeliverable.
IMO this is going to use twice the bandwidth, since you now have to consider the bandwidth used by all of those bounces.
You could always use some non-existant domain names for the garbage email addresses, but the spammer could just as easily check a domain name's validity before sending spam to it, making it trivial to remove all of the trash from his database.
Remember, the spammer couldn't care less about sending mail to bad addresses, as long as the good addresses are spammed as well. It's left to the poor sysadmin to clean up the mess.
Re:Pollute their database (Score:2)
Remember, the spammer couldn't care less about sending mail to bad addresses, as long as the good addresses are spammed as well.
True, but the their address lists will depreciate in value because the authenticity of most of the addresses would be in doubt.
Re:Pollute their database (Score:2)
I am fully aware of the non-com/net/org TLDs...just look at *mine*
Re:Okay... (Score:2)
Matter of fact, I think it'd be a good idea to have an open-source email harvester. . . it'd give the good guys an idea of what works and what doesn't, and of course the open-source version would be free, polite to webservers, and best of all would steal thousands of sales from the real bad guys, the fellows who write spambots. (ObPipeDream) With any luck one of them would steal the code and resell it, and the GPL could get a slam-dunk court test.
Better than a honeypot.. (Score:2)
1. Publish false mailto: addresses on your web pages in the same colour font as your background
2. Change them to visible, valid addresses by munging them with DHTML properties and a
JavaScript include file (sorry, Lynx users)
3. When a recognizable spam-bot comes in, refuse to load the javascript include file. mod_setenvif and mod_rewrite should help out here.
4. When a probable spam-bot comes in, serve up the page reaalllly slowly, don't close the connection until it goes in CLOSE_WAIT. This ties up sockets on the remote machine and reduces its ability to troll OTHER sites. You can do this by writing a handler for your base directory, checking the browser, and returning DECLINED for friendly people. That should be in, I think the "post read" phase.
5. When a recognized bad address comes through to your mail server (from step 1), slooooow the SMTP transaction down as much as you can (same idea as step 4), and throw an error at the end of the 354 DATA section a few times (to force him to come back!), etc. (Some sendmail internals hacking required here, although it would be much easier to hack if you don't have any real mail and just ran a script from inetd.)
6. Those fake email addresses. Make them all point to a common MX or group of MXes that you control the DNS for. Make sure those MX records aren't used by anything legitimate. Slooooow your in.named down for requests to that domain. A cool side effect, besides tying up sockets on the spammers end, IIRC some OSs can only make one resolver request at a time -- this'll effectively block all of his out outbound spam traffic while he's trying to look up your MX record! Also, make sure the TTL is set to about 10 seconds, just to make sure he comes back the glue trap very often.
How's *that* for spam countermeasures? I wish I had time to write it.