Re: Sanity Worm Concepts
On 29 Dec 2004, Andy Fewtrell wrote:
> I have not tested these methods but after discussing them with eth00, we
> both think it was better to post this to bugtraq in the hopes it may
> help other people prevent future attacks from new variations of this
> worm and help development of fixes to prevent future problems. While
> this worm currently uses perl it can be obviously re-written to avoid
> obvious mod_security (and other) rules. I could write proof of concept
> versions of the sanity worm but I feel it would be better to leave this
> out of the post.
>
> For those more interested in the mod_security rules:
>
> SecFilterSelective THE_REQUEST "wget "
> SecFilterSelective THE_REQUEST "perl "
> SecFilterSelective THE_REQUEST "lynx "
> SecFilterSelective THE_REQUEST "ftp "
> SecFilterSelective THE_REQUEST "scp "
> SecFilterSelective THE_REQUEST "rcp "
> SecFilterSelective THE_REQUEST "cvs "
> SecFilterSelective THE_REQUEST "telnet "
> SecFilterSelective THE_REQUEST "ssh "
> SecFilterSelective THE_REQUEST "echo "
> SecFilterSelective THE_REQUEST "nc "
> SecFilterSelective THE_REQUEST "mkdir "
> SecFilterSelective THE_REQUEST "cd /tmp"
> SecFilterSelective THE_REQUEST "cd /var/tmp"
Hi Andy, I have a concern with these filters in that they will may
potentially catch quite a few false positives.
In addition to the first one coming from modsecurity.org, I've added a
couple more:
SecFilterSelective ARG_highlight %27
SecFilterSelective ARG_highlight %2527
SecFilter "visualcoders\.net/spy\.gif\?\&cmd"
SecFilter ":/"
SecFilter "'"
Source: http://castlecops.com/article-5642-nested-0-0.html
Your filters I see as good for those who are ultra paranoid. Because they
are looking at THE_REQUEST, and if say "wget " is found in it, it'll be
406'd.
THE_REQUEST: http://modules.apache.org/doc/Intro_API_Prog.html
"the_request - string which just contains the first line of the request.
(e.g. "GET /index.html HTTP/1.0")"
If that is correct, then filtering on those custom keywords can indeed
spawn some false positives. The biggest issues as I see it are the use of
' and/or :/ in the_request. Unless a website is doing redirects, aka:
http://example.com/redirect.jsp?http://example.net/index.html
Then I don't see a real need to include the ":/" (or "://"). The other
aspect to it is the tick mark "'", such an integral component to SQL
injections, or even escaping shell commands.
Using the mod_security filter I provided above, it has stopped over
300,000 attacks in a 55 hour period. I've provided some examples, with
some analysis of what other alternatives can be used. But the big one I
think is the mod_security filters.
--
Regards,
Paul Laudanski - Computer Cops, LLC. CEO & Founder
CastleCops(SM) - http://castlecops.com
Promoting education and health in online security and privacy.