IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Web安全研究(一) -> 正文阅读

[网络协议]Web安全研究(一)


Mistrust Plugins You Must: A Large-Scale Study Of Malicious Plugins In WordPress Marketplaces

USENIX SECURITY 2022
Ranjita Pai Kasturi, Jonathan Fuller, Yiting Sun, Omar Chabklo, Andres Rodriguez, Jeman Park, and Brendan Saltaformaggio,
Georgia Institute of Technology 佐治亚理工学院 与麻省并称美国三大工学院

abstract

现代网站的大部分美学和功能设计都归功于CMS的插件,这些插件在广泛流行的市场上被买卖,攻击者利用这种经济中的信息,在合法的市场上出售恶意插件或盗用流行的插件或在部署后感染插件。

作者开发了YODA,一个自动化框架,用于检测恶意插件并追踪其来源。在24931个独特的网站上发现了47337个恶意插件,其中在合法的插件市场上发现了3685个恶意插件,共计花费41.5k$, 盗版插件骗取了开发者22.8w$,部署后的攻击使834k$的以前良性的插件感染成为恶意插件。并且据yoda测量,这些插件有超过94%仍在活动。

introduction

许多现代网站几乎完全由插件和主题构成,他们将信任寄托在大量未加审查的代码上。更糟糕的是,现在大多数恶意插件没有采用规避和混淆技术,而是喜欢明目张胆的暴露出来。

过去的研究对google play对恶意app,chrome store对恶意扩展程序,以及软件包注册处对恶意软件包进行了相关研究,同时之前的工作也暴露了web sever上的一些恶意行为,例如漏洞,webshell,backdoor等,但没有一项研究的研究对象是导致这些攻击的底层插件。

网站所有者通常依靠简单的metric,比如插件的popular程度,评级和插件市场上的review来决定是否可以安全的安装到他们网站上,另外勤奋的网站所有者可能会查询一些免费的或商业的插件漏洞数据库来查询插件是否安全。

不幸的是,这些来源没有提供完整的也没有提供强大的安全措施,攻击者可以购买这些流行的免费的插件代码库,并添加恶意代码,等待用户自动更新。作者与codeguard合作,分析了超过40w个独特的wordpress插件,时间可以追溯到2012年。

YODA源代码地址:https://cyfi.ece.gatech.edu/

Preliminary study

插件是一组文件,一起工作为CMS网站增加美学特征和功能,每次访问网站时,CMS会加载插件的可执行代码,作者的数据集是在CodeGuard提供的超过40w个WordPress网站的夜间备份访问。

在这里插入图片描述

如上图所示,数以千计的插件在WP的存储库中和软件开发平台,付费的插件则通过市场销售如ThemeForest,在付费市场,单个插件最便宜2$,WP-Plugin是整体上最受欢迎的市场,每个插件的平均下载量为7.5M。WPMU DEV市场则不出售单独的插件,二十一订阅的形式打包所有插件,每月的订阅费为49$,是该数据集中最受欢迎的付费插件市场。

Nulled Marketplaces,由于大多数付费插件不提供试用选项,因此一些市场开始了先试后买的举措。不幸的是,这产生了盗版的试用插件市场,这些插件是原来付费插件的盗版,通过盗版市场自由传播,一般来讲,这些插件已经被黑掉了,或者包含修改过的代码,以造成用户伤害或手机敏感的用户数据,并在没有license的情况下无限期的工作。更常见的是,盗版插件将恶意代码引入网络服务器。

市场监督不足,尚没有法规或工具评估插件的恶意性。插件生态系统安全的挑战比以往任何时候都受到挑战。

Design

下图是YODA的总体架构图,首先进行插件检测,而后进行恶意行为检测,接下来确定该插件的来源,最后执行了一项影响研究。

在这里插入图片描述

不能通过简单的代码目录结构来检测web server上的所有插件,因为当前CMS提供了优先的指导方针,这使代码缺乏一致性,且CMS用户经常定制插件并将它们放在server上的随机位置,不遵守编码准则,也不在CMS维护的插件和主题的目录结构中。

为了解决上述挑战,YODA采用元数据分析来识别插件的根文件,采用代码分析来识别所有该插件的关联文件。

插件检测

元数据分析

YODA解析所有服务器端代码文件的注释,执行正则表达式匹配以识别插件的根文件,即包含插件头的文件,这是一个具有特殊格式的块主食,包含关于插件的元数据。如下所示:

在这里插入图片描述


Wordpress只使用插件头来识别和加载插件,因此所有插件必须包含一个插件根文件。如果攻击者试图丢弃该插件头来逃避检测,那么wordpress core将不会加载该插件,并保持休眠状态。

代码分析

在确定插件root文件之后,YODA通过生成并解析插件根目录下所有server端代码文件的AST来寻找该插件的关联文件。由于一些CMS用户通过使用配置文件或明确修改PHP代码来定制插件,因此使用三个分数来检测,使用常数权重加上反指数来对这些分数进行排序(一种常见的程序模块排序方法)。

  1. header,包含该插件头的,权重为3
  2. ref派生,包含该插件其他文件,权重为2
  3. API hook,特定的API出现的次数来计算,权重为1

特定API如下:
在这里插入图片描述

而后通过可靠性公式来计算一组文件是一个插件的可能性,如果一组文件的可靠性分数大于95%,则认定为其是一个插件。

恶意行为检测

作者首先在2018年到2020年的已知的85个被破坏的网站备份中调查了所有插件,共发现了14种不同的恶意行为,每种行为都有多种实现方式,最先进的webshell检测依赖于单个代码文件内的结构感知语义特征, 现有的技术不考虑文件组之间的相互作用,因为攻击者将恶意行为的实现分布在多个插件文件中,从而逃避现有技术。

YODA通过句法特征,如文件元数据,敏感的API和所有插件代码文件的上下文感知语义特征(解决文件依赖性的AST)来解决这些挑战,句法分析使用数据流分析来识别在插件代码文件中用作接收器的可疑API。下图是一些可疑的Sink,但仅仅存在可疑Sink并不等同于恶意的插件行为,为了确保在多个插件文件中检测到恶意行为,YODA在AST中使用php-ast。

在解决了依赖关系的AST中,它将先前确定的所有敏感API标记为sink,从sink到预定义的source之间进行有针对性的程序后向切片,这些source-sink数据流称为语义模型,在下表中进行了总结。

在这里插入图片描述

  1. Webshell:通过超全局变量将可执行代码作为参数,传递给webserver上的exec sink
  2. post injection:从一个恶意url中下载内容,并将其插入到wordpress到帖子中;
  3. input gating:攻击者通过预定的密码来保护他们注入的代码,并根据条件是否达成来执行代码。
  4. SSO backdoor:攻击者滥用单点登录的功能,通过具有管理权限的用户账户来创建后门。先创建用户对象,改变用户权限以提供管理员权限,并向CMS注册这个用户,最后将所有的请求重定向到这个新用户的管理地址;
  5. Library Function Exists:如果该插件发现一个缺失的库函数,则会在本地实现该函数以重新定义它,虽然检查一个函数是否存在很常见,但良性的插件一版不会重新实现单个库函数,而是整个library
  6. spam injection:类似post injection,下载内容并注入html中
  7. code obfuscation:
    1. 杂乱无章的混淆模式;
    2. 同一行有超过50条代码指令
    3. 传递给decode和exec sink的编码字符次
  8. blackhat seo:攻击者通过条件检查来检测网站是否被搜索引擎机器人加载,如果加载的话,则从url中下载seo活动内容,并用这些下载的内容替换插件中隐藏的html元素,这将影响网站被搜索引擎的索引。
  9. downloader:下载内容;
  10. function reconstruction:函数重构,逃避基于签名的AV;
  11. Insert User:创建用户对象并注册
  12. Malvertizing:在url中下载内容并将网站重定向到一个恶意网站
  13. fake plugin:注入成熟的插件,在网站加载时运行恶意代码,一般为接收超全局变量,解码,并执行,最后删除
  14. Cryptominer:从url中下载一个挖矿脚本,并将其写入一个文件,更改可执行权限,执行

Origin of Malicious Plugins

之后确定这些恶意行为的来源,初步研究发现主要为以下四个来源之一:

  • 盗版插件市场;
  • 合法插件市场;
  • 注入的插件;
  • 被感染的插件;

Validating

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:55:47  更:2022-11-05 00:56:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 3:30:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码