logo

CrawlPhish:对钓鱼网站客户端侧隐藏技术的大规模分析

作者:小门神2021.06.22 14:36浏览量:603

简介:对钓鱼网站客户端侧隐藏技术的大规模分析

论文标题:CrawlPhish: Large-scale Analysis of Client-side Cloaking Techniques in Phishing
论文作者:Penghui Zhang, Adam Oest, etc
发表会议:2021 IEEE Symposium on Security and Privacy
论文连接:https://zhibosun.me/publication/oakland2021/crawlphish-oakland21.pdf

网络钓鱼(Phishing)指的是钓鱼者(Phisher)利用伪造的网站诱导受害者输入用户名、密码以及银行卡号等敏感信息,以此获取非法收益的一种攻击方式。为了提高网络钓鱼的收益,钓鱼者通常使用隐藏技术来躲避反钓鱼系统(anti-phishing system)的检测,这种技术,被称作cloaking。这种技术可以识别网站访问者的身份,并针对不同身份的访问者提供不同的页面:如果一个网页请求是由Bot发起的,则展示良性的网页;如果这个网页请求是正常用户发起的,则展示用于钓鱼的网页。针对服务器侧(server-side)的cloaking已经有了不少的研究,然而,针对客户端侧(client-side)的cloaking,无论是对其流行性还是其影响的研究依旧存在空白。针对这个问题,本文提出了一个用于检测和分类client-side cloaking的框架CrawlPhish,这个框架可以识别一个网站是否存在client-side cloaking,并根据语义将其划分为3大类,8小种。

INTRODUCTION

近年来,钓鱼网站已经成为Web上的主要威胁,钓鱼网站不仅损害正常网络用户的合法利益,还会对该网站伪造的合法组织造成损害。为了避免安全机构的检测,钓鱼网站通常会使用cloaking技术。cloaking技术可以大致分为两类:server-side cloaking以及client-side cloaking,其中client-side cloaking更为棘手。对client-side cloaking进行检测的困难在于,JavaScript的动态生态阻碍了自动化检测。
本文介绍的CrawlPhish框架可以有效地检测钓鱼网站是否应用了client-side cloaking技术以及所应用技术的种类。作者收集了2018年中至2019年中共14个月的112005个钓鱼网站作为数据集,CrwalPhish在这个数据集上的实验结果表明:CrawlPhish可以对client-side cloaking进行有效检测:检测的假阳率和假阴率都非常低,其中假阳率为1.45%,假阴率为1.75%。除此之外,作者发现越来越多的钓鱼网站使用client-side cloaking技术。使用这一技术的钓鱼网站的比例从2018年的23.32% 上升到2019年的33.70%。

BACKGROUND

A. Cloaking Techniques in Phishing

攻击者利用cloaking技术来躲避反钓鱼系统的检测:当钓鱼网站怀疑请求来自于安全机构时,其展示良性的网页。cloaking技术可以分为server-side cloaking和client-side cloaking。server-side cloaking通过HTTP请求中的信息区分用户的身份,而client-side cloaking通过用户和浏览器的交互区分用户的身份。常用的对抗server-side cloaking的方法是发送不同配置(e.g., user agents or IP addresss)的请求报文,并对比返回的文本以及图像特征。而对于client-side cloaking还没有太好的对抗方法。

B. Challenges in Analyzing Client-side Cloaking

虽然客户端侧的代码相较服务器端代码更容易获取,但是攻击者通常使用了代码混淆技术来对攻击源代码进行隐藏,这对静态分析方法提出了挑战。
对于动态分析方法来说,恶意的JavaScipt代码往往只在特定的条件下触发,为了检测所有执行路径,检测系统需要承担较大的开销。同时,一些恶意网页只有当用户与其交互时才会显示,这对自动化工具的设计提出了挑战。

CRAWLPHISH DESIGN

CrawlPhish的工作流程包括四个部分:Crawling & Pre-processing,Feature Extraction,Cloaking Detection以及Type Catagorization。如图:

A. Crawling and pre-processing

CrawlPhish先使用钓鱼网站的URL收集客户端侧源码,并将其保存为HAR格式。然后,对空白的页面或非钓鱼页面进行过滤。过滤后得到的页面记录下来,用于进一步分析。针对网站可能使用server-side cloaking的问题,CrawlPhish切换HTTP请求的配置用于检测server-side cloaking。

B. Feature Extraction

针对动态分析的困难,CrawlPhish使用最新的强制执行(forced execution)方法对源代码的所有执行路径进行执行。在实际应用中,CrawlPhish利用强制执行框架J-Force对所有JavaScript执行路径进行执行。最后,CrawlPhish对网页的图像特征和代码结构特征进行提取。
网站的图像特征是所有执行路径的执行结果所展示的网页的截图的集合,而代码结构特征包括网络API调用,网页事件处理函数,以及代码的抽象语法树(AST)。图像特征用于判断一个网页是否应用了client-side cloaking,代码结构特征用于判断cloaking的类型。

C. Cloaking Detection

CrawlPhish利用网站的图像特征与正常浏览网站所产生的截图进行对比,如果截图与图像特征之间有着明显的差异,说明网站应用了client-side cloaking技术。

D. Cloaking catagorization

假如一个网站被判断存在client-side cloaking,CrawlPhish将进一步对cloaking的类型进行划分。
CrawlPhish中维护着一个代码结构特征数据库,并利用该数据库判断cloaking的类型。对于API调用和网页事件,CrawlPhish利用汉明距(Hamming Distance)判断该特征与数据库中数据的相似性。对于代码的抽象语法树,CrawlPhish利用一个开源工具,JSInspect,判断网站源代码的AST和数据库中的AST之间的相似性。

最终,cloaking可以划分为3大类,8小种。如图:

EVALUATION: DETECTION OF CLOAKED PHISHING WEBSITES

作者选取2000个应用了client-side cloaking技术的钓鱼网站以及2000个没有应用该技术的钓鱼网站组成测试数据集。实验的结果表示:在4000例样本中,假阳样本29例(1.45%),假阴样例35例(1.75%)。

EVALUATION: CLOAKING CATAGORIZATION

A. Catagorization of Cloaking Types

在上文中,作者大致介绍了client-side cloaking可以分为3大类,8小种。在本章中,作者对它们进行了详细介绍:

  1. User Interaction: Pop-up:
    这一技术利用JavaScript创建消息框来判断当前与页面进行交互的用户是否是一个Bot。由于一些浏览器会自动屏蔽网页的弹窗,一些更先进的技术会利用网页的桌面通知窗口。

  2. User Interaction: Mouse Detection
    这一技术监听与鼠标相关的事件,当事件触发时,显示用于钓鱼的页面。

  3. User Interaction: Click Through
    这一技术使用类似于CAPTCHA的技术对用户进行验证,验证通过时展示用于钓鱼的页面。

  4. Bot Behavior: Timing
    一些钓鱼网站在呈现页面前会有一定的延迟,如果这一延迟超过了检测系统的阈值,检测系统会将这个网站判断为正常网站。

  5. Bot Behavior: Randomization
    一些钓鱼者还使用随机机制来躲避检测:在呈现页面前先随机生成一个数字,只有数字落在某个范围内时才会显示用于钓鱼的页面。

  6. Fingerprinting: Cookie
    钓鱼网站还会记录访问者的cookie并将其作为指纹。一些钓鱼网站检测系统会关闭cookie选项,因此,一些钓鱼网站只有在cookie选项开启后才会显示用于钓鱼的页面。

  7. Fingerprinting: Referrer
    钓鱼网站还会将referrer作为指纹,只有从特定网页跳转过来的用户才会被显示用于钓鱼的页面。

  8. Fingerprinting: User-agent
    user-agent是一串的字符串,记录着访问者操作系统、浏览器等信息。一些已知的钓鱼网站检测系统的user-agent是已知的,应用了这一技术的钓鱼网站可以根据user-agent躲避检测。

除了单独使用这些技术外,许多钓鱼网站还会将这些技术组合起来使用。

B. Accuracy of Cloaking Catagorization

作者利用上文提到的2000个应用了client-side cloaking技术的钓鱼网站作为测试数据集。这些钓鱼网站cloaking的类型都被人工标记了,并利用CrawlPhish判断这些网站的cloaking类型。实验的结果表明:CrawlPhish对cloaking类型检测的准确率(accuracy)可以达到100%。

C. Grouping of Implementations

由于许多钓鱼网站都是由工具(phishing kit)自动生成的,由同一套工具生成的钓鱼网站之间存在着某些相似性,我们可以根据这一相似性对钓鱼网站进行分组,并对工具的作者进行追踪。

D. Trends in Cloaking Usage

作者利用CrawlPhish对钓鱼网站client-side cloaking的类型进行追踪。实验发现:User Interaction类型的cloaking所占的比例有显著的上升,从2018年的 40.11% 上升到2019年的61.23%。与之相对的,Bot Behavior类型所占的比例从40.29% 下降到21.14%。Fingerprinting类型则没太大的变化。到了2019,User Interaction已经成为了主流的cloaking类型。

COUNTERING CLIENT-SIDE CLOAKING TECHNIQUES

client-side cloaking的特点在于只有当用户和页面之间进行某种程度的交互时,用于钓鱼的页面才会呈现在用户面前。为了检测应用了这种技术的钓鱼网站,钓鱼网站检测系统需要能够模仿自然人浏览网页时的行为,比如移动鼠标,点击按钮等。但是,目前的钓鱼网站检测系统无法自动处理通知窗口(notification window),这是实际应用中需要解决的一个问题。

CONCLUSION

在本文中,作者创新性的对新型的钓鱼网站隐藏技术:client-side cloaking进行分析。作者根据client-side cloaking所应用的技术初步将client-side cloaking划分为3大类,8小种并针对自动化检测client-side cloaking的困难,设计了检测框架CrawlPhish。实验的结果表明:CrawlPhish可以准确的检测应用了client-side cloaking的钓鱼网站,其能够对其使用的类型进行划分。除此之外,作者还利用CrawlPhish对钓鱼网站应用client-side cloaking的情况进行分析,发现:client-side cloaking的技术在钓鱼网站之中越来越流行,为了保障正常网络用户和机构的合法用户,对client-side cloaking的检测迫在眉睫。

参考链接:https://mp.weixin.qq.com/s/kLqsJ-r2tlZh2Y4U_U8TDg

相关文章推荐

发表评论