加固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 應用加固解決方案,感興趣的朋友可以點選這裡免費試用。
IOS應用加固免費試用可點選這裡。
相關文章:
【推薦】 網易七魚 Android 高效能日誌寫入方案