网易首页 > 网易号 > 正文 申请入驻

新型macOS恶意软件XcodeSpy可通过EggShell后门对Xcode开发人员发起攻击

0
分享至

安全研究人员近日发现,一款名为XcodeSpy的全新恶意软件正对iOS开发人员进行供应链攻击,它利用编码平台的脚本功能在受影响的设备上安装macOS后门。

Xcode是苹果创建的免费应用程序开发环境,开发人员利用Xcode创建在macOS、iOS、tvOS和watchOS上运行的应用程序。

攻击者正在滥用苹果 Xcode IDE中的“运行脚本(Run Script)”功能,以通过共享的Xcode项目感染毫无戒心的苹果开发人员。

XcodeSpy是一个恶意的Xcode项目,它在开发人员的macOS计算机上安装了EggShell后门的自定义变体以及持久性机制。

该后门具有录制受害者的麦克风、摄像头和键盘的功能,以及上传和下载文件的功能。

XcodeSpy感染媒介可能会被其他攻击者使用,建议所有使用Xcode的苹果开发人员在采用共享Xcode项目时要谨慎行事。

SentinelOne奇异性可防止XcodeSpy。在本文中,研究人员还提供了一种简单的方法,供开发人员用来扫描其Xcode存储库中的XcodeSpy。

今年,已经出现了两个令人不安的网络攻击新趋势:针对开发人员和使用供应链攻击来感染广大客户。针对软件开发人员是成功进行供应链攻击的第一步。一种方法是滥用执行这项工作所需的开发工具。2021年1月,Google TAG宣布发现了朝鲜针对安全研究人员和开发人员的活动。其中一种感染方法是共享用于加载恶意DLL的Visual Studio项目。在这篇文章中,研究人员将讨论一个类似的通过恶意Xcode项目针对苹果开发人员的攻击。

研究人员最近得知一个针对iOS开发人员的被木马化的Xcode项目,这要感谢一位匿名研究员提供的消息。该恶意项目是GitHub上一个合法开源项目的篡改版本。该项目为iOS开发人员提供了几个高级功能,用于基于用户交互为iOS Tab Bar设置动画。在ios的程序中,Tab Bar的使用率很高,几个视图需要切换的时候,就用到tab bar。

然而,XcodeSpy版本已经做了细微的改变,在开发人员的构建目标启动时执行一个模糊的运行脚本。该脚本与攻击者的C2联系,并在开发设备上设置一个自定义的EggShell后门。恶意软件安装一个用户LaunchAgent以保持持久性,并能够记录来自受害者的麦克风、摄像头和键盘的信息。

研究人员已经发现了载荷的两个变种:自定义后门,其中包含许多加密的C2 url和加密字符串的各种文件路径。其中一个加密字符串是在修改过的Xcode项目和自定义后门之间共享的,将它们链接在一起,作为同一个“XcodeSpy”活动的一部分。

目前,研究人员注意到一家美国机构发生了一起ITW攻击。研究人员的分析表明,该活动至少在2020年7月至10月期间就已经开始了,可能也针对亚洲开发商进行过攻击。

到目前为止,研究人员还没有发现其他被木马化的Xcode项目样本,也无法估计这种活动的影响程度。然而,从下面提到的已知样本和其他指标来看,XcodeSpy可能还存在其他项目。通过分享这个活动的细节,研究人员希望提高对这个攻击媒介的认识,并强调开发人员是攻击者的高价值目标这一事实。

XcodeSpy使用的隐藏和启动恶意脚本的简单技术可以部署在任何共享的Xcode项目中。因此,所有苹果开发人员在使用第三方Xcode项目时都要小心检查是否存在恶意运行脚本。研究人员提供了一个简单的方法,开发人员可以用它来扫描他们现有的本地Xcode存储库。

滥用Xcode的运行脚本功能

XcodeSpy利用了苹果IDE的内置功能,该功能允许开发人员在启动目标应用实例时运行自定义shell脚本。尽管可以轻松找到所需的技术,但是由于不知道控制台或调试器中是否有执行恶意脚本的指示,因此不了解运行脚本功能的新手或经验不足的开发人员尤其面临风险。

在修改过的TabBarInteraction版本中,可以在“构建阶段”选项卡中找到混淆的恶意代码。默认情况下,运行脚本面板是不扩展的,这进一步帮助恶意软件避免被偶然检查发现的概率。

点击“揭露”按钮就会发现被混淆的脚本的存在。

可以看到,混淆相当简单,通过将eval替换为echo并在单独的shell中运行脚本,可以安全地检查输出内容。

该脚本在/tmp目录下创建了一个名为.tag的隐藏文件,该文件包含一条命令:mdbcmd。这又通过反向shell管道传递给攻击者C2。

截止发稿时,VirusTotal上的任何静态引擎均未检测到该样本。

把XcodeSpy和一个自定义的EggShell后门联系起来

当研究人员发现恶意的Xcode项目时,cralev[.]me的C2已经脱机了,所以不可能直接确定mdbcmd命令的结果。然而,幸运的是,在VirusTotal上有两个示例的EggShell后门包含了XcodeSpy字符串/private/tmp/.tag。

6d93a714dd008746569c0fbd00fadccbd5f15eef06b200a4e831df0dc8f3d05b

cdad080d2caa5ca75b658ad102987338b15c7430c6f51792304ef06281a7e134

这些样本都是在日本通过网络界面上传到VirusTotal的,第一次是在8月5日,第二次是在10月13日。

另一份样本也于2020年末在美国一名受害者的Mac电脑中被发现。出于保密的原因,研究人员无法提供关于ITW事件的进一步细节。然而,这名受害者报告称,他们多次成为朝鲜APT组织的攻击目标,这种感染是他们定期进行威胁搜寻活动的一部分。

从日本上传到VirusTotal的样本来自于未登录到VirusTotal账户的用户,因此无法判断它们来自同一来源还是两个不同的来源。尽管如此,它们都是通过包含字符串P4CCeYZxhHU/hH2APz6EcXc=来和Xcode项目进行关联的,该字符串原来是在恶意Xcode项目中找到的/private/tmp/.tag字符串的加密版本。

EggShell后门使用简单的字符串加密技术,解密包括将加密的字符串传递给[StringUtil decode:]方法,该方法在base64中对加密的字符串进行编码,然后遍历每个字节,并向其添加0xf0。这将生成一个可打印的ASCII字符代码,然后将其连接起来生成完整的字符串。

基于上面的伪代码,研究人员可以在Objective-C中实现自己的解码器来解密Mach-O二进制文件中的字符串。

对这两种变体中的字符串进行进一步解码,就会发现许多用于从受害者的计算机上传数据的硬编码url。

HTTPS://www.suppro.co/category/search.php?ts=%@

HTTPS://www.liveupdate.cc/preview/update.php?ts=%@

HTTPS://www.appmarket.co/类别/ search.php中TS =%@?

HTTPS://www.recentnews.cc/latest/details.php?ts=%@

HTTPS://www.truckrental.cc/order/search.php?ts=%@

HTTPS://www.everestnote.com/sheet/list.php?ts=%@

HTTPS://www.alinbox.co/product/product_detail.php?ts=%@

在有数据存在的地方,所有这些来自后门二进制的域名在9月10日或11日被第一次看到或被第一次查询。

恶意Xcode项目中的域cralev[.]me也于9月10日首次被发现。

修改后的TabBarInteraction Xcode项目在一周前的9月4日首次出现在VirusTotal上。

研究人员可以根据这些数据推测出,攻击者自己可能已经将XcodeSpy项目文件上传到VirusTotal,以便在激活他们的c2之前进行检测。除suppro.co和cralevme域名外,其他域名似乎都处于非活动状态或未注册,可能正在等待将来被使用。有趣的是,VT提供的有关XcodeSpy上传者位置的国家/地区代码为“ZZ”(未知)。

与此同时,EggShell后门变种在大约两个月后(8月5日和10月13日)首次出现在VirusTotal上。如果后门是由受害者而不是攻击者上传的(这一假设绝不是安全的),这将表明第一个自定义的EggShell二进制文件可能是早期XcodeSpy样本的有效载荷。然而,研究人员不能对这些基于现有数据的推测给予很大的信心。研究人员所知道的是,第一个EggShell有效载荷是在已知的dropper前整整一个月上传的,第二个有效载荷是在10月13日在VirusTotal上看到的两个多月前上传的。

EggShell执行行为

在执行时,自定义的EggShell二进制文件会在~/Library/LaunchAgents/com.apple.usagestatistics.plist或~/Library/LaunchAgents/com.apple.appstore.checkupdate.plist上下载LaunchAgent 。这个plist检查原始的可执行文件是否正在运行;如果没有,它会在 ~/Library/Application Support/com.apple.AppStore/.update 上创建一个“主”版本的可执行文件的副本,然后执行它。

EggShell还会在/private/tmp/wt0217.lck处放置一个零字节文件,并在~/Library/Application Scripts/com.apple.Preview.stors处放置一个数据文件。二进制文件中还加密了许多其他文件路径(有关完整列表,请参见本文结尾处的IoC)。几乎所有这些路径都是攻击者自定义的。但是,一个加密的字符串解密为/tmp/.avatmp,这是在公共EggShell存储库中找到的默认路径,用于存储AV捕获的内容。

公开的EggShell repo的源代码包含了各种功能,包括持久化、屏幕捕获和AV录制等。

对在野外和在VirusTotal上发现的编译过的XcodeSpy变体的分析实现了这些以及它们自己的自定义数据编码和键盘记录方法。

检测和缓解

这篇文章的末尾提供了已知的IoC的完整列表。由于所有C2,路径名和加密字符串都是高度可自定义的,并且易于更改,因此它们仅可用作对这些特定样本过去攻击的指标。因此,需要一种行为检测解决方案来完全检测XcodeSpy有效载荷的存在。

安全管理人员和开发人员如果担心自己是否无意中下载了包含XcodeSpy的项目,可以通过以下命令行手动搜索:

find . -name "project.pbxproj" -print0 | xargs -0 awk '/shellScript/ && /eval/{print "\033[37m" $0 "\033[31m" FILENAME}'

这将在同时包含字符串shellScript和eval的Xcode项目(位于project.pbxproj文件中)的“构建阶段”部分中搜索“运行脚本”。如果找到任何内容,它将打印出该脚本的副本以进行检查,以及找到该脚本的文件名。

下面的示例在说明文件夹及其所有子文件夹中搜索XcodeSpy。

用户应在运行命令之前切换到保存Xcode项目的相应父文件夹。

当然,可以通过Xcode项目导航器中的“构建阶段”选项卡检查各个项目中是否存在恶意的运行脚本。

总结

这已经不是攻击者第一次利用Xcode作为攻击苹果平台开发人员的媒介了。早在2015年,XcodeGhost为中国的iOS开发人员提供了一个Xcode版本,从本地镜像下载的速度比从苹果服务器下载的速度更快。收件人不知道的是,他们收到的Xcode版本已被修改,将恶意代码注入任何用它编译的应用程序。使用XcodeGhost编译的应用程序可以被攻击者用来读取和写入设备剪贴板,打开特定的url(如WhatsApp、Facebook),并将数据窃取到c2。实际上,XcodeGhost是一种供应链攻击,通过第三方软件攻击下游受害者。

相反,XcodeSpy采用木马化的Xcode项目的形式,与完整版本的Xcode IDE相比,它更轻便,更易于传播。尽管XcodeSpy似乎直接针对开发人员本身,而不是针对开发人员的产品或客户,但从窃取开发人员的工作环境到向该开发人员软件的用户发送恶意软件,仅是一步之遥。

XcodeSpy完全有可能是针对某个特定的开发人员或开发团队的,但也有其他潜在的高价值受害者。攻击者可能只是在搜寻有趣的目标,为未来的活动收集数据,或者他们可能试图收集AppleID证书,以便在其他使用带有有效苹果开发人员代码签名的恶意软件的活动中使用。这些建议并没有穷尽所有的可能性,它们也不是相互排斥的。

参考及来源:https://labs.sentinelone.com/new-macos-malware-xcodespy-targets-xcode-developers-with-eggshell-backdoor/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
旱的旱死涝的涝死,原来这些明星都已"无戏可拍",顶流也不行

旱的旱死涝的涝死,原来这些明星都已"无戏可拍",顶流也不行

琴声飞扬
2026-01-15 10:17:02
离岸人民币创两年半新高,汇率强势格局延续

离岸人民币创两年半新高,汇率强势格局延续

王二哥老搞笑
2026-02-14 04:22:39
湖南台主持大洗牌:一哥地位不动摇,谢娜升咖,新四小花格局已定

湖南台主持大洗牌:一哥地位不动摇,谢娜升咖,新四小花格局已定

查尔菲的笔记
2026-02-12 19:08:13
当你接触的人多了,你会明白:如果一个人还在穿5年前的衣服,只说明3个问题

当你接触的人多了,你会明白:如果一个人还在穿5年前的衣服,只说明3个问题

LULU生活家
2026-01-16 18:51:53
恶魔检察官蒋英库 8 年杀 21 人,灭口同行,2001 年被枪决伏法

恶魔检察官蒋英库 8 年杀 21 人,灭口同行,2001 年被枪决伏法

有书
2026-02-13 21:45:04
湖北一木匠,两年时间骗取宁夏自治区政府高层近十亿,无人敢吱声

湖北一木匠,两年时间骗取宁夏自治区政府高层近十亿,无人敢吱声

神奇的锤子
2025-02-14 20:48:49
事业有成、家庭幸福的刘佩琦,却晚节不保,败在不争气的侄子身上

事业有成、家庭幸福的刘佩琦,却晚节不保,败在不争气的侄子身上

小熊侃史
2026-02-13 11:24:11
年前女儿带全家旅游,唯独没带母亲,回来母亲看到行李箱内崩溃了

年前女儿带全家旅游,唯独没带母亲,回来母亲看到行李箱内崩溃了

温情邮局
2025-03-22 10:16:06
YU7成1月中国卖最好车 投诉率几乎为0!小米高管:高强度研发造出高质量好车

YU7成1月中国卖最好车 投诉率几乎为0!小米高管:高强度研发造出高质量好车

快科技
2026-02-13 16:26:22
金价风暴要来了!2月14日,黄金走势迎来关键转折点

金价风暴要来了!2月14日,黄金走势迎来关键转折点

牛锅巴小钒
2026-02-14 03:57:26
皇马内讧曝光!错怪了阿隆索,多名球员做局,姆巴佩承认错误

皇马内讧曝光!错怪了阿隆索,多名球员做局,姆巴佩承认错误

阿泰希特
2026-02-13 15:24:25
不是迷信!今日腊月二十七,牢记:3不动、2不做,别犯了忌讳

不是迷信!今日腊月二十七,牢记:3不动、2不做,别犯了忌讳

阿龙美食记
2026-02-14 02:59:04
表面德艺双馨,实则德不配位,这四位老艺术家翻车没一个值得同情

表面德艺双馨,实则德不配位,这四位老艺术家翻车没一个值得同情

小熊侃史
2026-02-11 12:58:47
喜欢把家里打扫得很干净的人,往往会有这3种命运,很准!

喜欢把家里打扫得很干净的人,往往会有这3种命运,很准!

品读时刻
2026-02-12 00:06:27
已批准!成都绕城高速公路开启改扩建方案研究服务→

已批准!成都绕城高速公路开启改扩建方案研究服务→

娱乐的硬糖吖
2026-02-14 00:10:54
伊朗神权崩塌前夜:9000万高知青年与内战危机

伊朗神权崩塌前夜:9000万高知青年与内战危机

夏至陌离殇
2026-01-14 15:34:27
央行确定21家系统重要性银行:恒丰、渤海未上榜,含五家城商行

央行确定21家系统重要性银行:恒丰、渤海未上榜,含五家城商行

观察者网
2026-02-13 19:37:06
AI真人短剧斩仙台6天播放破亿背后:12人30天10万算力成本

AI真人短剧斩仙台6天播放破亿背后:12人30天10万算力成本

蓝鲸新闻
2026-02-12 15:17:33
C罗罢赛后首次公开亮相,却在现场被沙特人集体高喊“梅西”!

C罗罢赛后首次公开亮相,却在现场被沙特人集体高喊“梅西”!

氧气是个地铁
2026-02-13 23:25:18
89年,罗瑞卿次子官至正师级,出差法国为何选择叛国,成罗家禁忌

89年,罗瑞卿次子官至正师级,出差法国为何选择叛国,成罗家禁忌

抽象派大师
2026-02-10 12:50:21
2026-02-14 05:43:00
嘶吼RoarTalk incentive-icons
嘶吼RoarTalk
不一样的互联网安全新视界
8168文章数 10545关注度
往期回顾 全部

科技要闻

独家探访蔡磊:答不完的卷子 死磕最后一程

头条要闻

8千元的迷你小马一夜爆火 马主:1天排泄次数达十几次

头条要闻

8千元的迷你小马一夜爆火 马主:1天排泄次数达十几次

体育要闻

这张照片背后,是米兰冬奥最催泪的故事

娱乐要闻

大衣哥女儿风光出嫁,农村婚礼超朴素

财经要闻

华莱士母公司退市 疯狂扩张下的食安隐忧

汽车要闻

探秘比亚迪巴西工厂 居然是这个画风!

态度原创

亲子
房产
旅游
数码
公开课

亲子要闻

爸爸带的孩子是什么样的?妈妈看完沉默了,网友:活着就好!

房产要闻

三亚新机场,又传出新消息!

旅游要闻

土耳其自驾行记(八)地中海边的慢时光——卡什小镇

数码要闻

索尼WF-1000XM6新一代降噪豆正式发布,国行3月开售

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版