Hi Barry, first, thank you for your very detailed answer.
On Sun, Apr 16, 2017 at 08:46:44PM +0000, Barry Pollard wrote: > This is a VERY subjective topic, but my opinions are below. > > On 16 Apr 2017, at 20:26, Ervin Hegedus < > >> ...and I >> could demonstrate the advantages of WAF to my collegues. But >> there were only two basic attack, what I could show them: XSS and >> SQL injection. >> >> My 2 cents question is: how can I demonstrate another features? I >> meant, it could be show the session fixating: I put a simple PHP >> script to a webroot, load the page in a browser. I found the >> PHPSESSID cookie, and then I tried to load the page in another >> browser (on another host) - but there didn't happened anything... >> the page had been loaded as well with the hijacked session. >> >> What did I miss, or how can I show this feature? > > The Session Fixation protection in the OWASP CRS won't protect > against you coping and pasting the session id to another browser > (I presume that's what you did btw?). yes, I just tried to that. > To do that it would need to either 1) keep a collection of Session > ids versus IP addresses or 2) Somehow inject the session id into > the page and check it again as a XSRF-type protection. ModSecurity > CAN do both of these things but is not very good at either to be honest. I thought through that before, but I thought Modsecurity stores it in memory... I've found few e-mails on mailing lists, where users discusses about hash tables for session/ip, session/UA, but I didn't dound any other information about that. Anyway, is there any information about it in Modsecurity DOCS? > The OWASP Session-Fixation protection > (https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/v3.0/master/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf) > has basically three protections: > > 1) It looks for attempts to manipulation HTTP data (e.g. "set-cookie" > mentions in request arguments), which shouldn't be sent and may be > examples of someone trying to use XSS or software bugs/flaws to > reflect the setting of the cookie back. > 2) It looks for requests where the arguments include common session > variable names and the referrer domain is different from the host > domain, which may be examples of a phishing attempt being used to > provide these variables. > 3) It looks for request where the arguments include common session > variable names and the referrer domain is not supplied (similar to > above). well, now that's clear, many thanks for your explanation. >> In general way, how can I show the all features of Modsecurity, >> and OWASP CRS? > > That's a VERY subjective question. In my opinion XSS, SQL injection > are two of the most useful protections of ModSecurity (though SQLi > in particular is prone to false alterting!). yes, I found those features and I could tested them. > Other benefits, many of which are easily demonstrable, include: > > 1) Full logging of requests (including POST arguments). Very useful > extra feature - even if running in DetectionOnly mode as you should > when you first install this. The ability to Debug issues and/or > retrospectively review logs after and incident is invaluable. > Though make sure you set it up properly and sanitise passwords, > credit cards and other personal data or you're just creating security > issues! right, > 2) Virtual Patching. If a particular attack is identified it's often > a lot easier to write and deploy a ModSecurity rule, than to fix in > the code. This gives you protection immediately and time to do the > proper fix instead of rushing out a half-baked, half tested fix. > Though this short be seen as a short term fix and the proper fix > should be applied. Who knows when you'll move away from a webserver > that supports ModSecurity and/or turn it or this additional rule > off (either accidentally or on purpose for some reason)? yes, but this answer indicates new question(s) :). Eg. is there a good documentation about the ruleset language? I mean, where can I see the BNF of language? Where can I find any documentation how can I write a custom own rules? (Sorry, I know that's these questions aren't relates to CRS, rather to libmodsecurity.) > 3) Path traversal or remote code execution attacks. E.g. it's > easy to block requests looking for /etc/password or variants in > arguments. Or any request looking for .exe or .bat files. good feature, > 4) Identification and/or blocking of bots and other scripts that > use malformed requests. On one side, often these are harmless, > but on other most browsers behave and send valid request so why > not block the noise and let you concentrate on real requests. I'ld like to protect my webservers against the attackers, not the "regular" users, so I think that's a good and useful feature :). > 5) Data leakages - including stack traces and the like. Though > scanning of outbound data is usually a bigger overhead than > inbound due to the size of the requests involved so think > carefully before you turn this on. But it's very easy to > write a rule so a 500 response code, triggers checks for stack > traces for example. I could't reached this point - as I wrote above, I'm looking up a mini-howto, or any other doc about the own rules. > A lot of the other protections that it COULD give, are not as > robust - and used to be in a folder called "experimental for > that reason in CRSv2. They involve using collections (which > don't work well in ModSecurity once you get any volume) and/or > content injection (which I personally don't think a WAF should > do). Don't mean to sound negative and I'm a big fan of > ModSecurity and all it can do, but just warning you to not get > too excited by DoS protection (thankful removed from OWASP CRS > page as used to be stated as a feature there) or the like. At > least until you understand how it could implement that and the > downsides of its implementation. well, thanks for your personal opinion. I don't want to confide the full protection to Modsecurity, but I think that would be a good additional module for a full stack. > To really get the most out of ModSecurity I recommend the > ModSecurity handbook (https://www.feistyduck.com/books/modsecurity-handbook/) > originally written by ModSecurity's created Ivan Ristić (who's > since moved on to other things in the security industry) and > recently updated by Christian Folini (who's pretty active on > this mailing list and I'm sure will pipe up with his own > answer - possibly before I hit send on this one!). They also > run a training course on same site. thanks for your tips, I'll review those. > To read up a bit more explanation as to how the OWASP CRS > protects, and also see some proof of concepts with the more > advanced techniques (though in my opinion they shouldn't all > be used in production systems) then the "Web Application > Defender's Cookbook" by Ryan Barnett gives some food for > thought. The book isn't without flaws, but does show how you > could push ModSecurity to cover more. Ryan also used to be > heavily involved in maintaining both ModSecurity and OWASP > CRS but has also moved on (though does lurk here so apologies > to him if he takes the "flawed" statement above personally!). thanks too, > Not sure how this mailing list feels about blatant > recommendations like that, but since I'm not directly > affiliated with ModSecurity, OWASP or either if the books > above, hopefully no one will mind me sharing my opinion. yes, you're right, I know - and apologize for this thread. Many thanks for your help again. a. -- I � UTF-8 _______________________________________________ Owasp-modsecurity-core-rule-set mailing list Owasp-modsecurity-core-rule-set@lists.owasp.org https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule-set