![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
这种针对 macOS 的实时设备反网络钓鱼解决方案将基于参考的检测提升到了一个新水平,可以立即警告 Mac 用户他们正处于网络钓鱼网站上。
2023 年发布了多少个独特的网络钓鱼网站?反网络钓鱼工作组
下面我描述的解决方案开始于一个概念验证实验
目前的反钓鱼应用主要采用三种检测方法:黑名单、基于分类的方法和基于引用的方法。每种方法都有其优点,但都需要进一步改进。让我们逐一进行探讨。
黑名单方法实用且准确,但它无法跟上钓鱼网站传播的速度。这种方法并不总是有效的,因为新的钓鱼网站可能仍需要添加到列表中,而攻击者经常更改 URL 以躲避检测。
例如,Google 安全浏览使用已知钓鱼网站列表。当您尝试访问某个网站时,它会根据此列表检查地址。如果匹配,它会阻止访问并警告您存在危险。但如果该网站是几分钟前才发布的,该怎么办?它不会在列表中,用户将陷入困境。
在这种反网络钓鱼方法中,机器学习会分析网页特征(如 URL 结构、HTML 内容和元数据)来确定网站是假冒的还是合法的。分类对于浏览器扩展程序非常有用,因为它可以从用户数据中学习以发现新的网络钓鱼网站。
缺点是机器学习需要复杂的算法和大量的训练数据,而网络犯罪分子会迅速发明新的混淆策略来逃避检测。这使得基于分类的方法不太准确,并且不适合独立的安全产品。
一些基于参考的解决方案被认为是最先进的。它们使用计算机视觉来分析网页外观并有效检测钓鱼网站。然而,我们还看到,如果基于参考的解决方案不在云端处理钓鱼案例,它们的速度可能会更快。
钓鱼网站上线和基于参考的检测系统将其添加到列表中之间存在关键的时间间隔。我们希望缩短这个时间间隔,以确保更快地进行检测和响应。
我们的目标是在钓鱼网站上线后立即向 Mac 用户发出警告。为了实现这一目标,我们采用了基于参考的方法并对其进行了改进。我们消除了云处理,并建议在本地进行所有计算,旨在缩短检测时间。作为额外奖励,我们的解决方案增强了隐私性,因为所有用户数据都在设备上处理,不会转移到其他任何地方。
我们使用 Swift 构建了一个原生 macOS 应用,并整合了以下框架:
简而言之,其工作原理如下。
在网站上,我们的应用会尝试理解页面布局。它会识别关键页面元素,如徽标、输入字段和按钮。为了完成这项任务,我们选择了
在此步骤中,识别网站上元素的位置非常重要,特别是带有品牌徽标和输入凭证的表格的区域。
接下来,原型会检查网站上检测到的徽标是否与任何知名品牌相匹配。最重要的是,它会将网页 URL 与合法网站的参考列表进行比较。如果该网站是官方网站,我们将跳过后续步骤。
顺便说一句,我们很失望地看到品牌使用如此多的官方域名进行营销。难怪钓鱼网站如此有效地欺骗受害者。例如,DHL 有几个官方域名,如 dhl.com、express.dhl、mydhli.com、dhlsameday.com 和 dhlexpresscommerce.com。
我们将网页分为两类:是否需要凭证。此步骤可验证钓鱼网站是否试图窃取个人用户信息。
在截图中,我们的原型找到了凭证输入字段,将该页面归属于 DHL,并根据官方 DHL 域名列表检查了 URL。由于该页面不属于 DHL,因此用户收到了网络钓鱼警告。
我们的系统保持或超越了基准准确度,并且处理时间肯定更快。我们在徽标识别方面实现了 90.8% 的准确度,在检测凭证输入方面实现了 98.1% 的准确度。
下图展示了我们与其他反网络钓鱼解决方案相比的表现,以及我们在准确率、召回率和误报率方面的比较。我们自豪地检测到了 87.7% 的网络钓鱼尝试,同时将误报率保持在 3.4% 的低水平。
最终指标表明,我们的解决方案在后台运行顺畅,性能没有明显损失。CPU 的使用率极低:Apple M1 Mac 有八个核心,我们的原型仅使用了 800% 可用容量的 16%。这一消耗水平与三个活跃的 Safari 标签或一个 Zoom 通话类似。
市场上有很多反网络钓鱼应用程序,但大多数都在外部服务器上处理数据。我们的原型表明,现代计算机的硬件允许我们将机器学习模型本地化到设备上。我们可以用它们来打击网络钓鱼,而不必担心处理速度和系统资源的使用。幸运的是,Apple 生态系统提供了优化的框架和工具。
作者: Ivan Petrukha,MacPaw 技术研发高级研究工程师,曾就职于 Moonlock。