《逆向工程核心原理》作者李承遠:攻擊越強,防禦也會越強(圖靈訪談)
李承遠是韓國逆向工程技術專家,目前負責帶領AhnLab安卓惡意程式碼分析團隊。他以前是C/C++開發工程師,後來加入安全公司並從事惡意程式碼分析工作。如今,李承遠在安全公司AhnLab從事惡意程式碼分析已有十年,在此期間他分析了大量的惡意程式碼,並開發出了對惡意程式碼進行自動分類多種程式。他帶領的安卓惡意程式碼分析團隊,從全球認證企業獲得了“世界最高診斷率紀錄”。2009年起,他開始運營逆向分析技術專業學習部落格。從世界各地部落格訪客的留言中,他燃起了寫作《逆向工程核心原理》這本書的想法。
您當初是如何從C++工程師轉行加入安全公司的, 是什麼樣的機會呢?
以前單位的前輩向安全公司推薦了我,作為開發人員,我對惡意程式碼分析感到十分新奇有趣,所以跳槽了。
非安全領域的程式設計師怎麼才能邁進安全領域的大門?
如果您希望在逆向工程領域就業,最好通過網路社群交流等活動,與觀點類似的人進行溝通。因為進入新領域的時候,最重要的就是獲取多種資訊。其實要想成為逆向工程師,也不一定非要從開發人員做起。
逆向工程所需要的知識很綜合,您是否考慮在每章附上一些其他的學習資料供讀者選擇?作為《逆向工程核心原理》的補充,您有什麼其他的書籍或學習材料推薦嗎?
我本人從兩本書中獲得了很大幫助,它們都十分有助於深入理解Windows作業系統。
- Windows Via C/C++, Jeffrey Richter / Christophe Nasarre | Microsoft Press 《Windows核心程式設計》,清華大學出版社
- Windows Internals, Mark Russinovich / David A Solomon / Alex Ionescu | Microsoft Press 《深入解析Windows作業系統》,人民郵電出版社
移動安全得到越來越多人的重視,關於Android安全軟體,您有什麼推薦的學習資料和書籍嗎?
我目前還沒有看到什麼安卓方面的書值得推薦,不過建議各位可以參考developer.android.com上的官方資料,嘗試分析原始碼。
許多Android安全軟體不斷去破解Android本身的安全機制,以便使用更強大的功能支援其工作,您是如何看待這種自相矛盾的情況呢?
眾多安卓手機使用者都先rooting後使用,在這種rooting環境下,惡意軟體會通過root許可權進行更隱蔽而強烈的攻擊,而安全軟體又不得不通過相同的root許可權進行防禦。韓國的rooting使用者比較少,還不算什麼大問題,但在rooting使用者相對較多的中國,惡意軟體與安全軟體的拼殺會以何種方式進行,我將一直保持高度關注。
現在商業的虛擬機器加密也越來越常見了,效率損失的不低,但是加密強度確實非常高,隨機性也強,逆向工程技術是不是遇到瓶頸了?
您是說“逆向分析技術已經停滯,不再發展”了嗎?也沒有那麼絕對。攻擊越強,防禦也會越強。人們一定會針對新的攻擊方法開發出新的防禦方法,一切只是時間問題。
對於現在不斷湧出的新的指令碼語言,指令碼程式也可能被感染,您覺得這樣的檔案檢測惡意軟體容易嗎?
現在也有很多指令碼病毒格式。指令碼檔案越多、安裝到使用者PC的越多,指令碼病毒也就越多。指令碼病毒的檢測就像其製作一樣容易。
各種新的程式語言,他們可能用自己的庫對API進行封裝,對這樣的程式逆向或者檢測有什麼好的思路嗎?
可以用常規逆向方法,但實際並不容易。如果開發了適合該語言的專用逆向分析工具,就完全可以保質保量地進行逆向分析,但開發新工具的過程要耗費大量時間。
逆向工程是一把雙刃劍,既可以檢測分析病毒,也可以用來破解商業軟體,對於這種情況你怎麼看?
安全技術需要很高的倫理意識,逆向工程師靈活運用自己掌握的技術,就能作為安全方面的專家為社會做貢獻;如果惡意使用,將自己視作惡意程式碼編寫者,就會為他人帶來損失,所以我才說它是雙刃劍。
利用逆向工程可以分析惡意程式碼、檢測蠕蟲、反病毒,但技術人員也可以利用逆向工程,來對某款防毒軟體檢測病毒的行為進行反-反病毒研究,從而躲過防毒軟體的檢測。像這種博弈可能未來很長一段時間內都會繼續存在。關於未來檢測惡意軟體的方法,您有什麼好的想法嗎?
惡意程式碼編寫者一直試圖使防毒產品無效,安全專家又為了避免這種行為而開發反-反防毒技術。這就是安全領域從業人員無法擺脫的宿命。
這種情況下,人們引入了檢測惡意軟體的多種方法之一——Clean OS,這是一種White List分類方法。它使企業PC中只能安裝使用公司規定的軟體,其他所有執行的軟體都被診斷為Risk,並從執行之初就進行攔截。雖然這個方法很難適用於個人PC,但的確值得企業引進。
更多精彩,加入圖靈訪談微信!
相關文章
- 淺談DDos攻擊與防禦
- XXE攻擊攻擊原理是什麼?如何防禦XXE攻擊?
- DDOS攻擊原理,種類及其防禦
- Akamai淺談網路攻擊的防禦AI
- CC攻擊的原理是什麼?如何防禦CC攻擊?
- 能力陷阱:能力越強,越容易失敗
- 當軟體更改的成本代價越來越低,你的產品就會越來越強!!!
- iOS逆向(10)-越獄!越獄!遠端連線登入手機iOS
- C# 中的 is 真的是越來越強大,越來越語義化C#
- CSRF(Cross Site Request Forgery)攻擊原理和防禦ROS
- Java HTTP Host 頭攻擊原理以及如何防禦JavaHTTP
- DDoS 攻擊與防禦:從原理到實踐
- CSRF 攻擊與防禦
- WEB攻擊與防禦Web
- CSRF攻擊與防禦
- 如何防範社會工程攻擊?
- CC攻擊原理是什麼?網站被CC攻擊如何防禦?網站
- CC攻擊的原理是什麼?防禦CC攻擊的方法有哪些?
- 如何有效防禦DDoS攻擊和CC攻擊?
- DDoS攻擊、CC攻擊的攻擊方式和防禦方法
- CSS keylogger:攻擊與防禦CSS
- 【知識科普】高防伺服器防禦CC攻擊的原理伺服器
- 逆向工程核心原理(1)逆向基礎
- 什麼是SSRF攻擊?如何防禦SSRF攻擊?
- 什麼是CSRF攻擊?如何防禦CSRF攻擊?
- DDoS攻擊原理是什麼?防禦措施都有哪些呢?
- 兩會代表:加強防範勒索軟體攻擊,提升國家網路空間安全防禦能力
- 如何緩解BOT攻擊?分享靈活準確的防禦之道
- 網站被攻擊如何防禦網站
- cc攻擊防禦解決方法
- XXE攻擊是什麼?如何有效防禦XXE攻擊?
- iOS圖片瀏覽器(功能強大/效能優越)iOS瀏覽器
- 《自然·代謝》:氣味想象力越強,人越容易胖?
- 高防伺服器主要防禦的攻擊伺服器
- 停止僥倖心理!中小企業越來越容易受到勒索軟體攻擊
- 跨域攻擊分析和防禦(中)跨域
- Jenkins如何使用CrumbIssuer防禦CSRF攻擊Jenkins
- 伺服器如何防禦CC攻擊伺服器
- DevOps 團隊如何防禦 API 攻擊devAPI