On 6/8/06, Michal Zalewski < lcamtuf@xxxxxxxxxxxx > wrote:
> "Web VPN" or "SSL VPN" is a term used to denote methods for accessing
> company's internal applications with a bare WWW browser, with the use of
> browser-based SSO authentication and SSL tunneling. As opposed to IPSec,
> no additional software or configuration is required, and hence, corporate
> users can use pretty much any computer they can put their hands on.
> [ Yes, this is a very bad idea, but often also a perceived business
> necessity. To counter the risk, some SSL VPN solutions may perform
> client-side security checks with the aid of an applet or control "not
> marked as safe". This is, of course, a silly and bypassable design,
> and has a side effect of teaching the user to click "yes" on
> scripting safety prompts. But I digress... ]
>
> [ These solutions are sold, among others, by Juniper, Nortel, Nokia,
> Cisco. The following observations are based on Cisco Web VPN (and your
> mileage with this and other vendors may vary).
>
> In their most basic operating mode, SSL VPN systems simply act as a HTTPS
> authentication and authorization proxy that relies on session cookies, and
> a URI-based request rewriting and forwarding engine. Such a configuration
> enables the user to access any HTTP or HTTPS based Intranet applications;
> web-based clients for some other protocols are also sometimes included.
>
> [ With the help of various controls and applets again "not marked as
> safe", SSL VPNs can also forward local TCP ports through that tunnel,
> if unsupported network protocols need to be used. ]
>
> A good example: let's say there's an user who wishes to access his
> corporate Outlook Web Access interface from a remote location. The usual
> URL for the intranet service is:
>
> http://owa/exchange/lcamtuf/inbox
>
> To access it over the Internet, that fellow needs to navigate to
> https://webvpn.foocorp.com/, enter his credentials, collect a session
> cookie, and then go to (or be redirected to) something along the lines of:
>
> https://webvpn.foocorp.com/http/0/owa/exchange/lcamtuf/inbox
>
> ...which, if the cookie validates, would be translated to the original URL
> and allowed to go through, with SSL VPN acting as a proxy.
>
> Commercial SSL VPNs are a fairly recent technology that has a considerable
> appeal to various corporations. Because of its novelty, however, in a
> typical setup it may be subject to several serious security flaws, unless
> very carefully designed.
>
> Possibly the most important problem is that web VPNs break the customary
> browser security model that relies on domain name separation for the
> purpose of restricting access to cookies and other objects. Browsers
> generally allow " foo.com" to interact with own cookies or windows, but
> prevent the site from accessing resources related to "bar.com". Yet
> through SSL VPN, they all may look the same:
>
> https://webvpn.foocorp.com/http/0/foo.com/serious_work
> https://webvpn.foocorp.com/http/0/bar.com/fun_and_games
>
> Because of this design, all pages displayed through a Web VPN interface
> are lumped together. Whenever a page (or just a HTML fragment) that can be
> controlled by the attacker is displayed by *any* of the applications
> behind Web VPN, Javascript can access:
>
> - Web VPN session cookie, which can be then passed to the attacker.
> This is equivalent to the attacker obtaining access to all protected
> systems and compromising Web VPN altogether. The threat could be
> mitigated by associating the cookie with client's IP, but such an
> approach is not always implemented, and is impractical with AOL and
> the likes.
>
> - Application cookies set by other applications. If passed to the
> browser (as some SSL VPNs do), these cookies are separated by the use
> of "path" parameter alone, which does not necessarily establish a
> browser security domain boundary. This is equivalent to the attacker
> obtaining user credentials to these applications.
>
> Some commonly used corporate applications may indeed serve
> attacker-supplied contents, making these attacks virtually inherent to
> most SSL VPN deployments:
>
> - Various web mail systems, such as Outlook Web Access (OWA),
> may serve HTML attachments and other documents received from the
> Internet without providing an adequate browser warning. Although
> this is a security challenge by itself for all web mail interfaces
> (where there is a risk of stealing web mail session coookie),
> the access to all SSL VPN cookies make the impact far more serious.
>
> - Trivial cross-site scripting flaws in *any* available intranet
> application may compromise the entire SSL VPN. Because these
> applications are usually complex, aplenty, and all under-audited,
> existence of such bugs is pretty much a certainty.
>
> - Trivial cross-site scripting bug in SSL VPNs themselves may endanger
> the entire system. Impossible? Cisco SSL VPN has this:
> https://<vpnhost>/webvpn/dnserror.html?domain=<u>foo</u>
> (and yes, they seem to be aware of this, but have no specific
> timeline for fixing it - so I suppose it's OK to report it;
> hi Larry Seltzer).
>
> [ The possibility of allowing Internet access through Web VPN is
> something I wouldn't even consider here. ]
>
> Additional problems may arise when SSL VPN gateway IP is added to "trusted
> zone" for the purpose of making certain intranet applications work the way
> they worked locally at the office.
>
> Yes, these problems are hardly new, and can be mitigated with some very
> careful design, and some vendors may be doing it properly - but I think
> that the following needs to be said:
>
> - SSL VPNs may easily turn negligible and common security issues such as
> XSS into a considerable corporation-wide threat; and preventing this
> is hard.
>
> - Most SSL VPNs may be "secure by design" only in fairly unrealistic
> situations or limited uses.
>
> - Unless the vendor takes the effort to precisely and honestly explain
> how they mitigate these specific threats, it is safe to assume they
> might be not doing it properly (or not doing it at all).
>
> Since these issues are generally not seriously discussed by vendors in
> assessments of their products (say,
>
http://www.cisco.com/web/about/security/intelligence/05_08_SSL-VPN-Security.html),
> I would assume that extreme caution needs to be exercised.
>
>
> Flame on.
>
> Regards,
> /mz
>