网络攻防:盘点黑客最常用隐藏踪迹的六种方式!你可要小心了

157 阅读10分钟

责任编辑:cres 作者:Ax Sharma,出处:企业网D1Net

CISO(信息安全官)们拥有一系列不断改进的工具来帮助发现和阻止恶意活动:包括网络监控工具、病毒扫描程序、软件成分分析(SCA)工具、数字取证和事件响应(DFIR)解决方案等等。

不过,网络安全是一场持续不断的攻防战,攻击者会继续发起新的挑战。

​​

​​

较老的技术,如隐写术——将包括恶意有效载荷在内的信息隐藏在其他良性文件(如图像)中的技术——也正在发展,带来了新的可能性。例如,最近一名研究人员证明,即使是推特也不能幸免于隐写术,因为平台上的图像可能被滥用来打包其中高达3MB的ZIP档案。

然而,在我自己的研究中,我注意到除了使用混淆、隐写术和恶意软件打包技术之外,今天的威胁参与者也经常利用合法服务、平台、协议和工具来进行他们的活动。这让它们能够与正常的流量或活动混合在一起,在人类分析师和机器看来,这些流量或活动可能是“干净”的。

以下是网络犯罪分子当前用来掩盖踪迹的六种方式。

滥用不会引发警报的可信平台

这是安全专业人士在2020年就看到的一个常见现象,并已蔓延到了今年。

从渗透测试服务和工具(如Cobalt Strike和Ngrok),到已建立的开源代码生态系统(如GitHub),再到图像和文本网站(如Imgur和Pastebin),仅在过去的几年里,攻击者就瞄准了一系列受信任的平台。

通常,Ngrok会作为bug赏金练习或渗透性测试项目的一部分,被有道德的黑客用来收集数据或为入站连接建立模拟隧道。但恶意行为者会滥用Ngrok来直接安装僵尸网络恶意软件,或是将合法通信服务连接到恶意服务器。在最近的一个例子中,SANS研究所的Xavier Mertens发现了一个用Python编写的恶意软件样本,其中包含了base64编码的代码,用于在使用了Ngrok的受感染系统上安装后门。

由于Ngrok受到了广泛的信任,远程攻击者可以通过Ngrok隧道来连接到受感染的系统,这可能会绕过公司防火墙或NAT保护。

GitHub还被滥用来托管从Octopus Scanner到Gitpaste-12的恶意软件。最近,狡猾的攻击者滥用GitHub和Imgur结合使用了一个开源的PowerShell脚本,这使得他们有可能在GitHub上托管一个简单的脚本,从一张良性的Imgur照片中解析出Cobalt Strike的有效载荷。Cobalt Strike是一种流行的渗透性测试框架,用于模拟先进的真实网络攻击,但与任何安全软件产品一样,它也可能被对手滥用。

同样,开发人员依赖的自动化工具也不能幸免于被利用。

2021年4月,攻击者滥用GitHub Actions以数百个存储库为目标,发起了一场自动攻击,利用GitHub的服务器和资源进行了加密货币的挖掘。

这些​示例​说明了为什么攻击者认为瞄准合法平台会有价值,而许多防火墙和安全监控工具可能还无法阻止这些平台。

​​

​​

利用品牌价值、声誉或知名度的上游攻击

在SolarWinds爆出漏洞之后,软件供应链安全问题可能已经引起了公众的关注,但是这些攻击在一段时间内一直在上升。

无论是以拼写错误、品牌劫持或是依赖混淆的形式(最初作为概念验证研究被发现,但后来被滥用于恶意目的),“上游”攻击会利用已知合作伙伴生态系统中的信任,并利用品牌或软件组件的受欢迎程度或声誉。攻击者的目标是将恶意代码推送到与品牌相关联的可信代码库,然后将代码分发到下游的最终目标:该品牌的合作伙伴、客户或用户。

任何对所有人开放的系统也会对对手开放。因此,许多供应链攻击的目标都是开源生态系统,而其中的一些生态系统为了坚持“向所有人开放”的原则而没有进行严格的验证。然而,商业组织也受到了这些攻击。

在最近的一个案例中,有人将其比作SolarWinds事件,软件测试公司Codecov披露了针对其Bash Uploader脚本的攻击,该攻击在两个多月内一直未被发现。

Codecov拥有29000多家客户,包括一些著名的全球品牌。在这次攻击中,公司客户端使用的上传程序被修改,将系统的环境变量(密钥、凭据和令牌)泄露给了攻击者的IP地址。

防范供应链攻击需要在多个方面采取行动。软件提供商需要加大投资来保证他们的开发版本的安全。基于AI和ML的devops解决方案能够自动检测和阻止可疑的软件组件,有助于防止打字错误、品牌劫持和依赖混淆攻击。

此外,随着越来越多的公司采用Kubernetes或Docker容器来部署他们的应用程序,容器安全解决方案具有内置的网络应用程序防火墙,并且能够及早发现简单的配置错误,这将有助于防止更​大的​危害。

​​

​​

通过难以追踪的方法进行加密货币支付

考虑到其分散和注重隐私的设计,Darknet marketplace的卖家和软件运营商经常交易加密货币。

但是,尽管不是由政府中央银行铸造或控制的,加密货币仍然缺乏与现金相同的匿名性。

因此,网络犯罪分子找到了在账户间转移资金的创新方法。

最近,与2016年Bitfinex黑客事件有关的价值超过7.6亿美元的比特币以多笔较小的交易转移到了新账户,交易金额从1 BTC到1200 BTC不等。

加密货币并不是一种完全万无一失的隐藏资金踪迹的方法。2020年美国总统大选当晚,美国政府清空了一个价值10亿美元的比特币钱包,里面装着与最臭名昭著的暗网市场“丝绸之路”有关的资金,该市场本身已于2013年关闭。

其他的一些加密货币,如门罗币(XMR)和Zcash(ZEC),在匿名交易方面比比特币具有更广泛的隐私保护能力。毫无疑问​的​,随着攻击者不断寻找更好的方法来隐藏他们的踪迹,犯罪分子和调查人员之间的冲突将在这条战线上继续下去。

使用公共通道和协议

像可信平台和品牌一样,合法应用程序所使用的加密通道、端口和协议为攻击者提供了另一种掩盖其足迹的方式。

例如,HTTPS协议是当今网络普遍不可或缺的协议,因此,端口443(由HTTPS/SSL使用)在公司环境中很难被阻止。

然而,HTTPS上的DNS(DoH)——一种解析域的协议——也使用端口443,并且被恶意软件作者滥用,将其命令和控制(C2)命令传输到了受感染的系统。

​​

​​

这个问题有两个方面。首先,通过滥用HTTPS或DoH等常用协议,攻击者与合法用户一样享有端到端加密通道的隐私优势。

其次,这给网络管理员也带来了困难。阻止任何形式的域名系统本身就是一个挑战,但是现在,鉴于域名系统请求和响应会在HTTPS被加密,安全专业人员拦截、挑选和分析来自通过网络进出的许多HTTPS请求的可疑流量就成了一件麻烦事。

研究人员Alex Birsan展示了依赖混淆技术,侵入了35​家​以上的大型科技公司,他能够通过使用DNS(端口53)泄露基本信息来最大限度地提高成功率。Birsan之所以选择DNS,是因为出于性能要求和合法的DNS使用,公司防火墙不阻塞DNS流量的可能性很高。

使用签名的二进制文件运行混淆的恶意软件

使用非本地二进制文件(LOLBIN)的无文件恶意软件的常见概念仍然是一种有效​的​规避技术。

LOLBIN指的是合法的、经过数字签名的可执行文件,例如微软签署的Windows可执行文件,攻击者可以滥用这些文件以提升的权限启动恶意代码,或者逃避防病毒等端点安全产品。

上个月,微软分享了一些企业可以采用的防御技术指南,以防止攻击者滥用微软的Azure LOLBIN。

在另一个例子中,我分析的最近才发现的Linux和macOS恶意软件在所有领先的防病毒产品中具有完美的零检测率。

在二进制文件中包含混淆代码,这确实有助于规避检测。然而,进一步的调查还显示,该恶意软件是使用数百个合法的开源组件构建的,并以与合法应用程序相同的方式进行的恶意活动,例如获得管理权限。

虽然混淆恶意软件、运行时打包程序、虚拟机规避或在图像中隐藏恶意有效负载是高级威胁所使用的已知规避技术,但它们的真正威力​来自于​绕过安全产品或在它们的雷达下运行。

当有效载荷能够在某种程度上与可信软件组件、协议、通道、服务或平台相结合时,这就成为了可能。

​​

​​

用不常见的编程语言编写恶意软件

根据BlackBerry Research and Intelligence团队的最新报告,恶意软件作者正在更多地使用不常见的编程语言,​以部分​更好地逃避检测。使用的主要语言有Go、D、Nim和Rust。

这些语言以几种不同的方式增加了混淆。首先,用新语言重写恶意软件意味着基于签名的检测工具将不再标记它(至少是在创建新签名之前)。其次,黑莓研究人员还表示,这些语言本身也起到了混淆层的作用。例如,用于解码、加载和部署其他常见恶意软件的第一阶段恶意软件是用一种不常见的语言编写的,这将有助于逃避​端点​检测。

黑莓研究人员指出,目前很少有针对用这些语言编写的恶意软件的定制混淆。其中最常见的一种是Gobfuscate,用于使用Go编码的恶意软件。它能够处理包、函数、类型和方法名,以及全局变量和字符串。

另外,对于编程方面,学习C/C++编程或者工作想提升的伙伴,如果你想更好​的​提升你的编程能力帮助你提升水平!笔者这里或许可以帮到你~

微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)