日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

腾讯专家教你如何保证应用开发安全

發布時間:2024/9/21 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 腾讯专家教你如何保证应用开发安全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

APP開發者在開發過程中會遇到各種各樣的安全問題,出現安全問題的原因多種多樣,安卓綠色聯盟為解決這些安全問題制定了統一的應用安全標準。

安全問題,可以按照不同的緯度進行歸納,一個是APP漏洞、系統的漏洞以及常見的服務器通信協議項的漏洞等;對于攻擊手段,可以分為本地攻擊、遠程攻擊或者是基于一些硬件設備的進場攻擊;對于攻擊的方法,可以植入一些惡意代碼,盜取你的隱私信息,比如常見的賬號密碼。常見的還有游戲以及微信紅包的外掛等等,這些都屬于移動安全的一些特征。

1、應用程序的基礎安全

在應用程序基礎安全方面有幾種問題:
第一種是Debug狀態被關閉,Debug是用來調試的一種開關,谷歌對Debug也做了一些升級,在發布狀態Debug要進行關閉,在一些非root手機上,擁有Debug開關也可以進行一些調試。調試就是黑客或者是惡意競爭者,去逆向你的應用程序,去發現應用程序中的漏洞或者是一些潛在的安全問題,是安全的一個入口點,所以我們要避免我們的應用程序要被這樣的一個逆向或者是動態調試。打開Debug開關我們可以通過USP進行動態調試,這種調試不是對抗調試的唯一方法,我們可以通過“從打包”或者是通過修改Mainfest文件進行從打包去達到類似的效果。


第二個是基礎屬性的backup配置,這個跟谷歌開始的系統策略有關系,之前backup存在一些系統漏洞,導致一些惡意的攻擊程序可以在不授權的情況下去APP進行一些備份,這些備份包括私有目錄下的一些文件,通過這些備份導致一些隱私信息泄露。

第三個是比較嚴重的問題,就是log的開關。在安卓的版本里面log的信息是普通的APP都會訪問到,后來安卓系統升級以后,log信息就無法被APP看到,現在我們分析的過程中發現很多APP的log信息沒有完全關掉,黑客在去進行分析的時候,log信息會大大降低黑客分析的難度,在關鍵函數的插裝打點,去輸入這些關鍵信息,就很容易獲得相應的邏輯。所以我們應盡可能在release版本把這些信息全部關掉。

第四個就是代碼混淆,初級的混淆比較常見,但是對于一些核心功能來說,簡單的混淆還是遠遠不夠的,就像現在應用的加固,就是為了保證核心的邏輯以及核心業務,避免被輕易逆向,比如一些協議以及安全漏洞,我們除了要做一些簡單混淆以外還要做一些調試的檢測,對一些核心的代碼做一些核心的處理,來提升逆向分析的強度。

案例分析:
情況一:有一些APP在log里面直接把你登錄的賬號密碼或者其他一些關鍵信息直接輸出來了,這種東西給人的感覺安全性非常低。還有就是通過log信息看到很多業務邏輯。

注意事項:
1、關閉Debug模式
2、關閉Allow Backup模式
3、刪除Log代碼
4、代碼進行混淆
5、代碼進行加固和反調試

2、安卓開發里面常用的四大組件安全

對于四個組件,最核心的問題就是組件的導出屬性未關閉以及有效的控制。導出屬性對于開發來講,一個組件或者activity,在沒有關閉導出屬性的時候,外部開發者很容易可以直接調到,尤其是遠程的sevice;對于一些重要的、功能性APP,導出的sevice可能會導致一些嚴重的問題。

還有一個問題就是導出的組件沒有做有效的參數校驗,這經常會導致應用crash,另外一種可以通過構造異常數據可以進行一些代碼注入,我們除了要做一個導出的屬性判斷之外,我們還要對傳入的參數做一個嚴格的校驗,為了避免應用crash,或者是導出的出口去的代碼做一些惡意輸入。

另外一個就是組件的隱式調用,直接通過組件的隱式調用系統會有相應的提示,對于一些系統應用來說,在開發的過程中盡可能避免使用隱式調用組件,通過明確設定包名的方式避免隱式調用的使用。

隱式調用會導致一些惡意程序的調用,通過隱式調用的方式創建activity或者一個service屬性,會導致調用惡意sevice的后果。

最后一個就是Broadcast對外廣播以及接受外部廣播的組件,安卓系統本身的廣播組件只是做一個簡單的消息分發,在手機使用的過程中,通暢會用廣播來傳遞一些關鍵數據,比如說登錄的賬號密碼或者是需傳遞的隱私數據,對于廣播的使用相對于activity以及sevice來說更不規則,對于系統使用的內部廣播以及需要在廣播上添加的權限等行為都需要進行規范。

通過廣播組件可能會觸發APP里面一些不正常的流程或者導致廣播中間傳遞的信息泄露。

注意事項:

1、除非必要,不要對外導出任何組件,尤其是默認導出的;
2、對外導出的組件,已經要對輸入輸出的參數進行判斷;
3、動態注冊的廣播要注意對外還是對外(LocalBroadcastManager);
4、調用外部組件盡量不適用隱式調用;
5、不指定taskAffinity和lunchMode,可能導致Intent泄露;
6、對外導出的service,要嚴格的判斷接入者身份;
7、組件使用權限限制的時候要使用高權限;

3、文件操作安全

文件的操作一般分私有的、public以及全局可讀寫的三個屬性,在做代碼處理的時候由于對文件屬性的不注意導致文件出現權限問題,從而導致一些隱私泄露以及可外部修改文件造成運行異常。

重要的文件存放在SD卡上,對于放在SD卡上的數據需要做一個嚴格的判斷,進行相應的分級與校驗。如果未對SD存放的數據進行有效區分會導致數據動態加載的過程中被惡意竄改。

注意事項:
1、私有目錄下的文件操作的權限
2、重要數據不要放到SD卡上
3、重要的數據需要加密保存

4、瀏覽器使用安全

APP常用的瀏覽器主要是webview,瀏覽器的安全問題主要是系統提供的webview本身的一些安全性導致的,這里面常見的問題有:
FILE域未做限制導致執行任意代碼,如果不去做FILE域的檢測,當用Webview加載一些本地的靜態頁面,加載了一些有惡意代碼的JS文件,可能會通過FILE域加載databases下面的一些私有文件,導致應用程序隱私數據泄露。

Http域跨File域未做限制,通過JS反調Java層的一些代碼,導致應用程序隱私數據的泄露。

AddJavaScriptInterface 系統漏洞會導致遠程任意代碼執行

AddJavaScriptInterface 系統漏洞, 默認的JS接口,導致遠程任意代碼的執行;

FILE域處理符號鏈接同源策略繞過漏洞、XSS 注入攻擊導致了隱私的泄露。

注意事項:
1、盡量不要使用內置瀏覽器,漏洞比較多;
2、不要開啟JavaScript屬性;
3、過濾File域操作;
4、關閉瀏覽器對本地文件的操作;

5、聯網安全

使用http協議傳送隱私數據會導致數據可以被輕易攔截修改。

使用https未做證書校驗導致黑客通過中間人攻擊(MITM),替換用戶訪問的目標地址,使得https失去校驗功能。

中間人攻擊ARP(Address Resolution Protocol,地址解析協議)是一個位于TCP/IP協議棧中的網絡層,負責將某個IP地址解析成對應的MAC地址,常見的中間人攻擊包括wifi破解,免費wifi,公共wifi等網絡環境的寬松,還有就是各種工具開源代碼泛濫(dSploit)。

注意事項:
1、盡量不要使用明文傳輸重要數據;
2、TrustManager/HostnameVerifier要正確設置;
3、路由器安全監測;

6、數據庫操作安全

數據庫明文存儲重要數據會導致數據庫中重要數據的泄露。

數據庫文件讀寫權限的錯誤也會導致數據庫重要數據的泄露。

數據庫接口不當導致SQL注入將導致數據庫重要數據的泄露。

注意事項:
1、數據庫文件的存儲在私有目錄下;
2、重要的數據庫內容需要加密保存;
3、數據庫對外接口的安全;
4、數據庫防注入以及參數校驗;

7、加密安全

常用加密算法:
1、對稱加密: AES/DES/RC4/3DES
2、非對稱加密:RSA/ECC
3、基于口令加密:PBE
4、摘要/哈希/散列函數: MD5/SHA1

加密算法的選擇:
特別重要的用戶數據加解密/簽名驗證 PBE
本地加解密/簽名驗證 對稱加密
客戶端/服務端通信加解密/簽名驗證 非對稱加密

注意事項:
1、當指定的加密算法時顯式指定加密模式和填充方式;
2、使用健壯的算法;
3、當使用基于密碼的加密算法時不能將密碼存儲在設備中;
4、使用密碼生成key時記得加鹽;
5、當使用密碼生成key時指定哈希迭代次數;
6、強制增加密碼強度;

8、如何提高APP安全性

1、進行相關的安全審計或者安全開發培訓,提高開發者安全意識;
2、注意eclipse中的warning;
3、使用外部審計工具進行安全掃描,或者引入其他的安全服務;
4、關注烏云等漏洞論壇中白帽子發現的問題;
5、業務安全以及相應的邏輯檢測;

總結

以上是生活随笔為你收集整理的腾讯专家教你如何保证应用开发安全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。