Bad Behavior 2.1 and 3.0 Roadmap
When I released Bad Behavior 2, I noted that due to time constraints I was unable to complete everything on the roadmap. Most of that is because spammers have dramatically stepped up their activity in recent weeks and the new version provides greatly improved protection against their attacks. Part of it is that as an unpaid project, I can only devote so much spare time to it.
Now that Bad Behavior 2.0 has stabilized, it’s time to update the roadmap in preparation for the next minor (2.1) and major (3.0) releases.
Before I go into the roadmap, I need to diverge a bit and explain something a lot of people may not be aware of (again).
Bad Behavior is open source software, released under the GNU General Public License, which you can find copies of all over the Internet, or included with the program. (And I make exceptions for linking it to non-open-source software such as ExpressionEngine; contact me if you are in this situation.) You don’t have to pay a cent to download or use it. However, developing it still costs me time and money. Killing blog spam has been mostly a labor of love, however, rather than cash, and as such, has to take a back seat to other more pressing concerns, like anything that generates revenue.
I’ve been pretty successful at maintaining a roughly weekly rate for incremental updates (new spambots, bug fixes, etc.) since the 2.0 release, and with your support, financial and otherwise, I’ll be able to continue that. I think most of the bugs have been worked out at this point, though, so it’s time to look forward.
If you see any problems with the roadmap, or think it could be improved, feel free to comment on it.
Bad Behavior 2.1
Bad Behavior 2 was a ground-up refactoring of the core of the system. Much to my surprise, it wound up being both smaller and faster than the 1.x version. Though people more experienced than I am could have told me that (and one did). For many people it’s orders of magnitude faster. But the early release meant that several things were left unfinished, and those I want to address in 2.1.
First off is the modular architecture. While I made much progress on this, and it’s now near its final form, one more thing will need to change: The parts of the system which are specific to a particular software package (ExpressionEngine, MediaWiki, WordPress, etc.) and those which are user-customizable need to be further separated, so that the core can be updated independently of the wrapper which connects it to your software.
While this isn’t a major issue for WordPress, the architecture of MediaWiki, which has no good way for an extension to save settings, and that of ExpressionEngine, which virtually requires such an approach, are forcing the issue.
By Bad Behavior 2.1, you will have in essence two packages: A core download and a platform-specific download, each of which can be updated separately. While this introduces a bit of complexity, at least for initial installations, it will make updates much easier for most people, as well as allow for several more interesting things down the road. The ExpressionEngine port already uses this approach; to install it, you have to download the Bad Behavior 2 core as well as the EE extension and then integrate them. Ultimately I’ll have a packaging system in place which will make the initial download easier by combining the two into a single download for those who want it, and a core-only download for those who are updating.
For 2.0, I had proposed an administrative screen which would appear inside the host platform and provide various services such as being able to search Bad Behavior’s logs for specific spammers or for potential false positives. This will be complete for WordPress by 2.1. I had planned a MediaWiki special page, but discovered to my dismay that no accurate developer documentation exists for this, so it is on hold indefinitely, until someone updates and/or corrects the documentation on meta (which Brion tells me is wrong and should not be relied on) or provides new documentation. I also plan to provide this for ExpressionEngine, assuming my developer license is still any good.
Bad Behavior 3.0
It’s a bit early to say exactly what the next major version of Bad Behavior will look like. But one thing is likely to come down the pipeline.
Many people have asked for Bad Behavior to automatically update itself whenever a new version comes along. After the necessary architectural reworking is done for 2.1, it will be possible to provide a framework for Bad Behavior to update itself. I’d like some comments on this, as I can foresee that some people might not like the software updating itself. Should the feature be off by default, or on by default?
Other things on the to-do list
Various bits of documentation need to be updated. I need to host installation instructions, or links thereto, for any platform to which Bad Behavior has been ported, and several of those (such as phpBB and Movable Type) are missing right now.
I need to follow up with some people who have ported Bad Behavior 1 to other platforms in the past and either get them to update their work or let me know that they can’t (e.g. Drupal and DotClear).
Some people have complained that the error messages displayed to people who are blocked aren’t thorough enough or don’t explain well enough how to resolve the problem. I edit these on an ongoing basis whenever I become aware of a particular issue, but with the wide variety of proxy servers out there (and it virtually always is a proxy of some type) it’s difficult to just sit down and provide specific directions for every one of them. I may need some of you to contribute directions on reconfiguring specific proxy servers, and requests for these will likely be posted here in the near future.
Bad Behavior must continue to keep up with spammers as they attempt to adapt and find new ways to post their automated garbage. As I noted last year, this has been at most a minor issue, as there is only so much the spammers can do while maintaining their high rates of spamming (now 100,000 or more spams in a single run is not unusual, and one spammer I’ve blocked can send 1,000,000 in a day). Bad Behavior attempts to drive up the cost of link spamming by blocking as many automated spammy requests as possible, forcing the spammers to resort to MUCH slower manual methods, or ideally, give up and find more honest work.
While this has actually worked, the spammers have begun to adapt. I am seeing a rise in spam being delivered through botnets of compromised Windows computers running various bits of malware which take over Internet Explorer, and occasionally even Firefox, to do their dirty work. The screener, which I expect to complete by 2.1, should take care of the vast majority of these.
But it remains an ongoing problem, and I’ve set up a separate project whose purpose is to locate and disable these botnets and ultimately cut the flow of spam right from its source. I can’t say much more about this project right now, but a few of you will hear from me about it in the next week or so, and hopefully in a few months I can release more information generally.
If you think this roadmap looks good, and want to accelerate the development of Bad Behavior, or the botnet project, contribute financially and I’ll be able to devote more time to it. And by all means, if you think I left something out that should be in the roadmap, please let me know. And yes, I know a lot of you are flat broke, so even if you are unable to contribute financially, please leave your comments.
Thanks again for your support, and here’s to a future without spam.
Sorry, the comment form is closed at this time.