早在2017年,苹果MacOS的Sierra就出现过类似漏洞问题, 它允许任何人在root账户中输入一个空白密码或任意字符串作为密码即可进入系统。未授权的用户可以通过【系统偏好】设置,选择【用户和组】,点击解锁按钮,然后会弹出一个要求输入用户名和密码的提示框,用户只需在用户名一栏中输入“root”,无需填写密码,多次点击解锁后即可成功进入系统。之后用户可自由管理macOS桌面,包括查看所有帐户存储在电脑上的文件、编辑其他用户的凭据以及更改该设备上的其它设置。
这个漏洞意味着无论你设置的密码多复杂多安全,未授权的用户拿到安装有High Sierra系统的电脑后,都能绕过锁屏验证而直接进入操作系统。此外,这个安全漏洞还能在特定情况下实施远程攻击,如在屏幕共享,远程访问或者开启虚拟网络计算机会话时。
如何产生的空密码缺陷漏洞?
在代码开发阶段,开发人员若使用空字符串作为密码,则会构成空密码缺陷。
空密码缺陷会造成哪些后果?
若我们使用空字符串作为密码,则会导致允许对应用程序进行未经授权的访问。用户名和密码信息都不应以明文包含在配置文件或属性文件中。
怎样修补和防范空密码缺陷漏洞?
1、开发人员设置密码时,切记不要使用空字符串作为密码,密码长度应至少为八个字符。
2、为保障密码的安全性,建议在设置密码时将数字,“/”或标点符号加入其中。
3、避免使用在词典,地名簿,地图中可能找到的单词。
4、若用普通单词做密码,可用数字和标点符号替换该单词中的字母,但不要使用“外观相似”的标点符号,例如:将cat更改为c @ t、ca +、或者@ +类似的名称,以上均可能出现安全隐患。
5、不要使用和已设置的其他密码相似的密码。
空密码缺陷样例:
用悟空静态代码安全检测工具检测上述程序代码,则可以发现代码中存在着“空密码” 导致的代码缺陷,如下图:
本文作者:中科天齐软件安全
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/172868.html