一文讀懂加固apk的開發者是怎么想的


有人說加固會明顯拖慢啟動速度,同時造成運行卡頓,嚴重降低用戶體驗,而且加固是完全可以脫殼的,只需要pc配合進行斷點調試就能抓到解密后的dex文件,加固並沒有所說的那么安全。 但是為什么還有一大批開發者喜歡加固apk呢?

 

因為工信部對移動App應用安全過檢要求日益增多,不加固大都達不到工信部的要求,同時開發者加固App大都是為了防止以下10個檢測項出現問題,影響App上架。

 

1.程序代碼安全

“很多人可能認為這一項技術含量並不大,其實這項在App上線時,檢測方是有一些要求的”,網易資深安全開發工程師朱星星認為,在App上線時,開發者最好准備相關的《法律聲明及隱私政策》、申請用戶權限的調用系統說明,以及標注使用怎么樣的SDK收集用戶數據及收集用戶數據的用途,這些都是硬性要求。

2.程序代碼防護

程序代碼防護是檢測方判斷代碼保護基本強度的項目之一,這也是判斷App開發者是否有安全開發意識的標准之一。業界最常見的程序代碼防護有以下幾種——客戶端App采用代碼混淆技術,增加能夠防止第三方逆向工具進行逆向反編譯,使用加固、防篡改機制、防二次打包等技術。

3.密碼與安全策略

這一問題在金融類App非常常見,開發者往往需要考慮的是用戶在輸入賬號密碼時會不會被第三方記錄截屏。“我們在幫助客戶解決這一個問題時,建議客戶一定要有一個防鍵盤記錄SDK,這樣用戶每次打開鍵盤字幕排序是不一樣的,App也能更安全更容易過檢”,朱星星說。

4.權限與界面安全

在移動互聯網時代,黑客的攻擊方式越來越多樣化,偽造用戶登錄頁面竊取用戶信息就是其中一種。在App過檢測試時,檢測方會有提供同樣的虛假的登錄頁面來檢測App是否有防范意識,這就需要開發者適當的在App中給用戶一些警示信息,提示登錄或關鍵界面已被覆蓋的警示信息。

5.動態調試

動態調試技術在軟件逆向工程領域也是一個很熱門的概念,它是指破解者利用調試器跟蹤軟件的運行,尋求破解的途徑。朱星星表示:“面對破解者的動態調試,我們可以采取對App進行加固的方案,防止App被動態調試”。

6.SO注入

SO注入也是比較常見的黑客入侵手段,在安卓App過檢中是必測項。據朱星星介紹,一般來說有三個方案可以解決這一問題——修改linker中的dlopen函數,防止第三方SO加載;定時檢測應用加載的第三方so庫,如果發現是被注入的SO,則卸載加載的SO;對被測系統進行加固,防止被測系統被動態注入第三方SO。

7.內存數據保護

如何保護自己的程序不被其他程序讀取或改寫內存一直是技術開發者們需要解決的重要問題。在朱星星的分享中,他提到防內存被第三方程序讀寫。“我們監控/proc/pid/mem、/proc/tid/mem等文件的讀寫操作,當這些文件被第三方程序訪問時,觸發設置的回調函數,並配合防注入、防調試等方法,最終實現防內存修改。”

8.隱私與儲存數據

技術開發者的代碼文檔如果使用明文存儲,很容易出問題。“事實上,不管App有無其他問題,檢測方如果檢測到App里有明文存儲,則一定會被打回來”,朱星星在解釋該問題重要性時告誡開發者,在開發階段一定要注意xml、db文件是否存在明文存儲的問題。

9.日志信息泄露

在移動App的開發過程中,日志信息的安全是非常值得關注的問題。日志信息泄露,主要是防止打印的log容易被破解者作為分析的切入點,分析到App的執行邏輯等。除了靜態代碼不能出現log的調用之外,動態運行時也不能輸出日志信息。

10.通信與數據安全

在全球新一輪新技術革命的沖擊下,用戶的生活方式越來越依賴於線上應用,以致於通信數據正呈爆發式的增長。但令人擔憂的是,線上數據的大量聚集增加了數據泄密的可能,導致信息安全面臨威脅。為解決這一威脅,朱星星建議的做法是對敏感數據進行加密傳輸,增加加密信道的安全性檢測(包含中間人攻擊檢測等)HTTPS 通信協議等。

 

更多詳情請見:《網易雲易盾朱星星:最容易被駁回的10大App過檢項》

相關閱讀:大公司怎么做Android代碼混淆的?

Android App的破解技術有哪些?如何防止反編譯?

關於網易易盾的加固保護

當前安卓App加固到底該如何做到防篡改?

網易雲易盾提供Android 應用加固解決方案,感興趣的朋友可以點擊這里免費試用

IOS應用加固免費試用可點擊這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM