I think this question could be interesting for others too. On the PHPIDS mailing list, xorrer asked a good question:
Quote
christ1an:
> Anyway, nothing of this really has todo with intrusion detection. Its
> just circumventing a blacklist filter and hope that the browser
> executes it.
xorrer:
I don't really understand this statement. So you don't consider XSS
attacks to be something which PHPIDS should detect. Then what is an
IDS for a wepapp supposed to find, if XSS doesn't fall into ID?
Well, me as being one of the initial founders of PHPIDS do always have to
keep our main objective in mind. In fact, with these kind of threads, we are
loosing focus on that objective. What I am talking about is intrusion
detection, a term that implies several aspects two of which are
functionality in the sense of effectiveness and performance combined with
simplicity.
We intend to recognize attacks against PHP written Web applications, neither
vector recognizing nor a direct kind of attack prevention. The only
exception concerning the latter would probably be modifying the IDS to be a
IPS by just blocking malicious appearing requests. Be that as it may, its a
different thing.
What we are currently doing is building totally weird (cool) javascript
vectors that slip through our attack detection routine, simply due to their
abstractness. Moreover, most of these vectors will only be executed if they
are outputted directly within a <script> tag, not even within a variable
within a <script> tag that would need to be broken off prior inserting the
payload. I'd say at least as far as XSS is concerned, we are able to detect
around about 95% of all attacks that are actually being performed on real
environments; in practice.
Now lets go back to practice. I consider it highly unlikely that an attacker
would try to perform an unnoticed attack against an application that he
knows is running PHPIDS. If he doesn't assume that some kind of IDS is
running, he'd just fire some trivial vectors to see first results, which of
course would be detected. Nobody can tell me that an attacker would try such
weird vectors we are talking about here in the beginning and on first try.
I hope you now understand my point that we are loosing focus. Nevertheless,
I highly appreciate this input and we will of course continue to fix them in
future. However, soon the point will be reached where we will have to decide
whether or not it is necessary to modify and refine rules, considering our
greatest enemy - false positives.
You see, intrusion detection is - if done professionally - far away from
being an easy job. Its pretty much all about calculating risks. Tough job.
> This process is absolutely crucial for the IDS! It is only through the
> expert knowledge and time donated of people who really know what they
> are doing when it comes to attacks that the blacklist-system can ever
> be effective. Sure, there will always be new vectors, but this process
> is the core of PHPIDS. Without excellent filter rules it's just a
> glorified regex matching engine.
Exactly. Right now, we are in a stage where this kind of input is
>>needed<<. However time will come when we will go one step further to make
the IDS effective in what it does. It's not a regex matching engine, you are
perfectly right on that.
I also fully agree with Mario. I personally have learned a lot while
developing PHPIDS and reading your feedback, bug reports and so forth. I'm
sure everyone who participated shares this opinion.
So ultimately, lets just continue what we're doing; and more importantly
lets do it professionally.
Regards,
- http://christ1an.blogspot.com
_______________________
[[url=http://php-ids.org]php-ids.org[/url]] Web Application Security 2.0