这是一个非常明显的方案,我确信必须定期使用。
似乎是这样工作的:
URL通过鱼叉式网络钓鱼发送到目标,URL指向攻击者控制的类似于Google Gmail的网络钓鱼网站。
用户将凭据发送到伪造的Gmail。
(假设)攻击者将凭据输入到合法的Gmail中,并检查是否需要第二个因素。
目标收到了合法的第二个因素。
伪造的Gmail网站会提示目标为第二因素。目标发送第二个因素。
攻击者将第二个因素输入合法站点并成功进行身份验证。
我唯一能防御这种攻击的方法是将假冒站点识别为骗局或通过防火墙,威胁情报等阻止网络钓鱼站点。
是否还有其他实用的方法可以防御这种方案?
#1 楼
并非所有的双重身份验证方案都相同。 2FA的某些形式(例如向您发送短信)不能抵抗这种攻击。其他形式的2FA,例如FIDO U2F,也可以抵御这种攻击,它们在设计时就考虑到了这种攻击。FIDO U2F提供了两种防御人的防御措施-中间攻击:
注册-用户将其U2F设备注册到特定的网站(“来源”),例如
google.com
。然后,U2F设备将仅响应来自注册来源的身份验证请求;如果诱骗用户访问goog1e.com
(网络钓鱼站点),则U2F将不会响应该请求,因为它可以看到该请求来自先前未注册的站点。通道ID和来源绑定-U2F使用TLS通道ID扩展名来防止中间人攻击,并使U2F设备能够验证它是否与用户在其Web浏览器中访问的同一网站进行通信。同样,U2F设备知道它认为正在与之对话的起源,并且其签名的身份验证响应包括对其认为与之对话的起源的签名。这由服务器检查。因此,如果用户在
goog1e.com
上并且该页面请求进行U2F身份验证,则U2F设备的响应表明其响应仅适合与goog1e.com
进行通信-如果攻击者尝试将此响应中继到google.com
,则Google会注意到这两个功能都涉及U2F两因素身份验证设备与用户浏览器之间的集成。通过这种集成,设备可以知道浏览器正在访问的域名(来源),并且可以使设备检测或阻止网络钓鱼和中间人攻击。
有关此内容的进一步阅读机制:
FIDO U2F规范的摘录,有关防御MITM攻击。
Yubico对协议流程的解释。
评论
@ChrisH YubiKey NEO是双USB和NFC,可让您在计算机和移动设备上使用U2F。在Android上非常无缝。 (不幸的是,苹果的围墙花园不支持NFC上的U2F ...)
– josh3736
17年6月8日在16:55
@ D.W。我相信Yay295的要点是您的回答声称U2F旨在抵御这种攻击,但并未明确说明操作方法。您说“ U2F设备将仅响应来自注册来源的身份验证请求”,但是是什么阻止了恶意的MITM站点要求官方站点发出请求呢?
–詹姆士林
17年6月12日在3:07
@jamesdlin我认为关键是要在用户浏览器中打开real.com才能生成正确的密钥,因此Yay295的第3步不起作用。攻击者无法在自己的手机上打开该站点的副本,而是在目标手机上触发加密设备。并且目标手机为fake.com生成的密钥在real.com上无效。之所以可行,是因为加密令牌和浏览器之间存在直接通信。
–IMSoP
17年6月12日,11:50
@jamesdlin在第2点中确实说明了如何。“ U2F设备知道它认为正在与之对话的源,并且其签名的身份验证响应包括其认为与之对话的源的签名。这由服务器检查。”如果您使用g00gle.com域对网络钓鱼站点进行身份验证,则U2F设备将创建仅对g00gle.com有用的签名。真正的google.com将不接受该签名。
– Ajedi32
17年6月12日在15:42
@jamesdlin是的,我想这个答案缺少有关什么是U2F的一些介绍性信息。当涉及到U2F时,攻击者“向真实站点请求U2F设备请求密钥”的想法是完全荒谬的,不仅因为它不起作用,而且因为真实站点甚至无法与之通信首先是用户的U2F设备带外。 U2F身份验证完全在带内进行。
– Ajedi32
17年6月12日19:41
#2 楼
带外2FA是正确的方法。这意味着您还有第二个不可篡改的因素,例如客户端证书或FIDO U2F。代码或基于SMS的2FA模型是最弱的2FA选项,因为它们是带内的,并且正如您所描述的,可以像凭据一样被篡改。它们很方便,因为它们几乎可以被任何人使用,并且总比没有好。但是,他们提供的安全性永远不应与带外2FA提供的安全性相混淆。 。
评论
我不确定“ Out of band 2FA”是否真的是您在这里需要的术语。根据定义,TOTP和基于SMS的2FA方案是带外的。它们只是不抵抗网络钓鱼,因为它们不像U2F和客户端证书那样与用户的浏览器集成。
– Ajedi32
17年6月7日在20:48
攻击实际上涉及合法用户将所有凭据移交给攻击者。 “带外2FA”有何帮助?您是在谈论自动验证用户向其提供凭据的人吗?您能详细说明一下吗?
– jpmc26
17年6月7日在22:53
该攻击之所以有效,是因为第二个因素是通过同一渠道(伪造的Gmail页面)发送的。如果第二个因素是真正带外发送的,例如从电话直接发送到预设网站(真实站点),则可以减轻攻击。我经常认为这是2FA应用程序真正应该工作的方式,而不是让用户在同一登录页面上键入数字。
–adelphus
17年6月8日,11:25
@Xander我不认为提交第二个因素的渠道有多重要。如果您没有发现自己在假冒网站上,那么您将很乐意接听电话并提供PIN码。这是我的银行使用的系统(除了它是电话上的“输入PIN”对话框,而不是实际的电话)。如果我拼错了银行的地址,则假冒网站可以代表我访问真实的银行并触发2FA,我将按预期方式获得对话框并输入我的PIN(带外),然后将向攻击者提供访问。
– Supr
17年6月8日在13:34
@adelphus尽管涉及到网络钓鱼,但攻击者是否可以对第二因素身份验证进行MITM无关紧要。如果攻击者向您的银行发起登录请求,并且您授权了该登录会话(无论该授权是否发生在带外),则攻击者将可以访问您的帐户。 U2F和客户端证书不容易受到此攻击,但这不是因为它们带外。实际上,使用这两种方案,身份验证过程实际上都在带内进行。
– Ajedi32
17年6月8日在18:38
#3 楼
这是一种(在浏览器中)密码管理器会为您提供帮助的情况。因为密码管理器会通过真实的网址存储密码,所以它不会自动填充到攻击者的页面中,甚至无法提供建议。除了不泄漏两步密码令牌外,它还可以防止密码被泄漏。
如果用户不知道自己的密码,并且只能通过密码进行交互,则这种保护甚至效果更好。管理员填写密码。
评论
我认为我没有见过很多密码管理器,它们实际上知道显示的是什么URL(少了诸如TLS证书状态之类的东西)。
–user1686
17年6月8日在6:26
Google Smart Lock和Google Chrome Extension Lastpass都为我做
– Ferrybig
17年6月8日在6:27
使用PassIFox或ChromeIPass插件的KeePass也可以这样做。如果网址匹配,它将自动填充密码。
–斯蒂芬·施劳格(Stephen Schrauger)
17年6月8日在15:00
和1password也:-)
–斯蒂芬·比杰斯特(Stephan Bijzitter)
17年6月9日在21:21
您不是说“麻烦事了”吗?
–xdhmoore
17年6月12日在14:22
#4 楼
底线是,如果攻击者可以欺骗您提供所有凭据,那么游戏就结束了。涉及的因素数量无关紧要。有些事情可以帮助限制暴露程度,例如令牌的超时时间非常短,这会使攻击者难以在期限内获取和重用令牌。但是,超时保护受到限制,因为很难实现正确的平衡,尤其是对于“假” 2FA,这种情况已经变得非常普遍,并且您必须允许诸如SMS传送之类的延误以防止可用性问题(我已经看到了使用国际基于服务的服务,SMS的传输速度可能会变慢,并且令牌会超时,然后您才能接收它并将其输入浏览器。)许多称为2FA的系统根本不是2FA,它们是实际上是2SA(两步身份验证)。在实际的2FA中,因素是您知道的(密码)和您拥有的(令牌,通常基于硬件)。涉及通过SMS发送代码的方案不是2FA,它们是2SA-您实际上没有令牌-它已发送给您。由于它是发送给您的,因此存在新的威胁向量,例如重定向了移动电话号码等。这是NIST已弃用基于SMS的令牌作为可靠的身份验证过程的原因之一。
关于OP的特定问题,唯一可靠的保护措施是能够检测网络钓鱼页面。 Google发布了chrome扩展程序来尝试并提供帮助。如果该扩展程序检测到您正在向不是Google页面的页面提供Google凭据,则会发出警告。
最大的问题是,我们花了多年的时间教导人们寻找URL中的“绿色挂锁”,以确保页面合法。不幸的是,像Lets Encrypt这样的工作现在使获得域验证证书变得容易,因此许多网络钓鱼页面现在都具有绿色挂锁。这并不是说问题是由于Lets Encrypt引起的-这是一个很好的计划。该问题部分是由于PKI基础架构的弱点,但主要是由于用户的了解和理解。通常,人们不了解PKI,也不了解如何验证证书对于该站点是合法的,并且该站点就是他们认为的站点。更糟糕的是,即使您确实理解,执行验证所花费的步骤/时间也常常很不方便或太难了,因此人们不会这样做。菜刀坏蛋发现了使事情看起来合法的方法,使情况变得更糟。例如,最近的一个利用漏洞利用浏览器显示URL和Unicode字符生成URL的缺陷,该URL在地址栏中以一种一眼看上去是正确的,但是URL中的实际字符指定了一个钓鱼网站。用户查看地址栏,看到一个绿色的挂锁,然后瞥了一眼看起来正确的URL(您的大脑甚至会填充内容以使匹配看起来更好!)并接受该页面为合法页面。您不会注意到字符之间有一些额外的空格,或者看起来有些奇怪的字符形状。
那么我们如何防止这种情况。不幸的是,没有任何一个“做到这一点,您将很安全”。一些密码管理器可以提供帮助,因为它们仅在URL正确时才提供凭据,从不在电子邮件中使用URL-始终在您自己键入它或使用您创建的书签。假设在某个时候您将被愚弄并采取一定的措施以限制损害的发生,例如,每个站点使用不同的密码,在可能的情况下使用基于硬件的2FA,实际上单击“高价值”站点的证书详细信息按钮,然后查看它说出了该证书以及向谁注册的证书,请确保您的系统具有所有更新,并且您使用的是最新的浏览器版本,等等。天生可疑,并记住最大的威胁是社会工程,因此请谨慎对待任何压力您根据恐惧,内,奖赏或惩罚采取行动。这些是非常有效的激励因素,威胁参与者也依靠它们。网络钓鱼活动的实施已经变得更加复杂,但从本质上讲,它们仍然依靠情感操纵-做出奇妙的承诺或可怕的威胁。
最后,如果由于我提到密码管理器而想发表评论,请不要。是的,密码管理器存在风险,是的,有些风险比其他风险更严重。但是,总的来说,正确使用一个好的密码管理器通常会为普通用户提供比其当前密码管理过程更多的保护。是的,如果密码管理器被盗,那么您所有的密码都被盗。但是,许多人发现密码管理太过困难,并且无论如何在每个站点上都使用相同但通常较弱的密码。一旦一个站点遭到破坏,其所有站点都受到破坏。显然,如果您了解技术并且了解密码,哈希等,您可能会想出一个更安全的解决方案,但您不是密码管理器的读者。考虑一下您的父母或祖父母如何处理密码管理,以及他们如何发现网络钓鱼站点或了解证书,然后考虑他们如何轻松地通过cfile或同步处理基于GPG的自定义密码管理。编辑:在重新阅读我的回答时,我不确定我是否强调得足够多,真正的2FA越来越可用,许多当前支持SMS代码安全性较低的2SA的提供商也支持安全性更高的2FA,在许多情况下使用U2F (如其他答复中所述)。 Yubico或duo(及其他)的硬件“钥匙”便宜且易于设置/使用。我唯一的建议是,如果您决定采用硬件令牌/密钥的方法,请确保获得两个密钥,将它们都注册,然后将一个密钥放在安全的位置。我有一个随身携带的东西和一个放在家里的保险箱中的东西。从丢失/损坏的密钥中恢复并不像从忘记的密码中恢复一样容易,因此您要避免进入这种情况。
评论
砍肉刀的坏演员不钓鱼密码,他们在C级恐怖/喜剧电影上工作(omg Butcher交出了自己的手)。 XD
– Mindwin
17年6月9日在12:54
切肉刀哈哈。我要离开那个错字了。认为我们应该定义一个新术语“ clever actor”,又称“ clever bad actor”
– Tim X
17年6月11日,0:55
在基于SMS的2FA中,“您拥有的”是SIM卡。
– N.I.
17年6月11日在18:40
不,不是。 SIM卡无关,因为它不是身份验证的一部分。更糟糕的是,使用一些社会工程手段将SMS消息重定向到另一个号码(不同的SIM卡)是微不足道的,这正是一些基于2FA的SMS的更广为人知的破解方式。对于真正的2FA,第二个因素必须是您拥有的东西,并且可以直接在authz流程中使用。 SIM卡是该过程附带的。
– Tim X
17年6月12日在8:02
@TimX您难道不容易说TOTP也不是“您拥有什么”吗,因为攻击者可以想像地从您的手机克隆了种子?仅仅因为基于SMS的2FA不能抵抗某些边信道/社会工程攻击,并不意味着它根本不是2FA。
– Ajedi32
17年6月12日在15:51
#5 楼
正如评论中指出的那样,这不是处理问题的好方法。完全颠倒测试。
在这种情况下,您相信手机用户的身份是“安全的”,因此请使用此身份验证他们。当用户尝试登录该网站时,您会在电话上提出要求他们同意该登录的请求(理想情况下,通过推送通知直接向应用程序发送通知,而不是短信或电子邮件,因为这样很容易被破坏)。 “您似乎正在从IP x.y.z / geolocation foobar登录-您要继续吗?”
此外,您还可以让他们提供电话上存在的证书,但计算机上没有。这样,“攻击者”就无法简单地通过设法将用户重定向到错误的站点来访问此信息。
评论
不行用户将看到“您似乎正在从IP xyz / geolocation foobar登录”,并认为他们发起了该请求,因为他们当前正在尝试登录他们认为是合法站点的网站,而实际上这是一个钓鱼网站。 。一旦他们批准了登录请求,攻击者便可以访问他们的帐户。
– Ajedi32
17年6月8日在18:42
是的,很好。嗯回到绘图板 ! :)将此作为“错误”答案留在这里
–djsmiley2kStaysInside
17年6月9日在8:53
我不知道,如果您提供地理位置信息,并且说“您似乎正在从IP x.y.z /罗马尼亚的Onestia登录”,而您正坐在美国Anytown的办公桌旁,那将是一个危险信号。对于使用公司代理的人来说很奇怪(即我在哪里工作,而我在马萨诸塞州居住/工作时,我的IP显示在VA中),但这应该更容易弄清楚,因为大多数人都知道他们公司的总部并且将会去“哦,对了,我为总部位于弗吉尼亚州的Acme工作,这就是为什么它认为我要从弗吉尼亚州登录”(或者附近的技术爱好者可能很乐意向他们指出这一点)
– Doktor J
17年6月9日在20:37
@ Ajedi32,我认为地理定位是使此功能可行的原因,就像Doktor J在上面指出的那样。
–通配符
17年10月10日在0:11
@DoktorJ嗯,我有点怀疑依靠用户检查地理位置会比依靠他们检查所在站点的域更有效。更不用说攻击者可以使用代理或Tor轻松欺骗显示的位置。
– Ajedi32
17年10月10日在4:08
#6 楼
这种攻击称为网络钓鱼。如果您可以愚弄最终用户自愿交出凭据,那么世界上所有的安全都不会有任何好处。防止网络钓鱼的措施包括:
电子邮件服务器可以清理电子邮件以获取指向已知网络钓鱼站点的链接。
电子邮件客户端通常默认情况下禁用链接并在启用时提供警告。
用户应避免单击电子邮件中找到的链接。键入地址通常更安全。
用户切勿通过任何位置的链接访问敏感站点(例如银行站点)。使用书签或键入书签。
与某些普遍的看法相反,用户应对敏感站点使用密码管理器。密码管理器不会让您向错误的网站提供密码。
评论
所有的优点。但是,这个问题更针对2FA部分。
–TheJulyPlot
17年6月12日在10:06
#7 楼
作为其他答案的补充,如果网站向用户进行身份验证,则该攻击可能会受到阻碍,从而使用户习惯于发出更强的信号,即他们在真实页面上输入凭据,即使他们没有这样做。请不要使用密码管理器,或者不要特别注意URL。通常使用用户选择的安全图像(来自大量选项)加上用户设置的文本字符串来完成此操作。它在输入用户名之后但在密码之前(在两页之间分开)显示。它不是完全安全的(您必须阻止攻击者通过简单的批量请求来获取图像/字符串),但是它旨在抵御网络钓鱼,并且使成功的网络钓鱼更加难以实现。如果攻击者确实尝试获取安全图像/字符串,则这些请求还可能给真正的服务提供者提示不正确的提示,并提供一些有关这些请求来自何处的取证信息。它是否在实践中起作用是一个不同的问题,至少在大多数用户看来,2007年论文的证据表明这不是。
评论
请注意,这一次只会给攻击者访问权限,因为窃听的代码会在几秒钟后过期。@XiongChiamiov好吧,大概是获得访问权限后的第一步是禁用2FA
如果泄露了密码,那么网站本身将无能为力。 Geolock也许会给旅行的人带来麻烦
@cat-并非总是一个选择。在工作中,我们使用itglue.com作为文档,并已通过其他服务提供商的许可,并且员工必须使用2FA。那些使用2FA的人无权访问任何将关闭该行为的选项。
@Overmind我对所概述的计划的细节更感兴趣,而不是任何此类计划的实施者。