前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >马老师聊安全 | 弱密码的防御与检测

马老师聊安全 | 弱密码的防御与检测

作者头像
FB客服
发布2018-07-30 11:44:59
7000
发布2018-07-30 11:44:59
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

弱密码一直是广大安全人员的痛。web管理页面、公网服务连接密码(如邮件、sql等)、内网终端、服务器登录等都是弱密码的重灾区。一旦被人利用成功,损失巨大。

不过弱密码其实是一个双面词汇

入侵角度:黑客利用弱密码去爆破系统,实现登录终端或管理系统等 防御角度:安全人员防止用户设置弱密码,阻止黑客利用弱密码获取系统权限

但回想下弱密码防御思路,明显会发现防御和入侵的不对等性。

防御角度,传统意义的弱密码是指密码单一或过于短,例如:123456,admin,123456789,这些容易被爆破,或容易被猜测到的密码。且可以用简单的策略屏蔽此类弱密码。

但黑客实际爆破的时候用这个密码库成功率很低,一般还需要结合泄漏的各种“裤子”,其实也就是用户用过历史密码,此外为进一步提高破解率。还需要收集对方的社工信息,如

企业信息:

企业英文名、企业中文名拼音、企业域名、简写/缩写、企业的各种品牌名、注册日期、注册地等等

个人信息:见下图

所以广义看弱密码库=黑客密码库=(简单密码+历史密码+社工密码)

站在防御的角度,我们的思路必须和黑客对其(尽量对其)才能形成有效的防御措施,和黑客统一维度才能避免降维打击,所以但防御角度应该关注的弱密码库就是:

简单密码+历史密码+社工密码。

有了这个共识,接下来我们聊聊企业安全的弱密码安全实践。其实就是以此为基础阻止用户设置弱密码并发现黑客的弱密码爆破行为。

弱密码库的构建

根绝我们的分析,我们已经知道了防御弱密码库的构建思路,防御弱密码库= 1、简单密码 + 2、历史密码 +3、社工密码,下面看下具体怎么构建。

1、简单密码,这个可以参考图2微软的建议,反向构造即可,毕竟微软有时还是比较靠谱的。此外还要加一些常规套路,如admin、qwerty、asdfg之类的。

2、历史密码,其实就是个人的习惯罢了,这个这里有一些网上可以下到的裤子,如下,虽然都是老裤子,但有一定参考价值。

3、社工密码,这个对于企业来说非常简单,毕竟入职的时候hr要求填写那么多信息,可以参考图3进行构建。但有一点需要注意,这个构建是by人的,即A的个人信息构建出A的弱密码,而不是B的。信息间没必要重叠,否则会增加密码库大小,且意义不大。

做了以上3点,我们就已经具备了一个强大的弱密码库,少则几百万,多则几个亿。接下来就是看怎么用这份宝贵的数据了。

弱密码的检测

一般来说,企业检测弱密码的方法和黑客入侵没有本质区别,都是尝试不同密码,直至成功。但这里有几个问题:

1、账号密码的验证次数是有限制的,我们的弱密码库有几个亿,那根本无法在有生之年验证完所有密码

2、多数系统都有锁定机制,当验证次数过去会锁定账号,影响用户,这也是安全的领导无法接受的

所以我们要换个思路。我们不做爆破,我们做对比!这样就可以解决如上问题了。

密码都是存储在验证服务器的,无论是混淆还是加密,我们只需拿我们的弱密码库和密码存储文件对其即可。不过密码一般都不是明文存储的,MD5加盐之类的是比较常规的存储方法。想解决这个问题,我们就要利用我们防御者的优势了,毕竟密码加密算法我们知道嘛,我们只需要将弱密码库按照同样方法转换,然后拿转换后的弱密码库进行对比即可。发现存储密码的文件存在同样的字符,则可确定对应用户设置了弱密码。高效的检测了全量的弱密码,而且如果用户设置了非弱密码库的密码我们也无法获知用户的明文密码(前提是单向加密),捎带解决了隐私问题。

弱密码爆破攻击发现

无论我们怎么检测,都无法阻止黑客进行弱密码爆破行为。传统的方案是给用户验证次数设定阈值,超过阈值则报警。但用户也会输错密码,且很多系统很残,经常将同一个错误密码验证多次,如AD系统,这就产生很多误报。为更精准的发现爆破行为,我们还是要继续利用我们防御者的优势,我们检测用户发起的密码是否在我们的弱密码库,如在弱密码库中的密码>N,则可认定存在爆破行为。这样可以精准发现爆破行为又可以规避系bug。

除了单一账户&多个弱密码的爆破方式,还有单一弱密码&多个账户的爆破形式,这种情况一般都是黑客认定一定存在一个这样的密码(黑客其他方式获得或就是固执的认为有),这里会出现两种情况:

1、单一密码在弱密码表中,这个我们需要在我们原有的模型上加上账户数据,将账户数*弱密码在弱密码表的次数=阈值>M即可 2、单一密码不在弱密码表中,这个就需要独立分析了,统计使用同一密码的使用账户数>M即可

综上,我们说了弱密码库的思路,也讨论了防御角度弱密码库的构建、弱密码的检测、弱密码攻击的发现。虽然说了很多,但其实讲的都比较概括,具体落地过程中必定会遇到各种问题,如windows的NTLM hash的密码存储方式等。

有兴趣的同学,欢迎私信一起探讨。

*本文原创作者:ChuanFile,本文属FreeBuf原创奖励计划,未经许可禁止转载

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 弱密码库的构建
  • 弱密码的检测
  • 弱密码爆破攻击发现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档