国产成人无码精品一区二区三区-久久国产乱子伦精品女免费-国产在线午夜不卡精品-2020国产成人精品视频99久久

在線客服

服務熱線

聯系我們:

029-82255510

關注微信

返回頂部

全國服務熱線

029-82255510

您的位置:首頁 > 解決方案 > 克服Java代碼篡改、逆向工程和盜竊漏洞

克服Java代碼篡改、逆向工程和盜竊漏洞

如今,越來越多的開發人員選擇Java平臺作為首選的開源開發環境,通過這種平臺可以直接使用可公開獲得的.class文件格式和簡單的指令集。使用開放源碼方法有許多優點,但這樣編寫的代碼對于窺探是完全透明的。對于已開發軟件中經過多年時間和投資形成的公司知識產權(IP),其屏障因此變得公開了。

Java開放源碼風險和弱點 

  • JVM是免費的 - 黑客可以使用商業反匯編程序查看代碼,弄清JVM的工作方式 - 代碼變得完全透明 

  • Java .class是可公開獲取的 - 黑客可使用簡單的可用工具處理、修改或轉換.class文件

  • 更少的本機代碼指令 - 黑客現在使用更少的指令(200而不是400),可以更快地分析代碼以進行逆向工程

  • 更好控制 - 黑客不需要深入到特定的硬件級別,可以更容易地查看和分析數據

執行摘要

由于具有平臺獨立性,Java環境越來越受到開發人員的歡迎。然而,Java的開源代碼、可公開獲取的.class文件格式和簡單的指令集使其暴露于窺探和敵對分析之下。隨著各機構將它們的商業應用程序轉向Java技術,其關鍵知識產權變得易于遭受逆向工程、篡改和盜竊。目前,源代碼和字節碼級別的.class文件加密和混淆是開發人員用于阻止逆向工程的兩個主要措施,但漏洞仍然存在。

本內容探討了Java代碼漏洞的性質,現有解決方案的局限性,以及結合混淆與加密的Java代碼全面封裝如何成為保護關鍵算法和其它知識產權的理想解決方案。

Java應用程序正變得越來越普遍

如今,全世界的IT公司都在一定程度上接受了Java?,F在有無數的產品使用Java編寫并用于Java平臺,而不是Windows或UNIX平臺。與其它編程語言相比,Java最重要的優點是平臺獨立性 - 這意味著它幾乎可以在任何體系結構和操作系統上運行。Java并不將應用程序綁定到特定的硬件體系結構(如Intel或PowerPC),而是對所有體系結構都使用單一的代碼庫。軟件開發人員先以使用預定義Java API軟件包的Java語言編寫程序, 然后使用Java編譯器來編譯這些程序。其成果是可在Java虛擬機(JVM)上執行的已編譯字節碼,Java虛擬機是用于執行Java程序的軟件環境(如Java Runtime Environment)。用戶僅在擁有JVM時才能運行Java程序;但許多平臺都有JVM,這使得Java成為一種高度可移植語言。

Java極易遭受逆向工程

雖然能夠“編寫一次,隨處運行”(Write Once, Run Anywhere)是一個巨大的優勢,但這種環境的架構方式使其遠比本機應用程序更容易被黑客進行逆向工程。這意味著開發人員面臨著失去知識產權的非常真實的危險?;趹贸绦虻奶摂M機比本機應用程序更容易逆向工程的原因有很多:

JVM是開源的

Sun已經免費提供JVM的源代碼。這使得黑客只需查看代碼即可弄清虛擬機的工作方式。

Java .class文件格式是可公開獲取的

如前所述,Java源代碼被編譯成字節碼,而字節碼存儲在Java .class文件中。Java .class文件格式的規范是可公開獲取的,因此有技術背景的任何人都能容易地編寫可以處理、修改或轉換.class文件的工具。

JVM是軟件,而不是硬件

與需要理解特定處理器的專家使用的標準編程語言不同,JVM是一個應用程序,它如同微處理器一樣運作,并使用操作系統和計算機硬件提供的內置功能。由于黑客不必深入到硬件級別,因此更容易取得對JVM的完全控制。

因此,例如在使用標準本機系統開發語言進行調試時,暫停處理器極為困難,需要具備處理器、調試功能及可用環調試器的專家知識。但是,由于JVM運行環境的源代碼是可公開獲取的,因此開發人員可以輕松地建立自己的虛擬機來完全控制虛擬處理器的各個方面。這樣可以容易地分析運行環境中運行的每個應用程序。

Java的指令比本機代碼少

然而,JVM代碼易于進行反向工程的另一個原因是它具有比本地應用程序更少的指令。這是出于性能考慮。JVM的使用在應用程序和本機處理器之間增加了一個軟件層,這會對性能產生負面影響。雖然現代處理器不斷提高的執行速度最終將緩解這一問題,但這一問題仍然很明顯。虛擬機開發人員提高執行速度的一種方法是使用比本機處理器匯編程序更小的字節碼指令集。本機應用程序可能包含多達400條指令,而Java應用程序通常使用不超過200條的指令。更少的指令意味著黑客可以更快地分析代碼以進行逆向工程。

這些特性使得虛擬機遠比其它類型的應用程序更容易遭受逆向工程攻擊。

第三方反匯編程序增加了漏洞

不僅是JVM本身容易遭受逆向工程攻擊,商業和免費的Java字節碼反匯編程序也越來越多,從而進一步簡化了代碼逆向工程的過程。

IDA和Eclipse字節碼插件是眾多Java字節碼反匯編程序中的兩種。作為商業產品,IDA是一種普遍的反匯編程序,可用于許多不同的處理器,包括80x86和MIPS。Eclipse字節碼插件是免費軟件。它能夠反編譯Java .class文件的字節碼并以適當的順序顯示所有操作碼指令。

盡管這些產品不大可能從字節碼完美地恢復原始代碼,但它們恢復的源代碼將等同于原始代碼,并且比字節碼更具可讀性。一旦恢復了源代碼,攻擊者可以容易地刪除部分代碼并將其非法地用于競爭對手的應用程序中,或在.class文件中定位打補丁。

為什么板載措施不足以防止逆向工程

大多數虛擬機都包含一些使逆向工程復雜化的功能。Java允許用戶在JAR存檔中提供的每個類上設置一個數字證書,以確保原始文件沒有被更改。雖然這樣做并無害處,但該功能相當容易清除,并且僅針對靜態補丁方法提供保護,而靜態補丁只是攻擊場景中的一小部分。而且,這種方法并不能針對運行時應用于內存的補丁提供保護。

Java還通過虛擬機執行字節碼驗證器,該驗證器在執行通過的字節碼之前對其進行自動分析。這可以防止執行“奇怪”的代碼,也使字節碼注入變得更加困難。

然而,盡管這些措施給攻擊者造成了困難,但對于充分保護知識產權還遠遠不夠。

防止逆向工程攻擊

開發人員通常用以防止.class文件靜態分析和字節碼反匯編的一種方法是封裝,這種方法通過應用加密/解密完整文件來防止對類文件的分析。通過封裝,開發人員將受保護文件的原始加載器更換為處理加密/解密的自定義加載器。加密使用將.class文件從標準Java .class格式更改為僅“密鑰”所有者可讀格式的算法來防止對這些文件的分析。然而,.class文件的字節碼在一個內存位置中仍保持可讀,在系統加載器嘗試加載該類之前的時刻,通??蓮脑撐恢迷L問字節碼。如果黑客能夠找到那個內存位置,就可以訪問原始狀態的該類。

防止黑客攻擊該內存位置需要第二種技術,稱為混淆?;煜僧a生一個更加復雜、難于理解并且與原始代碼具有相同行為方式的代碼版本。下面是一個簡單的80x86匯編程序代碼段,取自Windows二進制代碼。

Sentinel:一種更簡便的封裝方式

SENTINEL LDK Envelope是一個自動文件包裝器,通過文件加密和本機代碼混淆提供針對軟件逆向工程的強有力保護。這確保了嵌入軟件中的算法、商業秘密和專業知識對于黑客是安全的。SENTINEL LDK通過將Java應用程序重新關聯到硬件平臺,提供了高度安全的知識產權保護。這迫使攻擊者在破解受保護的Java應用程序時不僅需要對Java應用程序進行逆向工程,還需要對本機代碼進行逆向工程。因此,攻擊者必須更加富有經驗才能破解已封裝的Java代碼。

SENTINEL LDK為受保護應用程序與保護密鑰之間的通信提供安全通道,從而消除了中間人攻擊。Java Envelope使用這種能力來防止黑客通過截取通信訪問保護密鑰發回的數據。

由于SENTINEL LDK是按請求在運行時解密文件,而不是一次將所有.class文件加載到虛擬機,因此可以防止黑客重建整個應用程序。

Sentinel Envelope 特性和優點

  • 文件自動包裝器 - 通過文件加密和本機代碼混淆提供強有力的保護來防止軟件逆向工程

  • 將應用程序重新關聯到硬件 - 應用程序通過保護密鑰與與硬件緊密結合

  • 安全通信通道 - SENTINEL HASP為受保護應用程序與保護密鑰之間的通信提供安全通道,從而消除了中間人攻擊。Java Envelope使用這種能力來防止黑客通過截取通信訪問保護密鑰發回的數據。

  • 運行時解密 - 由于SENTINEL HASP是按請求在運行時解密文件,而不是一次將所有.class文件加載到虛擬機,因此可以防止黑客重建整個應用程序。

結論

雖然JVM為開發人員提供了編寫一次應用程序即可在幾乎任何平臺上運行的能力,但這種體系結構具有使黑客易于對源代碼進行逆向工程、篡改或盜竊的重大缺陷。眾多的商業反匯編程序進一步簡化了這一過程。而且雖然Java確實提供了一些安全措施,但包括的這些能力都不足以阻止攻擊者。加密和混淆等技術通常用于減緩攻擊,但仍然留有漏洞。封裝將加密與本機代碼混淆相結合來提供目前最強的保護,可以保護知識產權。通過使用SENTINEL HASP解決方案,您可以獲得封裝的諸多好處,而不必花費時間和精力來開發新的解決方案。

Sentinel軟件貨幣化解決方案

SafeNet在為全世界的軟件和技術供應商提供創新和可靠的軟件許可、授權和管理解決方案方面擁有25年的行業經驗。我們的Sentinel?軟件貨幣化解決方案系列易于集成和使用,具有創新性并注重功能,對于任何規模、技術要求或組織結構的任何機構,都能滿足其獨特的許可證啟用、執行和管理要求??蛻糁挥惺褂肧afeNet的產品才能夠應對所有的反盜版、知識產權保護、許可證啟用和許可證管理挑戰,同時提高公司盈利能力、改進內部運營、維持競爭優勢并鞏固與客戶及最終用戶的關系。SafeNet在適應新的需求和引入新技術以應對不斷變化的市場環境方面具有豐富的成功經驗,我們在全球的25,000多家客戶已經認識到選擇Sentinel就意味著選擇了在現在和未來自由開展業務的主動權。

  

  查看更多>>