【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

浅析爆库和社工库扫描

  • 2011-12-30
  • 本文字数:2016 字

    阅读完需:约 7 分钟

背景

最近有关国内外互联网企业的密码安全问题受到了严峻的挑战和社区的广泛关注。腾讯安全团队的技术专家介绍了有关暴库和社工库扫描的内容。

常见密码存储方式对于用户来讲,用户密码信息显然是非常重要的,我们当然有必要了解社区管理者是如果保存我们的机密信息的。目前网站中主流存放用户名和密码的方式有三种:

  1. 明文存放。这种网站的用户数据特别危险,网站被黑客拿下,用户数据直接那走。
  2. 可逆加密存放。你的密码会被加密一次存放在网站的数据库中,可逆加密也是非常危险的。
  3. 不可逆加密。密码通过 MD5 等不可逆加密算法加密后存放在网站数据库中,比上述 2 种密码加密方式安全。(如果 md5 加密后的密码泄漏,明文密码仍有通过查找表的方式反查出来的可能)

从目前的情况看,有些网站过去是采用明文的方式存储密码的,那么对于一个账户信息未泄漏的网站,我们如何判断一个网站是采用什么样的密码存储方式呢?

一个很简单的方法,你通过密码找回功能操作,如果让你重设密码的,基本上是不可逆加密的,直接给你密码的,都是明文或可逆加密的,这种都非常危险。

攻击手法

下面我们了解一下,黑客针对后台数据库的入侵手法:

爆库

爆库,在黑客的圈子叫做“拖库”,是指将网站的数据库被黑客下载到本地。按照安全技术圈的说法,国内有点影响力的网站,2/3 都被爆过库(未证实),不要认为大的网站安全万无一失,防爆库是安全架构里非常重要的一点。

防爆库不仅仅是防止别人拿到你的库,还要做到让别人拿去也没用。

密码明文存储的,一定是死路,可逆加密的,只要黑客用点心,基本也不安全;不可逆的,类似 md5 加密(Md5 加密方式虽然被我国专家证明可逆,但是逆向的成本很高,基本无人使用)应该很多人认为比较安全,但是遇到碰撞也很无奈。类似于 cmd5.com 这样的碰撞库,其规模已经非常巨大,常规的密码的破解几率大于 95%,至少,我常用的密码,我断定都在碰撞库里,原因很简单,不在碰撞库里的密码,就我的记忆力是没戏了。从下图是从一个 md5 加密过的库中随机挑了一个加密后的密码,可以看出,md5 单次加密是很容易破解的。

Md5 加密的库

Md5.com 上查询结果

那么如何规避这样的行为呢?

一般的做法是两次 md5 或多次 md5 等加密保存方法,这种方法很好的避免了加密后的密码在类似 cmd5.com 这样庞大的碰撞库中出现。但是如果黑客拿到的数据库够大时,比如 1 千万的用户数据。有心的黑客会发现加密逻辑,再用一天跑一个几千万乃至过亿常用密码的碰撞库,专门来对付你的数据库,对于黑客来说不是什么难事。只要字典够好,破解率可以在 60% 以上。

Discuz 就在使用一种低成本的安全密码保护策略,他们使用随机 salt 二次加密。这种方法会使黑客破解密码的成本大大提高。黑客如果像破解这样的密码,需要为每一个用户(对应的随机 salt)建立一个碰撞库,时间成本很高。对于大量用户的破解,黑客一般是选择放弃,投入产出比太低;但是对与单个明确目标的话,他们还是会乐于尝试的。

不过得明确一点,爆库不等于密码泄漏。因为被爆库后,密码未必会被黑客破解。爆库 + 不正确的加密方式才叫密码泄露。

社工库

在现在爆库泛滥的年代,加之密码破解率很高,社工库扫描也红火起来。简单来说,你可能会在很多网站使用同样的邮箱和密码,社工库扫描就是利用这点,知道你一个账户后,就可以得到其他更有价值的帐号。哪怕密码不相同,这个密码作为暴力破解中的关键字,也能大大提高破解率。

有些网站泄露的密码经过测试,可以使用一个账户成功登陆其他网站,并且提示:“支付密码和登录密码一致,请更改…….” 这就是社工库的威力所在!

有人认为黑客这样做收效太小,没有意义,这点就搞错了。黑客并不是像我朋友那样逐一手工尝试的,而是用非常海量的数据批量扫描的,这样成本是非常低的,规模化的操作,甚至很多中招的人只是黑客意外收获,完全是没有成本的战利品。

对于社工库扫描,网站通常的做法就是验证码(防暴力破解也是这种方法)。但是简单的验证码是很容易识别的,网上流传很多验证码的识别源码。类似下面这些验证码都是可以识别的,源码和 dll 网上可以找到的。

然而 BT 的验证码却会伤害用户体验,目前黑客也有应对 BT 验证码的方法。他们会将验证码集中传回到一个集中的地方,在网上请廉价的网络打工者填写。虽然这种方法成本有所提高,但是对于收益还是很低廉的。

如何规避风险

我们能做什么来保护自己不被社工库扫描?或将损失降到最低?

推荐做法是:重要账户和普通账户分离。具体操作如下:

  1. 将帐号分类,公司帐号、有钱的帐号(支付宝等)、关系链帐号(朋友、人人等)和普通帐号。前 2 个为重要账户,关系链帐号较为重要。
  2. 每种账户至少对应一套密码,而且密码之间毫无关系。
  3. 每种账户对应的邮箱最好也能不通,因为密码找回往往依赖与注册邮箱。

展望

被泄密的网站越来越多,下一个也许就是你最常用的网站。赶紧去修改关键账户的密码吧,要不下一个受伤的可能就是你!

注:本文转自腾讯大讲堂,原文地址为 http://djt.open.qq.com/thread-623-1-1.html

2011-12-30 22:468078

评论

发布
暂无评论
发现更多内容

学习总结 2021.12.30

mj4ever

学习笔记

架构实战营 - 模块 3 - 作业

Pyel

「架构实战营」

Hoo研究院币 | 币海寻珠——加密行业即将到来的发售事件

区块链前沿News

加密货币 虎符 虎符交易所

外包学生管理系统详细设计文档

糖糖学编程

架构实战营

最近火热的web3到底是什么?

石云升

区块链 28天写作 12月日更 web3

架构实战营:模块三作业

Geek_93ffb0

「架构实战营」

架构实战营模块三作业

lchx08

「架构实战营」

VS Code 如何设置大小写转换快捷键

AlwaysBeta

vscode

引领人工智能技术自立自强 百度吴甜获评“首都最美巾帼奋斗者”

百度大脑

人工智能「

费用节省 50%,函数计算 FC 助力分众传媒降本增效

阿里巴巴云原生

阿里云 云原生 合作 函数计算FC 分众传媒

详细架构设计文档

Anlumina

#架构实战营

Golang中文件的基本操作

liuzhen007

Go 28天写作 Go 语言 12月日更

一个cpp协程库的前世今生(一)缘起

SkyFire

协程 cpp cocpp

元宇宙很好,但VR开发者不准备停留在这里

白洞计划

百度飞桨EasyDL桌面版正式上线,没网也能训练AI!

百度大脑

人工智能

Git基础 |打tag

xcbeyond

git 28天写作 tag 12月日更

阿里巴巴超大规模 Kubernetes 基础设施运维体系揭秘

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生 ASI

第三周学习总结

糖糖学编程

架构实战营

架构实战营4期-模块3作业

木几丶

「架构实战营」

瞰见 | 开源,会不会变成开源创业的焦油坑?

OpenTEKr

狄安瞰源

深入理解一下Python中的面向对象编程

宇宙之一粟

Python 面向对象 12月日更

Java 数据持久化系列之池化技术

程序员历小冰

MySQL 持久化 28天写作 池化技术 12月日更

第三模块学习总结

Anlumina

#架构实战营

架构实战 模块三作业

mj4ever

架构实战

从人工到智能!百度AI开发者大会分论坛,探寻国球乒乓背后的AI之路

百度大脑

人工智能

百度智能云发布零碳园区解决方案,助力实现双碳目标

百度大脑

人工智能

【架构实战营】模块三:知识点总结

wgl

「架构实战营」

【架构实战营】模块三:命题作业

wgl

「架构实战营」

有趣的灵魂万里挑一:从智能座舱看汽车进化史

脑极体

一口气搞懂【Linux内存管理】,就靠这60张图、59个问题了

奔着腾讯去

内存泄露 内存管理 Linux Kenel 内存映射 内存池

ALC北京发起人 姜宁:通过开放与协作,我们可以实现一个人想都不敢想的事情 I OpenTEKr 大话开源 Vol.6

OpenTEKr

大话开源

浅析爆库和社工库扫描_安全_Lake_InfoQ精选文章