弱口令问题引发安全的思考

2021-07-15 15:04:23 浏览数 (1)

背景

分析某病毒样本时候,发现病毒样本实现对主机进行弱口令爆破功能,通过弱口令爆破从而达到获取主机某些权限和登录主机,并进行做对威胁影响主机安全的事情,例如盗取敏感数据(手机号码、邮箱、身份证号),利用主机进行挖矿,从而给企业带来安全风险和经济损失风险。

账号口令安全问题就显得非常重要,因此下面就对账号口令的弱口令进行做梳理。

(下图是样本中弱口令爆破尝试)

弱口令定义

弱口令爆破方案

1.爆破工具和安装介绍

爆破环境和工具:kali linux、彩虹表、rcracki_mt。

彩虹表下载地址

https://freerainbowtables.com/

彩虹表(Rainbow Table):它是一种主流的用于密码破解,它事先把所有可能的密码计算出哈希,并保存在索引文件中,在需要破解时只需根据哈希对索引文件进行查询即可获得对应明文密码,在避免大量的重复计算的同时,也大大提高了密码的破解速度。

rcracki_mt下载安装

kali linux环境下安装rcracki_mt工具,还是很人性化,输入rcracki_mt命令, 没识别到该命令,会进行是否安装提醒,只要选中安装就自动完成。

2.使用rcracki_mt工具结合彩虹表进行对弱口令破解

在kali linux环境下,通过pwgen工具(kali linux自带)进行生成长度为7的10个密码,并将密码用md5值进行哈希,最后展示在控制台窗口和写入当前目录下md5.txt文档。

通过rcracki_mt结合彩虹表进行做破解,执行rcracki_mt -t 10 -l md5.txt 命令后,从下图获取到的结果,清晰看到破解的实际密码信息。

弱口令的应对策略

1.前端检测规则强度的开启

在前端注册账号时,强制设定账号密码需要以8 2规则强度(长度为10个的8个数字加2个字母组合)或者8 3规则强度(长度为11的8个数字和3个字母组合),如果不符合规则不允许注册。

2.开启弱口令提醒功能

在使用或登陆时、开启弱口令提醒如账号密码是简单数字、简单字母、生日信息、姓名简写 简单数字,提醒用户重新设置提高强度的账号密码。

3.强制跳转到修改账号密码页面并启动账号身份信息认证。

检测到使用弱口令的账号,强制让用户跳转到修改账号密码的页面,强制让用户进行做密码的修改,并对该用户进行做身份信息认证(例如:手机号码,身份证号码、邮箱等)。

弱口令小结

作为开发者应避免直接使用MD5、SHA1、CRC等常规相对不安全算法,建议可以使用强度比较高的加密算法例如PBKDF2(通过多次hash对密码进行加密)。

作为用户应使用足够复杂的密码,例如长度大于等于10位以上,并且在密码里面用大小写、数字、特殊字符进行组合。

账号安全梳理总结

如果对于账号安全仅仅处理弱口令问题,那么这是远远不够的。账号安全离不开身份验证这个重要的环节,账号安全的身份验证也是等保2.0标准中明确要求的。账号安全需要选择安全通讯协议进行做保障和支撑。同时还需要进行账号安全风控体系的构建。

账号身份验证组成:多因素验证、图形验证码验证、条件验证逻辑、短信验证、错误信息反馈、账号封禁策略。

HTTP和HTTPS差异性

1、HTTPS(超文本传输安全协议)是HTTP(超文本传输协议)协议的安全版本。HTTP协议传输的是未加密的明文数据,这种是不安全的。HTTPS使用了SSL/TLS协议,数据传输过程中对数据加密处理,这种是相对安全的。

2、HTTP和HTTPS使用连接方式不同,默认端口也不一样,HTTP使用的是80,HTTPS使用的是443。

TLS协议的主要目标是在两个通信应用之间提供私密性和数据完整性。这个协议由两层组成:TLS记录协议和TLS握手协议。最低层是基于一些可靠传输协议(如TCP)的TLS记录协议。

通讯相对安全建议:采用HTTPS进行通讯,采用TLS1.2版本协议(因为低于TLS1.2版本协议更容易被黑客攻破)。

End

0 人点赞