阿裏安全的自動化逆向機器人TimePlayer究竟有多“變態”?
“如果殺毒軟件廠商的自動化水平和能力,相當於天上的衛星,能看到地上奔跑的羚羊。那麽,我們能做到什麽程度?我們能看到羚羊身上的每個細胞。”
這是阿裏安全資深專家、阿裏安全獵戶座實驗室負責人杭特對旗下自動化逆向機器人TimePlayer的描述。雖然這個東東戰力爆表,不過杭特淡淡地表示,這只是個開始......
什麽是逆向?
×××(或者白帽子)在很多人眼中屬於非常神秘的種族,仿佛他們無所不能:破解設備,***系統,發現各種牛B的漏洞。逆向能力,就是這些×××的基本功。其實,各行各業都有自己的基本功,比如學武術要先練站馬步,否則下盤不穩,稍微推一下就倒;外科手術,手要既穩又靈活,否則手一抖,割錯了地方,那就……當然基本功練到頂級,能達到出神入化的效果,比如武俠小說裏內力深厚,可以把木枝當利劍,把樹葉當飛鏢。
那麽×××何時需要這個基本功呢?就是他需要搞清楚一個程序到底在做什麽的時候。這裏再舉幾個例子:早期國內企業想造汽車,又沒有積累,怎麽辦呢?買一臺日本車,把他大卸八塊,發動機變速箱全都拆開,一塊一塊的研究,然後照葫蘆畫瓢仿制出自己的型號;一個病人來看病,醫生有用聽診器加望聞問切,高級點的各種化驗加CT核磁共振,都是為了發現這個病人有何異常;生物和醫學研究,需要各種顯微鏡來觀察細胞的各種運行狀態,等等。
通過逆向,你就能弄明白:當你點了一下鼠標,你的照片是如何一步步顯示在屏幕上的,臉上的青春痘是如何一步步被消除的;當你輸入支付密碼,你的驗證碼是如何一步步驗證的,你的轉賬記錄是如何一步步生成的;運行一個網上下載的“是男人就下一百層”遊戲,背後是如何偷偷的盜取你的聊天記錄和網遊賬號的……
現在逆向都是怎麽做?
很不幸,大部分還處於比較原始的狀態,除了少數通用工具(IDA、Ollydbg等等),絕大部分工作都需要人來操作。對於剛入門的同學,人工逆向打怪升級還有些成就感,“讀了這些文件”,“發了這些數據”,“哦,原來是這麽回事”,“MD,它竟然敢這麽做”,“哈,終於繞過了這些限制”。但隨著時間的推移和技能的提升,逆向工作就成了純粹的體力勞動,每天只能反反復復的運行程序、設置斷點、獲取接口數據、修改數據、寫分析記錄,大量的時間耗費在這些繁文縟節裏。
為什麽要提自動化逆向,難度如何?
目前的主要矛盾:需要分析的對象數量越來越多、規模也越來越復雜,但分析人員人數有限,還經常出狀況(比如高級分析人員的能力無法賦能給初級分析人員,人員流動導致的能力銜接不夠,人工分析的準確性無法得到保證)。能不能把重復的人工分析任務完全由自動化的工具來做?答案是肯定的。
一定有些專業人士來挑戰:不是有個叫做“腳本”的玩意兒麽,你把常用的操作,寫個腳本不就完了,或者開發個分析平臺啥的,不難。
下面來個類比:
- 開車作為一個現代人的基本技能,不算難,當然也要花1、2個月在駕校學習和考試上。目前我國的駕駛員有3億。如果人工駕駛,改成自動駕駛,是不是難度陡然提升?現在還沒有幾家敢說自己達到Level4和Level5的自動駕駛吧?
- 圍棋,規則普通人一天差不多就能學會。但如果讓超級電腦按照這個規則和人對弈,戰勝人類冠軍,哪怕計算力超強,也是很困難的事情,否則為什麽阿爾法狗那麽出名?因為難吶。
又有一些專業人士會反駁:胡說,那些殺毒軟件廠商,每天查殺數億樣本,肯定是自動化實現的。我只能說,這個反駁有一定的專業度,但只看到了表象。每個殺毒軟件廠商都有一個很大的運營團隊(通常數百到上千人),用於人工分析自動化初篩後的樣本。他們的自動化水平和能力,相當於天上的衛星,能看到地上奔跑的羚羊,僅此而已。而我們能做到什麽程度?我們能看到羚羊身上的每個細胞。
阿裏的自動化逆向機器人達到什麽程度?
我們將安全從業人員逆向工作的大部分能力完全自動化,創立了自動化逆向機器人TimePlayer。相關的能力麽?世界領先,甚至可以說是世界第一,不服來戰嘛。
TimePlayer使用的相關的技術非常晦澀難懂,這裏就不展開了。下面形象地說一下這個機器人的能力:
- 攝像機:如果要分析一個程序,只需要在TimePlayer裏運行一次就可以了,TimePlayer會把該程序所有的行為全部忠實的記錄下來,不會遺漏任何的細節。
- 播放機:之前拍攝的內容,可以向前放、向後放、快放、慢放、放大任意處的細節、追蹤任意的目標。要註意,這個播放時的結果要和攝像時一模一樣,這是很有難度的。
- 顯微鏡:程序的行為,要做到指令級別的粒度,所有的一切都要能觀察到,包括每個指令是什麽,寄存器狀態,訪問的內存內容,等等。打開一個App,通常幾十億條指令就執行完了,上面的內容統統不能遺漏。
大家可以把這個機器人類比成醫學界的達芬奇機器人,配合技術高超的醫生,能夠實現許多很多專家都做不到的事情:
- 前一陣大家都聽說過WannaCry勒索病毒,很多用戶重要數據被這種惡意軟件加密了。如果要恢復這些數據,需要勒索者提供一個叫做“私鑰”的東西,這個“私鑰”數據量很小,其實是在受害者機器上生成的。由於勒索軟件刻意的刪除了本機的“私鑰”,理論上只能掏錢向勒索者獲取。雖然很多安全廠商做了各種分析,貌似很徹底,但都沒有我們的獨家發現:這個“私鑰”實際上在用戶態和內核態均有殘留,且相較於暴力搜索用戶態內存方法,精準的內核態殘留提取更為穩定。
- 安全人員工作中經常需要逆向一些網絡協議或者文件格式,舉個例子,只有逆向doc超級復雜的文件格式以及Word對其的解析過程,WPS才能打開doc文檔並對其進行處理。現在,只需要把doc文檔放到TimePlayer上打開,就能自動化的對doc文件格式進行分析。以前數人多年的分析工作,現在幾天時間就能搞定,還不需要人的參與。
- ***是個對抗的過程。為了對抗人工逆向,防護人員開發了各種各樣的工具和產品提升逆向難度,其中最有名的叫做“虛擬機殼”。這種殼本質上就是一個超級復雜的迷魂陣,讓逆向者不停的打轉,耗費他們的時間和精力。一般只有特別資深的專業人士,經過一定時間的積累,才能搞定這種復雜的對象。TimePlayer利用了獨特的技術,可以很輕松地化解這些迷魂陣,讓最初級的分析人員也能很快的了解程序的算法細節,甚至都不需要了解,拿來使用即可。“虛擬機殼”這種純工程化的障眼法,如果不結合一些理論上的難題,未來的天花板會很低。
以上的內容還只是TimePlayer能力的牛刀小試,更進階的功能由於保密的原因還不能分享,我們會在適當時機進行發布。
另外,說一下對未來***形式的方向性看法。隨著社會生活全面互聯網甚至物聯網化,需要分析的對象,無論是種類還是數量都呈現爆發性增長,指望有限的分析人員來覆蓋這些對象是不現實的,人海戰術將不能滿足要求,自動化、規模化是大勢所趨,也是能力能夠沈澱的必經之路。
阿裏安全的自動化逆向機器人TimePlayer究竟有多“變態”?