RSA 2019丨NSA內部開源反彙編工具集Ghidra
NSA 釋出了內部開源逆向工程工具 Ghidra ,可用於從應用程式中搜查安全漏洞和其它問題。
劇透預警:
它受Apache 2.0許可,現在已可下載,並要求Java執行時。NSA保證稱並未在其中安裝任何後門。
著名的“聖誕節燈光黑客”兼NSA局長網路安全顧問Rob Joyce在RSA大會上發表演講,披露了這款程式碼分析軟體。NSA希望該開原始碼助力安全軟體研究工作,並向與會者確保其中並不暗藏任何不可告人的伎倆。
他宣佈稱,“Ghidra中並不存在任何後門。對於尋找拆解這些東西的人來說,這是你想要釋出含有後門的東西的最後一個地方。”
然而,英國安全廠商Hacker House的研究員Matthew “HackerFantastic”Hickey表示,這個專案中存在一個奇怪的地方。當你以除錯模式執行該程式碼時,它會向本地網路開放埠18001,從能夠連線的機器上執行遠端命令。除錯模式預設並未啟用,儘管這是已提供的功能。
不過不要失去理智。如果你打算改進或修正問題的話,要注意這一點,要在啟動除錯的情況下啟動它。因此這個問題更像是一個bug,而不是後門,可通過更改啟動程式shell指令碼中斷,這樣該軟體僅監聽主機的除錯連線,而不是通過網路監聽任何計算機。
NSA的一名發言人表示,這個開放的埠允許團隊進行協作並和共享資訊以及同時在網路上互相提醒。然而,Hickey表示該功能是由另外一個網路埠提供的。
Hickey表示,“這個共享的專案使用了不同的埠13100,因此它並非同一個功能。他們犯了一個錯誤,在為Ghidra啟用除錯模式時使用了 * 而非本地主機。”
細節和關鍵功能
Joyce在演講中表示,Ghidra是由NSA內部開發的,目的是為了拆解包括惡意軟體在內的軟體,並且找出潛伏在可執行二進位制檔案中的內容。網路間諜通過使用這類工具來查詢產品中的安全弱點以攻擊情報目標。
該專案由120萬行程式碼組成,旨在逆向編譯器程序、將可執行程式碼反編譯為彙編列表,最後轉換為近似的C程式碼。它還有助於通過函式繪製控制流,檢查符號和引用,識別變數、資料和其它資訊,等等。如果你習慣使用類似的逆向工程工具如IDA、Hopper、Radare、Capstone、Snowman等,那麼你會對它非常熟悉。
該平臺獨立於處理器,能夠分析x86、Arm、PowerPC、MIPS、Sparc32/64和其它處理器的程式碼,並且能夠在Windows、macOS和Linux上執行。雖然是用Java構建的,但該程式碼也能處理基於Python的外掛以及用Java編寫的外掛,Joyce表示這樣做的原因是NSA分析師不喜歡Java因此添加了Python支援。
使用者能夠在具有或沒有圖形使用者介面的情況下使用Ghidra,並可編寫指令碼。如上所述,使用者不僅能夠使用自己的註釋來註釋程式碼,還可以通過網路協作從其它團隊成員那裡獲取註釋。
對於新使用者而言,NSA還提供了大量的幫助文件。Joyce表示他希望社群能夠新增更多的功能和指令碼並進行分享,因為NSA想要使其成為廣泛使用的工具。
他表示,Ghidra開源了,但這並非結果。NSA已在GitHub上建立了儲存庫,並表示接受貢獻。
Joyce承諾將在未來發布一款整合的偵錯程式、一款強大的模擬器以及改進後的分析工具。他表示這些工作花的是美國納稅人的錢,一旦納稅人能夠趕上內部工具的速度,那麼它可能能夠幫助公民進入NSA。
不過,話說回來,一直想問個問題:NSA到底為什麼會向全球所有人免費開放這款工具?或許NSA的對手具有更好的或類似的工具,也有可能NSA內部已經轉向了更加複雜的工具集,正好是公開發布Ghidra工具集的好時機。
工具集下載地址: https://ghidra-sre.org/
GitHub: https://github.com/NationalSecurityAgency/ghidra
原文地址: https://www.theregister.co.uk/2019/03/06/nsa_ghidra_joyce/
*本文作者:360程式碼衛士,轉載請註明來自FreeBuf.COM