本文由 網易雲 發佈。安全
1月20日,「走進網易:移動測試與安全實踐」公開活動在杭州西湖區頤高創業大廈4F樓友會創業咖啡廳舉行。本次活動的議題聚焦在如何實現應用的高效開發、安全過檢、開發功耗降到最低等熱門話題。網絡
現場多位來自網易、華爲的技術專家分享了他們工做中的相關經驗和技術實踐。其中網易資深安全開發工程師朱星星帶來了主題爲《安卓App安全過檢實踐》的乾貨分享,他認爲工信部對移動APP應用安全過檢要求日益增多,這致使不少開發者會碰到上架被拒的尷尬。因此他建議技術開發者們在開發移動APP時,最應當心如下常見的容易被檢測方駁回10大的檢測項。app
網易資深安全開發工程師朱星星分享現場函數
1.程序代碼安全工具
「不少人可能認爲這一項技術含量並不大,其實這項在APP上線時,檢測方是有一些要求的」,朱星星認爲,在APP上線時,開發者最好準備相關的《法律聲明及隱私政策》、申請用戶權限的調用系統說明,以及標註使用怎麼樣的SDK收集用戶數據及收集用戶數據的用途,這些都是硬性要求。測試
2.程序代碼防禦加密
程序代碼防禦是檢測方判斷代碼保護基本強度的項目之一,這也是判斷APP開發者是否有安全開發意識的標準之一。業界最多見的程序代碼防禦有如下幾種——客戶端APP採用代碼混淆技術,增長可以防止第三方逆向工具進行逆向反編譯,使用加固、防篡改機制、防二次打包等技術。spa
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過檢前能夠提早在網易雲安全(易盾)自主過檢,提早發現問題解決問題,縮短安全過審週期。」
關於網易雲安全(易盾)
網易雲安全(易盾)是網易雲旗下安全雲服務,提供涵蓋內容安全、移動安全、業務安全和網絡安全、抗DDoS服務的一站式安全服務,已爲遊戲、電商、社交、金融數千家企業解決安全問題。
瞭解 網易雲 :
網易雲官網:https://www.163yun.com/
新用戶大禮包:https://www.163yun.com/gift
網易雲社區:https://sq.163yun.com/