PTT推薦

Re: [情報] 遊戲引擎Unity爆重大安全漏洞

看板C_Chat標題Re: [情報] 遊戲引擎Unity爆重大安全漏洞作者
Y78
(Y78)
時間推噓52 推:52 噓:0 →:40

昨天剛好看到漏洞發現者 RyotaK 寫的技術細節,簡單講一下
有技術背景的可以自己看:
https://flatt.tech/research/posts/arbitrary-code-execution-in-unity-runtime/

在 Android 上,手機 app 可以透過發起一個叫 intent 的東西打開另一個 app
打開的時候可以傳參數過去

而 Unity 在這部分沒有處理好,導致會直接載入其他 app 傳來的程式碼
因此一個惡意 app 就可以透過這種方式,再利用 Unity 包出來的遊戲執行程式碼
這是第一種攻擊方式

再強調一次
攻擊前提是:你先裝了一個惡意 app,再透過這個惡意 app 攻擊 Unity 引擎
攻擊成功之後,就看你原本遊戲有什麼權限,就可以拿到什麼權限

但由於你要先裝一個惡意 app
在你裝惡意 app 的時候,它其實本來就可以做很多事了,不需要透過 Unity
透過 Unity 就只是可以偷到這個 app 的更多資料,或是拿到更多權限
例如說 app 通常只有自己能存取自己的東西
因此透過 Unity 這個漏洞,可以讓其他 app 來把你東西偷走

第二種攻擊方式是,有些 app 會可以利用 URL 去發這個 intent
就不需要先裝惡意 app(這個不是預設的設置,需要開發者自己加上)
但由於 Android 本身的權限問題,會阻擋一些可疑位置的檔案載入
所以還需要搭配 app 本身的機制,想辦法讓攻擊者能夠寫一個檔案
接著再載入這個檔案才行

換句話說,假設一個遊戲要有問題,它本身的機制必須能讓攻擊者去寫入檔案
原文給的案例是 Facebook Messenger 的快取可以被攻擊者控制,利用它寫檔案
但遊戲的話應該就是 case by case 了,要先找到能控制寫檔案的方法
才有辦法寫入惡意程式碼,然後利用 URL 執行

總結一下,根據作者自己的技術細節,攻擊要成立的前提是:
1. 你已經裝了一個惡意 app

或是底下三個條件同時滿足:
1. 遊戲支援透過 URL 的方式打開
2. 攻擊者可以透過遊戲本身的機制,寫一個檔案並控制內容
3. 你點了一個惡意 URL,觸發 Unity 漏洞

由於文章只有寫到 Android 的,因此不太確定其他平台的細節
這漏洞之所以嚴重,是因為被觸發之後就可以控制 Unity 打包出來的 app
但觸發條件是否容易,就看大家怎麼想了


--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.193.112.69 (日本)
PTT 網址

zseineo10/04 18:07

peterturtle10/04 18:07

WayThuz10/04 18:09

nahsnib10/04 18:09反正就是不要隨便點連結,然後正常的遊戲沒事

togs10/04 18:10惡意APP通常從哪種管道被安裝,或如何得知自己有沒有裝

e5a1t2010/04 18:10

togs10/04 18:10

a205090a10/04 18:12網路下載的apk 檔

cdsjquiz10/04 18:12

a205090a10/04 18:12非官方的都默認成惡意app就好

aoke10/04 18:12上一篇的Unity公告網頁下面有寫說IOS跟遊戲機還沒找出可能性

aoke10/04 18:12但是為了以防萬一還是請更新這樣

ltytw10/04 18:13家裡長輩 很容易會被騙裝不明APP阿

illya6553610/04 18:13推分享

a205090a10/04 18:14內文還有提到一件事 不確定unity能不能滿足遠端攻擊的

a205090a10/04 18:14條件 如果不能的話 其實就是偷偷個資的事而已

inte629l10/04 18:14

XFarter10/04 18:15但如果像是 Web-based 的 Unity Engine 的套件的話呢?

目前是還沒看到 web 相關的平台有問題,web 原本就沒辦法繞過瀏覽器執行指令

dk248624810/04 18:16前景服務

togs10/04 18:16感謝回應

eva05s10/04 18:17推個

testwindraja10/04 18:18與其說"惡意","任意"寫來利用這漏洞的APP更準確

iuytjhgf10/04 18:19安卓你不搞Root的話要中招的算低

iuytjhgf10/04 18:20但Windows系統 就問在座有多少人是開administrator在用?

SPDY10/04 18:20利用Unity還是要看OS有什麼洞能鑽或有給什麼權限

XFarter10/04 18:30我個人的粗淺理解是雖然研究者實踐這個洞的方式是用 Andr

XFarter10/04 18:30oid ,但這個洞的成因是 Unity 沒有做啟動參數的資料驗證

XFarter10/04 18:30後就直接「執行」,所以這一修才不是只影響到 Android 平

XFarter10/04 18:30台而是大家都中

看起來是這樣沒錯,我的理解也差不多

rockmanalpha10/04 18:30看起來就借Unity之手運行惡意程式碼 但遊戲有寫入檔

fkukg5215510/04 18:31感謝翻譯 推

rockmanalpha10/04 18:31案的情況不多吧

rockmanalpha10/04 18:31應該說有給使用者寫入檔案的情況

※ 編輯: Y78 (61.193.112.69 日本), 10/04/2025 18:33:52

Richun10/04 18:35通常都會看OS給到多大權限,Windows通常最危,Android則是

Richun10/04 18:36有資料外洩的可能,iOS看有沒有類intent的機制做直接通訊

chualex6610/04 18:37ios的封閉機制就專防這種App伸出髒手的,沒事才是預料

chualex6610/04 18:37之中

XFarter10/04 18:38我後來想了一想 除了盜版以外其實第三方套件、Mod 甚至翻

XFarter10/04 18:38譯包都有可能可以利用這個洞==

準備個惡意檔案倒是可以透過這些來準備,但是要把啟動參數傳進去的話 可能就要看個別 app 了?如果能傳啟動參數,代表本來就可以執行指令了 (在電腦上的話啦),可能就是做為一種提權的手段

sai00778810/04 18:40就看你信不信官方本身跟知名補丁網站了

CrazyLord10/04 18:42簡單來說 只要你App不是從Goole/Apple商店載的都能預

CrazyLord10/04 18:42設是惡意 但不代表Google Play跟App Store裡的就一定

CrazyLord10/04 18:42安全

cpu88510/04 18:43

as92090910/04 18:44遊戲只要有存檔功能就會有檔案讀寫權限 遊戲主機的提權

as92090910/04 18:44漏洞有很大一部分是遊戲有漏洞導致

r2469464810/04 18:45感謝內容,推

tn198310/04 18:50PC啟動遊戲裝第三方MOD就有機會中

g563712810/04 18:51

ShibaTatsuya10/04 18:53

SunnyBrian10/04 19:06推,看不懂但有點安心了

rainxo6p10/04 19:07前面覺得還好反正手機只拿來工作用而已 但看到23樓後有

rainxo6p10/04 19:07點怕了-.-

※ 編輯: Y78 (61.193.112.69 日本), 10/04/2025 19:12:58

AmeNe4318910/04 19:11

ChikuwaM10/04 19:27

Nighty722210/04 19:37URL觸發就能啟動喔。好兇

WiLLSTW10/04 19:50透過Url打開的遊戲 有些手遊會做轉去外面儲值之後自己幫

WiLLSTW10/04 19:50你連回遊戲內的

WiLLSTW10/04 19:51還有就是安卓裝app的時候真的要檢查一下他到底要開哪些

WiLLSTW10/04 19:51權限

hwider10/04 20:09謝謝分享

namirei10/04 20:12

iam1vol10/04 20:15

v8686106210/04 20:26推推

w951510/04 20:39推 謝分享

a548027710/04 20:45請問 文章中提到的 Facebook Messenger相關資訊在哪啊?

a548027710/04 20:46喔 看到了 原來是pdf 沒事

是的就是那個,有點長就懶得看了:

https://reurl.cc/MzEp13

跟這個洞本身關係不大就是了,只是關於透過 app 控制檔案寫入的地方可以參考

※ 編輯: Y78 (61.193.112.69 日本), 10/04/2025 20:49:56

iamstudent10/04 20:48感謝知識分享

a548027710/04 21:01我網路不知為何卡爛 看不到這個PDF 先發表我的簡單看法

a548027710/04 21:01文章中的示範指令都有明確代入package name 也就是說必

a548027710/04 21:02需先知道想要啟用的app的具體package name,才會受影響

a548027710/04 21:03另外透過URL啟動app的方式應該是指DeepLink 就像大家使

a548027710/04 21:03用手機看網頁時 點下去會跳出問你是否要由某某app開啟

a548027710/04 21:04這是因為那些app有宣告一個特定的pattern。當android發

a548027710/04 21:05現你點的網址有這個pattern,就會問你是否要啟動該APP

a548027710/04 21:08但文章中有提到 他也是去讀特定路徑下的惡意檔案 所以如

a548027710/04 21:08果你手機裡並沒有該惡意檔案 其實根本不用太擔心 但考慮

jackyT10/04 21:14我昨天看到也一直在想什麼遊戲會自訂URI 實在想不到

a548027710/04 21:14文章中說可以透過讀cache的方式搞鬼 我就不知道是否能夠

a548027710/04 21:15combo出其它行為來造成更大的破壞

a548027710/04 21:19另外這看起來出問題時,你的app也會被打開彈出來 所以會

a548027710/04 21:19比較容易被觀測到

a548027710/04 21:20目前看起來感覺有點像SQL injection的那種狀況 就是那種

a548027710/04 21:21code沒寫好 使用者故意在帳密那邊打特定字串來破解

XFarter10/04 21:30看起來跟 SQL 的結果很像 但成因不同吧

avans10/04 22:31推說明

hanmas10/04 22:43

whhw10/05 00:06

Tsozuo10/05 01:14所以改理解成 這個漏洞只是惡意程式的啟動器這樣

justanerd10/05 01:29

clou10/05 10:12

nothink010/05 10:48