劉艷 江蘇蘇測(cè)軟件檢測(cè)技術(shù)有限公司
移動(dòng)應(yīng)用軟件安全性測(cè)試研究
劉艷 江蘇蘇測(cè)軟件檢測(cè)技術(shù)有限公司
隨著智能終端的快速崛起,移動(dòng)應(yīng)用軟件呈現(xiàn)爆發(fā)式增長(zhǎng),尤其在社交、移動(dòng)支付、移動(dòng)電子商務(wù)和移動(dòng)辦公等領(lǐng)域的應(yīng)用量相當(dāng)大。伴隨著移動(dòng)應(yīng)用的快速增長(zhǎng),安全問題也日益凸顯。本文分析了移動(dòng)應(yīng)用軟件存在的安全風(fēng)險(xiǎn),從移動(dòng)應(yīng)用軟件安全性測(cè)試策略及測(cè)試重點(diǎn)兩方面進(jìn)行闡述,為移動(dòng)應(yīng)用軟件的安全測(cè)評(píng)提供一定的借鑒。
移動(dòng)應(yīng)用軟件 安全 測(cè)試
隨著4G手機(jī)、平板電腦等移動(dòng)智能終端的迅速發(fā)展與普及,移動(dòng)智能終端正逐漸發(fā)展成為一個(gè)巨大的新興市場(chǎng),逐步改變著人類的生活習(xí)慣和傳統(tǒng)觀念,為個(gè)人和企業(yè)帶來了便利和效率,其安全問題也日益凸顯。一方面,互聯(lián)網(wǎng)上原有的惡意程序傳播、遠(yuǎn)程控制、網(wǎng)絡(luò)攻擊等傳統(tǒng)網(wǎng)絡(luò)安全威脅向移動(dòng)互聯(lián)網(wǎng)快速蔓延,導(dǎo)致智能終端面臨著安全威脅。另一方面,智能終端和用戶個(gè)人利益關(guān)系更加密切,惡意吸費(fèi)、用戶信息竊取、誘騙欺詐也隨之出現(xiàn)。
因此,對(duì)移動(dòng)應(yīng)用軟件的安全測(cè)試方法進(jìn)行研究,是國家信息化發(fā)展戰(zhàn)略的重要組成部分,也是用戶放心體驗(yàn)新技術(shù)的技術(shù)保障。
移動(dòng)應(yīng)用風(fēng)險(xiǎn)一般來說是代碼編寫過程中出現(xiàn)的安全漏洞、編碼隱患、甚至業(yè)務(wù)邏輯上的缺陷。移動(dòng)應(yīng)用風(fēng)險(xiǎn)往往帶來很多危害,諸如應(yīng)用內(nèi)信息泄露、遠(yuǎn)程代碼執(zhí)行、本地拒絕服務(wù)等多種安全問題,嚴(yán)重的可能影響應(yīng)用正常運(yùn)行,更為嚴(yán)重的是導(dǎo)致系統(tǒng)的權(quán)限淪陷,終端被控制監(jiān)聽。結(jié)合移動(dòng)應(yīng)用軟件自身特點(diǎn),主要存在以下風(fēng)險(xiǎn):
(1)權(quán)限濫用:開放過多或權(quán)限限制不嚴(yán)格,導(dǎo)致攻擊者可以通過直接或間接調(diào)用的方式達(dá)到攻擊效果。
(2)https驗(yàn)證類漏洞:該漏洞會(huì)導(dǎo)致中間人攻擊,通過移動(dòng)應(yīng)用軟件的流量、界面進(jìn)行截取或篡改。
(3)Log敏感信息泄露:用戶的敏感信息被存儲(chǔ)在操作系統(tǒng)中,易被其他程序非法讀取。
(4)WebView遠(yuǎn)程代碼執(zhí)行:攻擊者可以向頁面植入Javascript,通過反射在客戶端中執(zhí)行任意惡意代碼。
(5)sql注入漏洞:該漏洞可能導(dǎo)致用戶數(shù)據(jù)庫中的信息泄露或者篡改。
根據(jù)移動(dòng)智能終端應(yīng)用軟件存在的風(fēng)險(xiǎn)特點(diǎn),主要從安裝與卸載的安全性、手機(jī)應(yīng)用程序權(quán)限管理、數(shù)據(jù)安全性、通訊安全性和人機(jī)接口安全性等方面進(jìn)行測(cè)試和驗(yàn)證,具體測(cè)試策略可包括:
(1)驗(yàn)證被測(cè)試收集應(yīng)用軟件是否滿足預(yù)定的安全準(zhǔn)則和要求,檢查軟件的防止災(zāi)難故障能力。
(2)硬件和軟件在各種故障模式下的測(cè)試,對(duì)硬件和軟件在降級(jí)配置時(shí)的處理和保護(hù)能力測(cè)試。
(3)各種保護(hù)能力測(cè)試,包括容錯(cuò)操作能力測(cè)試、操作數(shù)據(jù)安全性保護(hù)測(cè)試、通訊數(shù)據(jù)安全性保護(hù)測(cè)試、對(duì)重要數(shù)據(jù)抗非法訪問能力測(cè)試、權(quán)限管理保護(hù)測(cè)試。
(4)多系統(tǒng)、多平臺(tái)上運(yùn)行的軟件人機(jī)接口的安全性測(cè)試。
(5)測(cè)試過程中嚴(yán)格執(zhí)行JAVA安全域的劃分, 并進(jìn)行相應(yīng)的簽名或測(cè)試。
(6)注重安裝測(cè)試的重要性,嚴(yán)格按照安裝及卸載的安全性要求,設(shè)計(jì)測(cè)試用例。
反編譯:從保護(hù)公司的知識(shí)產(chǎn)權(quán)和安全方面考慮,移動(dòng)應(yīng)用開發(fā)人員會(huì)在源碼中硬編碼一些敏感信息,一旦源碼泄漏,安全隱患巨大。為了避免這些問題,除了代碼審核外,可以對(duì)代碼進(jìn)行混淆,混淆后源代碼通過反軟件生成的源代碼很難讀懂。測(cè)試中,可以直接使用反編譯工具查看源代碼,判斷是否進(jìn)行了代碼混淆。
簽名:發(fā)布前應(yīng)校驗(yàn)一下簽名使用的key是否正確,以防被惡意第三方應(yīng)用覆蓋安裝。
完整性校驗(yàn):為確保安裝包不會(huì)在測(cè)試完成到最終交付過程中發(fā)生文件損壞,需要對(duì)安裝包進(jìn)行完整性校驗(yàn),可以通過自動(dòng)化校驗(yàn)文件的MD5值。
權(quán)限設(shè)置檢查:檢查manifest文件來讀取應(yīng)用所需要的全部權(quán)限,并結(jié)合需求進(jìn)行校驗(yàn)此權(quán)限是否為必須的。manifest文件的修改也需要關(guān)注,在增加新權(quán)限前需要進(jìn)行評(píng)估。
部分移動(dòng)應(yīng)用軟件會(huì)把cookie類數(shù)據(jù)保存在數(shù)據(jù)庫中,日志和配置文件也會(huì)記錄敏感信息,這些數(shù)據(jù)一旦被非法獲取,可能造成用戶賬戶被盜用等嚴(yán)重問題。測(cè)試過程中主要檢查數(shù)據(jù)庫、日志和配置文件是否存在敏感信息。
重點(diǎn)測(cè)試密碼是否明文存儲(chǔ)在后臺(tái)數(shù)據(jù)庫;密碼是否被明文傳輸;對(duì)于用戶輸入錯(cuò)誤密碼次數(shù)過多的情況,是否會(huì)將賬戶臨時(shí)鎖定,避免被暴力破解;在客戶端注銷后,驗(yàn)證任何的來自該用戶的,需要身份驗(yàn)證的接口調(diào)用都不能成功。
重點(diǎn)測(cè)試關(guān)鍵數(shù)據(jù)是否散列或加密;關(guān)鍵連接是否使用安全通信;是否對(duì)數(shù)字證書合法性進(jìn)行驗(yàn)證;是否校驗(yàn)數(shù)據(jù)合法性。
重點(diǎn)測(cè)試Android平臺(tái)各個(gè)組件是否能被外部應(yīng)用惡意調(diào)用。
測(cè)試過程中重點(diǎn)檢查服務(wù)端接口是否存在SQL注入、XSS跨站腳本攻擊、CSRF跨站請(qǐng)求偽造、越權(quán)訪問等問題。
重點(diǎn)測(cè)試移動(dòng)應(yīng)用軟件卸載時(shí)是否有卸載提示,是否能安全完全卸載,卸載后是否會(huì)影響其他軟件功能。
本標(biāo)準(zhǔn)通過研究移動(dòng)應(yīng)用軟件的安全性測(cè)試策略及測(cè)試重點(diǎn),以期能夠規(guī)范移動(dòng)應(yīng)用軟件涉及的設(shè)計(jì)、開發(fā)、測(cè)試、評(píng)估工作,提高移動(dòng)應(yīng)用軟件的安全水準(zhǔn),降低移動(dòng)應(yīng)用軟件存在的風(fēng)險(xiǎn),保護(hù)用戶個(gè)人安全以及國家安全,進(jìn)而推動(dòng)整個(gè)互聯(lián)網(wǎng)的健康發(fā)展。