破解密码的8种典型手段与防护建议
提到黑客攻击,你会想到什么?一个恶意行为者坐在满是《黑客帝国》式数字文本的屏幕前?或是一台强大的超级计算机正试图入侵整个世界?事实上,很多网络攻击可能只涉及一件事——破解你的密码。如果有人能获取你的账户密码,那根本无需任何花哨的黑客技术,就可以轻松窃取你的数字资产。
"未知攻,焉知防",为更有效地提升安全防护水平,组织应了解攻击者如何使用下述8种策略来破解密码:
01 字典攻击
在常用密码攻击技术指南中,“字典攻击”位居首位。之所以称之为“字典攻击”是因为它会自动对已定义的“字典”中的每个单词进行密码测试。当然,这里的字典可不是你在学校用的那本,而是一个包含最常用密码组合的小文件,其中包括123456、qwerty、password、iloveyou、hunter2等等。
研究人员发现,很多脆弱、容易破解的密码长期保持不变,只是顺序略有不同而已。如果你不想别人知道你的密码,永远不要使用这些经常被使用的弱密码。
防护建议:
尽可能使用密码管理工具,为每个业务账户设置一个强大且单一的密码。密码管理器允许用户将各种密码安全地存储在一个数据库中。然后你就可以为每个系统使用强大、复杂、安全的密码,同时不用担心密码遗忘。
02 暴力破解
暴力破解(brute force),又名暴力攻击、暴力猜解,从数学和逻辑学的角度,它属于穷举法在现实场景的运用。当攻击者获得密码哈希时,就会使用暴力破解来尝试登录用户账户,即通过利用大量猜测和穷举的方式来尝试获取用户口令的攻击方式。在实际应用中,暴力破解通常有如下四种技术形态:
- Password Guessing(密码猜测):在不了解账户密码的情况下,攻击者可能会在操作过程中通过使用常用密码字典来猜测登录密码,而无须事先了解系统或环境密码。
- Password Cracking(密码破解):当获得凭证材料(例如密码哈希)时,攻击者可能会尝试解密密码来恢复可用的凭据,例如纯文本密码。
- Password Spraying(密码喷洒):由于使用多个密码来暴力破解一个账号可能会导致该账号被锁定,攻击者可能会针对许多不同账户使用单个或少量的常用密码列表,以尝试获取有效账户凭据。
- Credential Stuffing(撞库):攻击者可以使用受害者历史上泄露的数据获得凭据,通过凭据重叠来访问目标账户。
防护建议:
- 更多使用可变的字符组合,在可能的情况下,引入额外的符号来增加复杂性;
- 在用户登录时增加验证码,防止通过程序自动枚举账户;
- 确保所有类型的验证码能够“用后即失效”,防止被重用;
- 在用户登录中增加对同一IP地址尝试次数的限制;
- 定期对比数据库存储的密码密文值与Top500弱密码的密文值。
03 网络钓鱼
网络钓鱼并非严格意义上的“黑客攻击”,但受害者通常会有非常糟糕的结局。一般的网络钓鱼邮件会被发送给全球各地各种各样的互联网用户,这绝对是盗取密码最流行的方式之一。目标用户会收到一封伪造的电子邮件,声称是来自一个知名组织或企业。欺诈邮件会强调紧急性,并突出一个网站链接。这个链接实际上连接到一个虚假的登录门户,只是它们看起来几乎和合法网站完全一样。只要受害用户输入他们的登录凭据,密码就会暴露。
研究发现,目前恶意邮件附件的数量很高,卡巴斯基仅在2021年就拦截了超过1.48亿个恶意附件。此外,卡巴斯基的反网络钓鱼系统还拦截了另外2.53亿个网络钓鱼链接。而这只是来自卡巴斯基系统的数据,所以实际钓鱼邮件数量要高得多。
防护建议:
- 加强网络安全意识培养,对收到的电子邮件永远保持怀疑态度;
- 将垃圾邮件过滤器设置到最高级别;
- 在可能的情况下,使用主动白名单;
- 在点击邮件附件之前,使用链接检查器确定电子邮件链接是否合法。
04 社会工程
社会工程的本质就是在现实世界中的网络钓鱼。攻击者通过电话等方式,告诉被攻击者,他们是新的办公室技术支持团队,需要其配合提供某些应用的密码进行测试或验证。一个毫无戒心的人往往会毫不犹豫地交出密码。可怕的是这种情况经常发生。社会工程已经存在了几个世纪。欺骗他人以进入安全区域是一种常见的攻击方法,只有通过教育才能防范。当有人称他们被骗泄露了密码时,这通常都是社会工程的结果。
防护建议:
成功的社会工程攻击在你意识到有问题的时候已经完成了。教育和安全意识是一个核心的缓解策略。同时,还应该避免发布个人信息,以免日后被攻击者用来欺骗。
05 彩虹表(Rainbow Table)攻击
彩虹表本质上是一种破解用户密码的辅助工具,主要是通过建立“明文->密文”对应关系的数据库,破解时通过密文直接反查明文。举个简单的例子:如果将哈希的密文比喻成一把锁,暴力破解的方式就是现场制作各种齿轮的钥匙进行尝试能否开锁,这个钥匙可能需要几十亿几百亿甚至更多,耗费的时间无疑非常的长,还不一定能够破解。而彩虹表就是事先做好大量的钥匙,并将钥匙按照某种规律进行分组,每组钥匙中只需要带最具特征的一把,然后用这些特征钥匙去尝试开锁,当发现某把特征钥匙差一点就能开锁了,则当场对该钥匙进行现场打磨,直到能开锁为止。这样就会大大缩短找钥匙开锁的时间。
彩虹表可以自己编程来生成,也可以使用RainbowCrack或Cain等软件来生成。当然,更简单的方式是直接购买预先填充的彩虹表,其中包含数百万个潜在的组合。
防护建议:
彩虹表提供了广泛的攻击潜力,是非常棘手的问题。因此,请避免以SHA1或MD5作为密码哈希算法的任何网站或系统。同时,可以采用“加盐(Salt)”措施,即在密码的特定位置插入特定的字符串,这个特定字符串就是“盐”,加盐后的密码哈希串与加盐前的哈希串完全不同,黑客用彩虹表得到的密码不再是真正的密码。即便黑客知道了“盐”的内容、加盐的位置,还需要对函数进行修改,彩虹表也需要重新生成,因此加盐能大大增加彩虹表攻击的难度。
06 键盘记录
有一种能窃取登录密码的恶意软件工具。恶意软件无处不在,有可能造成巨大的破坏。如果恶意软件变种带有键盘记录器,将有能力破坏你所有的账户。或者,恶意软件可以专门针对隐私数据或引入远程访问木马来窃取你的密码。
防护建议:
- 安装并定期更新杀毒软件和防病毒程序;
- 在下载应用程序时,要仔细考虑下载来源;
- 不要点击包含捆绑包和更多内容的安装包;
- 远离恶意/流氓网站,并使用脚本拦截工具拦截恶意脚本。
07 爬行(Spidering)收集
主流的搜索引擎往往会不断地派发爬虫去浏览全网,首先找到各种页面,然后将页面上的文本和代码复制并储存在它们巨大的索引服务器上,这一过程就叫做爬行。大多数组织会使用包含公司信息的密码。这些信息可以通过公司网站、社交媒体等途径获取。爬行就是从这些来源收集信息以提供单词列表,随后用于执行字典攻击和暴力破解。
防护建议:
- 使用由随机字符串组成的强大且唯一的密码;
- 确保密码与你的角色、业务、组织等无关。
08 肩窥(Shoulder Surfing)
肩窥指使用直接的观察技术,站在别人身后,或越过肩膀探看别人操作进而获取密码。肩窥是一种获取密码的有效方法,因为当别人填表、在ATM机或POS机上输入PIN码、甚至在地铁等公共场合用手机或电脑打字发消息时,比较容易站在旁边观察。此外,肩窥也可以通过使用双筒望远镜或者其它视觉增强设备来实现远距离观察。
防护建议:
当输入密码时,要留意周围的人,并遮盖住输入设备及按键动作。
参考链接:
https://www.makeuseof.com/tag/5-common-tactics-hack-passwords/