评论

华为安全大咖谈 | 论道攻防第2期:边界突破之瞒天过海

原标题:华为安全大咖谈 | 论道攻防第2期:边界突破之瞒天过海

本期讲解嘉宾

卷首语

帝不晓,令近臣揭幕视之,但见清清海水无穷。帝急问曰:“此是何处?”张士贵起而奏曰:“此乃臣过海之计。得一风势,三十万军乘船过海,至东岸矣。”视之,果在船上。

——《永乐大典·薛仁贵征辽事略》

本文以三十六计胜战计中的第一计“瞒天过海”为切入点,深入剖析了攻击者在现网环境和攻防演练中,如何运用出奇制胜的伪装攻击手段突破Web边界。

攻击之势

“兵无常势,水无常形,能因敌变化而取胜者,谓之神”。瞒天过海的核心思想即顺应环境变化,利用伪装手段欺骗对方,从而达到取胜目的。

在网络安全领域,Web应用攻击仍然是主要威胁之一。根据现网捕获的数据显示,在Web应用攻击中,90%为可以被快速拦截的无差别扫描。但其他10%的攻击,如利用0day漏洞或针对特定系统的攻击等,就成为了攻防对抗的高阶较量战场。 在Web安全领域,攻防对抗性尤为显著。当原有的攻击方式失效后,攻击者可以快速生成新的绕过方式,最终得以“瞒”过安全设备或靶机,拿下目标。Web应用攻击两大类伪装方式为:

  1. 使用通用的隐藏攻击内容的方式——编码。
  2. 针对要利用漏洞、语言特点等,定制攻击内容。

瞒天之式

01

藏形匿影 “隐身衣”

“surl=Li4vcGhwaW5mbw==”这个看似无公害的字符串其实是某开源软件的文件包含漏洞攻击内容,攻击者通过将../phpinfo进行base64编码之后的内容“Li4vcGhwaW5mbw==”作为参数值传入,从而绕过检测,于无形之中窃取phpinfo的信息。

编码绕过是很多黑客在进行RCE(Remote Command/Code Execute,远程命令执行)、 Webshell、文件包含等Web类攻击时常用的手段。 简单来说,编码绕过就是通过特定的编码方式,对明文的攻击载荷进行一系列字符串操作。这就像给攻击载荷穿上一件“外套”,使其表面看上去没有任何攻击特征,从而“瞒”过各类检测之天,“过”安全设备之海。

以下是一些常见的编码绕过攻击。

02

量体裁衣“易容术”

在不同的攻击场景中,除了对攻击载荷进行编码这类通用的绕过手段外,攻击者还可以根据场景和语言特点,对攻击载荷进行量身定制的“变装”绕过。例如,在Webshell和RCE攻击中,攻击者可以采取特定的策略来绕过安全防护。

@$_="shell";@$_="Web".$_;伪装的$_

“$_”为何?如果了解PHP语言,可以看出“$_”是经过变量嵌套和字符串拼接的“Webshell”,“伪装的$_”也就是“伪装的Webshell”。攻击者通过这种伪装方式,可以在不被发现的情况下执行恶意代码。

Webshell是一种常见的恶意脚本,它可以用PHP、JSP、ASP、ASPX等语言编写。攻击者利用漏洞将脚本上传到服务器上,从而获得对服务器的执行操作权限。根据微软365的数据显示,从2020年8月到2021年11月,平均每台服务器遭受了140,000次Webshell攻击,这是一种高频高危的攻击方式。在2022年的攻防演练中,华为HiSec Insight安全态势感知系统也捕获到了多起冰蝎Webshell3.x、4.x连接和哥斯拉木马上传攻击。 为了能够穿透WAF等安全设备的防护,Webshell经常利用编码、脚本语言特性和加密等手段进行伪装,以“瞒”过安全设备的检测,达到攻击目的。

  • 明文变装的Webshell文件

根据W3techs在2023年的统计结果,77.4%的Web服务端使用PHP语言编码。因此,PHP语言的Webshell脚本占比也相对较高。 由于PHP是一种动态弱类型语言,在参数传递、类型转换和函数调用方式方面非常灵活,攻击者可以利用这些特性对Webshell进行千变万化的变装绕过。

下面是一些PHP Webshell的变装手段示例。

华为在Web攻击检测方案中提供了Webshell语义感知模型检测能力。 该模型基于语义分析和智能算法,能够还原黑客的各种攻击手法,使绕过攻击无所遁形。

  • 加密隐藏的Webshell交互

在攻防演练中,具有明显特征的第一代管理工具“菜刀”已经越来越少被使用。相反,加密Webshell管理工具,如冰蝎和哥斯拉,正变得越来越流行。由于这些工具使用了流量加密技术,传统的WAF等安全设备难以对其进行检测,这给Web安全检测带来了巨大的挑战。

wh\o"a"m$@i == whoami ?

“wh\o"a"m$@i”等于“whoami”吗?在linux的shell中,等式是成立的!“whoami”是RCE攻击的常用命令,在“wh\o"a"m$@i”字符串中混合了多种手段绕过检测:

  • 在linux的shell中“\”反斜杠视为空字符;
  • 偶数个双引号一般用于处理变量中有特殊符号的场景,但在这里用于绕过混淆;
  • 未初始化的“$@”在此为空字符。因此,“wh\o"a"m$@i”其实就是“whoami”。

RCE攻击通常是由于应用程序对用户提交的数据过滤不严格而导致的。黑客可以通过构造特殊命令字符串,将数据提交至应用程序中,并利用该方式执行外部程序或系统命令实施攻击。这可能会导致缓冲区溢出、非法指令执行,甚至通过远程命令执行提升攻击者的权限,控制服务器。攻击者可以进一步非法获取数据或网络资源,实施挖矿、勒索、信息泄露等恶意行为,给企业造成严重损失。

在2022年的攻防演练中,各局点检测到了大量命令注入的漏扫探测。在这种试探中,一旦攻击者发现有机可乘,接下来就会发起猛烈的攻击。 为了不被检测到,攻击者会费尽心机利用通配符绕过、空格绕过、变量拼接、进程替换和多命令/路径/参数串联等多种手段对攻击载荷进行改变。这样,他们就可以“瞒”过各种检测设备,顺利到达目标主机。

以下是一些RCE的绕过手段示例。

防御之视

针对攻击者使用复杂编码隐藏攻击内容,以及根据攻击场景和语言特点进行攻击内容“定制”的不同瞒天之式,防守方也有相应的手段来应对。

01

先发制人,让漏洞风险可视。

在系统中部署漏洞扫描产品,定期检查是否存在漏洞。这样,在攻击者进行漏洞利用前,就能提前感知漏洞风险,对主机进行安全加固,并及时更新补丁。

02

固本培元,令绕过攻击过程可视。

安装流量监测分析设备,实现快速准确的高级威胁检测。

Web正常业务基线:

利用IP段、请求Header、URL路径、URL参数等多维度画像,对Web正常业务进行自学习,形成基线,减少正常业务导致的事件误报。

智能编码识别与解码:

基于语言模型的编码位置定位与解码算法,覆盖常见编码的部分/混合/叠加编码场景。

语义分析引擎:

自研轻量级词法分析和语义理解模型,高性能还原语义,对智能检测提供有效输入,并辅助展示攻击行为真面目,提升取证能力。

人工智能检测引擎:

基于语义还原结果,进行算法模型特征提取,使用有监督/无监督模型推理,覆盖Webshell、RCE、XSS、SQL注入、文件包含等多种攻击场景。

往期精彩推荐

华为安全大咖谈 | 论道攻防第1期:攻防演练之三十六计——开篇

点击“阅读原文”,了解更多华为数据通信资讯! 返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
大家都在看
推荐阅读