什么是钓鱼网站怎么区分(「WEB安全」轻松检测钓鱼网站的技巧#建议收藏#)



您可能认为钓鱼网站很难检测和跟踪,但事实上,许多钓鱼网站都包含唯一标识它们的HTML片段。



您可能认为钓鱼网站很难检测和跟踪,但事实上,许多钓鱼网站都包含唯一标识它们的HTML片段。本文以英国皇家邮政的钓鱼网站为例进行说明。它们都包含字符串CSS _ 4 wozgk 8 cmns 2 w9 fwvmvznzmiyysouq 4 _ 0 nullqo。

这些长而随机的字符串是跟踪钓鱼网站的极佳指标。几乎可以肯定,任何包含CSS _ 4 wozgk 8 cmns 2 w9 mfvmvznpzmiyysouq 4 _ 0 nullqo的网页都是皇家邮政钓鱼工具的例子。

然而,像这样一个独特的字符串如何最终成为检测钓鱼工具的标志呢?

不幸的是,我们不是RFC 3514的模仿者。在RFC 3514中,如果所有IP数据包都是恶意的,那么它们都包含一个标志信号。不,这些识别字符串完全是打捞工具开发人员无意中包含的。

→【网络安全更多技术学习包】ⅲ

钓鱼工具是如何诞生的?

钓鱼网站试图尽可能接近他们真正的目标网站。然而,大多数钓鱼者不具备复制公司网站的技能。相反,他们采用了捷径,只是伪造了原始网站的HTML,并对其进行了一些小的调整。

冒充目标网站变成钓鱼工具的过程大致如下:

1.用HTTrack等工具复制目标网站,甚至只需在网页浏览器中点击文件→保存即可。

2.调整HTML以添加请求受害者个人信息的表单。

3.用PHP后端把它粘起来保存收集到的数据。

然后,该工具包可以很容易地部署到廉价的主机服务提供商,并准备收集受害者的详细信息。



4.通过复制整个网页,钓鱼者可以用很少的技巧或精力获得一个超级逼真的钓鱼页面。然而,这种虚假模式意味着他们的钓鱼页面充满了他们实际上并不需要的东西。

特别是,原网站中的任何特殊字符串都可能意外出现在最终的钓鱼工具中。这对我们有好处,因为查找特殊字符串是检测钓鱼网站的一种非常简单可靠的方法。

所谓特殊字符串,就是一个足够长或者复杂的字符串,在整个互联网中是唯一的。这可能是因为它是一个随机字符(如64a9e3b8)或者只是因为它足够长。

那么,问题来了:为什么这些字符串会出现在原网站中?事实上,在现代开发实践中,网站充满了这些长的或复杂的字符串。

网页中长或复杂的字符串是怎么来的?

现代网站很少是100%静态的内容。当前的开发实践和网络安全特性意味着有许多方法可以让冗长的随机字符串出现在网站中。以下是我看到的各种资料的汇总:



1。文件名中的哈希

现代网站通常使用Webpack或Parcel等“捆绑包”,将所有JavaScript和CSS组合成一组文件。例如,网站的sidebar.css和footer.css可以合并到styles.css文件中。

为了确保浏览器获得这些文件的正确版本,活页夹通常在文件名中包含一个散列。昨天你的网页可能用的是styles.64a9e3b8.css,但是更新了你的样式表之后,现在用的是styles.a4b3a5ee.css这个文件名的改变强制浏览器获取一个新文件,而不是依赖它的缓存。

但这些足够长或复杂的文件名就是最近发现皇家邮政钓鱼工具的原因。

当一个渔夫伪装成一个真正的皇家邮政网站时,HTML是这样的:



遗憾的是,无论他们用什么技术伪造网站,文件名都没有改变。所以通过urlscan.io很容易发现大量使用CSS文件的钓鱼网站:



2。版本控制参考

任何被钓鱼者盯上的网站都有可能是由一个团队开发的,他们很可能使用git等版本控制系统(VCS)进行协作。

一个合理且常见的选择是在网站的每个构造中嵌入一个来自VCS的引用,这有助于完成诸如将漏洞报告与当时运行的代码版本相关联之类的任务。

例如,Monzo网站使用一个小的JavaScript代码片段来嵌入git提交哈希:



VCS参考资料对安全人员非常有用,因为在版本控制系统中很容易找到它们。如果你发现一个钓鱼网站无意中包含了VCS引用,你可以直接查出这个网站是什么时候写的(也就是网站是什么时候伪造的)。

3。SaaS的API键

网站经常使用各种第三方服务,如对讲机或reCAPTCHA。为了使用这些服务,网站通常需要包含相关的JavaScript库和一个API密钥。

例如,Tide使用reCAPTCHA,并将这段代码作为其集成的一部分:



因为reCAPTCHA“site key”对每个网站都是唯一的,所以任何包含字符串6 lclb 0 uaaaajjvhqw 2l 8 fxfagpilzf 3 pao 3 w且不在tide.co的页面都有可能是假网站。

虽然SaaS API密钥非常独特,具有很好的指示功能,但它们变化很小,因此无法区分从同一网站假冒的不同钓鱼工具。一个网站可能使用同一个API密匙好几年,所以那时创建的所有工具包都将包含同一个密匙。出于同样的原因,API密钥对于确定何时创建网络钓鱼工具包没有任何帮助。

4。跨站点请求伪造(CSRF)令牌

事实证明,许多网络安全的最佳实践也将网络钓鱼作为一个重要指标。也许最常见的是跨站请求伪造(CSRF)令牌。

简而言之,CSRF是一个漏洞,恶意网站可以利用它来欺骗用户在目标网站上执行经过身份验证的操作。例如,这个HTML创建了一个按钮,单击该按钮可以向https://example.com/api/delete-my-account".发送POST请求:



如果example.com不能抵御CSRF,它将处理这一请求,并删除不知情的用户帐户。

防御CSRF最常见的方法是使用所谓的CSRF令牌,这是一个嵌入在每个网页中的随机值,服务器希望将其与敏感请求一起发送回来。例如,example.com的“删除我的帐户”按钮应该是这样的:



服务器将拒绝任何不包含预期随机值的请求。

CSRF令牌非常适合检测钓鱼网站,因为它们在设计上是独一无二的。

5。内容安全策略的随机数

内容安全策略(CSP)是一种相对较新的安全方法,有助于防止跨站脚本(XSS)攻击。它允许开发人员指定策略,例如只允许

要使用基于随机数的CSP,网站需要包括以下政策:



并使用带有匹配随机值的脚本标签:



这有助于防止XSS攻击,因为恶意注入的JavaScript没有匹配的nonce,所以浏览器会拒绝运行它。

就像CSRF令牌一样,CSP随机数也构成了完美的钓鱼工具包检测器:它们的设计无法被篡改,因此通常会为每个请求随机生成长而复杂的字符串。

6。的资源完整性哈希

现代浏览器中的另一个安全功能是子资源完整性(SRI),它允许您指定所需内容的哈希值,从而保护您免受恶意修改的JavaScript/CSS的攻击。当浏览器加载受SRI保护的JavaScript/CSS文件时,它对内容进行哈希处理,并将其与HTML中的预期哈希进行比较。如果没有匹配,就会抛出一个漏洞。

例如,以下是研究人员的博客如何描述如何在其CSS中使用子资源的完整性:



这个SRI哈希值是根据研究者网站上的所有CSS计算出来的。因此,尽管研究人员使用公共博客模板,但另一个网站具有相同哈希值的可能性极小。它们必须使用相同的模板版本,并且包含所有相同的插件。

对于定制网站比研究人员多的公司,实际上可以确保没有其他网站有完全相同的CSS。

如何使用这些长且复杂的字符串来防御网络钓鱼

下次分析钓鱼网站时,请注意一些有用的长而复杂的字符串。

文件名中的哈希可能是你遇到的最常见的例子,这些也是最有用的,因为你可以在urlscan.io上搜索文件名,找到同一个工具包的其他实例。

您可以还会对下面的文章感兴趣

最新评论

  1. 四虎归山
    四虎归山
    发布于:2022-04-27 17:31:37 回复TA
    代浏览器中的另一个安全功能是子资源完整性(SRI),它允许您指定所需内容的哈希值,从而保护您免受恶意修改的JavaScript/CSS的攻击。当浏览器加载受SRI保护的JavaScript/CSS文件时,
  1. 荣富晴富
    荣富晴富
    发布于:2022-04-27 10:13:12 回复TA
    这人也真是
  1. 严岩祥家
    严岩祥家
    发布于:2022-04-27 10:13:12 回复TA
    每一天把牢骚拿出来晒晒太阳,心境就不会缺钙。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友