拖库和撞库浅析
一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:16004488
关于拖库和撞库
拖库是指黑客盗取了网站的数据库。撞库是指黑客用拖库获得的用户名和密码在其它网站批量尝试登陆,进而盗取更有价值的东西。由于一些用户在多个网站用相同的用户名和密码,所以撞库是有一定成功率的。现在稍微有点责任感的网站都不会将密码明文保存在数据库中,起码会做一次MD5。要想撞库,必须得知道密码的明文,也就是用户真正输入的密码。我们知道MD5算法是不可逆的,黑客是怎么弄到密码明文的呢?最常用的办法就是MD5字典。
MD5字典是什么?
其实就是提前将一些比较简单的密码(比如10位以内的纯数字)做MD5运算,将结果保存下来,破译密码的时候直接查就行了。比如字符串“123”的MD5值是“202cb962ac59075b964b07152d234b70”,黑客在拖来的数据库中看到某位用户的密码是“202cb962ac59075b964b07152d234b70”,通过字典一查就知道密码明文是“123”了。当然黑客用字典破译密码不会人工一个一个的查,而是用程序批量查询的。
所有密码都能用MD5字典破译吗?
理论上可以,但实际上只能破解比较简单的密码。下面我们看看不同复杂度密码对应的MD5字典有多大。
1、10位以内纯数字
共10^1+10^2+10^3+10^4+10^5+10^6+10^7+10^8+10^9+10^10=10(1-10^10)/(1-10)=11,111,111,110条≈110亿条
保存每条记录至少需要42字节(密码10字节+MD5值32字节),则存储该MD5字典至少需要约467GB空间。
2、10位以内的数字+小写字母
共36(1-36^10)/(1-36)=3,760,620,109,779,060条≈3760万亿条
保存每条记录至少需要42字节(密码10字节+MD5值32字节),则存储该MD5字典至少需要约157946TB空间。
通过以上两个例子可以看到,如果用户的密码是10位以上的数字和字母组合,通过MD5字典破解的概率几乎为零。但并不是所有用户的密码都足够强,黑客拖库后,使用弱密码的账户很容易就被查到明文了。对于使用弱密码的账户,被拖库的网站就无能为力了吗?不是的。办法也很简单,只要在MD5的时候加一个稍微复杂点的盐(比如GUID/UUID),就能极大的提高用户密码的安全性。
加盐后的明文=明文+盐
密文=MD5(加盐后的明文)
以GUID/UUID作为盐为例,哪怕明文再简单,加一个32位的盐,加盐后的明文也在32位以上了,通过MD5字典来破解是不现实的。
如果所有网站都没有加盐,黑客只需建一套MD5字典,所有网站都能通用。如果所有的网站都加了盐,退一万步讲,哪怕盐也被黑客盗了,也不能用通用的MD5字典,得为每一个拖库的网站建一个字典。这样成本会高很多,如果动力不够,黑客就放弃了。
防止拖库和撞库的对策有很多,我这里只是分析了其中的一点,并提出了相应的对策。办法很简单,相信很多网站也加了盐,或做了更复杂的操作,但没有加盐的网站也很多,要不然就不会经常发生撞库的事了。
尽全力保护用户的信息安全是每个网站应尽的义务,这样才对得起用户对你的信任。一个小小的改变可以让用户的密码更加安全,希望能引起所有网站的重视。
拖库撞库安全防御策略
用户密码的防拖库设计
1、加盐法
大多数主流互联网网站,对账号密码等信息都采用加密存储,(明文存储的不在本文讨论之内),为了防止拖库后被破解,采用加盐 (+salt)的加密已经被广泛认可,笔者认为这的确是一种极好的创新,因此将其列在第一位,同时建议salt位数至少6位。
难易程度: 1颗星 防范效果:4颗星
2、混淆法
账号密码的登录认证方式由来已久,随着互联网交易的发展,为了加强认证,出现了二次认证的密码。基于此启发,笔者认为是否 可以将一个账号在数据库存储时,一个UID 用户名对应多个密码保存,只有一个为用户真实的密码密文,而其他作为混淆项,混淆项的 值为用户注册系统时由系统自动生成。当认证时,系统通过算法匹配与数据库真实的密码密文来验证完成认证。如图:
这样设计数据库账号密码存储的优点、缺点是:
发生拖库时,攻击者无法从数据库中识别出哪一字段为真实密码,只能将所有字段全部“拖走”,同时增加了破解的难度和撞库的难度。
对数据库运维而言,此举便于数据库读取的监控,在建立一定的读取监控策略后,能轻易发现拖库行为,及时告警处置。
认证时,系统的匹配算法或实现的匹配机制需要设计隐蔽,不能被轻易分析识别。
混淆密文的生成算法需合理,被解密后,不能轻易区分出哪一个是真实的密码。
难易程度: 4颗星 防范效果:3颗星
3、陷阱法
陷阱法顾名思义就在数据库敏感的地方设置陷阱,使拖库行为容易被发现、识别并跟踪。笔者设计了两种基本的陷阱法场景供读者参考。
场景一:账号数据表的陷阱
在同一个数据库中至少创建两套与认证相关的账号数据表,一真一假,二者实时更新、同步数据。对假账号表进行读取控制的监 控和告警。因为攻击者无法区分哪一个表是真正在用的账号表,所以多数情况会一并拖走,这样监控便能及时发现非法行为。如图:
场景二:账号数据值的陷阱
在同一个数据库账号表中,可以随着系统用户的注册增加,按照一定策略“内建”一些“假”(假并不是不能使用,是与网民注册 的真实用户相对)的账号数据。同场景一一样多数攻击者会将数据全部拖走,这样监控便能及时发现非法行为。如图:
陷阱法设计认证数据表的优点、缺点是:
攻击者无法知道具体策略,多数情况会拖走全部数据,这样便于数据库读取的监控。在建立一定的读取监控策略后,能轻易发 现拖库行为,及时告警处置。
场景二若设计合理的构建陷阱策略,可以便于追查时间点,便于追踪数据。
场景二由于插入陷阱数据,不便于真实用户数据数量的统计。
难易程度: 3颗星 防范效果: 4颗星
数据库系统的防拖库识别
除了对数据库结构的防拖库设计,对数据库的访问控制识别、安全运维,也是降低拖库风险的有效措施。
1、数据库系统的访问控制
笔者强烈建议有能力的企业提高对数据库系统设计、维护、管理方面的重视程度,根据自身业务特征、自身IT 技术实力,保障数 据库系统的安全,防范拖库。在数据库系统与前台交互中,建议设计统一查询接口,便于管理和监控,如图是针对数据库系统访问控制方面的防范思路供参考。
严格通信访问控制,后台DB 只允许与“统一查询接口”通信。
统一数据库查询接口,制定SQL 查询的黑、白名单,并实时监控。
数据库可采用库内、库外甚至专用硬件加密设备。
防非法拷贝数据文件,如采用软指纹技术、加密卡等。
难易程度: 4颗星 防范效果: 4颗星
2、数据库的运维
在数据库系统维护中,建议使用专用接口维护工具、堡垒机等方式,如图是针对数据库系统运维方面的防范思路供参考。
数据库管理员与系统管理员权限分离。
DBA 使用专用数据库维护工具进行维护,具备加/ 解密能力。
采用加密备份/ 恢复策略维护数据库,数据不脱密。
备份数据具备时间有效期,过期后自动销毁、删除等。
难易程度: 3颗星 防范效果: 2颗星
运维监控的防拖库监测
在运维监控中,可以从网络、主机、接口、数据库、审计等多维度进行全面监控,如图是针对运维监控方面的防范思路供参考。
对数据库和查询接口进行读写监控、数据标记甚至数据路径追踪。
对操作系统进行性能、文件、IO、进程、端口等监控,特别是特定文件的读取、变化。
对基础网络进行流量、协议、访问控制、蜜罐等监控。
进行全面审计,包括访问行为、危险操作、异常行为等。
难易程度: 4颗星 防范效果: 4颗星
撞库打码灰色产业利益链
被告人犯非法获取计算机信息系统数据罪及提供入侵计算机信息系统程序罪领刑。
叶某某编写了用于批量登录网站账号、密码的软件供他人使用,并收取服务费用。张某某为组织多名“码工”协助叶某某在批量登录账号密码时,对图片验证码进行识别(俗称“打码”),并从中赚取好处费。谭某某下载使用了这款软件后,成功获取大量淘宝账号、密码,并将账号密码出售给他人,获取违法所得25万元,仅从其电脑上查获的淘宝账号密码就有2万余组。
前不久,浙江省杭州市余杭区人民检察院对谭某某非法获取计算机信息数据,叶某某、张某某提供侵入计算机信息系统数据案提起公诉。2018年5月21日,余杭区人民法院对此案作出判决,被告人谭某某因犯非法获取计算机信息系统数据罪,被判处有期徒刑三年,缓刑四年,并处罚金人民币四万元;被告人叶某某因犯提供入侵计算机信息系统程序罪,被判处有期徒刑三年,缓刑四年,并处罚金人民币四万元;被告人张某某因犯提供侵入计算机信息系统程序罪,被判处有期徒刑三年,缓刑三年,并处罚金人民币三万元。
据悉,这是全国范围内针对撞库打码案件的首次判例。法院完全采纳检察院的起诉意见。
谁动了你的淘宝账号
2015年4月11日至8月6日期间,近百个用户先后向淘宝网发出账号被盗的投诉。这一反常现象引起了淘宝公司的关注。经过初步调查,该公司发现,有人使用同一台终端设备频繁尝试登录51万余个(次)淘宝账号,其中近4万次登录成功,而那些被盗的账号就是这4万多个账号中的一部分。
究竟是什么人,出于什么样的目的,利用什么样的手段,在高频率地反复操作这一非法行为?
2015年9月1日,淘宝公司就此事向公安机关报案。随后,涉案人员叶某某、谭某某、张某某先后被抓获归案。
“我在网上看到有人用一款软件批量破解淘宝账号密码,再把这些账号拿去卖钱。”谭某某是一名90后,初中文化,待业在家,看见如此轻松的赚钱方法,他立即加入其中,“操作很简单,我只需要到各个网站下载或购买账号、密码库,将账号密码库导入一款名叫‘某伞’的软件,就能获得成功登录淘宝网站的那部分账号密码,这部分账号密码值钱,可以卖了赚钱。”以这样的方式,谭某某在短短8个月的时间内,就获取违法所得25万余元。
这款名为“某伞”的软件并不难找,网上就能免费下载。
像谭某某这样使用软件批量破解、筛选账号密码的行为,网上也不少见,甚至有专门的圈子,业内称之为“撞库打码”。
据谭某某交代,在实际操作时,尽管软件可以免费下载,但“撞库打码”是需要成本的,要想正常使用软件,就必须到一家特定的淘宝店铺购买验证码充值卡。
承办检察官李剑说,这起案件作案手段专业性强,且没有判例借鉴,这就要求承办人在审查时必须掌握相关专业知识。为此,李剑就涉案技术问题通过余杭检察院电商检察联络室,与阿里巴巴集团公司多次沟通、咨询,同时向院内专家库成员请教,并翻阅了大量专业书籍、资料,在对案件所涉及的作案手法有了较为专业详细的了解之后,厘清办案思路,进行仔细、严谨的审查程序。
经调查,这家特定的淘宝店店主是一名叫叶某某的男子。叶某某在网上了解到有人在用打码平台赚钱。随后,他凭着自己编程的专长,自行搭建了一个打码平台,还组建了打码平台QQ群,拉拢其他人到他的平台上进行打码。为了吸引客户,叶某某还专门编写了一款名为“某伞”的打码软件,帮助客户在平台上打码。如果有人想使用这个打码平台,就必须在叶某某的淘宝店购买验证码充值卡。
打码产业链如何形成
正是叶某某提供的打码平台和“某伞”软件,给不法分子提供了盗取淘宝账号密码的专用工具;同时以此为核心工具,形成了一条灰色产业链。
如今许多网站会要求用户在登录时输入验证码,作为一种账号保护手段,这些验证码往往是以图片形式呈现,防止机器直接获得数据;而所谓“打码”就是在盗号时,将这些图片形式的验证码转化为文字形式,使非法登录得以“突围”。这个识别验证码的过程,实际上需要依靠人工来完成,这些人则被称之为“码工”。
早在2013年,叶某某就在网上发布过打码任务的消息,希望寻找“码工”来有偿输入大量网站登录的验证码。张某某从这条消息中看到了“商机”,他立即与叶某某联系,双方很快商定,由张某某来担任打码代理,为叶某某的平台提供打验证码的服务,并从叶某某处收取好处费。
张某某先在网上加了一些有关打码的QQ群,找到一些“码工”,同时联系好打码任务,就开始做打码代理的事情了。他组织了上百名“码工”帮助叶某某打码,并从中赚取差价。就这样,打码平台、“码工”组织者、“码工”三个层级串成了打码灰色产业链。
在审查过程中,此案涉及到海量的信息数据,尤其是在查找打码平台的组织者是否构成共犯的证据时,李剑浏览比对了几百页聊天记录,最终锁定三条关联信息,形成起诉的关键性证据链。与此同时,李剑还在办理过程中积极与公安机关对接,进行证据取证指导,完成一批证据补充工作。经过周密审查,李剑提出承办意见:此案中提供打码程序及平台的叶某某、“码工”组织者张某某以及操作打码的谭某某的行为均已构成犯罪,依法应提起公诉。
“擦边球”行为要不得
随着互联网的迅猛发展,互联网犯罪也在不断升级演化,呈现出新型化、精细化、专业化、组织化等特点,打击互联网黑灰产业已经成为净化网络空间的重要任务。
而网络上一些参与打码的人员,尤其是处于产业链末端的“码工”,许多都是在家兼职做打码任务赚钱的性质,他们普遍知道这件事是不好的,但并没有意识到这是违法犯罪的行为,甚至有人还特意在网上查询过此事是否犯法,抱着侥幸心理去做打码任务。而这起案件的判决结果给广大网民敲响了警钟——撞库打码这类行为已经触动了网民的利益,更触犯了法律的底线。
检察官提醒,应当进一步加强网络空间治理,增强网民的法治意识和分辨是非的能力,不要因为贪图小便宜而陷入互联网黑灰产业,成为不法分子利用的对象。
【推荐书籍】