<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Abusing Password Managers with XSS</title>
	<atom:link href="http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/</link>
	<description>Managing Risk and Security since 1998</description>
	<lastBuildDate>Thu, 11 Apr 2013 18:00:50 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: eoftedal</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2260</link>
		<dc:creator><![CDATA[eoftedal]]></dc:creator>
		<pubDate>Mon, 30 Apr 2012 17:54:53 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2260</guid>
		<description><![CDATA[Nice post. I reported this to Firefox back in 2008: https://bugzilla.mozilla.org/show_bug.cgi?id=359675]]></description>
		<content:encoded><![CDATA[<p>Nice post. I reported this to Firefox back in 2008: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=359675" rel="nofollow">https://bugzilla.mozilla.org/show_bug.cgi?id=359675</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Toews</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2259</link>
		<dc:creator><![CDATA[Ben Toews]]></dc:creator>
		<pubDate>Mon, 30 Apr 2012 14:50:28 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2259</guid>
		<description><![CDATA[Sameer,
You definitely raise some good points regarding the necessity of having a usable tool. I also agree that encouraging users to have different credentials for different applications is of huge importance. I think your claim that &quot;Not autofilling by default, doesn’t increase security in any way if the end website has a vulnerability&quot; is an overstatement though. 

Stopping XSS in the application is obviously the responsibility primarily of the developer. That being said, XSS still happens. As a result, people playing other roles in the use of the web application (primarily browser vendors and servers) have implemented piecemeal protections that partially mitigate XSS by narrowing the attack surface or eliminating attack vectors. Iframe injection is mitigated by the X-FRAME-OPTIONS header, and by frame busting code. Cookie theft is partially mitigated by the HTTPOnly flag. There are also emerging techniques which promise to be even more effective such as Content Security Policy. 

I think that disabling autofill by default would partially mitigate the theft of credentials. It would not be a complete mitigation though because the user could still be tricked into entering his credentials. Obviously LastPass needs to weigh the benefit of this with the loss of usability. Its not my place to make that call and it sounds like you guys have put some thought into it. I might have done it differently, but I respect your judgment. Its not going to stop me from using LastPass.]]></description>
		<content:encoded><![CDATA[<p>Sameer,<br />
You definitely raise some good points regarding the necessity of having a usable tool. I also agree that encouraging users to have different credentials for different applications is of huge importance. I think your claim that &#8220;Not autofilling by default, doesn’t increase security in any way if the end website has a vulnerability&#8221; is an overstatement though. </p>
<p>Stopping XSS in the application is obviously the responsibility primarily of the developer. That being said, XSS still happens. As a result, people playing other roles in the use of the web application (primarily browser vendors and servers) have implemented piecemeal protections that partially mitigate XSS by narrowing the attack surface or eliminating attack vectors. Iframe injection is mitigated by the X-FRAME-OPTIONS header, and by frame busting code. Cookie theft is partially mitigated by the HTTPOnly flag. There are also emerging techniques which promise to be even more effective such as Content Security Policy. </p>
<p>I think that disabling autofill by default would partially mitigate the theft of credentials. It would not be a complete mitigation though because the user could still be tricked into entering his credentials. Obviously LastPass needs to weigh the benefit of this with the loss of usability. Its not my place to make that call and it sounds like you guys have put some thought into it. I might have done it differently, but I respect your judgment. Its not going to stop me from using LastPass.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sameer Kochhar</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2258</link>
		<dc:creator><![CDATA[Sameer Kochhar]]></dc:creator>
		<pubDate>Mon, 30 Apr 2012 14:13:02 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2258</guid>
		<description><![CDATA[Hi Ben,

Bottom line is that if the website has an XSS vulnerability, then the attacker can do pretty much anything.  They can steal cookies, capture keystrokes, even redirect inject a rogue iframe on top of the actual page that asks the user to log in.  So, no amount of increased security by the password manager can fully protect the user.  All the password manager can do is ensure that the user&#039;s other 100 sites aren&#039;t also compromised by teaching the user good habits regarding never to re-use passwords.

Regarding making the default to associate the credentials to a single page: this would break autofill for a large majority of sites, including some of the most popular sites in the world, and we would be immediately inundated with requests to reverse this behavior.  Examples include:
- People sign up for new services using a register page, and then sign in with a sign in page
- A website changes the page where their sign in form is located (this has happened for even the most popular of sites like Twitter)
- A website allows you to sign in on more than one page
- etc.

It even extends past the page to the domain level.  eg: If you have a login on google.com, and want to log in at gmail.com or youtube.com.  (we have an &#039;equivalent domains&#039; feature to address these automatically for users).

Regarding disabling autofill by default: it&#039;s a similar story.  People use a password manager not just for increased security, but also for convenience.  Not autofilling by default, doesn&#039;t increase security in any way if the end website has a vulnerability.  Further, it would force many people to decide that using a password manager was just too cumbersome and was more work than &#039;doing it themselves&#039; --- leaving the user even more susceptible at the end of the day.

Thanks.]]></description>
		<content:encoded><![CDATA[<p>Hi Ben,</p>
<p>Bottom line is that if the website has an XSS vulnerability, then the attacker can do pretty much anything.  They can steal cookies, capture keystrokes, even redirect inject a rogue iframe on top of the actual page that asks the user to log in.  So, no amount of increased security by the password manager can fully protect the user.  All the password manager can do is ensure that the user&#8217;s other 100 sites aren&#8217;t also compromised by teaching the user good habits regarding never to re-use passwords.</p>
<p>Regarding making the default to associate the credentials to a single page: this would break autofill for a large majority of sites, including some of the most popular sites in the world, and we would be immediately inundated with requests to reverse this behavior.  Examples include:<br />
- People sign up for new services using a register page, and then sign in with a sign in page<br />
- A website changes the page where their sign in form is located (this has happened for even the most popular of sites like Twitter)<br />
- A website allows you to sign in on more than one page<br />
- etc.</p>
<p>It even extends past the page to the domain level.  eg: If you have a login on google.com, and want to log in at gmail.com or youtube.com.  (we have an &#8216;equivalent domains&#8217; feature to address these automatically for users).</p>
<p>Regarding disabling autofill by default: it&#8217;s a similar story.  People use a password manager not just for increased security, but also for convenience.  Not autofilling by default, doesn&#8217;t increase security in any way if the end website has a vulnerability.  Further, it would force many people to decide that using a password manager was just too cumbersome and was more work than &#8216;doing it themselves&#8217; &#8212; leaving the user even more susceptible at the end of the day.</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: max</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2251</link>
		<dc:creator><![CDATA[max]]></dc:creator>
		<pubDate>Mon, 30 Apr 2012 08:38:06 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2251</guid>
		<description><![CDATA[The title implies that this problem is specific to password managers ,but is this really the case? 

if XSS is possible on a website than an attacker can read the password field and that is it, i guess?]]></description>
		<content:encoded><![CDATA[<p>The title implies that this problem is specific to password managers ,but is this really the case? </p>
<p>if XSS is possible on a website than an attacker can read the password field and that is it, i guess?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Toews</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2219</link>
		<dc:creator><![CDATA[Ben Toews]]></dc:creator>
		<pubDate>Fri, 27 Apr 2012 18:08:31 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2219</guid>
		<description><![CDATA[True. You could even automate it with an XHR request. Good idea.]]></description>
		<content:encoded><![CDATA[<p>True. You could even automate it with an XHR request. Good idea.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: albino (@albinowax)</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2215</link>
		<dc:creator><![CDATA[albino (@albinowax)]]></dc:creator>
		<pubDate>Fri, 27 Apr 2012 12:04:01 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2215</guid>
		<description><![CDATA[Surely if you can execute javascript you can make arbitrary changes to the page&#039;s appearance, and thus make a perfect replica of the login page down to the url with history.pushState.]]></description>
		<content:encoded><![CDATA[<p>Surely if you can execute javascript you can make arbitrary changes to the page&#8217;s appearance, and thus make a perfect replica of the login page down to the url with history.pushState.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#124; rm -rf /* &#124;``&#124; rm -rf /* &#124;</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2213</link>
		<dc:creator><![CDATA[&#124; rm -rf /* &#124;``&#124; rm -rf /* &#124;]]></dc:creator>
		<pubDate>Fri, 27 Apr 2012 00:59:45 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2213</guid>
		<description><![CDATA[Updated now. I&#039;m pretty sure rm -rf /* works without --no-preserve-root ;)]]></description>
		<content:encoded><![CDATA[<p>Updated now. I&#8217;m pretty sure rm -rf /* works without &#8211;no-preserve-root <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Toews</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2210</link>
		<dc:creator><![CDATA[Ben Toews]]></dc:creator>
		<pubDate>Thu, 26 Apr 2012 14:28:11 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2210</guid>
		<description><![CDATA[Sameer,
Thanks for the detailed response. This is exactly the type of dialoge I intended to prompt with this post. 

As for the idea that XSS could be used to capture user login regardless, I don&#039;t think this is entirely true. A large percentage of applications have distinct login pages that don&#039;t display any user provided content (think Facebook or Gmail). While this is a common design idium, it has the added benefit of protecting against the attack you describe. 

I think it would be a much better default for the password manager to associate a set of credentials with a page rather than with a domain. I do understand your security/usibility concern though as this would not work well on applications with login forms on every page. Maybe a good compromise would be to associate the creds with the domain, but to associate the auto-fill settings with the page.

I realize that you LastPass is highly configurable and thats one of the great things about the application. Unfortunately, the people who stick with the default settings are probably the same people who would click on a link to http://goodguys.com?msg=%3cscript%3epwn()%3c/script%3e . Especially for a security product, I think its important to tip the scales towards security in the security/usibility balancing act. 

I know you guys do a lot of work to protect people&#039;s credentials on the server side and I really appreciate your companies overall security posture. But, I still feel that the point where your application actually interacts with the DOM is currently the weakest link. 

All that in mind, I still agree that LastPass is way better (for many reasons) than the browsers&#039; built-in password managers. BTW, sorry to pick on your guys in this article. LastPass is what I use, so its what I tested.

- Ben]]></description>
		<content:encoded><![CDATA[<p>Sameer,<br />
Thanks for the detailed response. This is exactly the type of dialoge I intended to prompt with this post. </p>
<p>As for the idea that XSS could be used to capture user login regardless, I don&#8217;t think this is entirely true. A large percentage of applications have distinct login pages that don&#8217;t display any user provided content (think Facebook or Gmail). While this is a common design idium, it has the added benefit of protecting against the attack you describe. </p>
<p>I think it would be a much better default for the password manager to associate a set of credentials with a page rather than with a domain. I do understand your security/usibility concern though as this would not work well on applications with login forms on every page. Maybe a good compromise would be to associate the creds with the domain, but to associate the auto-fill settings with the page.</p>
<p>I realize that you LastPass is highly configurable and thats one of the great things about the application. Unfortunately, the people who stick with the default settings are probably the same people who would click on a link to <a href="http://goodguys.com?msg=%3cscript%3epwn()%3c/script%3e" rel="nofollow">http://goodguys.com?msg=%3cscript%3epwn()%3c/script%3e</a> . Especially for a security product, I think its important to tip the scales towards security in the security/usibility balancing act. </p>
<p>I know you guys do a lot of work to protect people&#8217;s credentials on the server side and I really appreciate your companies overall security posture. But, I still feel that the point where your application actually interacts with the DOM is currently the weakest link. </p>
<p>All that in mind, I still agree that LastPass is way better (for many reasons) than the browsers&#8217; built-in password managers. BTW, sorry to pick on your guys in this article. LastPass is what I use, so its what I tested.</p>
<p>- Ben</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Toews</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2209</link>
		<dc:creator><![CDATA[Ben Toews]]></dc:creator>
		<pubDate>Thu, 26 Apr 2012 13:52:17 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2209</guid>
		<description><![CDATA[I totally agree. HTTPOnly is a mitigation, not a solution.]]></description>
		<content:encoded><![CDATA[<p>I totally agree. HTTPOnly is a mitigation, not a solution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sameer Kochhar</title>
		<link>http://labs.neohapsis.com/2012/04/25/abusing-password-managers-with-xss/#comment-2206</link>
		<dc:creator><![CDATA[Sameer Kochhar]]></dc:creator>
		<pubDate>Thu, 26 Apr 2012 12:26:53 +0000</pubDate>
		<guid isPermaLink="false">http://labs.neohapsis.com/?p=1342#comment-2206</guid>
		<description><![CDATA[Hi Ben,

Good work and thanks for your post and detailed explanation.
Also appreciate that you are an avid LastPass user and your words of praise.

First off, I fail to see why you are (or if you are) blaming the password manager for this issue.  If a 3rd party site is vulnerable to an XSS attack, then interception of the user&#039;s credentials will occur when the user logs in whether or not they use a password manager to do so.

So, strictly speaking, this isn&#039;t the password manager&#039;s &#039;fault&#039; and is not being caused by the password manager.

I do see your points that:

(1) the password manager possibly makes capturing the credentials on a vulnerable site perhaps easier due to autofill, and due to autofill on the whole domain rather than just a page

(2) the password manager should try to use mechanisms to perhaps make it more difficult for a vulnerable website to be taken advantage of.

With respect to (1):

There is always a balance between security and convenience and we have tried to strike a good balance in that by default LastPass will autofill credentials based on 2nd level domain.
However:

- LastPass has the ability for the user to control whether a user&#039;s login should be autofilled or not. (for all their sites, or on a site by site basis)
- LastPass has the ability for the user to control whether they should be re-prompted for their master password prior to autofill.
- LastPass has the ability to control whether autofill should occur on a 2nd level domain-wide basis, or just for an exact URL match.

With respect to (2):

We really have tried to do as much as possible to protect end users, such as:
- LastPass allows users to control whether LastPass should warn them before automatically filling insecure forms.
- LastPass allows users to be notified by email if any of their usernames or passwords change.

We also recognized that LastPass.com itself is a possible source of XSS so have implemented CSP in browsers that offer it (https://developer.mozilla.org/en/Introducing_Content_Security_Policy) and where it&#039;s not available we have implemented CSP internally within our browser extensions.

The one last thing that I should point out is that all of the above LastPass features I have mentioned above aren&#039;t present within the default browser password managers, which is one of the many reasons why we feel LastPass is significantly more secure than a browser&#039;s default password manager.

Thanks,
Sameer Kochhar
LastPass]]></description>
		<content:encoded><![CDATA[<p>Hi Ben,</p>
<p>Good work and thanks for your post and detailed explanation.<br />
Also appreciate that you are an avid LastPass user and your words of praise.</p>
<p>First off, I fail to see why you are (or if you are) blaming the password manager for this issue.  If a 3rd party site is vulnerable to an XSS attack, then interception of the user&#8217;s credentials will occur when the user logs in whether or not they use a password manager to do so.</p>
<p>So, strictly speaking, this isn&#8217;t the password manager&#8217;s &#8216;fault&#8217; and is not being caused by the password manager.</p>
<p>I do see your points that:</p>
<p>(1) the password manager possibly makes capturing the credentials on a vulnerable site perhaps easier due to autofill, and due to autofill on the whole domain rather than just a page</p>
<p>(2) the password manager should try to use mechanisms to perhaps make it more difficult for a vulnerable website to be taken advantage of.</p>
<p>With respect to (1):</p>
<p>There is always a balance between security and convenience and we have tried to strike a good balance in that by default LastPass will autofill credentials based on 2nd level domain.<br />
However:</p>
<p>- LastPass has the ability for the user to control whether a user&#8217;s login should be autofilled or not. (for all their sites, or on a site by site basis)<br />
- LastPass has the ability for the user to control whether they should be re-prompted for their master password prior to autofill.<br />
- LastPass has the ability to control whether autofill should occur on a 2nd level domain-wide basis, or just for an exact URL match.</p>
<p>With respect to (2):</p>
<p>We really have tried to do as much as possible to protect end users, such as:<br />
- LastPass allows users to control whether LastPass should warn them before automatically filling insecure forms.<br />
- LastPass allows users to be notified by email if any of their usernames or passwords change.</p>
<p>We also recognized that LastPass.com itself is a possible source of XSS so have implemented CSP in browsers that offer it (<a href="https://developer.mozilla.org/en/Introducing_Content_Security_Policy" rel="nofollow">https://developer.mozilla.org/en/Introducing_Content_Security_Policy</a>) and where it&#8217;s not available we have implemented CSP internally within our browser extensions.</p>
<p>The one last thing that I should point out is that all of the above LastPass features I have mentioned above aren&#8217;t present within the default browser password managers, which is one of the many reasons why we feel LastPass is significantly more secure than a browser&#8217;s default password manager.</p>
<p>Thanks,<br />
Sameer Kochhar<br />
LastPass</p>
]]></content:encoded>
	</item>
</channel>
</rss>
