SDK不加固會有哪些安全隱患
SDK不加固會存在哪些安全隱憂?
1.易被競品或惡意者窺視內部實作細節或內部呼叫流程,甚至有可能洩漏隱私資料
安卓平台SDK絕大部分都是Java語言寫,容易被反編譯。簡單的混淆可能會暴露內部實作細節,而SDK內部涉及隱私資料則更容易洩漏。如果這些細節揭示了關鍵技術的實現方法,那麼就等於洩漏了核心技術。
2.被惡意者透過字節碼注入等手段植入惡意廣告或惡意程式碼然後重打包發布
由於SDK的特殊性,不像App那樣存在簽名校驗邏輯,因此一旦惡意者在你的SDK中植入了一些惡意程式碼或惡意廣告然後重新發布的話,將很難察覺,嚴重影響開發廠商的品牌形象與口碑。
3.被破解者繞過關鍵邏輯造成經濟損失
如果SDK存在支付功能,被惡意者分析找到付費邏輯,恰巧涉及付費相關邏輯也未很好的做服務端校驗的話,一旦惡意者透過AOP手段去除這些付費邏輯,意味著將可免費使用付費服務。
4.SDK本身可能存在漏洞,易被惡意者利用
SDK開發者在開發中往往把開發重點聚焦在了功能的實現上,在安全性上一般不會太重視,因此很難保證自己開發的SDK不存在任何漏洞。因此一旦SDK出現一些安全漏洞,同時這些漏洞被惡意者知道進而利用,就如同埋下了一顆隨時可能引爆的地雷。 SDK開發廠商的口碑不僅會因資料及隱私安全受到威脅而受到影響,一旦出現問題還可能需要承擔經濟賠償責任。
如何解決
從上述安全隱患分析可以看出,問題的癥結在於惡意使用者可以輕鬆地取得SDK的實作邏輯。因此建議開發者做以下防護措施:
1.關鍵資料的修改必須透過服務端校驗:例如前面提到的付費相關邏輯,涉及餘額或支付的金額等資料的修改必須先透過服務端校驗,然後將結果同步到客戶端;
2.關鍵邏輯放到Native層實現:將Java層的一些關鍵邏輯轉移到JNI層用C/C 實現,提高反編譯門檻;
3.字串進行加密:程式碼中的字串,尤其是敏感資訊的字串必須加密,運行時解密。
但是做到了上面幾點還不夠,只能防住一般的開發者。我們辛苦開發的SDK可能會成為專業破解手中的砲灰,進而導致經濟損失。
因此建議接入第三方的安全服務,例如易盾的SDK加固服務。
易盾SDK加固介紹
在介紹易盾SDK加固之前,先介紹下目前市面上絕大部分開發者使用的混淆的方式-Proguard 。 Proguard是安卓平台使用最廣泛的混淆,透過抽象語法樹從語法層面處理,使得處理後的程式碼難以閱讀和理解。如下所示:
不過將類別名稱和方法名稱修改為一些無意義的隨機字串,例如“a,b,c”,雖然能夠提高破解者閱讀與理解成本,但是很顯然作用是極其有限的。對破解者而言,分析出程式碼的意圖只是時間的問題。
那麼易盾的SDK加固解決方案是什麼樣子呢?接下來為大家介紹:
1.易盾SDK加固VMP方案
#將待保護類別的方法進行抽空,並對抽取的指令加密處理,在運行時透過自訂虛擬機器執行,從而使得破解者無法獲得原始程式碼邏輯。
效果如下:
2.易盾SDK加固Java2c方案
#這個方案是將待保護類別的方法Native化,同時將原函數實作邏輯轉為Native層對應的C/C 程式碼,執行時直接執行對應的Native函數。效果如下:
加固前範例
加固後範例
從靜態分析角度看,和Proguard混淆相比,很明顯加固後的方法已Native化,實作邏輯在Java層已完全不可見。 Java層原函數邏輯轉換為JNI層的C/C 程式碼實現,同時會對產生的Native層SO進行加密,全方位提高破解難度。
(註:上圖為了更清楚的看到加固後的方法已經轉為對應Native層實現,未對生成的Native層SO進行加密,實際情況易盾SDK加固Java2c方案會對加固後生成的Native層SO進行加密)
以上是SDK不加固會有哪些安全隱患的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

用於build22523的新Windows11SDK透露,微軟正在為Windows11開發新的模糊效果。此效果稱為Tabbed,並且是對Acrylic和Mica的補充。 22523SDK中的新DWMWA_SYSTEMBACKDROP_TYPE、雲母、亞克力的公共Win32API及其奇怪的新「選項卡」混合:pic.twitter.com/dbsu7ZFiIi-一切都回來了(@StartIsBack)2021年12月15日可以在以下SDK的範例應用程式

掌握Java海康SDK二次開發的必備技巧引言:隨著資訊科技的快速發展,視訊監控系統在各領域得到了廣泛的應用。而作為國內領先的視訊監控解決方案提供商,海康威視的產品和技術一直在市場中佔有重要的地位。為了滿足不同專案的需求,海康威視提供了SDK供開發者進行二次開發。本文將介紹一些掌握Java海康SDK二次開發的必備技巧,並附上對應的程式碼範例。一、了解海康威視

WindowsAppSDK是一組工具和API,開發人員可以在其Windows應用程式中使用這些工具和API,以便在使用Windows10(版本1809及更高版本)和Windows11的各種裝置上提供「一致」的功能。了解它確實很重要它不會取代現有的應用程式類型,例如.NET或WindowsSDK,它只是提供一個統一的API工具集,可以用來補充您現有的應用程式。今天,微軟發布了具有許多新功能的WindowsAppSDK1.2版本。此版本的亮點可能是第三方開發人

sdk全名為“Software Development Kit”,中文意思是“軟體開發工具包”,是由硬體平台、作業系統(OS)或程式語言的製造商提供的一套工具。 SDK可協助軟體開發人員為特定的平台、系統或程式語言建立應用程式。一個基本的SDK通常由編譯器、偵錯器和應用程式介面(API)組成,但也可能包含其他內容,例如:文件、函式庫、執行時間/開發環境、測試/分析工具、網路協定等。

微信小程式PHPSDK的安裝及使用隨著行動互聯網的快速發展,微信小程式成為了越來越多企業開展業務、推廣產品的新方式。微信小程式PHPSDK則為開發者提供了方便快速的開發工具,可以大幅提高開發效率。本文將介紹微信小程式PHPSDK的安裝及使用。一、安裝SDK1.在GitHub上下載專案文件微信小程式PHPSDK是一個開源項目,開發者可以在GitHub上

linux中的sdk是一個包含了編譯器、偵錯器、函式庫檔案、頭檔等工具和資源的資料夾。 sdk是「software development kit」的縮寫,是軟體開發工具包的意思,是為開發人員提供的一個整合環境,用於開發和構建應用程序,特別是那些運行在Linux作業系統上的應用程式。

隨著互聯網的快速發展,大量的資料需要傳輸和處理,因此訊息系統作為資料傳輸和處理的經典應用之一成為了互聯網架構中不可或缺的一部分。 Kafka作為高效能、分散式、可伸縮、支援即時資料處理的訊息系統被廣泛地應用於企業資料架構中。在使用Kafka時,一個重要的問題是如何呼叫Kafka的API。開發團隊為此提供了多種語言的開源客戶端,而PHP實作的開源KafkaS

本文將提供關於 PHP 支付寶 SDK 的詳細安裝指南,幫助開發人員在幾個簡單的步驟中完成 SDK 的安裝。
