“走進網易:移動測試與安全實踐”公開活動在杭州西湖區頤高創業大廈4F樓友會創業咖啡廳舉行。本次活動的議題聚焦在如何實作應用的高效開發、安全過檢、開發功耗降到最低等熱門話題。
現場多位來自網易、華為的技術專家分享了他們工作中的相關經驗和技術實踐。其中網易資深安全開發工程師朱星星帶來了主題為《安卓App安全過檢實踐》的幹貨分享,他認為工信部對移動APP應用安全過檢要求日益增多,這導緻很多開發者會碰到上架被拒的尴尬。是以他建議技術開發者們在開發移動APP時,最應小心以下常見的容易被檢測方駁回10大的檢測項。
網易資深安全開發工程師朱星星分享現場
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過檢項,業内還有很多其他的檢測項。為避免被駁回的尴尬,開發者在APP過檢前可以提前在網易雲安全(易盾)自主過檢,提前發現問題解決問題,縮短安全過審周期。”
相關閱讀:大公司怎麼做Android代碼混淆的?
Android App的破解技術有哪些?如何防止反編譯?
關于網易易盾的加強保護
目前安卓App加強到底該如何做到防篡改?
網易雲安全(易盾)是網易雲旗下安全雲服務,提供涵蓋内容安全、移動安全、業務安全和網絡安全、抗DDoS服務的一站式安全服務,已為遊戲、電商、社交、金融數千家企業解決安全問題。安卓App逆向保護作為開發工作中的重要内容,一直是網易雲易盾提供的重要服務。可點選這裡免費試用。