从各种密码到电子文档的副本,可以说任何用户数据,都是黑客们感兴趣的东西。原因很简单,几乎任何用户数据都可以用来获取非法收益。
举例来说,被盗的密码就可以被用来劫持用户的账户,进而将账户下的资金全都转移到黑客的账户下。如果黑客们愿意,他们也可以将这些数据转手卖给别人,直接将数据换成钱。
据卡巴斯基实验室最新公布的数据,仅在今年上半年,就有超过94万名用户遭遇了旨在窃取保存在他们计算机上的各种数据的恶意软件攻击,主要集中在俄罗斯、德国、印度、巴西、美国和意大利。
图1.信息窃取恶意软件攻击分布图
此类恶意软件通常被称为“Stealer Trojans(信息窃取木马)”或“Password Stealing Ware(PSW,密码窃取程序)”,一旦成功感染目标计算机,就能窃取包括密码、文件在内的各种用户数据。
信息窃取恶意软件具体都有哪些功能?
在暗网黑客论坛上,我们经查都会看到有关此类恶意软件的广告,卖家往往也都会详细地列出自家“产品”的具体功能。
图2.暗网黑客论坛上的信息窃取恶意软件广告
总的来说,大多数信息窃取恶意软件都具有如下功能:
(1)从浏览器抓取数据:
- 密码
- 自动填充数据
- 支付卡信息
- Cookie
(2) 复制文件:
- 特定目录下的所有文件,如桌面
- 特定扩展名文件,如txt、docx
- 特定软件安装文件夹下的文件,如加密货币钱包、即时通讯软件等
(3)收集系统信息:
- 操作系统版本
- 用户名
- IP地址
(4)窃取各种软件的账号和密码,如FTP客户端、VPN、RDP等
(5)截屏
(6)从互联网下载文件
值得一提的是,类似于Azorult(卡巴斯基实验室在超过25%的被攻击用户的计算机上都检测到了Azorult)这样的多功能信息窃取恶意软件,几乎可以获取受感染计算机上的所有数据:
- 完整的系统信息,如已安装的软件、正在运行的进程列表、用户名或计算机名、系统版本等;
- 完整的硬件信息,如CPU、显示器、显卡等;
- 几乎所有主流浏览器中保存的密码、支付卡数据、Cookie、浏览历史记录;
- 邮箱、FTP、即时通讯软件客户端的密码;
- 即时通讯软件安装文件夹下的文件;
- Steam游戏客户端安装文件夹下的文件;
- 超过30种加密货币钱包安装文件夹下的文件;
- 截屏;
- 特定类型的文件,如“USERPROFILEDesktop”文件夹下(即桌面上)的所有具有特定扩展名(.txt、.jpg、.png、.zip、.rar、.doc)的文件。
为什么要专门收集位于桌面上的文件?这是因为大多数用户通常都会把常用的文件保存在桌面上。比如,常用的密码一般都会被保存在.txt文件里,而像.doc这样的Office文档则很可能包含有用户公司的机密信息。
图3. Azorult的攻击分布图
恶意软件如何从浏览器窃取数据?
在窃取浏览器数据(密码、支付卡信息、自动填充数据)方面,几乎所有的信息窃取恶意软件都采用了大致相同的方式。
Google Chrome和基于Chromium的浏览器
众所周知,在基于Chromium的浏览器中,保存的密码都受到了DPAPI(Data Protection API)的保护,这是通过SQLite数据库来实现的。只有创建这些密码的管理员用户才能够从SQLite数据库中提取它们,而且只能在加密它们的计算机上提取。
然而,对于已经成功侵入计算机的信息窃取恶意软件来说,这并不能成为阻碍,因为它们本身就是以管理员用户权限运行的。按照如下步骤执行,它们就能够提取浏览器中保存的数据:
- 提取数据库文件-对于基于Chromium的浏览器而言,用来保存用户数据的文件的路径是固定不变的,很容易找到;
- 读取加密数据-如上所述,基于Chromium的浏览器使用的是SQLite数据库,使用一些标准工具就能从中读取数据;
- 解密数据-通过调用CryptUnprotectData函数,就能够直接在受感染计算机删直接完成解密。
图4. 信息窃取木马Arkei的源代码片段(用于解密从基于Chromium的浏览器中窃取的数据)
就这样,无论是保存的密码,还是支付卡信息或浏览历史记录,都能够被窃取并随时发送到由黑客们控制的服务器上。
Firefox和基于Firefox的浏览器
基于Firefox的浏览器的在数据加密上略有一些不同,但对信息窃取恶意软件来说,获取它们的过程同样简单。
在Firefox浏览器中,加密使用了Network Security Services(一组Mozilla用来开发安全软件的库)和nss3.dll库。
与基于Chromium的浏览器一样,信息窃取恶意软件从浏览器中提取保存的数据的过程如下:
- 提取数据库文件-基于Firefox的浏览器会生成随机的用户配置文件名,使得保存用户数据的文件无法事先预知。但通过匹配特定的文件名,信息窃取恶意软件仍然能够找到这些文件的位置。此外,即使用户卸载了浏览器,这些文件也不会被删除。
- 读取加密数据-加密数据分为两种,一种是和基于Chromium的浏览器一样保存为SQLite格式,另一种则保存为JSON文件格式。
- 解密数据-想要解密数据,信息窃取恶意软件就需要加载nss3.dll库,然后调用多个函数来对数据进行解密。
图5.信息窃取木马Orion的源代码片段(用于解密从基于Firefox的浏览器中窃取的数据)
IE和 Edge浏览器
在IE 4.X到6.0版本中,用户的密码和自动填充数据都保存在所谓的Protected Storage受保护存储区域中。为了提取这些数据,信息窃取恶意软件需要加载pstorec.dll库。
IE 7和8版本使用了略有不同的方法:使用的存储区域被称为“Credential Store”,并且使用进行了SALT加密。不过,由于SALT值是固定的,导致信息窃取恶意软件能够通过调用相同的CryptUnprotectData函数来获取所有保存的密码。
虽然IE 9和Edge使用了一种被称为“Vault”的新型存储方式,但信息窃取恶意软件仍能够通过vaultcli.dll并调用几个函数来提取用户数据。
安全建议
在日常生活和工作中,我们常常会将一些重要的数据保存在浏览器中(比如,允许账号和密码自动填充),主要就是为了图个方便。
卡巴斯基实验室的这份报告则给我们提了个醒,目前市面上的大多数浏览器所使用的数据保护方法,对于信息窃取恶意软件来说似乎并没有多少用处。
因此,建议大家还是尽量不要将重要的数据保存在浏览器中的好。如果已经养成了这个习惯,那么一定不要下载并运行可疑文件,也不要点击可疑电子邮件中的不明链接。