暴力破解是什么?5 招预防密码被破解!
暴力破解是什么?
暴力破解也称作「蛮力攻击」、「蛮攻」或「穷举攻击(Exhaustive Attacks)」,是一种黑客网络攻击手法,通过反复测试不同组合来找出正确的密码、登录数据或加密密钥。密码无论多复杂,组合的可能性终究有限,只要黑客有足够的时间和计算资源,就可以不断重复尝试新的密码,直到找到匹配的密码组合。
比如说,一组由5位数字和大写英文字母组成的密码有365(即60,466,176)种可能性,黑客从00000000猜到ZZZZZZZZ,必然可以猜中正确密码。暴力破解本身原理简单,没有特别的技术要求或事先设计繁复的社交工程的欺骗,仅是将「尝试错误法(trial and error)」发挥到极致。顾名思义,靠「暴力」和「蛮力」破解密码,未经授权入侵系统。但是反复输入密码,并等待系统响应,耗费一定时间。因此,密码复杂度越高,暴力破解所需的时间就越多。虽然5位数和7位数密码只差两位,但电脑蛮力破解花费的时间相差甚巨。假设电脑每秒可以尝试输入1千5百万组不同的密码,由数字和大小写英文字母组成的7位数密码、5位数密码所需的时间分别约为2.7天和61秒。
当密码可能性越多时,单纯靠蛮力猜密码时间成本过高。为增加效率,黑客通常会搭配僵尸网络(Botnet)使用暴力破解攻击。黑客先感染一群电脑和系统设备,再远程操控感染的僵尸电脑,利用多台机器的运算资源,搭配自动化脚本进行蛮力攻击。另一方面,随着硬件设备效能提升,暴力破解的速度也逐年加快。
【暴力破解示意图】
暴力破解攻击的6种类型
暴力破解攻击以逐一尝试密码为背后原则,再搭配不同的手法和猜密码逻辑,衍生出多种暴力破解的子类别。包含最基础的传统暴力破解攻击,常见的暴力攻击可以分为6种:传统暴力破解攻击、字典攻击、混合暴力攻击、撞库攻击、密码泼洒、反向暴力破解攻击。
一、传统暴力破解(Traditional Brute Forace Attacks)
最简单的暴力密码破解,不以其他方式缩短猜测密码的范围,将可能的密码组合依序输入系统,一一测试。
二、字典攻击(Dictionary Attacks)
与基本的暴力破解攻击相比,字典攻击猜测密码的范围较小。黑客选定攻击目标后,会准备一张「字词清单(Dictionary List)」,清单内列举常被设为密码的词汇与数字组合。例如,连续按键「qwertyu」、「123456789”等和简单词汇「password」、「iloveyou」等。黑客再将清单上的组合依次输入,测试是否能成功登录。
与传统的暴力破解相比,字典攻击的成功与否主要依赖人行为模式的惯性,猜测密码的范围较小。因此字典攻击占用的运算资源少、执行攻击速度快、效率较高,且因为不会出现大量可疑的登录尝试,较难以侦测。
三、混合暴力攻击 (Hybrid Brute Force Attacks)
混合暴力攻击,结合了传统暴力破解和字典攻击。黑客先使用效率较高的字典攻击,尝试固定范围内的密码组合,节省运算资源和时间。若没有成功,则改用最终一定可以破解密码的传统暴力攻击。
四、撞库攻击(Credential Stuffing)
撞库攻击(或凭证填充)与字典攻击类似,黑客也会事先准备一份密码清单。两者不同之处是,撞库攻击中所使用的清单来自其他网站或服务外泄的帐号密码。黑客将某网站外泄的帐号密码,逐一至另一网站登录测试,直到找到匹配的登录数据。
撞库攻击同样是针对人类行为模式的解密手法,得以成功的原因在于使用者在不同的网站或服务设定相同的帐号密码。
【想进一步了解撞库攻击是什么,可以参考《撞库攻击》文章。】
五、密码泼洒(Password Spraying)
密码泼洒攻击中,黑客会预先锁定好已知的使用者帐号作为目标,再以常用的密码组合登录测试目标帐号。黑客有多种取得已知使用者帐号的方式,包含从暗网上购买、透过其他数据外泄事件。密码的部分,则与字典攻击雷同,黑客在开始解密之前,已有常用密码清单。再将帐号清单与密码清单上的帐号密码逐一登录测试,寻找匹配的登录数据。
六、反向暴力破解攻击(Reverse Brute Force Attacks)
反向暴力破解攻击,顾名思义和传统暴力攻击相反。黑客已经得到了正确的密码,但不知道帐号,黑客因而改为“暴力”测试多种可能的帐号来找出正确的登录信息组合。
面对黑客发展出来的多种暴力攻击手段该如何有效防范呢?本文接下来将介绍五招暴力破解的预防方式。
预防暴力破解攻击,应该如何保护网络密码?
一、增加密码强度
个人使用者对付暴力破解最直接的方式就是设置复杂度较高的密码。虽然暴力破解背后的原理是测试所有可能的组合,但一旦可能的密码组合数量过大,暴力破解所耗费的运算资源和时间成本也会大幅增加。破解密码的时间可能从数小时变成数年,进而使得以暴力破解攻击也变得不切实际。例如,使用10位数以上长度的密码。除了增加密码位数以外,还可让密码包含数字、大小写拉丁字母和特殊符号。
另一方面,在设置密码时,也建议避免使用过于简单的字词,如「password」、「123456789」等,以防遭受字典攻击或密码泼洒而被入侵系统。可将多个单词串联,或穿插特殊符号于其中,降低密码过于普遍的可能性。也可以通过删除某些特定字母,使密码看起来像是随机选择的字符串,譬如拿掉单词中的母音,或自行创造缩写。同时,为防范撞库攻击,建议避免在不同网站或服务使用相同的密码。
而提供网络服务的企业可在用户建立账户的页面,加入密码规则说明和密码强度提醒,协助用户设置强度较高的密码。并在企业内部加强资安教育,提升员工资安意识和落实密码管理。
二、开启双因子认证(2FA)/多因子认证(MFA)
启用双因子认证(Two-Factor Authentication,2FA)和多因子认证(Multi-Factor Authentication,MFA)机制,用户在登录网站时,除了输入账号密码以外,需要通过另外的方式验证身份。例如短信、电子邮件、实体卡片、生理特征(指纹、掌纹、虹膜、面部特征)等等。MFA降低身份验证过程中对账号密码的依赖,以加强账户安全性。
用户可以通过网站和服务中的个人设置开启2FA或MFA功能,或下载可信的外部2FA/MFA应用程序(如Microsoft Authenticator)。提供网络服务的企业也可以通过在服务中增加2FA/MFA选项,让身份验证多一道防护。
三、使用 CAPTCHA/reCAPTCHA
CAPTCHA是「全自动公开化图灵测试人机辨识(Completely Automated Public Turing test to tell Computers and Humans Apart)」的缩写,为人机验证技术;reCAPTCHA则是延伸自其的系统,两者皆可用来辨别试图登录网站的是真人还是机器人。由于黑客使用暴力破解攻击时,通常会使用僵尸机器人和自动化脚本加快攻击的速度,因此企业在登录页面设置人机辨识系统可阻挡黑客通过暴力攻击,未经授权存取账户。
四、封锁特定 IP 位置
建立IP黑名单,封锁曾经用来进行暴力破解的IP地址,阻止僵尸机器人的登录尝试。另外,建议提供网络服务的企业定期更新IP黑名单,即时将用来进行暴力攻击的新IP位置加入封锁名单。
五、全天候监测
暴力破解攻击通常有迹可循,例如短时间内有多次登录尝试、通过新的设备或地点登录账号、使用相同设备的大量登录尝试等等。因此全天候监测网站或服务器系统,注意是否有可疑及异常活动,并即时封锁、阻挡恶意网络攻击。
【想更進一步瞭解网络攻击是什麼,可以參考《网络攻击》文章。】
暴力破解虽然本身简单,但可以造成严重的后果:盗用数据、身份窃取、散播电脑病毒、财务或知识产权损失、企业名誉受损等问题。采取防护措施,阻拦暴力攻击也因此成为用户和企业共同的课题。个人使用者建议提升资安意识,使用高强度密码,并开启MFA功能。企业方面,则可以使用多重资安服务,套用2FA/MFA服务、防堵机器人和监测系统及流量
晟崴科技提供 MFA、Web 应用程序及 API 保护(WAAP)、威胁检测应变服务(MDR)、资安弱点通报机制等资安产品和服务,协助您提升服务的身份验证安全,并全面监控IT资产,并在检测到异常活动时,迅速采取行动,降低暴力破解的威胁性。
欢迎联络晟崴科技