最近整理了一些资料,关于如何保证用户账户登录安全,思考了一些问题,简单记录一下吧。
其实,很早就有在研究这方面,因为最近这些年泄露的数据实在是太多了,不得不引起重视,比如:
MySpace 359,420,698 账号数据泄露
网易 234,842,089 账号数据泄露
LinkedIn 164,611,595 账号数据泄露
Adobe 152,445,165 账号数据泄露
Dropbox 68,648,009 账号数据泄露
等等,前不久又曝光京东12G数据泄露事故,搞的很多人都很恐慌,担心自己的账号密码不安全,担心自己的资产被盗。
对于账号安全,很多公司都是非常敏感的,比如网易数据泄露的新闻刚一出来,网易公关就马上到处发表声明说网易很安全,数据泄露和网易没关系,而是黑客从这些年的其它各大公司数据泄露中提取了所有网易邮箱账号,结尾又再次声明网易多么重视用户安全。
各大公司,当发生账号数据泄露的时候,都是尽可能极度撇清关系,再说两个事。
一个是2014年底,12306网站十几万用户数据泄露,我当时特别测试了下,大部分账号都可以登录。按照道理说,这些账号一旦泄露,应该第一时间冻结这些账号,以免遭到攻击者攻击。而12306却不是,不但没有保护这些受害用户,反倒是第一时间证明自己没有漏洞,这些数据来自其他网站的漏洞,而用户在12306使用了和其它有漏洞网站相同的账号和密码。这就是所谓的“撞库”。
第二个事情,是去年百度网盘有大量用户投诉,自己的网盘资料被莫名删光,并塞满了日本动作片,疑似数据泄露。同样的问题,厂商处理问题同样的套路————用户们,这和我们百度没关系,这是黑客通过撞库入侵了你们的账号。你们自己的账号密码,曾经在第三方平台泄露过,被攻击的用户们,你们改密码吧,你们密码不安全。
某个企业数据库泄露,企业的所有账号密码被窃取,也就是一手数据(比如京东12G数据就是一手数据),有几个点需要注意:
1. 对于黑产而言非常重要,这里包含了大量的用户的账户和密码。
2. 由于很多用户不同网站设置了相同密码,这些一手数据,几乎可以登录用户注册过的各类网站。
3. 企业对于自己的数据泄露,需要承担全部责任。
再来看所谓的二手数据,什么是二手数据呢?黑客窃取到某个大型企业的一手数据,用这些数据去模拟登陆网站B,将登陆成功的数据进行汇总,得到一批B网站的账号密码,这些数据就是二手数据。不要小看二手数据,因为这些数据是可以操作B网站用户的,比如百度网盘数据泄露、12306数据泄露,都属于二手数据。那么二手数据也有几个特点:
1. 是一手数据的一个子集,往往数据规模较小,几十万到几百万不等。
2. 危害性同一手数据一样大,对用户造成严重安全问题。
3. 企业一般不愿意承担责任,认为是用户自己的问题。
按照目前数据泄露,企业攻击来看,每年都有大量的二手数据攻击,以及贩卖用户信息和网站资产。
用户在某个网站注册了账号,结果这个网站上的数据被黑客窃取了,或者篡改了,然后网站告知用户“网站很安全”,但是结果是用户被攻击了。那么对于用户而言,他的损失谁来承担?从过去的一些案例来看,这类攻击全部由用户自己承担。那么问题来了,用户稀里糊涂的被攻击被损失,还要自己承担责任,我们都知道谁做错谁承担,用户做错了什么?
1. 谁叫用户把每个网站设置成同一个密码。
2. 用户不应该用自己被公开泄露的密码。
以上回答,便是一些厂商的态度,这些厂商根本就不负责任。
1. 作为用户而言,根本不知道自己的账号密码已经被泄露,也没有渠道获取自己的账号密码被泄露。
2. 一手数据一旦公布,企业、国家都拼了命的删帖、删新闻、关闭泄露源,根本不给用户知情权。
综上所述,我认为,无论一手数据、还是二手数据,都应该由企业自己承担相应的责任,企业有义务保证所有用户的账号数据安全。
这些年,一手数据的来源非常多,这要归功于各大网站漏洞百出,没有这些网站的漏洞,就没有今天如此之庞大的一手数据。很多人、组织、企业,将这些一手数据清洗、去重、整合,形成了所谓的社工库,通过社工库,方便快速查阅任何一个已经泄露的账号数据,这里列举几个社工库网站(有些需要翻墙):
http://sgk.3ystem.com/
http://s.70sec.com/
https://haveibeenpwned.com/
当然,社工库要持续更新,因为每年都会有新的企业数据被黑客窃取并公布,一个好的社工库应该要及时收录这些新公开的数据。
我自己做测试,通过社工库数据,对某国外社交网站进行撞库,测试结果如下:
100万数据,邮箱和对应密码
约2.8万邮箱,为该网站注册用户
其中1.8万,撞库成功
也就是说,用100万社工数据,轻松获取社交网站1.8万的真实用户的账号和密码,危害非常大。得到这些账号以后,我可以做营销、做推广、发垃圾新闻,等等。
还有一个点,不知道大家注意到没有,2.8万注册中,有1.8万撞库成功,也就是说有64%用户在该网站使用了和社工库相同的密码。换句话说,超过一半用户,会在多个网站使用相同密码。毕竟,让一个用户在不同网站用不同密码,用户很难记住那么多密码的。
说了这么多,对于企业而言,有没有一些办法避免成为二手数据攻击对象呢?这里给几点建议。
1. 企业需要区分正常登陆和异常登录,在异常登录时需要进行安全校验,比如图文验证码、人机交互、短信验证码、禁止登陆、锁定账号、次数限制等措施。
2. 对于同一IP产生大量登陆,需要进行异常监控。
3. 对于同一账号进行大量不同密码登陆,需要进行异常监控。
4. 收录社工库数据,在一定时间内,有大量社工库账号尝试登陆,需社工库预警。
5. 对于使用社工库账号密码的用户,进行安全提醒,修改密码或者增加二次校验机制。
另外,安全的最高境界是“用户无感知”,每增加一个维度、一个层级的防护,都要尽可能考虑是否会打扰到用户,做安全做产品,我们应该尽量避免打扰用户,比如增加可信设备、可信IP,对于可信设备和可信IP用户,减少触发安全校验的次数等。
celana ikhwan
Hello there! Do you use Twitter? I'd like to follow you if that would be ok.
I'm undoubtedly enjoying your blog and look forward to new updates.