10月17日在Windows中放Linux bash Shell?黑客开心死了 这会影响大多数系统

简介:

微软去年宣称用户可在Windows 10中运行本地Linux应用,无需借助虚拟化,此举令技术界感到吃惊。尽管这一特性旨在为开发人员带来便利,研究员认为攻击者会利用该特性隐藏恶意软件,使其绕过安全产品的检查。其中,Bashware恶意软件是个极大的威胁,它是一种非常狡猾的新型 恶意软件 ,主流的杀毒程序无法发现它。

Check Point软件科技有限公司的研究员利用Bash开发了一种技术。Bash是Linux命令行接口或shell,现可用于Windows系统,使已知恶意软件难以被发现。该技术被称为Bashware。

Check Point的两个研究员Gal Elbaz和Dvir Atias与笔者分享了编写的报告,他们称“我们在市场上的大多数领先的杀毒和安全产品上测试了该技术,发现该恶意软件成功绕过了这些产品。”

Win-ubuntu.png(图片仅以示例)

在Windows中放Linux Shell?

Windows 10的特性——Windows Subsystem for Linux(WSL,指适用于Linux的Windows子系统),可用于诱骗Linux应用,让其误认为正在与Linux内核通信。Linux内核是包括硬件驱动程序和基本服务在内的操作系统核心部分。实际上,这些应用正在与WSL通信,WSL将Linux系统调用转换为Windows内核调用。

WSL最初于2016年3月宣布,作为一项Beta特性添加至2016年8月发布的Windows 10周年更新中。微软称该特性会在即将发布的“秋季创作者更新”(Fall Creators Update)得到完全支持。

“WSL 看上去是一种精心设计的特性。 Bashware 之所以能成功绕过安全产品是因为各安全厂商还未意识到该恶意软件。

利用WSL,开发人员无需安装虚拟机即可在Windows和Linux中编写和测试代码。很多开发人员,不论是将Windows作为主桌面操作系统还是将用于运行Visual Studio和其他开发工具,同样也喜欢利用Linux命令行程序,因为这些程序可以很方便地与各种编程语言解释器和组件库进行交互。

黑客开心死了 这简直是天赐良机啊

目前,WSL默认情况下禁用。用户在使用该特性前需在系统中开启开发模式。然而,Check Point称Bashware攻击会秘密地自动开启WSL,下载Bashware自带的基于Ubuntu的用户空间环境,然后在该环境中运行恶意软件。

通过WSL执行的Linux程序会在Windows系统中显示为“Pico进程”,这种新进程在结构上与常规Windows应用程序生成的进程不同。

Check Point的研究员在测试时发现尽管微软提供了一个特殊的应用程序编程接口Pico API来监控Pico进程,但安全产品均未对Pico进程进行监控。研究员在报告中称,

“Bashware并未利用WSL的设计中的任何逻辑缺陷或执行缺陷。”

“实际上,WSL看上去是经过精心设计的。Bashware之所以能绕过安全产品是因为各安全厂商还未意识到该恶意软件。这是因为该技术相对较新,而且跨越了Windows操作系统的已知边界。”

安全厂商一片恐慌 我们还没有做好准备

由于安全厂商现在还未对WSL特性提起重视,人们普遍认为用户需手动开启这一特性,但大多数用户不会这样做,因为他们并不需要该特性。微软公司发言人在邮件中与笔者探讨Check Point的这一技术时称

“我们对该特性进行了审查,将其评估为低风险。”

“若使这项技术生效,需开启开发者模式,安装组件,然后重启,最后安装WSL特性。开发者模式在默认情况下是禁用的。”

然而,Bashware的创建者表示,开发者模式可通过修改数个注册表项实现,“这种方法鲜为人知”,而攻击者若有合适权限可能会在后台秘密操作开启开发者模式。

Check Point研究人员在给笔者的一封邮件中提到,正常情况下,要启用WSL,的确需要重启系统;但是,只要受害者关闭计算机或触发严重错误导致强制重启,就能被攻击者利用。应该还有一种方法可以手动加载WSL驱动,而无需重启计算机,但这种方法还在研究中。

“ 我们认为 , 安全厂商支持这个新技术不仅至关重要 , 而且迫在眉睫 , 唯有这样 , 才能阻止 Bashware 之类的威胁。 

Bashware麻烦的一点在于,攻击者无需编写恶意软件程序,让Linux在Windows系统中通过WSL运行这些程序。借助于Wine程序,他们可利用该技术直接隐藏已知Windows恶意软件。在某些方面,Wine等同于Linux系统中的WSL,因为它允许Linux用户无需借助虚拟化,便可以在Linux系统上运行Windows程序。

Bashware攻击中,攻击者可在下载的Ubuntu用户空间环境中安装Wine,通过Wine启动Windows恶意软件。借助于WSL,这些恶意程序会重新植入Windows,成为Pico进程,躲过安全软件的检测。

Check Point的Gal Elbaz和Dvir Atias并不是最先警告攻击者会利用WSL运行恶意软件的安全研究人员。在2016年美国黑帽大会和微软的蓝帽安全大会上的讲话中,著名的Windows内构专家Alex Ionescu就曾提请人们注意这一风险。Ionescu是安全公司CrowdStrike的端点检测与响应策略副总裁,在GitHub上维护着自己的WSL研究项目库。

一定程度上,Bashware是基于Ionescu之前的发现。不过,该技术根据WSL现状作了改动。显然,一年过去了,许多安全厂商还未做好应对这种新技术的准备。

目前看起来想要利用Bashware 先要拿到管理员权限

好消息是,攻击者为了利用Bashware,需先在受害者计算机上获得管理员权限。也就是说,他们需要首先使用更为传统的方法入侵系统: 嵌入恶意附件的钓鱼邮件 、内置攻击程序的文档以利用未修补漏洞、社会工程花招、窃取的管理员凭证等等。

获取Windows计算机的管理员权限并不一定很难,至少攻击者一直都在做。然而,这些额外步骤给了安全产品检测、中止攻击链的机会,使攻击者无法利用Bashware隐藏恶意流量。

Check Point研究人员拒绝透露哪些安全产品的检测机制可以被绕过,并表示,研究的目的是提请整个安全行业注意这个问题。在报告中,他们这么说:

“我们认为,安全厂商支持这个新技术不仅至关重要,而且迫在眉睫,唯有这样,才能阻止Bashware之类的威胁。”

赛门铁克安全技术与响应高级副总裁Adam Bromwich表示,WSL不是一个常用攻击向量,若攻击者将其作为攻击源,首先需要将恶意软件下载到目标计算机中。“基于这种WSL架构,赛门铁克设计了扫描器、机器学习和防护技术,可扫描、检测使用WSL创建的恶意软件。”

卡巴斯基实验室在给笔者的一封邮件中提到,公司计划修改杀毒软件,以便未来可以检测这种类型的恶意软件。公司在一封邮件声明中透露,

“卡巴斯基实验室知道存在针对WSL创建恶意软件的可能性,因此正开发技术,以检测用户设备中的这种恶意软件。

实际上,2018年,卡巴斯基实验室会升级所有针对Windows的解决方案,使用特殊技术,对于启用WSL模式的计算机中的Linux和Windows威胁进行行为和探索式检测以及拦截。”

卡巴斯基实验室表示,目前,公司的所有产品均可检测恶意软件下载程序以及此类攻击基于Windows的部分。杀毒软件公司Bitdefender未立即回应笔者请求,就此事发表看法。



原文发布时间:2017年9月12日

本文由:vice发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/windows-linux-bashware

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

相关文章
|
15天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
15天前
如何隐藏windows10系统任务栏右下角的语言输入法图标?
如何隐藏windows10系统任务栏右下角的语言输入法图标?
|
4天前
|
网络协议 安全 测试技术
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
|
4天前
|
存储 安全 文件存储
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
|
8天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF
33 0
|
11天前
|
Linux Windows
Windows、Mac、Linux解决端口被占用的问题
Windows、Mac、Linux解决端口被占用的问题
19 1
|
13天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
16天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
27 2
|
18天前
|
安全 Ubuntu Linux
Linux远程访问Windows实现步骤
在Windows上启用远程桌面连接并获取IP地址后,Linux用户需安装SSH客户端( Debian系:`sudo apt-get update; sudo apt-get install openssh-client`,RPM系:`sudo yum install openssh-clients`)。然后使用命令`ssh 用户名@Windows_IP地址`连接,其中`用户名`和`Windows_IP地址`按实际情况填写。
14 4
|
22天前
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
15 0