朝鲜黑客利用Flutter应用绕过macOS安全机制
2024-11-19 20:11:0 Author: mp.weixin.qq.com(查看原文) 阅读量:0 收藏

一、事件概述

近期,网络安全研究人员发现朝鲜黑客组织利用Flutter框架开发了多个恶意应用,旨在绕过macOS的安全机制。这些应用表面上看似无害,但天生具有代码混淆的特性,并在VirusTotal上被错误地标记为“无害”。实则在恶意应用中隐藏着复杂的恶意代码,可以对用户设备构成严重威胁。
Flutter是一款由谷歌公司开发跨macOS、iOS和Android平台的应用开发框架,它允许开发者使用单一代码库为多个操作系统构建应用。这种跨平台特性使得恶意应用能够更容易地在不同设备上运行,增加了其传播的隐蔽性和广泛性。Flutter应用的代码通常被编译成Dart字节码,然后由Flutter引擎执行。这种编译过程为恶意代码提供了一定程度的混淆和隐蔽性,使得传统的安全软件难以检测到恶意行为。

二、技术分析过程

研究人员发现了恶意软件应用共有三种形式:Go语言变种、使用Py2App构建的Python变种,以及Flutter构建的应用。

Flutter构建的应用

由恶意软件作者创建的Flutter应用被认为是第一阶段的有效载荷。研究人员最初识别出六个感染应用,其中五个使用了开发者账户签名,在发现时已经被苹果撤销了这些签名。一个名为“New Updates in Crypto Exchange (2024-08-28).app”的应用使用Flutter构建,并使用Dart编程语言开发。执行时,受害者会看到一个功能正常的扫雷游戏。这个游戏似乎是GitHub上一个基本的开源Flutter游戏的克隆,该项目是为iOS系统设计的。通过克隆该项目并修改一些项目设置,可以轻松编译为在macOS系统上运行。由于对应用的修改,启动应用时会向域名mbupdate.linkpc.net发起网络请求。这个域名过去曾被DPRK恶意软件使用,引起了研究人员的注意。
在分析时,服务器响应了一个404错误消息。由于应用架构的原因,编译后的Dart代码被放入了位于路径New Updates in Crypto Exchange (2024-08-28).app/Contents/Frameworks/App.framework/Versions/A/App的App dylib文件中。从nm输出中可以看出,存在与快照相关的符号,如_kDartVmSnapshotData和_kDartIsolateSnapshotInstructions,这表明应用程序的逻辑操作严重嵌入在预编译的Dart快照中,使得分析和反编译工作变得复杂。通过仔细观察字符串,研究人员可以迅速确定一些支持的功能,并在dylib中看到了域名和用户代理字符串,但osascript字符串的出现非常有趣,因为它可能表明支持AppleScript执行的能力。为了测试目的,研究人员在本地测试环境中重定向了来自恶意域名的流量,并确认恶意软件确实执行了由有效HTTP响应返回的任何AppleScript代码。最后测试显示,第二阶段的AppleScript必须反向编写才能被恶意软件成功执行。

Golang变种

研究人员还识别出了一个具有类似功能的Golang恶意软件变种,名为“New Era for Stablecoins and DeFi, CeFi (Protected).app”。网络安全厂商 SentineOne最近发布了一篇分析报告,也讨论了一个使用相同文件名的感染向量,将其归因于同一威胁行为者。与Flutter变种类似,这个变种之前也被苹果签名和公证,但其签名已被撤销。
其中名为Hello的可执行文件使用用户代理CustomUpdateUserAgent向hXXps://mbupdate.linkpc.net/update.php发起GET请求。它也是调用字符串osascript来运行服务器响应中的任何AppleScript有效载荷。

Python变种

Python变种被打包为一个独立的应用程序捆绑包,使用Py2App。名为Runner.app的应用程序捆绑包是ad-hoc签名的,并启动了一个功能性的记事本应用程序。位于Runner.app/Contents/Resources/__boot__.py的启动脚本执行了一个名为notepad_.py的Python脚本。该脚本利用tkinter,这是一个内置的Python库,用于创建GUI应用程序,具有打开、编辑和保存文件等功能。然而,在这个脚本中嵌入了恶意逻辑,用于获取和执行远程代码。与Flutter变种类似,init方法向hXXps://mbupdate.linkpc.net/update.php发送GET请求。如果收到有效响应,内容将传递给update()方法。update()方法使用字符串osascript执行服务器响应作为AppleScript,允许攻击者在受害者的系统上运行任意命令或有效载荷。

三、结论

在本事件分析报告发现的恶意软件案例中,观察到了攻击者可能在测试其攻击能力,希望在未来实现更大规模的武器化。这种推测是基于攻击者以往在社会工程学活动中展现出的高超技巧,以及此次发现的恶意软件文件名与实际展示给用户的内容之间的不一致性。这种反常行为估计是攻击者在尝试探索,看看一个表面上合法、内部却隐藏着混淆恶意代码的签名应用,是否能够绕过苹果的公证服务器审查,以及是否能够逃避防病毒软件的检测。虽然将恶意软件嵌入Flutter应用的做法在安全领域并非新鲜事,但这是首次观察到攻击者利用此技术针对macOS设备。目前尚不清楚这些恶意软件是实际用于攻击的工具,还是仅仅是攻击者在测试新的武器化方法。不论如何,我们都需要持续保持警觉,并密切监控该攻击者的进一步行动,以确保用户和整个网络安全社区能够及时获得必要的威胁情报和防护措施。

参考链接:

https://www.jamf.com/blog/jamf-threat-labs-apt-actors-embed-malware-within-macos-flutter-applications/


文章来源: https://mp.weixin.qq.com/s?__biz=MzI0MTE4ODY3Nw==&mid=2247492418&idx=1&sn=e8147d257ac60e3dc41b2209b25ce96c&chksm=e90dc968de7a407e359d08aede0dcbd37425efd5ca55194ad4b501f5010b87bc9f7752f9a1b6&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh