ModProfiler: Leading ModSecurity Towards Positive Security
Several years ago, a few more than I'd like to admit, I realised our chances for writing completely secure web applications are extremely slim; virtually non-existent. We can certainly try—and many are making heroic efforts—but nothing good can come out of matching humans, which are inherently prone to making mistakes, with insecure programming tools and libraries. That made me toy with the idea of having something else, external to web applications, work to increase their security levels. That something we are calling web application firewalls these days.
Nothing of the sort existed back then (at least nothing open source or easily available, and I didn't even know about the products that had existed), so I decided to start a new project and make it open source. ModSecurity was born. It's the best thing I've ever done, in more ways than one.
I designed ModSecurity for myself: a power tool for those who understand web application security and know what they want to do. It gained popularity over the years and, through the power of free and open source, become the most widely deployed web application firewall. Somewhere along the lines I decided that it was my goal to make the web application firewall technology available to everyone.
I am yet to succeed with this goal. Although the barrier to entry with ModSecurity is low in some ways (the product is free, after all) it's not in others. ModSecurity is a low-level tool: it's very powerful but requires knowledge and, for many tasks, a significant time investment. The real challenge, it turns out to be, is building an easy-to-use tool that yields good results with only a modest time investment. Thus we (I and my colleague, Ofer Shezaf) decided to start a new effort, which we called ModProfiler. It's an tool that generates positive security rules learning from real-life traffic.
Policy generation through learning is a powerful technique, so it is surprising that there aren't many open source products that use it. In fact, to the best of my knowledge, there are none. One can find several very interesting research papers but, unfortunately, nothing for download, let alone production use.
[Note: This blog entry was written to pitch ModProfiler for a Black Hat US talk. Although ModProfiler was first discussed at Black Hat US in August, and version 0.1.0 published in the following week, we failed to announce the project properly due to lack of time.]