1.3 軟件安全的概念
對于軟件安全,目前尚沒有統一的定義。本節首先介紹一些知名標準或知名專家對軟件安全的定義,然后用信息安全的屬性來刻畫軟件安全,最后對軟件安全相關概念進行辨析。
1.3.1 軟件安全的一些定義
國家標準GB/T 30998—2014《信息技術 軟件安全保障規范》給出的軟件安全(Software Safety)定義是:軟件工程與軟件保障的一個方面,它提供一種系統的方法來標識、分析和追蹤對危害及具有危害性功能(例如數據和命令)的軟件緩解措施與控制。
實際上這一定義來源于美國國家航空航天局(National Aeronautics and Space Administration,NASA)于2013年頒布的《軟件安全標準》8719.13C(Software Safety Standard,第3稿),該標準是這樣定義軟件安全的:“Software Safety:The aspects of software engineering and software assurance that provide a systematic approach to identifying, analyzing, tracking, mitigating, and controlling hazards and hazardous functions of a system where software may contribute either to the hazard or to its mitigation or control, to ensure safe operation of the system.”
著名安全專家加里·麥格勞(Gray McGraw)在他早期的文獻中將軟件的安全性定義為“在面臨蓄意威脅其可靠性的事件的情形下依然能夠提供所需功能的能力”,這是一種廣義的對于軟件應用安全狀態的理解。
在我國國家標準GB/T 16260.1—2006/ISO/IEC 9126-1:2001《軟件工程產品質量 第1部分:質量模型》中,將軟件的安全保密性作為軟件產品內部和外部質量的重要組成,將軟件的安全性作為使用質量的重要組成,軟件的安全性被定義為“軟件產品在指定使用周境下達到對人類、業務、軟件、財產或環境造成損害的可接受的風險級別的能力”。標準指出,這里的風險常常由軟件內部和外部質量組成中的功能性(包括安全保密性)、可靠性、易用性或維護性中的缺陷所致。該標準對軟件安全的定義強調了軟件安全與數據保護的密切關系,指出了軟件安全問題的根源在于軟件的缺陷。
說明:
國內外大多數軟件安全標準中,軟件安全用的是Software Safety,而不是Software Security。本書認為,Safety側重于對無意造成的事故或事件進行安全保護,可以是加強人員培訓、規范操作流程及完善設計等方面的安全防護工作。而Security則側重于對人為地、有意地破壞而進行的保障和保護,比如部署專門安全設備進行防護、加強安全檢測等。對于軟件安全,既要考慮軟件系統中開發人員無意的錯誤,又要考慮人為地、故意地針對軟件系統的滲透和破壞,因此,本書不對Software Safety和Software Security進行區分。
1.3.2 用信息安全的基本屬性理解軟件安全
軟件已經成為現代社會生活中的關鍵組成,因而可以參照信息安全的基本屬性來對軟件安全的屬性進行定義和描述。軟件安全除了應具備最基本的信息安全三大基本屬性CIA——保密性(Confidentiality)、完整性(Integrity)和可用性(Availability),還應當包括可認證性、授權、可審計性、抗抵賴性、可控性和可存活性等多種安全屬性。
1.CIA安全基本屬性
(1)保密性(Confidentiality)
信息安全中的保密性是指確保信息資源僅被合法的實體(如用戶、進程等)訪問,使信息不泄露給未授權的實體。這里所指的信息不但包括國家秘密,而且包括各種社會團體、企業組織的工作秘密及商業秘密,以及個人的秘密和個人隱私(如瀏覽習慣、購物習慣等)。保密性還包括保護數據的存在性,有時候存在性比數據本身更能暴露信息。特別需要說明的是,對計算機的進程、中央處理器、存儲和打印設備的使用也必須實施嚴格的保密措施,以避免產生電磁泄露等安全問題。
GB/T 16260.1—2006/ISO/IEC 9126—1:2001《軟件工程產品質量 第1部分:質量模型》中,軟件的保密性被定義為“軟件產品保護信息和數據的能力,以使未授權人員或系統不能閱讀或修改這些信息和數據,而不拒絕授權人員或系統對它們的訪問”。
GB/T 18492—2001《信息技術 系統及軟件完整性級別》中,軟件的保密性被定義為“對系統各項的保護,使其免于受到偶然的或惡意的訪問、使用、更改、破壞及泄露。”
實現保密性的方法一般是通過對信息加密,或是對信息劃分密級并為訪問者分配訪問權限,系統根據用戶的身份權限控制對不同密級信息的訪問。
(2)完整性(Integrity)
信息安全中的完整性是指信息資源只能由授權方或以授權的方式修改,在存儲或傳輸過程中不被未授權、未預期或無意篡改、銷毀,或在篡改后能夠被迅速發現。不僅要考慮數據的完整性,還要考慮操作系統的完整性,即保證系統以無害的方式按照預定的功能運行,不被有意的或者意外的非法操作所破壞。
可以將軟件完整性理解為軟件產品能夠按照預期的功能運行,不受任何有意的或者無意的非法錯誤所破壞的軟件安全屬性。GB/T 18492—2001《信息技術 系統及軟件完整性級別》認為,軟件完整性需求是軟件開發中軟件工程過程必須滿足的需求,是軟件工程產品所必須滿足的需求,或是為提供與軟件完整性級別相適應的軟件置信度而對軟件在某一時段的性能的需求。
實現完整性的方法一般分為預防和檢測兩種機制。預防機制通過阻止任何未經授權的方法來改寫數據的企圖,以確保數據的完整性。檢測機制并不試圖阻止完整性的破壞,而是通過分析用戶或系統的行為,或是數據本身來發現數據的完整性是否遭受破壞。
(3)可用性(Availability)
信息安全中的可用性是指信息資源(信息、服務和IT資源等)可被合法實體訪問并按要求的特性使用。例如,破壞網絡和有關系統正常運行的拒絕服務攻擊就屬于對可用性的破壞。
ISO 9241-11中對可用性的定義是:一個產品被指定用戶使用,在一個指定使用情景中,有效地、有效率地、滿意地達到指定目標的程度。其中,有效是指用戶達到指定目標的精確性和完全性,效率是指用戶精確完全地達到目標所消耗的資源,滿意度是指使用舒適和可接受程度。
GB/T 2900.13—2008《電工術語 可信性與服務質量》中對可用性的定義是“在所要求的外部資源得到提供的前提下,產品在規定的條件下,在給定的時刻和時間區間內處于能完成要求的功能狀態的能力。此能力是產品可靠性、維修性和維修保障性的綜合反映。”
可用性是一個多因素概念,涉及易用性(容易學習、容易使用)、系統的有效性、用戶滿意度,以及把這些因素與實際使用環境聯系在一起針對特定目標的評價。可用性描述了一個產品在何種程度上能幫助特定的用戶在特定的上下文環境中有效地、有效率地實現所定義的目標,包括運營、服務和維護。可用性不僅指人機交互系統中以人為本的設計流程,也包括人因工效學、軟件的易用性及可用性的相關技術支持。
在上述可用性特征中,站在安全的角度,可用性被定義為保證授權實體在需要時可以正常訪問和使用系統信息的屬性(ISO 13335-1《信息安全管理指南》)。
為了實現可用性,可以采取備份與災難恢復、應急響應、系統容侵等許多安全措施。
2.其他安全屬性
對于安全性要求較高的軟件系統,除了應具備以上介紹的三大基本屬性CIA以外,還應當考慮可認證性、授權、可審計性、抗抵賴性、可控性、可存活性及隱私性等多種安全屬性。
(1)可認證性(Authenticity)
信息安全的可認證性是指,保證信息使用者和信息服務者都是真實聲稱者,防止冒充和重放攻擊。可認證性比鑒別(Authentication)有更深刻的含義,它包含了對傳輸、消息和消息源的真實性進行核實。
軟件是訪問內部網絡、系統與數據庫的渠道,因此對于內部敏感信息的訪問必須得到批準。認證就是解決這一問題的信息安全概念,它通過驗證身份信息來保證訪問主體與所聲稱的身份唯一對應。
只有在申請認證的身份信息是可識別的情況下,認證才能成功,所提供的憑證信息必須是真實可信的。憑證最常見的形式是用戶名和口令的組合,目前,生物特征認證、生物行為認證及多因素認證成為發展的方向。
(2)授權(Authorization)
信息安全中的授權是指,在訪問主體與訪問對象之間介入的一種安全機制。根據訪問主體的身份和職能為其分配一定的權限,訪問主體只能在權限范圍內合法訪問。
軟件系統中,實體通過認證驗證了實體的真實身份并不意味著該實體可以被授予訪問請求資源的所有訪問權限。例如,普通員工能夠登錄公司賬戶,但是不能夠訪問人力資源部門的工資數據,因為沒有相應的權限或優先權。
(3)可審計性或可審查性(Accountability或Auditability)
信息安全的可審計性是指,確保一個實體(包括合法實體和實施攻擊的實體)的行為可以被唯一地區別、跟蹤和記錄,從而能對出現的安全問題提供調查依據和手段。審計內容主要包括誰(用戶、進程等實體)在哪里在什么時間做了什么。
軟件安全中,審計(Audit)是指根據公認的標準和指導規范,對軟件從計劃、研發、實施到運行維護各個環節進行審查評價,對軟件及其業務應用的完整性、效能、效率、安全性進行監測、評估和控制的過程,以確認預定的業務目標得以實現,并提出一系列改進建議的管理活動。這一定義既包括了軟件開發的可審計性也包括了軟件功能具有的可審計性。
審計是一種威懾控制措施,對于審計的預知可以潛在地威懾用戶不執行未授權的動作。不過,審計也是一種被動的檢測控制措施,因為審計只能確定實體的行為歷史,不能阻止實體實施攻擊。這一定義既包括了軟件開發的可審計性也包括了軟件功能具有的可審計性。
(4)抗抵賴性(Non-Repudiation)
信息安全的抗抵賴性是指,信息的發送者無法否認已發出的信息或信息的部分內容,信息的接收者無法否認已經接收的信息或信息的部分內容。
軟件安全中,抗抵賴性解決的是用戶或者軟件系統對于已有動作的否認問題。例如,當價格發生變動時,如果軟件能夠記錄假冒的動作變化及施加動作的用戶身份,就可以給個人一個否認或者拒絕動作的機會,由此保證抗抵賴性的實現。
實現不可抵賴性的措施主要有數字簽名、可信第三方認證技術等,可審計性也是有效實現抗抵賴性的基礎。
(5)可控性(Controllability)
信息安全的可控性是指,對于信息安全風險的控制能力,即通過一系列措施,對信息系統安全風險進行事前識別、預測,并通過一定的手段來防范、化解風險,以減少遭受損失的可能性。
軟件的可控性是一種系統性的風險控制概念,涉及對軟件系統的認證授權和監控管理,確保實體(用戶、進程等)身份的真實性,確保內容的安全和合法,確保系統狀態可被授權方所控制。管理機構可以通過信息監控、審計和過濾等手段對系統活動、信息的內容及傳播進行監管和控制。
(6)可存活性(Survivability)
信息安全的可存活性是指信息系統的這樣一種能力:它能在面對各種攻擊或錯誤的情況下繼續提供核心的服務,而且能夠及時恢復全部的服務。
軟件作為信息系統的重要組成,可存活性是一個融合信息安全和業務風險管理的新課題,它的焦點不僅是對抗網絡入侵者,還要保證在各種網絡攻擊的情況下業務目標得以實現,關鍵的業務功能得以保持。
1.3.3 軟件安全相關概念辨析
本節將介紹與軟件安全相似、相近和相關的一些概念,涉及軟件工程、軟件危機、軟件質量和軟件質量保證、軟件保障、軟件可靠性、應用軟件系統安全、可信軟件和軟件定義安全。
1.軟件工程
軟件工程(Software Engineering)是指,采用工程的概念、原理、技術和方法來開發和維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,從而經濟地開發出高質量的軟件并有效地進行維護。概括地說,軟件工程是指導計算機軟件開發和維護的一門工程學科,是技術與管理緊密結合形成的工程學科。
通常把軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學。軟件工程方法學包含3個要素:方法、工具和過程。其中,方法是完成軟件開發的各項任務的技術方法,是回答“怎樣做”的問題;工具是為運用方法而提供的自動的或半自動的軟件工程支持環境;過程是為了獲得高質量的軟件所需要完成的一系列任務的框架,它規定了完成各項任務的工作步驟。
由于軟件漏洞、惡意軟件和軟件侵權等安全問題而導致的系統可靠性受到威脅,會危及信息系統基礎設施(如工控系統)和個人隱私(如信用卡賬戶信息)的安全,給整個社會帶來破壞,阻礙經濟有序發展,因而軟件安全開發、軟件安全檢測及軟件版權保護是軟件工程方法學的重要內容。
2.軟件危機
軟件危機(Software Crisis),也稱為軟件蕭條(Software Depression)或軟件困擾(Software Affliction),是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常運行的軟件才具有的,可以說幾乎所有軟件都不同程度地存在這些問題。軟件危機的一些具體表現如下。
●對軟件開發成本和進度的估計不準確。
●用戶對開發完成的軟件系統不滿意。
●軟件產品的質量不可靠。
●軟件不能適應新的硬件環境,軟件中的錯誤難以改正。
●軟件缺乏適當的文檔資料。
●軟件開發成本在總成本中的占比高。
●軟件開發生產效率跟不上人們的需求發展。
可見,軟件存在安全漏洞、惡意軟件泛濫及軟件版權保護等安全問題還只是軟件危機的冰山一角。
3.軟件質量和軟件質量保證
概括地說,軟件質量(Software Quality)就是“軟件與明確的和隱含的定義的需求相一致的程度”。具體地說,軟件質量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的開發標準,以及所有專業開發的軟件都應具有的和隱含特征相一致的程度。
基本上可用兩種途徑來保證產品質量,一是保證產品的開發過程,二是評價最終產品的質量。《軟件工程 產品質量 第1部分 質量模型》(GB/T 16260.1—2006)中,分別給出了外部質量和內部質量模型,以及使用質量模型來描述軟件質量。外部質量和內部質量模型包含6個特性(功能性、可靠性、易用性、效率、維護性和可移植性),并進一步細分為若干子特性。使用質量的屬性分類為4個特性:有效性、生產率、安全性和滿意度。由此可見,安全性是軟件質量的一個重要屬性。
軟件質量保證(Software Quality Assurance,SQA)是建立一套有計劃、有系統的方法,向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目所采用。軟件質量保證的目的是使軟件過程對于管理人員來說是可見的。它通過對軟件產品和活動進行評審和審計來驗證軟件是合乎標準的。軟件質量保證組在項目開始時就一起參與建立計劃、標準和過程。這些將使軟件項目滿足機構的要求。
4.軟件保障
通常軟件保障包括軟件質量(軟件質量工程、軟件質量保障和軟件質量控制等功能)、軟件安全性、軟件可靠性、軟件驗證與確認,以及獨立驗證與確認等學科領域。
軟件保障(Software Assurance,SA),也有譯為軟件確保,是用于提高軟件質量的實踐、技術和工具。
美國國家安全系統委員會(Committee on National Security System,CNSS)把軟件保障定義為對軟件無漏洞和軟件功能預期化的確信程度;美國國土安全部(Department of Homeland Security,DHS)對軟件保障的定義強調了可確保的軟件必須具備可信賴性、可預見性和可符合性;美國國家航空航天局(NASA)把軟件保障定義為有計劃、有系統的一系列活動,目的是確保軟件生命周期過程和產品符合要求、標準和流程。
我國國家標準GB/T 30998—2014《信息技術 軟件安全保障規范》給出的軟件保障(Software Assurance)的定義是:確保軟件生存周期過程及產品符合需求、標準和規程要求的一組有計劃的活動。
可以看出,軟件保障是指提供一種合理的確信級別,確信根據軟件需求,軟件執行了正確的、可預期的功能,同時保證軟件不被直接攻擊或植入惡意代碼。2004年美國第二屆國家軟件峰會所確定的國家軟件戰略中認為,軟件保障目前包括4個核心服務,即軟件的安全性、保險性、可靠性和生存性。
軟件保障已經成為信息安全的核心,它是多門不同學科的交叉,其中包括信息確保、項目管理、系統工程、軟件獲取、軟件工程、測試評估、保險與安全、信息系統安全工程等。目前國內被廣泛認知的軟件保障模型為方濱興院士等提出的軟件確保模型。該模型建立了分析和確保軟件質量的保證模型,并指出軟件確保是信息保障、測試評估及信息系統安全工程的核心。
5.軟件可靠性
長期以來,軟件可靠性(Software Reliability)作為衡量軟件質量的唯一特性受到特別重視。
1983年美國IEEE計算機學會對“軟件可靠性”做出了明確定義,此后該定義被美國國家標準與技術研究院接受為國家標準,1989年我國也接受該定義為國家標準。GB/T 11457—2006《信息技術 軟件工程術語》給出的軟件可靠性定義如下。
●在規定條件下,在規定的時間內軟件不引起系統失效的概率。該概率是系統輸入和系統使用的函數,也是軟件中存在的缺陷的函數。系統輸入將確定是否會遇到已存在的缺陷(如果缺陷存在的話)。
●在規定的時間周期內所述條件下程序執行所要求的功能的能力。
由上述定義可知,軟件可靠性不但與軟件存在的缺陷和/或差錯有關,而且與系統輸入和系統使用有關。提高軟件可靠性就是要減少軟件中的缺陷或錯誤,提高軟件系統的健壯性。因此,軟件可靠性通常涉及軟件安全性的要求,但是軟件可靠性要求不能完全取代軟件安全性的要求。
6.應用軟件系統安全
應用軟件系統位于信息系統的上層,是在信息系統的硬件系統、操作系統、網絡系統和數據庫管理系統的支持下運行的,是構成信息系統的最重要部分,是信息系統中直接為用戶提供服務的部分。
應用軟件系統是由業務應用處理軟件組成的系統。信息系統(也稱應用系統)是實現業務應用的所有軟硬件的總稱。其中,應用軟件是對業務應用進行處理的軟件,其他軟件和硬件,包括組成計算機平臺和網絡平臺的所有軟件和硬件,都是為了支持應用軟件正常運行而配制的。
為了確保業務應用的安全,首要的是確保應用軟件系統的安全。而為了實現應用軟件系統的安全,除了在應用軟件系統中實現必要的安全功能外,大量的是需要支持其運行的計算機平臺和網絡平臺的安全作為支持和保證,也就是組成信息系統平臺的計算機軟硬件的安全和網絡軟硬件的安全。這些安全要求進一步分解為計算機和網絡系統的物理安全、計算機操作系統的安全、數據庫管理系統的安全等,網絡協議安全、網絡軟件安全和網絡數據交換與傳輸安全等。這些安全機制確保信息系統的各個組成部分各自安全地運行以提供確定的服務,并對各自控制范圍的用戶數據信息進行安全保護,確保其達到確定的保密性、完整性和可用性目標。
7.可信軟件
可信性是信息安全領域較為經典的一個概念。早在1985年,美國國家計算機安全中心(National Computer Security Center,NCSC)倡議的可信計算機系統評價準則中就將軟件可信性定位在安全性這個唯一的質量屬性上,指出可信性是屬于軟件產品質量的一個屬性。
“可信性”是在正確性、可靠性、安全性、時效性、完整性、可用性、可預測性、生存性及可控性等眾多概念的基礎上發展起來的一個新概念,是客觀對象的諸多屬性在人們心目中的一個綜合反映。學者們試圖從不同角度、不同層次去詮釋“可信性”,但尚未形成共識。
一般認為,“可信”是指一個實體在實現既定目標的過程中,行為及結果可以預期,它強調目標與實現相符,強調行為和結果的可預測性和可控制性。軟件的“可信”是指軟件系統的動態行為及其結果總是符合人們的預期,在受到干擾時仍能提供連續的服務。這里的“干擾”包括操作錯誤、環境影響和外部攻擊等。
構造可信軟件已成為現代軟件技術發展和應用的重要趨勢和必然選擇。一方面,軟件的規模越來越大,導致軟件的開發、集成和維護工作越來越復雜,目前的可信軟件構造與運行保障技術、可信性度量與評測方法嚴重缺乏,使得軟件產品在推出時就含有很多已知或未知的缺陷,對軟件系統的安全可靠運行構成了不同程度的威脅。另一方面,軟件的開發環境和運行環境已經從傳統的封閉、靜態環境發展為開放、動態、多變的互聯網環境。網絡交互、共享和協同帶來了很多“不可信”因素,網絡上對信息的濫用和惡搞,使得可信問題變得更加突出。互聯網環境中計算實體的行為具有不可控性和不確定性,這種狀況既對傳統的軟件開發方法和技術提出了重要挑戰,也對軟件運行時刻的可信保障提出了嚴峻要求。
目前的可信軟件研究是在軟件正確性、可靠性、安全性和生存性等基礎上發展起來的,軟件形式化理論和驗證技術、可靠性工程、網絡信息安全等領域均有針對若干可信屬性的研究。但是軟件可信性不是正確性、可靠性、安全性和生存性等性質的簡單相加,可信軟件研究也不是對已有的各種軟件屬性研究進行簡單的綜合。首先,由于軟件系統越來越復雜,軟件可信意味著軟件行為可信、環境可信和使用可信等不同層次的可信要求,而局部的可信并不一定導致全局的可信。系統的可信性屬于涌現類的性質,如何從整體上度量、獲得并保證可信性將是非常困難的;其次,不同可信屬性之間可能彼此有沖突,并且不同層次之間也可能會有沖突,如何最優化地協調與取舍也是一個關鍵問題;第三,當軟件可信性成為研究目標之后,必然要針對“可信”性質建立分析、構造、度量、評價體系,使得可信性能夠在軟件生產活動中被有效地跟蹤控制和驗證實現。這也對現有的計算理論與技術體系提出了挑戰。需要強調的是,要達到軟件可信的目標,需要對軟件系統開發的整個生命周期,包括需求分析、可信算法設計、軟件設計與實現、測試與驗證、運行維護等階段進行全面、統一的研究。
8.軟件定義安全
軟件定義的信息安全(簡稱軟件定義安全)是當前熱門的信息安全話題。國際著名咨詢公司Gartner將軟件定義安全作為2014年十大信息安全技術之一發布,體現了軟件定義安全問題在當前形勢下的重要性。
傳統的網絡安全防護方法通常是根據網絡的拓撲情況,以手動方式在安全域邊界串聯或旁路部署安全設備,對進出安全域的流量進行監控。如果將這種與接入模式、部署方式緊密耦合的防護方法沿用到復雜的網絡環境(如物理與虛擬網絡共存的數據中心)中,會存在諸多不適應性,例如,安全設備部署過程繁復;不能區別處理流經的流量;安全防護范圍僵化;安全設備成為單一故障點。
軟件定義安全(Software Defined Security,SDS)是從軟件定義網絡(Software Defined Network,SDN)引申而來的。SDN的基本思想是,把當前IP網絡互連結點中決定報文如何轉發的復雜控制邏輯從交換機/路由器等設備中分離出來,以便通過軟件編程實現硬件對數據轉發規則的控制,最終達到對流量進行自由操控的目的。SDN的核心理念是使網絡軟件化并充分開放,從而使得網絡能夠像軟件一樣便捷、靈活,以此提高網絡的創新能力。
SDS是適應SDN復雜網絡的安全防護新思想,基本原理是將物理及虛擬的網絡安全設備預期接入模式、部署方式和實現功能進行解耦,底層抽象為安全資源池里的資源,頂層統一通過軟件編程的方式進行智能化、自動化的業務編排和管理,以完成相應的安全功能,從而實現一種靈活的安全防護。SDS可以分解為軟件定義流量、軟件定義資源和軟件定義威脅模型,三個舉措環環相扣,形成一個動態、閉環的工作模型。
●軟件定義流量:通過軟件編程的方式來實現網絡流量的細粒度定義及轉發控制管理,通過將目標網絡流量轉發到安全設備上,實現安全設備的邏輯部署和使用。
●軟件定義資源:通過管理中心對安全資源進行統一注冊、池化管理、彈性分配,在虛擬計算環境下,管理中心還要支持虛擬安全設備模板的分發和設備的創建。
●軟件定義威脅模型:對網絡流量、網絡行為和安全事件等信息進行自動化的采集、分析和挖掘,實現對未知的威脅甚至是一些高級安全威脅的實時分析和建模,之后自動用建模結果指導流量定義,實現一種動態、閉環的安全防護。
軟件定義安全并不代表不再需要一些專門的信息安全硬件,這些仍然是必不可少的,只不過就像軟件定義的網絡一樣,只是將價值和智能化轉移到軟件當中而己。
SDN和由此基礎上發展起來的SDS,其基本思想都是不依賴于硬件設備,通過軟件來實現系統的安全性,特別是可控性保障。從本質上說,軟件安全關注的是實現軟件產品安全性的全面質量保證的方法,而軟件定義安全是實現分布式系統安全可控的一種有效方法。二者雖然都屬于信息安全工程的范疇,但卻是兩個不同的發展方向。可以將二者結合起來,實現更高安全等級的系統安全。
拓展閱讀
讀者要想了解更多軟件定義安全的知識,可以閱讀以下書籍資料。
[1]劉文懋,等.軟件定義安全:SDN/NFV新型網絡的安全揭秘[M].北京:機械工業出版社,2016.
- 軟件安全技術
- Java程序設計實戰教程
- Java完全自學教程
- Spring技術內幕:深入解析Spring架構與設計
- Learning Selenium Testing Tools with Python
- Python從菜鳥到高手(第2版)
- jQuery開發基礎教程
- 學Python也可以這么有趣
- Python機器學習基礎教程
- ServiceNow:Building Powerful Workflows
- Java EE Web應用開發基礎
- Mastering PowerCLI
- Java RESTful Web Service實戰
- Web前端開發精品課:HTML5 Canvas開發詳解
- Lync Server Cookbook