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: NTLM HTTP Authentication is insecure by design - a new writeup by Am

Subject: RE: NTLM HTTP Authentication is insecure by design - a new writeup by Amit Klein
Date: Thu, 21 Jul 2005 22:18:04 +0200
Hi Cyrill,

Hope you're not vexed with my follow-ups... Please see below.

-Amit

On 20 Jul 2005 at 11:35, Cyrill Osterwalder wrote:


I understand your remark. AirLock can provide an NTLM proxy in its Login
Service component. So that would be the "Unless AirLock performs the NTLM
authentication itself" option of your remark. The NTLM authentication itself
is not done by AirLock, the Login Service can do "normal" NTLM to the
back-end NTLM server. Between AirLock as reverse proxy and the NTLM proxy
component the binding from the TCP connection to the AirLock session is
implemented. So client to reverse proxy has one TCP connection (must-have so
the client performs NTLM) and the NTLM proxy component has one TCP connection
to the back-end NTLM server. The second one however is bound to the user's
AirLock session an will not be pooled between sessions.


I'm not sure I follow, but anyway, it does seem that in this case, you don't 
pool the 
connection to the backend server after all (in your original submission, you 
said 
"It is indeed possible to handle NTLM authentication in a reverse proxy and 
pooling server 
connections WITHOUT being vulnerable to your described attacks. We are able to 
do this with 
our reverse proxy [...]").


I'm aware of the HRS paper and I should admit that HRS cannot be fully
prevented by an ASG. Depending on the components behind AirLock HRS is
theoretically possible. However, AirLock provides tools like encrypted URLs
or signed request assertions to establish a trust association on HTTP
requests identified and checked by AirLock. Using these tools defeat most HRS
attempts as far as I can see it but it involves a little integration work, of
course. 

I am not familiar with the technologies you implemented in your product. It 
does seem to me 
that they do not address the problem, which is incompatibility in HTTP parsing. 
Basically, 
HRS can be used for cache poisoning by sending a seemingly innocent request for 
a resource 
(say the root page - "/"), followed by a request for another resource (the 
poison), e.g. to 
an application error page, or any other VALID page in the system. The two 
requests are 
valid from the URL point of view, so offhandedly I don't see how URL encryption 
and request 
assertions would prevent the attack. A more strict parsing will block some of 
the attacks 
(not all), but how would looking at the URL do any good?


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