Posted
by
samzenpuson Wednesday January 13, 2010 @02:44PM
from the read-all-about-it dept.

Martijn de Boer writes "For a long time now Apache's webserver software has been serving up the Web. Because Internet usage is still growing every day, securing your growing number of servers has become very important. ModSecurity 2.5 has been written to illustrate and educate you the ease of use and inner workings of the ModSecurity module for the most widespread webserver." Read below for the rest of Martijn's review.

ModSecurity 2.5

author

Magnus Mischel

pages

280

publisher

Packt

rating

9/10

reviewer

Martijn de Boer

ISBN

1847194745

summary

shows you how to secure your web application and server

The cover reads “Prevent web application hacking with this easy-to-use guide” and sticks with this claim to provide you with a good pathway to secure your webserver. The book is aimed at system administrators ranging from enthusiasts running a webserver at home to your friendly administrators at a large company. Most of the book requires only familiarity with using the linux shell and basic Apache configurations, but earlier encounters with some technicalities like regular expressions may be of help during your reading.

Throughout the chapters the author takes you from the different methods of installing ModSecurity and the basics of creating your first rules to the discovery and reporting of your possible intrusions. Generally providing solutions for example geolocating the origin of the hack, and automatically scanning uploaded files for viruses, the authors background in Internet Security makes this book a valuable asset to your bookshelf.

In the chapters found later in the book, the author shows how to use tools to fingerprint your server and provides you with recipes on how to prevent these methods of gathering information about your server. There is also a lot of information about the impact of rules on the performance of your server. Because the impact is different in every situation, you will be guided around some tools to measure the performance and you will learn how to interpret this data.

Chapter 5 talks about Virtual Patching, a method of preventing misuse by intercepting bad traffic and creating a set of rules for this. This chapter is by far the best piece of information I have found on how this actually works, and how you implement such rules and configuration, and why you should use the method of virtual patching in your situation. Basically the author takes out all the question marks you will have about this method of quickly applying rules and provides a case which is fully illustrated with a lot of background information about the process of finding a insecure piece of code to solving this with a set of rules.

When Packt Publishing contacted me if I would like to review another book for them, I picked this one out of the new releases because using ModSecurity has never been a priority for me. After seeing the title and table of contents I realized that you can never start too early to dive into this subject, and start preventing misuse before it causes more trouble then you can handle, trouble always finds you at the worst times. The author has divided the book in logical chapters, and the depth of information builds up equally from beginning to end. For instance, the second chapter takes you through the basics of regular expressions, but because you will encounter them during rule creation Appendix B will educate you with all specifics of creating those expressions.As a developer running local test servers, I have found this book very interesting and a great resource on a for me grey area of server security. I am pleasantly surprised by the clarity of the book, the writing style makes you really want to dive into your webserver to apply your newly gained insight to ModSecurity.

At this point in Apache history there are *lots* of modules for Apache that really cross the line from 'server' duty to application framework. I would categorize this as one of them. (I could be wrong)

What's the reasonable break point between using Apache mods and using code to 'glue' your web application versus doing it all in PHP/Python/Whatever? As a more concrete example, it seems to me a CMS using Apache mods would be less code to maintain with about the same security exposure versus a Drupal instal

This might be a dumb question, but why do we have to build http servers that integrate everything? Wouldn't it make sense to design a very minimal http server which focuses on using a minimal amount of resources and have an API layer that enforces security permissions from the start? Every time I ask this, the answer eventually boils down to it being a tradeoff between performance and reliability -- either you can have a well-designed core and a strong security model, or you can allow the plugins to execute

Look, I'm sure Ruby is great. But why do so many Ruby enthusiasts come off sounding completely arrogant?

It's still early in the relationship. Once they move in with her, they'll realize she wants them to do everything her way, and that their whole apartment's been redecorated and a lot of their stuff thrown out. When they complain, she'll explain it was just a little bit of 'upgrading', and that stuff was old anyway. Same thing happened with that blonde bimbo javabeans... who now works doubles at the local Denny's and looks like she's been ridden hard and put up wet.

Yeah REST in peace, just REPLicate what other people said and we will all be alRITE. SIGNified by your c/p SIGNature. You are not the first to have found the silver bullit, but your forecomers weren't the last.

There seems to be some confusion -- this isn't a product to secure apache, it's a product to secure your web applications running on top of apache. It's designed to detect and prevent attacks on your app, not on the apache server itself.

I believe they classify this as a Web Application Firewall (WAF). So, theoretically, it would catch stuff like XSS, SQL Injection, etc. Now, you have your Apache misconfigured, I am not sure what it will do for you.

I use mod_security on all of our apache servers, it really does a great job catching SQL injection / XSS attacks. My only problem is the occasionally time that users try and post data and apache thinks that it is malicious. False positives are honestly minimal but I've had to write some very specific workarounds to fix these issues. Most of the time the false positive comes from posting HTML like from TinyMCE or FCKEditor. But it will drive you nuts if you don't realize that mod_security is enabled.

Wanted to add: I mention this because my only gripe with mod_security is false positives, and I did not see a section on handling / reporting them. I have only caught them either from user reports or because I log all of the "malicious" posts and browse through them to see what the bad guys are up to anyway.