從 PyLoose 惡意程式學無檔案(fileless)攻擊手法
一般來說,我們這種小白很難想像惡意程式只有在記憶體中執行,而且連個可執行檔、腳本(script)都找不到的情況。
PyLoose 這個挖礦惡意軟體蠻有趣的,它就是只有在記憶體中執行,沒留下腳本的經典例子。
稍微解說一下它怎麼做到的,真的很有趣:
- 透過 Jupyter notebook (受害者可能不小心開放這個服務,剛好給有心人士抓到)植入 Python 程式碼
- 第 1 段的 Python 程式碼會使用 system call 呼叫 1 個稱為 memfd 的 Linux 系統 API, 這個 memfd 可以想像是一個指向記憶體的 file descriptor
- 把 Python 的惡意程式碼(也就是挖礦)寫入第 2 步拿到的 memfd
- 用
os.execlp()
執行這個 memfd (裡面有 Python 挖礦程式碼) - 收拾犯罪現場,打完收工
也就這幾個步驟,就把 Python 程式注入到記憶體中,還只留下非常少數的證據(還是可以藉由可疑的 process id 發現),真的很狂!
這種 fileless 的作法優點是增加被偵測到的難度,也提高鑑識難度,因為程式碼在記憶體裡面,要調查事件就得做記憶體鑑識,在不關機的情況下將記憶體內容整份輸出⋯⋯。
等等,我這不是在教各位做壞事!乖小孩不要亂學亂用喔!
總之,以上就是 PyLoose 的攻擊手法介紹,看完之後記得檢查自己有沒有把 Jupyter Notebook (或類似可以執行 Python 程式碼的服務)設為開放喔,不然就傻傻替人數錢囉~!
PyLoose: Python-based fileless malware targets cloud workloads to deliver cryptominer