上周末,今年五一假期火车票争夺战打响。 风和日丽,春光灿烂,怎能不出去玩玩呢? 我们实验室的员工“杜东邦”就是其中之一。 战胜了春节抢票高峰后,她把所有的希望都寄托在了抢票软件上。 杜在网上没有输入“抢票软件”三个字后,就被各种抢票软件搞得不知所措。 最终,她只得选择了几个抢票软件一起工作。 经过漫长的等待,杜某最终没有买到火车票,并接连收到无数骚扰甚至诈骗电话。 我的个人隐私是如何被泄露的? 杜白白百思不得其解,向好友“王欢喜”求助。
王欢喜得知杜东邦的经历后,作为一名信息安全工程师,本能地运用自己的研究特长来分析抢票软件的问题。
目前,根据各大应用商店的下载量,王欢喜测试了9款市面上流行的抢票软件:网易火车票、12306火车票购买、抢票大师、铁友火车票、知行火车票、铁行火车票、高铁管家、携程、去哪儿(携程和去哪儿火车票不是主营业务,而是功能模块,下载量无法实际比较,不计入下图中)。
(数据来源:用盈宝、豌豆荚、360手机、百度手机助手、华为应用商店,排名不分先后)
大多数抢票软件都要求用户将自己的12306账号和密码委托给对方。 抢票软件利用用户访问12306官方门票查询、购买等相关接口,处理12306官方返回的门票信息和个人信息,或通过售票机构抢票。 票。 大多数抢票软件本质上都是购买服务。 抢票软件后端利用其高带宽、自动识别验证码等绝对优势,抢票能力远超普通用户。
尽管大多数抢票软件在服务协议中都注明会妥善保护用户委托的个人信息,但王欢喜发现,杜某并没有意识到360抢票软件官方下载,当他使用自己的12306账号和密码登录抢票软件时360抢票软件官方下载,他没有意识到他留下了自己的身份证号码和电话号码。 许多真实的个人信息如车票、车次、家庭成员等也被委托给抢票软件。 进一步测试发现,大量抢票应用存在个人信息泄露风险。
(一)文件安全
大多数抢票软件都存在文件存储安全问题。 Android 应用程序使用共享首选项和 SQLite 数据库来存储应用程序数据。 抢票软件直接将12306账号、密码、姓名、身份证号、生日、性别、电话号码等以明文形式存储在Shared Preferences和SQLite Database中。 如果在没有权限控制的情况下创建本地存储文件,任何人都可以直接查看本地存储的用户个人信息。 即使存在权限控制,恶意攻击者也可以通过 root 设备或 root 权限查看敏感信息。
杜某不知道如何通过抢票软件登录12306账号。 账户中的个人信息以及其他保存的旅客信息均直接保存在手机中。 手机一旦感染恶意程序,所有存储的12306账户信息都会被恶意攻击者毫无保留地打包带走。 在没有获取用户名等信息的情况下,王欢喜从杜不白使用的抢票软件中成功读出了杜不白的账号、密码和身份证号码。 当王欢喜的同学们都惊呆了。
下图为铁友火车票和铁航火车票数据库中明文存储的12306账户信息,以及当前账户下所有乘客的身份信息,包括身份证号、生日、性别、身份等,以及在共享偏好设置中购买12306火车票保存12306账号和密码。
(铁友火车票数据库以明文形式存储用户名、身份证号等敏感信息)
(火车票数据库以明文形式存储乘客的身份证号、姓名、电话、生日、性别、敏感身份信息)
(12306购买火车票(Shared_prefs)本地明文存储12306账号和密码)
(2)数据传输安全
当用户在抢票软件中输入账号和密码并点击“登录”时,账号信息会通过互联网发送到服务器进行验证。 在此过程中,恶意攻击者有无数机会窃取数据。 互联网传输协议包括HTTP协议和HTTPS协议。 HTTP协议,数据未加密,安全性较低; HTTPS安全传输协议在HTTP协议的基础上增加了SSL和TLS协议来验证客户端和服务器证书,保证传输线路上的数据安全。 事实上,大多数抢票软件本身并不验证客户端和服务器证书的有效性,默认允许所有证书,相当于去掉了外壳的保护。 任何恶意攻击者都可以利用它来进行攻击并监控HTTPS线路上传输的数据。
经确认该不明同学在公共场所随机连接Wi-Fi热点,确认其在连接不安全的Wi-Fi热点时个人信息可能已被泄露。 恶意攻击者监听所有通过公共Wi-Fi热点的请求,包括:12306登录账号、密码、旅客信息等,这些都可能被恶意攻击者窃取。
王欢喜在实验过程中还发现抢票软件存在以下问题: