徐 鶯,辜 彬,馮亞玲
(中國(guó)電子科技集團(tuán)第三十研究所,四川 成都 610041)
隨著信息化、互聯(lián)網(wǎng)的快速發(fā)展,軟件產(chǎn)品應(yīng)用越來(lái)越廣泛,基于開(kāi)放的網(wǎng)絡(luò)系統(tǒng)下的軟件安全性問(wèn)題日益突出。針對(duì)軟件或產(chǎn)品進(jìn)行安全性測(cè)試是保證軟件安全性和降低軟件安全風(fēng)險(xiǎn)的重要手段。目前,針對(duì)軟件系統(tǒng)的安全性測(cè)試技術(shù)的研究較為普遍,成果較多,逐步形成了相關(guān)的技術(shù)與方法。現(xiàn)有安全性測(cè)試技術(shù)的研究大多基于測(cè)試技術(shù)本身探索測(cè)試方法深度、效果,能夠解決一定范圍內(nèi)安全性測(cè)試效果和安全功能驗(yàn)證問(wèn)題。在安全性測(cè)試需求方面,一直以來(lái)缺乏系統(tǒng)、完整的研究,以解決對(duì)特定軟件產(chǎn)品或系統(tǒng)完整有效的安全性測(cè)試到底測(cè)什么和怎么測(cè)的問(wèn)題。針對(duì)這一核心問(wèn)題,本文基于安全威脅模型提出了一套安全性測(cè)試需求框架,提供了一套通用、系統(tǒng)的解決思路,是提升軟件安全性測(cè)試能力和效果的重要參考。
軟件安全性通常有兩種定義。在國(guó)標(biāo)GJB5236-2004 中,安全性被定義為軟件的重要功能正確且可靠,避免造成人員、財(cái)務(wù)等損失,是質(zhì)量屬性的一種,本質(zhì)是失效安全性。隨著信息技術(shù)的高速發(fā)展,人們更加關(guān)注軟件的抗風(fēng)險(xiǎn)能力,即保密安全性(SecurityTesting)。保密安全性強(qiáng)調(diào)了軟件抗攻擊能力,確保在受到攻擊時(shí)能正確完成功能,避免秘密泄露等。本文主要關(guān)注保密安全性。
當(dāng)前主要的安全性測(cè)試技術(shù)及概況如下。
(1)形式化安全測(cè)試。通過(guò)建立軟件的數(shù)學(xué)模型,提供軟件的規(guī)格形式化說(shuō)明,通過(guò)定理證明或者模型檢測(cè)的方法發(fā)現(xiàn)軟件中的漏洞。形式化安全測(cè)試重視理論分析,定理證明的方法很難自動(dòng)化或者形成工具,只能手工實(shí)施,且一般需要高素質(zhì)分析人員的參與。測(cè)試范圍主要也限于設(shè)計(jì)階段的程序而非實(shí)際代碼。
(2)白盒測(cè)試。典型的安全性缺陷一般都可以通過(guò)代碼分析捕獲,靜態(tài)分析通過(guò)對(duì)數(shù)據(jù)流的分析,可有效發(fā)現(xiàn)相關(guān)安全性問(wèn)題。目前,基于白盒的COBOT 靜態(tài)分析工具應(yīng)用較為廣泛,是一種有效的安全性測(cè)試方法。
(3)模糊測(cè)試。模糊測(cè)試是一種通過(guò)向目標(biāo)系統(tǒng)提供非預(yù)期輸入并監(jiān)視異常結(jié)果以發(fā)現(xiàn)軟件缺陷的方法。模糊測(cè)試將隨機(jī)產(chǎn)生的亂數(shù)據(jù)注入被測(cè)對(duì)象,類(lèi)似一種數(shù)據(jù)攻擊過(guò)程,可用于發(fā)現(xiàn)軟件漏洞和缺陷。模糊測(cè)試方法的非預(yù)期及隨機(jī)性,也注定其結(jié)果的不可靠和不完整性。
(4)基于模型的安全功能測(cè)試。通過(guò)軟件建立有限狀態(tài)機(jī)、UML 模型等方式,對(duì)一般的安全功能進(jìn)行測(cè)試,適用于容易建模的安全功能。通過(guò)覆蓋遍歷安全功能的分支,確保實(shí)現(xiàn)的正確性和健壯性[1]。
根據(jù)保密安全性的定義內(nèi)涵,將安全性需求分為2 個(gè)維度,即以安全功能為核心的驗(yàn)證和測(cè)試,以及基于外部攻擊、威脅的安全漏洞測(cè)試。安全漏洞是指系統(tǒng)在設(shè)計(jì)、實(shí)現(xiàn)、操作、管理上存在的可被利用的缺陷或弱點(diǎn),漏洞被利用可能造成軟件受到攻擊,使軟件進(jìn)入不安全狀態(tài)。安全漏洞測(cè)試則是從攻擊者的角度,以發(fā)現(xiàn)軟件的安全漏洞為目的的測(cè)試,是安全性測(cè)試的重點(diǎn)和難點(diǎn)。目前的漏洞發(fā)現(xiàn)、掃描技術(shù)的基本原理是基于知識(shí)庫(kù)中已知漏洞庫(kù)對(duì)產(chǎn)品、系統(tǒng)進(jìn)行掃描和檢查,是一種到點(diǎn)的覆蓋,難以解決完整的安全漏洞發(fā)現(xiàn)[2]。
基于以上問(wèn)題,提出了一種完整的安全性測(cè)試構(gòu)建思路,即基于產(chǎn)品安全目標(biāo)進(jìn)行分解,形成安全機(jī)制框架,基于框架從外部威脅入手,建立開(kāi)放網(wǎng)絡(luò)應(yīng)用下產(chǎn)品的威脅模型,進(jìn)一步對(duì)各種威脅進(jìn)行概率、影響評(píng)估,導(dǎo)出完整的、系統(tǒng)的安全性測(cè)試需求框架及要素。研究思路如圖1 所示。
圖1 安全性測(cè)試需求框架的構(gòu)建思路
國(guó)際通用準(zhǔn)則CC 于1999 年發(fā)布(15015408:1999),是前國(guó)際通用的信息安全測(cè)評(píng)的重要依據(jù)和基礎(chǔ)。CC 標(biāo)準(zhǔn)在原TCSEC 的基礎(chǔ)上提出系統(tǒng)的實(shí)際使用目的和安全性要求,定義了7 個(gè)評(píng)估級(jí)別EALI 到EAL7,首次提出保護(hù)輪廓的概念。保護(hù)輪廓就是針對(duì)某類(lèi)產(chǎn)品的功能和保證要求的集合。
我國(guó)強(qiáng)制性國(guó)家標(biāo)準(zhǔn)《計(jì)算機(jī)信息系統(tǒng)安全保護(hù)等級(jí)劃分準(zhǔn)則》(GB17559-1999)是在參考美國(guó)的CC 基礎(chǔ)上,從自主訪(fǎng)問(wèn)控制、強(qiáng)制訪(fǎng)問(wèn)控制、標(biāo)記、身份鑒別、客體重用、審計(jì)、數(shù)據(jù)完整性、可信路徑和可信恢復(fù)等方面,將計(jì)算機(jī)信息系統(tǒng)安全保護(hù)等級(jí)劃分為5 個(gè)安全等級(jí),從而建立我國(guó)信息系統(tǒng)安全性測(cè)評(píng)的基本通用評(píng)估基礎(chǔ)。第1 級(jí),用戶(hù)自主保護(hù)級(jí);第2 級(jí),系統(tǒng)審計(jì)保護(hù)級(jí);第3 級(jí),安全標(biāo)記保護(hù)級(jí);第4 級(jí),結(jié)構(gòu)化保護(hù)級(jí);第5 級(jí),訪(fǎng)問(wèn)驗(yàn)證保護(hù)級(jí)。
參考相關(guān)測(cè)評(píng)標(biāo)準(zhǔn)的主要內(nèi)容,將CC 標(biāo)準(zhǔn)中的保護(hù)輪廓作為產(chǎn)品安全目標(biāo)要素,考察不同的軟件產(chǎn)品主要的業(yè)務(wù)功能、安全防護(hù)設(shè)計(jì)、識(shí)別產(chǎn)品的主要過(guò)程及數(shù)據(jù),建立產(chǎn)品安全性機(jī)制框架作為安全性測(cè)試研究的基礎(chǔ)。
威脅建模是識(shí)別軟件安全漏洞的重要方法,通過(guò)識(shí)別要保護(hù)的對(duì)象,分解應(yīng)用程序(識(shí)別入口點(diǎn)、出口點(diǎn)、信任邊界、數(shù)據(jù)流描述等),識(shí)別軟件面臨的安全威脅,找出威脅可能的實(shí)現(xiàn)過(guò)程,通過(guò)攻擊樹(shù)對(duì)威脅實(shí)施過(guò)程建模,評(píng)估威脅(威脅分級(jí),級(jí)別高的威脅應(yīng)設(shè)計(jì)較多的測(cè)試用例),確定降低威脅的對(duì)策。最常用的威脅分類(lèi)方法是STRIDE,即Spoofing(欺騙)、Tampering(篡改)、Repudiation(否 認(rèn))、Informationdisclosure(信息泄露)、Denial ofservice(拒絕服務(wù))和Elevationofprivilege(特權(quán)提升)。以產(chǎn)品的安全機(jī)制為對(duì)象,開(kāi)展威脅分析與風(fēng)險(xiǎn)識(shí)別,提出安全性測(cè)試需求要素[3]。表1 列出安全屬性與安全威脅的對(duì)應(yīng)關(guān)系。
表1 安全屬性與安全威脅的對(duì)應(yīng)關(guān)系
3.3.1 產(chǎn)品分類(lèi)及威脅建模
根據(jù)軟件產(chǎn)品的功能、組成和邊界,將軟件產(chǎn)品及系統(tǒng)分為設(shè)備類(lèi)和軟件類(lèi)2 大類(lèi)。設(shè)備類(lèi)分為網(wǎng)絡(luò)承載類(lèi)和安全設(shè)備類(lèi),軟件產(chǎn)品則分為基礎(chǔ)軟件和應(yīng)用軟件[4],如表2 所示。
根據(jù)軟件產(chǎn)品的組成、形態(tài)及邊界、面臨的主要安全風(fēng)險(xiǎn),提出軟件/產(chǎn)品運(yùn)行過(guò)程中的通用威脅部署模型,如圖2 所示。
表2 產(chǎn)品分類(lèi)
圖2 軟件/產(chǎn)品運(yùn)行過(guò)程中的通用威脅部署模型
對(duì)典型分布式信息系統(tǒng)下的軟件產(chǎn)品基于保護(hù)對(duì)象和不同的邊界進(jìn)行風(fēng)險(xiǎn)識(shí)別,歸納形成6 大類(lèi)安全目標(biāo),分別為管理防護(hù)、用戶(hù)數(shù)據(jù)保護(hù)、用戶(hù)邊界防護(hù)、密碼系統(tǒng)邊界防護(hù)、計(jì)算環(huán)境安全防護(hù)和物理安全一級(jí)安全目標(biāo);對(duì)一級(jí)安全目標(biāo)進(jìn)行細(xì)化,每種安全目標(biāo)對(duì)應(yīng)多種安全屬性(即為實(shí)現(xiàn)安全目標(biāo)而實(shí)施的保護(hù)設(shè)計(jì)機(jī)制),進(jìn)一步分析安全屬性對(duì)應(yīng)的每種安全威脅,根據(jù)威脅級(jí)別、風(fēng)險(xiǎn)程度進(jìn)行梳理和分析。圖3 提出了基于用戶(hù)數(shù)據(jù)保護(hù)的威脅分析的思路及主要內(nèi)容。
3.3.2 安全測(cè)試需求框架
對(duì)細(xì)分的安全屬性進(jìn)行威脅分析,采用DREAD 方法量化潛在損失(DamagePotential)、重現(xiàn)性(Reproducibility)、可利用性(Exploitability)、受影響的用戶(hù)(AffectedUsers)以及可發(fā)現(xiàn)性(Discoverability)等,計(jì)算出每種威脅的風(fēng)險(xiǎn)值,進(jìn)而決定每種威脅的優(yōu)先次序[5]。
通過(guò)威脅評(píng)估,分析、歸納、整合通用,選定具有必要性的測(cè)試項(xiàng),提出安全性測(cè)試需求要素框架和主要測(cè)試內(nèi)容,如表3 所示。
圖3 基于用戶(hù)數(shù)據(jù)保護(hù)的威脅分析的思路及主要內(nèi)容
表3 安全性測(cè)試需求要素框架及主要測(cè)試內(nèi)容
續(xù)表3
續(xù)表3
續(xù)表3
續(xù)表3
基于開(kāi)放網(wǎng)絡(luò)下的軟件產(chǎn)品,它的軟件規(guī)模和復(fù)雜度不斷提高,軟件的安全缺陷與漏洞也在不斷增多,在為用戶(hù)提供高效、便利服務(wù)的同時(shí),軟件產(chǎn)品自身安全性問(wèn)題日益突顯,已經(jīng)成為信息系統(tǒng)整體安全防護(hù)的重要方面。本文基于安全威脅模型,提出了一套安全性測(cè)試需求框架,為軟件產(chǎn)品安全性測(cè)試提供了完整、系統(tǒng)的解決思路,是提升軟件安全性測(cè)試能力和強(qiáng)化軟件安全性設(shè)計(jì)與實(shí)現(xiàn)水平的重要參考。