本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,具體涉及一種IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)方法和裝置。
背景技術(shù):
目前雖然iOS在設(shè)計(jì)上的安全性已經(jīng)達(dá)到了很高的強(qiáng)度,但仍存在問(wèn)題。盡管通過(guò)沙盒、簽名認(rèn)證等安全機(jī)制可以一定程度上保護(hù)應(yīng)用程序的獨(dú)立性和數(shù)據(jù)隔離性,但薄弱的數(shù)據(jù)存儲(chǔ)保護(hù)措施仍有可以被惡意應(yīng)用利用。如2014年爆出的“假面攻擊”漏洞,本地?cái)?shù)據(jù)緩存中的敏感信息被惡意竊取。從iOS應(yīng)用程序的角度出發(fā),保護(hù)數(shù)據(jù)文件的完整性、安全性也是更好維護(hù)應(yīng)用程序功能的保障。
然而,目前在IOS應(yīng)用數(shù)據(jù)安全檢測(cè)領(lǐng)域做的研究比較少,不能有效地檢測(cè)iOS應(yīng)用在數(shù)據(jù)存儲(chǔ)上的安全隱患與漏洞。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題在于,當(dāng)前不能有效地檢測(cè)iOS應(yīng)用在數(shù)據(jù)存儲(chǔ)上的安全隱患與漏洞。
為此,本發(fā)明實(shí)施例提供了一種IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)方法,包括:讀取所述應(yīng)用的數(shù)據(jù)文件;提取所述數(shù)據(jù)文件中的數(shù)據(jù)信息;獲取所述數(shù)據(jù)信息中的敏感數(shù)據(jù);檢測(cè)所述敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)。
可選的,在所述提取所述數(shù)據(jù)文件中的數(shù)據(jù)信息的步驟之前,還包括:轉(zhuǎn)換所述數(shù)據(jù)文件的格式,以使可以無(wú)損提取所述數(shù)據(jù)文件中的數(shù)據(jù)信息。
可選的,所述敏感數(shù)據(jù)包括賬戶名稱(chēng)、賬戶密碼和賬戶配置信息中的至少一個(gè)。
可選的,所述獲取所述數(shù)據(jù)信息中的敏感數(shù)據(jù)包括:設(shè)定敏感數(shù)據(jù)獲取規(guī)則,且所述敏感數(shù)據(jù)獲取規(guī)則是可更新的;根據(jù)所述敏感數(shù)據(jù)獲取規(guī)則獲取所述敏感數(shù)據(jù)。
可選的,所述敏感數(shù)據(jù)獲取規(guī)則包括:用于匹配所屬敏感數(shù)據(jù)的正則表達(dá)式或鍵值對(duì)。
可選的,所述檢測(cè)所述敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)包括:檢測(cè)所述敏感數(shù)據(jù)是否明文顯示、是否加密、以及是否有讀取權(quán)限限制中的至少一個(gè)。
本發(fā)明實(shí)施例還提供了一種IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)裝置,包括:數(shù)據(jù)文件讀取單元,用于讀取所述應(yīng)用的數(shù)據(jù)文件;數(shù)據(jù)信息提取單元,用于提取所述數(shù)據(jù)文件中的數(shù)據(jù)信息;敏感數(shù)據(jù)獲取單元,用于獲取所述數(shù)據(jù)信息中的敏感數(shù)據(jù);泄露風(fēng)險(xiǎn)檢測(cè)單元,用于檢測(cè)所述敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn)。
可選的,所述敏感數(shù)據(jù)獲取單元包括:敏感數(shù)據(jù)獲取規(guī)則設(shè)立子單元,用于設(shè)立所述敏感數(shù)據(jù)獲取規(guī)則,且所述敏感數(shù)據(jù)獲取規(guī)則是可更新的;敏感數(shù)據(jù)獲取子單元,用于根據(jù)所述敏感數(shù)據(jù)獲取規(guī)則獲取所述敏感數(shù)據(jù)。
可選的,所述敏感數(shù)據(jù)獲取規(guī)則包括:用于匹配所屬敏感數(shù)據(jù)的正則表達(dá)式或鍵值對(duì)。
可選的,所述泄露風(fēng)險(xiǎn)檢測(cè)單元包括以下子單元中的至少一個(gè):明文顯示檢測(cè)子單元,用于檢測(cè)所述敏感數(shù)據(jù)是否明文顯示;加密檢測(cè)子單元,用于檢測(cè)所述敏感數(shù)據(jù)是否加密;讀取權(quán)限檢測(cè)子單元,用于檢測(cè)所述敏感數(shù)據(jù)是否有讀取權(quán)限限制。
本發(fā)明實(shí)施例的IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)方法及裝置,通過(guò)檢測(cè)敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn),有效地檢測(cè)IOS應(yīng)用數(shù)據(jù)安全。
附圖說(shuō)明
通過(guò)參考附圖會(huì)更加清楚的理解本發(fā)明的特征和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對(duì)本發(fā)明進(jìn)行任何限制,在附圖中:
圖1是本發(fā)明實(shí)施例的應(yīng)用數(shù)據(jù)安全的檢測(cè)方法的流程圖;
圖2是圖1所示實(shí)施例中讀取數(shù)據(jù)文件中的數(shù)據(jù)信息的示意圖;
圖3是本發(fā)明實(shí)施例的應(yīng)用數(shù)據(jù)安全的檢測(cè)裝置的示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1是本發(fā)明一實(shí)施例提供的IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)方法的流程圖,如圖1所示,該方法包括:
S1.讀取IOS應(yīng)用的數(shù)據(jù)文件。
例如,提取IOS終端文件時(shí),用戶在PC端用戶接口提供需要檢測(cè)的蘋(píng)果應(yīng)用程序(IPA)的程序文件,PC端編譯配置好libimobiledevice工程環(huán)境,安裝ideviceinstaller工具,用于給iOS設(shè)備安裝卸載應(yīng)用或者備份應(yīng)用。將越獄過(guò)的iOS終端連接在mac上,命令行輸入ipa包的安裝指令,使用xcode工具中的instruments來(lái)實(shí)現(xiàn)的運(yùn)行自動(dòng)化打開(kāi)應(yīng)用運(yùn)行應(yīng)用的腳本,利用libimobiledevice的Afc2Client服務(wù),從iOS終端IPA安裝指定路徑中提取數(shù)據(jù)存儲(chǔ)文件到PC設(shè)備中。
S2.提取該數(shù)據(jù)文件中的數(shù)據(jù)信息。
具體的,提取出的數(shù)據(jù)信息應(yīng)當(dāng)是可搜索的,以在后續(xù)步驟中進(jìn)行敏感數(shù)據(jù)獲取。
S3.獲取該數(shù)據(jù)信息中的敏感數(shù)據(jù)。
具體的,可以預(yù)先設(shè)定敏感數(shù)據(jù)獲取規(guī)則,根據(jù)該規(guī)則從數(shù)據(jù)信息中獲取敏感數(shù)據(jù)。
S4.檢測(cè)該敏感數(shù)據(jù)是否存在泄露風(fēng)險(xiǎn)。
顯然,如果能夠獲取該敏感數(shù)據(jù),則該敏感數(shù)據(jù)就存在潛在的泄露風(fēng)險(xiǎn)。如果通過(guò)簡(jiǎn)單的敏感數(shù)據(jù)獲取規(guī)則就可以獲取敏感數(shù)據(jù),則泄露風(fēng)險(xiǎn)較高,如果通過(guò)比較復(fù)雜的敏感數(shù)據(jù)獲取規(guī)則才能獲取敏感數(shù)據(jù),則泄露風(fēng)險(xiǎn)較小。
本發(fā)明實(shí)施例的IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)方法,通過(guò)檢測(cè)敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn),有效地檢測(cè)IOS應(yīng)用數(shù)據(jù)安全。
可選的,在上述步驟S2之前,還包括:
轉(zhuǎn)換所述數(shù)據(jù)文件的格式,以使可以無(wú)損提取數(shù)據(jù)文件中的數(shù)據(jù)信息。
例如,對(duì)于提取的IOS終端文件,將plist文件用plutil命令轉(zhuǎn)化為xml格式;將keychain文件用keychain-dump工具轉(zhuǎn)化為txt格式。
有些數(shù)據(jù)是可以直接讀取的,例如xml文件。
有些數(shù)據(jù)需要用特殊的命令來(lái)讀取。例如,CoreData.sqlite文件可以在PC設(shè)備上用sqlite3命令讀??;db數(shù)據(jù)庫(kù)文件可以在PC設(shè)備上用sqlite3讀??;cooki-binary文件使用python腳本BinaryCookieRead.py讀取。
圖2示出了上述數(shù)據(jù)文件的讀取方式。
可選的,該敏感數(shù)據(jù)包括賬戶名稱(chēng)、賬戶密碼和賬戶配置信息中的至少一個(gè)。該敏感數(shù)據(jù)還可以包括郵箱地址,手機(jī)號(hào),用戶的IP地址等。
可選的,上述步驟S3所述的獲取數(shù)據(jù)信息中的敏感數(shù)據(jù)包括:
設(shè)定敏感數(shù)據(jù)獲取規(guī)則,且該敏感數(shù)據(jù)獲取規(guī)則是可更新的;傳統(tǒng)數(shù)據(jù)存儲(chǔ)安全檢測(cè)受到檢測(cè)方法的制約,升級(jí)困難十分大,需要從代碼層進(jìn)行更新。但本發(fā)明中的檢測(cè)方法可以對(duì)規(guī)則庫(kù)模塊的更新和升級(jí)進(jìn)行性能和功能上的優(yōu)化與定制適配,擴(kuò)展性、適應(yīng)性也能滿足要求。
根據(jù)該敏感數(shù)據(jù)獲取規(guī)則獲取該敏感數(shù)據(jù)。
可選的,該敏感數(shù)據(jù)獲取規(guī)則包括:用于匹配所屬敏感數(shù)據(jù)的正則表達(dá)式或鍵值對(duì)。
例如,正則表達(dá)式可以是:
郵箱的正則:/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/
手機(jī)號(hào)正則:^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\\d{8}$
針對(duì)plist文件,獲取所有包含“password”、“pwd”、“user”的鍵值對(duì),然后審查鍵值對(duì)的value。
可選的,上述步驟S4包括:
檢測(cè)該敏感數(shù)據(jù)是否明文顯示、是否加密、以及是否有讀取權(quán)限限制中的至少一個(gè)。
圖3是本發(fā)明一實(shí)施例提供的IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)裝置的示意圖,如圖3所示,該裝置包括:
數(shù)據(jù)文件讀取單元1,用于讀取應(yīng)用的數(shù)據(jù)文件;
數(shù)據(jù)信息提取單元2,用于提取該數(shù)據(jù)文件中的數(shù)據(jù)信息;
敏感數(shù)據(jù)獲取單元3,用于獲取該數(shù)據(jù)信息中的敏感數(shù)據(jù);
泄露風(fēng)險(xiǎn)檢測(cè)單元4,用于檢測(cè)該敏感數(shù)據(jù)是否存在泄露風(fēng)險(xiǎn)。
本發(fā)明實(shí)施例的IOS應(yīng)用數(shù)據(jù)安全的檢測(cè)裝置,通過(guò)檢測(cè)敏感數(shù)據(jù)的泄露風(fēng)險(xiǎn),有效地檢測(cè)包括IOS應(yīng)用在內(nèi)的應(yīng)用數(shù)據(jù)安全。
可選的,該敏感數(shù)據(jù)獲取單元包括:
敏感數(shù)據(jù)獲取規(guī)則設(shè)立子單元,用于設(shè)立所述敏感數(shù)據(jù)獲取規(guī)則,且所述敏感數(shù)據(jù)獲取規(guī)則是可更新的;
敏感數(shù)據(jù)獲取子單元,用于根據(jù)所述敏感數(shù)據(jù)獲取規(guī)則獲取所述敏感數(shù)據(jù)。
可選的,所述敏感數(shù)據(jù)獲取規(guī)則包括:用于匹配所屬敏感數(shù)據(jù)的正則表達(dá)式或鍵值對(duì)。
可選的,所述泄露風(fēng)險(xiǎn)檢測(cè)單元包括以下子單元中的至少一個(gè):
明文顯示檢測(cè)子單元,用于檢測(cè)所述敏感數(shù)據(jù)是否明文顯示;
加密檢測(cè)子單元,用于檢測(cè)所述敏感數(shù)據(jù)是否加密;
讀取權(quán)限檢測(cè)子單元,用于檢測(cè)所述敏感數(shù)據(jù)是否有讀取權(quán)限限制。
雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下作出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。