没有使用密码软件前,大家容易忘记密码;使用密码软件后,大家“无奈地”泄露了所有密码。LastPass,最受欢迎的密码管理软件之一,近日再次爆出安全漏洞。安全人员发现在 LastPass Chrome 和 Firefox 4.1.42 版本插件中存在三个漏洞,可能会导致用户在使用该组件的过程中泄露密码。
这几个漏洞都是谷歌Project Zero团队的安全研究人员Tavis Ormandy发现的。其中一个漏洞影响到LastPass的Chrome扩展,另外两个则是针对Firefox的。Ormandy称该扩展程序上有可利用的内容脚本,允许攻击者从管理器中提取密码,还可以执行受害者设备上的命令。
所有平台都受影响Chrome的LastPass插件漏洞可被利用攻击用户浏览器和LastPass云服务器之间的JS脚本。Ormandy解释说:
“由于该漏洞的存在,要代理LastPass 4.1.42不受信任的信息是可行的。这个漏洞可让网站访问内部高权限RPC(远程过程调用)。有很多的PRC,可对LastPass扩展实现完整控制,包括密码的窃取。比如你安装了‘Binary Component’,甚至可以造成任意代码执行。”
Ormandy演示了如何通过该中间脚本在用户设备上执行代码(PoC点击这里),上图即成功实现了Windows计算器的启动。值得一提的是,该漏洞存在于所有操作系统中,并不只是Windows版Chrome。另外改一下PoC,在密码复制并填充用户名和密码表单之前,就能窃取用户密码了。
在具体攻击方式上,攻击者可以在网站的JS脚本中放入恶意代码,所以危险系数还是比较高的,攻击成本却比较低。LastPass发布推文称已经修复了Chrome插件的相关漏洞,还专门发了篇博文来详述该问题。
Firefox也未能幸免如上所述,Firefox的LastPass扩展也存在漏洞,仅影响3.3.2版本——这个版本的确也是LastPass最广泛应用的版本。和Chrome版一样,攻击者也可以通过隐藏在网站中的恶意JS代码来发动攻击,下图复现了其中一个漏洞。
不过两周前,LastPass就发布了新版Firefox插件,因为Firefox原本计划抛弃旧有扩展API。漏洞的演示页面在此。
基于浏览器的密码管理扩展还能用吗?实际上,这已经不是Ormandy首次在LastPass中发现高危漏洞了:
2016年7月,同样是 LastPass浏览器扩展组件爆出漏洞,黑客可以通过诱导用户点击一个连接,然后窃取用户的所有密码;
2015年6月,LastPass 的服务器被黑客攻击,并导致用户所有加密数据被泄露,虽然泄露的不是明文数据,但这些数据依旧有被破解的可能;
2014年,安全人员发现 LastPass 的四个密码管理漏洞;
LastPass也并非唯一被曝漏洞的密码管理类应用:Keeper、Dashlane甚至1Password都曾给予攻击者机会窃取用户账户密码。基于浏览器的密码管理扩展都存在类似的攻击面,攻击者只需要设计个恶意网站让相应用户去访问就能在用户不知情的情况下窃取身份凭证信息。
使用这些浏览器密码管理扩展插件,相当于给了攻击者一个API,通过JS或者DOM和用户的密码管理器做交互。其危险程度显然比桌面应用要大得多。
实际上,密码管理器还是有其他选择的,也完全不需要遭受通过JS直接访问的风险尴尬,比如直接用桌面密码管理器。另外主流的浏览器本身都有设计得不错的内置密码管理器,也很易于使用,另外还能和移动端同步。
或者你也可以选择将密码放在本地,然后进行加密。如果攻击者想要获得密码首先要获得你计算机的用户权限,然后在你解密文件的时候查看密码,这对攻击者来说难度不小。