Ethical Hacking

Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package.
Computer Forensics Training at InfoSec Institute

Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors.




Network Security Web-App-Sec
[Top] [All Lists]

Re: ISA Server and SQL Injection

Subject: Re: ISA Server and SQL Injection
Date: Thu, 03 Mar 2005 00:26:44 +0100
Hi Arian,

Secondary code injection attacks occur because secondary applications often do not do their homework. This is why input validation is often proposed as a solution. But it is the most radical solution and most intrusive solution.

A developer of a web application does not know what code injection problems some exotic or even unknown application in the backend has. Why should it be the web application developers problem to solve a code injection problem in another application he does not know about. If a developer wants to protect any backend application he or she must probably block all special characters to be safe against any type of code injection attacks. I do not think that this makes sense in the end and that the restrictions imposed through this kind of filtering does sometimes not meet business requirements. E.g. there are names like "D'Amato" which requires a single quote.

Therefore I think that every component should protect itself against their own code injection issues. And most achieveable solution is to encode any received input properly into output. (Btw. I think that SQL-Injection is also a ouput encoding issue - where the output is the SQL-Query).

I know from practice that the real world looks different and I therefore think that input filter has it value especially if the backend applications are not known to be safe against code injection.

Regards Jan



Evans, Arian wrote:
re: point #2, that's an interesting perspective.

Input validation and cannonicalization has primacy to my mind
as many attacks are *done* once input is processed, regardless
of output encoding/error handling.

Additionally, input validation can stop embedded and secondary
application attacks that the primary application can't control
(e.g.--application taking input is the data broker for other applications
that will handle/parse/output the data, from CRM systems to
administrative applications to log readers).

Ideally those all have proper encoding of their output as well,
but in reality they often don't.

Using inject script tags (XSS, etc.) as your example, while output
encoding is an effective defense in certain cases, one problem is
that you don't always know or control where your output is going.

<OT>
I see this as more and more of a problem in today's modern, complex,
distributed computing environments. We plug more and more apps
together to the point where in some cases pen testing "app X" is as
silly as pen testing "node 1" on a interconnected network, as appX,
appY, and appZ are so tied together they really need to be tested
and treated as one entity, even though they all have a unique UI.
</OT>

-ae


-----Original Message-----
From: Jan P. Monsch [mailto:jan.monsch@csnc.ch] Sent: Tuesday, March 01, 2005 3:37 PM
Cc: webappsec@securityfocus.com
Subject: Re: ISA Server and SQL Injection



Hi there!

I have lots of discussions with customers regarding the issue of perimeter application filters. May conclusion regarding the issue is as follows:

1. Validation in the application itself is the best and most efficient way of handling code injection problems. Because the application knows about its domain but the gateway filter not. In addition the application can provide appropriate error messages for incorrect input.

2. Output validation is much better then Input validation, because most problems are related to incorrectly encoding input parameters into output. In addition proper output encoding allows to use critical characters like < > within the application. This is especially important in back-office applications.

3. Output validation should be handled in a security framework, built by a security expert. It must be implemented such that the business developer has not to worry about encoding stuff. (I know this is a ideal world szenario)

4. In may opinion validation on the gateway does only make sense if it used in a transitional way until input/output validation in the application has been implemented or it is used as a part of intrusion detection.

Regars Jan









--
_____________________________________________________________
Jan P. Monsch
Compass Security Network Computing AG
Glärnischstrasse 7, CH-8640 Rapperswil, Switzerland

Tel +41 55 214 41 67
Fax +41 55 214 41 61
jan.monsch@csnc.ch
http://www.csnc.ch

PGP: F055 837D 2D86 1C86 C5E0  065C 0D16 B8B3 9E58 71F3

Security Review - Penetration Testing - Computer Forensics
_____________________________________________________________

<Prev in Thread] Current Thread [Next in Thread>