弱口令介绍
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的互联网账号受到他人控制,因此不推荐用户使用。
弱口令产生原因是与个人习惯相关与意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。相关的安全意识不够,总认为不会有人会猜到我这个弱口令的,相关的安全意识不够,总认为不会有人会猜到我这个弱口令的。
弱口令的危害极大,通过系统弱口令,可被黑客直接获得系统控制权限。
检测背景
我们检测的背景是基于流量,通过底层流量抓取技术(底层抓取技术利用的是dpdk技术),获得http的请求内容、响应内容。如下图所示。
弱口令检测本质是利用机器学习识别登陆页面(文本识别),再利用专家规则进行弱口令鉴别、登陆成功鉴别两步。
检测逻辑
接下来让我们看下检测的逻辑。
- 首先通过底层抓取技术获得输入数据
- 利用机器学习技术(逻辑回归算法)获得登录页面请求
- 利用专家规则进行弱口令判断(top 1000)
- 利用专家规则进行登录成功判断
关键技术补充解释
- 在检测逻辑的步骤2处,在无有效数据的情况下,可以利用规则进行登录页面判断。
- 机器学习模块中,特征向量关键提取点有:post、login、account、postLogin、Logins、loginByAccount、password、pwd、username、user、email、dologin、id、user_id等。训练数据大概为500左右的登录页面。利用逻辑回归进行二分类。机器学习模块的准确度为95%左右。
- 弱口令判断断采用的是正则匹配。
登录成功判断主要分为两种(欢迎补充)
系统为用户种cookie并返回给浏览器200
系统为用户location跳转并返回给浏览器30x
系统口令强制限制
强制对所有的管理系统账号密码强度必须达到一定的级别。不可在使用简单的admin、123456等弱密码了,修改密码为复杂密码并加密保存,建议密码包含大小写字母,数据和特殊符号,密码长度不低于八位,如果网站存在数据泄漏漏洞(如sql注入漏洞),务必修复漏洞。
设置密码通常遵循以下原则:
- 不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。
- 口令长度不小于8 个字符。
- 口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
- 口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
- 口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail 地址等等与本人有关的信息,以及字典中的单词。
- 口令不应该为用数字或符号代替某些字母的单词。
- 口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
- 至少90 天内更换一次口令,防止未被发现的入侵者继续使用该口令。
文章总结
- 机器学习的使用,使得登陆页判断有了更好的泛化能力,这点比正则表达式强很多。
- 整个判断模块的误报率还是很高,分析其原因为:软件系统判断登录成功的逻辑各不相同,导致没有固定的判断逻辑,因而会产生误报。这方面想要降低误报,需要一条一条的进行专家规则细化与规则添加。
- 该系统在公司内运营发现,确实有不少系统存在弱口令行为,由于弱口令的风险极高,其他互联网公司需自查。
广告时间
我们目前正在打造一款全部由AI技术构建的入侵感知系统,目前系统集群日处理数据达到1800亿次。如果对我们做的产品感兴趣,或者想加入我们,请联系 emhhbmd4aW4xW2F0XTM2MC5jbgo=
城市:北京