前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >远程代码执行 (RCE),解释:它是什么,以及如何防止它

远程代码执行 (RCE),解释:它是什么,以及如何防止它

作者头像
OwenZhang
发布于 2021-12-08 07:41:35
发布于 2021-12-08 07:41:35
4.1K0
举报
文章被收录于专栏:Owen's WorldOwen's World

原文链接:blog.sqreen.com/remote-code…

远程代码执行 (RCE) 是一类软件安全缺陷/漏洞。RCE 漏洞将允许恶意行为人通过 LAN、WAN 或 Internet 在远程计算机上执行自己选择的任何代码。RCE 属于更广泛的任意代码执行 (ACE) 漏洞类别。然而,随着互联网的普及,RCE漏洞的影响迅速扩大。因此,RCEs 现在可能是 ACE 最重要的漏洞类型。

由于是这样,我们希望更详细地研究各种类型的 RCE 漏洞和可能的对策。

按产地分类的 RCE 分类

大多数(如果不是全部)已知的 RCE 漏洞都有少量的根本原因。

动态代码执行

动态代码执行往往是导致 RCE 的最常见攻击载体。大多数编程语言都有某种方式使用代码生成代码并当场执行代码。这是一个非常强大的概念,有助于解决许多复杂的问题。但是,恶意第三方可以轻松地滥用它来获取 RCE 功能。

通常,运行时生成的代码基于某些用户输入。通常,代码以某种形式包含该输入。恶意行为者意识到动态代码生成将使用给定输入,可以提供有效的代码作为输入来攻击您的应用程序。如果不对用户输入进行审查,则该代码将在目标计算机上执行。

从广义上讲,动态代码执行会导致 RCE 漏洞的两大类:直接和间接。

直接

在直接动态代码执行的情况下,恶意行为人意识到其输入将被用于代码生成。

间接

间接案例,再次归结为动态代码生成,包括用户输入。但是,用户输入会通过一个或多个层。有些图层甚至可能在输入最终产生动态代码之前转换该输入。此外,动态代码生成可能是副作用,而不是输入的主要用法。因此,对于提供输入的用户来说,在远程计算机上执行的代码片段中,输入将用作构建基块并不明显。

反序列化

反序列化 是这种情况的一个很好的例子。在去隔离化上,似乎不应该产生动态代码。当序列化对象仅包含原始类型的数据字段或此类其他对象时,情况实际上就是这样。然而,当对象的方法/功能序列化时,事情变得更加复杂。然后,去航空化通常包括某种形式的动态代码生成。

您可能会认为动态语言是功能序列化唯一有意义的地方。届时问题的范围将有限。但它也是静态语言中的有用场景。用静态语言实现这个目标有点困难,但到目前为止并非不可能。

很多时候,实施由去隔离生成的代理对象/功能组成。在运行时生成对象/功能是动态代码生成的案例。因此,如果要去系统化的数据来自远程计算机的请求,恶意行为者可能会修改它。精心制作的序列化代码片段可以注入,从而在作为去序列化的一部分调用动态代码生成时执行它们。

内存安全

RCE 漏洞的另一个原因与内存安全有关。内存安全意味着阻止代码访问未初始化或作为输入获取的内存部分。直觉上,您可能会期望缺乏内存安全会导致未经授权的数据访问。但是,操作系统和基础硬件使用内存存储实际可执行代码。有关代码执行的元数据也存储在内存中。访问这种内存可能导致 ACE 和可能的 RCE。那么,记忆安全问题背后的主要原因是什么呢?

软件设计缺陷

软件设计缺陷是一种内存安全漏洞,其中某些基础组件存在设计错误。很多时候,这将是一个编译器,口译员,或虚拟机器,或潜在的操作系统内核或库。属于这个类有许多不同的缺陷。我们将更详细地研究什么是最常见的。

缓冲溢出或缓冲过度

缓冲溢出(也称为缓冲过度阅读)是一种相当简单和众所周知的技术,违反记忆安全。它利用设计缺陷或错误编写到记忆缓冲器实际结束后的内存单元。缓冲本身从向公共 API 发出的合法呼叫中返回。但是,缓冲器仅用作计算某些对象或程序计数器的私人字段/成员值的物理内存地址的原点。它们与缓冲器的相对位置是众所周知的,或者可能被猜到。如果可用,研究代码或在运行时调试程序执行可能有助于恶意行为人获得相对位置。

因此,缓冲溢出允许修改设计中无法访问的记忆。该缓冲器可能位于另一台机器的地址空间中,并通过调用远程 API 进行修改。这将允许访问远程机器内存。显然,在仪器 RCE 中使用这种类型的访问方式有很多种。一般假设是,如果存在缓冲溢出漏洞,则可能存在 RCE。因此,代码所有者应尽快修复缓冲溢出,远在实际 RCE 攻击出现之前。

范围

通常,缓冲溢出目标为 C/C++ 代码,因为这些语言没有内置缓冲器大小检查。许多其他流行的框架和技术最终使用 C/C++库在表面深处,自动使他们容易受到这种攻击。

Node.js 是一个很好的例子,因为除了基于C/C++,JavaScript运行时间还允许本地C/C++附加组件。因此,攻击者可以小心地将请求制作到节点.js服务器,以造成缓冲溢出,从而修改受影响计算机上的系统内存,从而执行任意代码。

硬件设计缺陷

有趣的是,由于硬件安全设计缺陷,可能会发生内存安全违规事件。虽然此类漏洞不太常见且更难发现,但通常具有极高的影响。

偏转 RCE 攻击

虽然每次 RCE 攻击的结果在攻击执行代码方面是相同的,但攻击载体的性质却大不相同。阻止所有这些需要付出巨大的努力。此外,努力与技术堆栈一起增长。这篇文章中描述的所有攻击载体都是技术不可知论者。不过,所有实施都是针对技术的,防御机制也是如此。

因此,传统的节省时间的方法是监控网络流量中的可疑内容,而不是用其特定技术监控每个端点。Web 应用程序防火墙 (WAF) 通常执行此工作。虽然这节省了时间,但它也以价格出现—WAF是一个网络性能瓶颈, 它缺乏在实际终点或应用程序和用户级别提供的所有背景信息。因此,WAF 流量分析永远不会完美。如果没有完整的数据,启发式是不可避免的,因此,不是所有的威胁都会出现,或者会出现误报,或者通常两者兼有。

在应用程序内移动:Sqreen 的方法

Sqreen 解决了这些 WAF 缺陷,而无需通过在应用程序内移动可见性来增加最终用户的开发成本,通过技术特定的 RASPIn-App WAF. 带来更完整的保护。Sqreen 的 RASP 和 WAF 运行在实际 Web 应用程序、API 或微服务接收网络流量内。不过,它不需要任何代码修改。它使用特定于每个技术的仪表点(例如 JJVM API for Java, v8 API for Node.js 等)在运行时间执行前修改代码。因此,它能够监控和修改系统和网络事件,同时拥有应用程序内发生的一切的完整上下文。

因此,Sqreen 可以检测到该应用正在使用具有已知内存安全问题的组件。它还可以检测实际用户输入,使其进入动态代码执行事件。当然,与仅访问网络流量的传统 WAF 相比,这是检测和防止 RCEs 的优越方法。

总结

显然,RCE 是一种非常强大的攻击载体。但是,幸运的是,也有可能保护自己免受 RCE 攻击。以上信息确实有助于构建您的防御战略。如果您对其他攻击载体和详细信息感兴趣,请查看我们以前关于 SQL 注入, XXE, 和 LFI.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RASP技术进阶系列(一):与WAF的“相爱相杀”
猜想大部分安全从业者都会回答:“WAF(Web Application Firewall, 应用程序防火墙)。”不过RASP(Runtime Application Self-Protection,应用运行时自我保护)横空出世,似乎有取而代之的意味。
云鲨RASP
2023/04/19
7860
与WAF的“相爱相杀”的RASP
猜想大部分安全从业者都会回答:“WAF(Web Application Firewall,应用程序防火墙)。”不过RASP(Runtime Application Self-Protection,应用运行时自我保护)横空出世,似乎有取而代之的意味。
德迅云安全--陈琦琦
2024/05/24
1850
攻防演练|RASP让WebShell攻击破防了
WebShell 是一种通过浏览器来进行交互的Shell,而且是黑客通常使用的一种恶意脚本,通常被攻击者用来获取对应用服务器的某些操作权限。攻击者通过渗透系统或网络,然后安装 WebShell ,攻击者可以在应用服务器上执行敏感命令、窃取数据、植入病毒,危害极大。而且, WebShell 隐蔽性极强,传统的流量侧方案对其防御效果不佳。本文将为大家介绍一下常见的 WebShell 类型以及 RASP 如何对其进行防御。
云鲨RASP
2023/04/14
8360
RASP技术进阶系列(二):东西向Web流量智能检测防御
当今网络安全攻防较量已进入深水区,纵深防御体系已经成为基础。在HW场景下,关于应用漏洞攻击响应和恶意流量溯源分析的安全工作一直被视作重点,但是在实际事件处理过程中仍存在巨大的技术挑战。RASP技术作为新一代突破性的应用层积极防御技术,可在东西向Web流量自动化检测防御中起到关键作用。
云鲨RASP
2023/04/23
9300
2024年护网行动全国各地面试题汇总(1)作者:————LJS
盛透侧视攻城狮
2024/10/21
1410
分享!一文简析RASP技术
众所周知,log4j 2.x安全事件引起了轩然大波,对于信息安全从业者来讲可以称之为“家喻户晓”。与之同时引起大家关注的是RASP(Runtime application self-protection)技术,该技术在2014年Gartner的应用安全报告里被列为应用安全领域的关键趋势。虽然并不新颖,而受到如此多的关注还是头一次。之所以如此,是因为RASP可以增强WAF防护工具的安全能力,形成纵深防御的安全防护体系。
云鲨RASP
2023/04/12
1.5K0
如何让您的应用天然免疫apache-log4j(CVE-2021-44228),包括其它zero-day?
流行的 Java 日志框架 Apache Log4j2 漏洞在网上发布,漏洞发布之时甚至还没有 CVE 号,在 2021 年 12 月 10 日周五才有了正式的 CVE 号分配 -- CVE-2021-44228。这注定是一个载入史册的漏洞。原因有两点:
信安之路
2021/12/15
6850
如何让您的应用天然免疫apache-log4j(CVE-2021-44228),包括其它zero-day?
WAF和RASP技术,RASP与WAF的“相爱相杀”
WAF全称叫Web Application Firewall,也就是web应用防火墙,和传统防火墙的区别是,它是工作在应用层的防火墙,主要针对web请求和响应进行检测和防护。
德迅云安全--陈琦琦
2024/04/09
6270
如何让您的应用天然免疫 apache-log4j,包括其它 zero-day ?
问:有没有一个更根源的解决方案,不是加班写特征,周末测绕过,着急升软件? 发生了什么 流行的Java日志框架 Apache Log4j2漏洞在网上发布,漏洞发布之时甚至还没有CVE号,在2021年12月10日周五才有了正式的CVE号分配 -- CVE-2021-44228。这注定是一个载入史册的漏洞。原因有两点: 一、攻击简易收益极大。攻击者使用简单构造的字符串值,就可以实现非授权的远程代码执行 (RCE) ,控制整个受害主机。 二、危害面巨大。Log4J是一个垄断级的日志框架,大量的开源产品,闭源的商业
云头条
2022/03/18
4310
比较全的网络安全面试题总结
单引号引起数据库报错 访问错误参数或错误路径 探针类文件如phpinfo 扫描开发未删除的测试文件 google hacking phpmyadmin报路径:/phpmyadmin/libraries/lect_lang.lib.php利用漏洞读取配置文件找路径 恶意使用网站功能,如本地图片读取功能读取不存在图片,上传点上传不能正常导入的文件
黑战士
2022/07/20
2.1K0
OpenSSL曝出“严重”漏洞 腾讯安全已支持全方位检测防护(CVE-2022-3786 和 CVE-2022-3602)
上周,加密和安全通信领域广泛应用的开源软件包OpenSSL曝出“严重”级别漏洞。直到11月1日,OpenSSL基金会终于发布OpenSSL 3.0.7版,并公布了已修补的两个高严重性漏洞细节。
Tec-云防火墙
2022/11/03
3.9K2
OpenSSL曝出“严重”漏洞   腾讯安全已支持全方位检测防护(CVE-2022-3786 和 CVE-2022-3602)
[PiKaChu靶场通关]RCE远程代码执行
RCE(remote command/code execute)RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
李鹏华
2024/03/12
3610
[PiKaChu靶场通关]RCE远程代码执行
常见Web安全漏洞类型
为了对Web安全有个整体的认识,整理一下常见的Web安全漏洞类型,主要参考于OWASP组织历年来所研究发布的项目文档。
BUG弄潮儿
2020/06/12
4.9K0
神秘APT组织锁定(IIS)Web服务器,擅长规避恶意软件检测
近日研究人员发现,在过去一年间,一个复杂的且极可能由国家民族支持的威胁行为者一直在利用面向公众的ASP.NET应用程序中的反序列漏洞来部署无文件恶意软件,从而危害一些主要的公共和私营组织。
FB客服
2021/08/24
1.8K0
好文赏析:一文读懂运行时应用程序自我保护(RASP)
RASP作为一种新型的、有效的、实时的应用保护手段,正被越来越多的企业使用,本文用浅显易懂的文字讲解了RASP技术、RASP与WAF的关系,并提供了应用解决方案,快来阅读吧~
云鲨RASP
2023/04/23
1.6K0
VxWorks面临严重RCE攻击风险
Armis研究团队在VxWorks中发现了11个零日漏洞,VxWorks可能是使用的最广泛的操作系统。VxWorks被超过20亿台设备使用,包括关键的工业,医疗和企业设备。
FB客服
2019/08/13
1.4K0
VxWorks面临严重RCE攻击风险
CVE-2025-24813:Apache Tomcat远程代码执行漏洞
Apache Tomcat 是一个开源的、轻量级的 Java Servlet 容器和 Web 服务器,由Apache软件基金会开发和维护,支持运行 Java Servlet、JavaServer Pages (JSP) 和其他基于 Java 的 Web 应用程序,广泛用于开发和部署企业级 Web 应用。
Timeline Sec
2025/03/28
3300
CVE-2025-24813:Apache Tomcat远程代码执行漏洞
OWASP Top10-1
在信息安全中渗透测试方向,OWASP Top10是渗透测试人员必须要深入了解和学习的,今天我们来深入了解和学习下OWASP发布的以往最重要的两个版本,研究下我们IT行业从业人员最容易引入的漏洞,后续文章将更新具体的漏洞原因,场景,防护手段,提升我们的应用抗风险能力。应用程序安全风险。 攻击者可以通过应用程序中许多的不同的路径方式去危害企业业务。每种路径方式都代表了一种风险,这些风险都值得关注。
Baige
2022/03/22
1.2K0
OWASP Top10-1
解读OWASP TOP 10
**原理:**将不受信任的数据作为命令或查询的一部分发送到解析器,会产生诸如sql注入、nosql注入、os注入和LADP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期的命令或的访问数据。
黑伞安全
2019/10/16
2.9K0
某依框架定时任务RCE分析与思考
RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。
叔牙
2024/11/29
3880
某依框架定时任务RCE分析与思考
推荐阅读
相关推荐
RASP技术进阶系列(一):与WAF的“相爱相杀”
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档