軟件體系架構安全性戰術


軟件體系架構安全性戰術

王嘉梁

(石家庄鐵道大學 河北省石家庄市 050000;)

要:隨着軟件體系結構在軟件工程中的研究與應用越來越廣泛,以及學術界和產業界對軟件安全性認識的不斷深入,提高軟件結構安全性成為保障軟件安全的重要組成部分。本文對軟件體系結構的安全性方面進行了介紹描述。

關鍵字:軟件體系結構;質量屬性;安全性戰術;

Software Architecture Security Tactics

Wang JiaLiang

(Shijiazhuang Tiedao University;Shijiazhuang City, Hebei Province,;050000;)

Abstract: With the research and application of software architecture in software engineering becoming more and more extensive, as well as the deepening understanding of software security in academia and industry, improving software structure security has become an important part of ensuring software security. This paper introduces the security aspect of software architecture.

Keywords: software architecture; quality attributes; security tactics;

 

0.引言

軟件體系結構開始於軟件的早期設計。人們希望通過對軟件體系結構進行系統、深入地研究,以提高軟件生產率、保障軟件的質量、改善軟件維護等不斷涌現的問題。質量屬性是軟件體系結構設計中需要考慮的重要概念。它對軟件體系結構的設計起到了評估、修正、補充等重要作用,用以提高軟件體系結構設計的質量。

現今,軟件安全性已成為一個越來越不容忽視的問題,提起它,人們往往會想起一連串專業性名詞:“系統安全性參數”、“軟件事故率”、“軟件安全可靠度”、“軟件安全性指標”等等,它們可能出現在強制的規范性文檔中的頻率比較多,但卻不一定能在開發過程中吸引開發者的眼球。幾乎每一個程序員都或多或少的在項目維護時遭遇過自己軟件的安全性bug,這種經歷使我們有幸在一個設計嚴謹而又性能良好的系統平台上工作時, 都會對其大為感嘆: “真是一段很棒的代碼!”這是因為,專業的軟件設計開發人員會重視軟件的安全性,而不僅僅把它當做是書面字眼。

1.安全性概述

安全性指軟件同時兼顧向合法用戶提供服務,以及阻止非授權使用軟件及資源的能力。它既屬於技術問題又屬於管理問題。一般地,如果黑客為非法入侵花費的代價(考慮時間、費用、風險等多種因素)高於得到的好處,那么這樣的系統就可以認為是安全的。

在林·巴斯等人著作的《軟件構架實踐》第二版中,安全性與可用性、可修改性、性能、可測試性、易用性這五個質量屬性一同成為軟件架構設計時的六個重點考慮方面。

安全性是衡量系統在向合法用戶提供服務的同時,阻止非授權使用的能力。試圖突破安全防線的行為被稱為攻擊(一些安全專家使用“威脅”),可以有很多形式。它可以是未經授權試圖訪問數據或服務,或試圖修改數據,也可能是試圖使系統拒絕向合法用戶提供對很多介質來說,攻擊經常發生,其范圍從進行電子轉賬時盜取資金到修改敏感數據:從竊信用卡號到破壞計算機系統上的文件,以及由病毒執行的拒絕服務攻擊等。

2.如何實現安全性

在《軟件構架實踐》中,作者將實現安全性的戰術分為:與抵抗攻擊有關的戰術、與檢測攻擊有關的戰術以及與從攻擊中恢復有關的戰術。這3種戰術都非常重要。書中舉了一個簡單的例子:給門裝鎖就是在抵抗攻擊,在房子中放一個運動傳感器就是在檢測攻擊,給房子上保險就是從攻擊中恢復過來。

與抵抗攻擊有關的戰術涉及到以下幾方面:對用戶進行身份驗證、對用戶進行授權、維護數據的機密性、維護完整性、限制暴露的信息、限制訪問。檢測攻擊檢測通常通過“入侵檢測”系統進行。此類系統的工作方式是比較網絡通信模式與數據庫系統。在誤檢測的情況下,將通信模式與已知攻擊的歷史模式進行比較。在異常檢測的情況下,將通信模式與其本身的歷史基線進行比較。從攻擊中恢復則分為與恢復狀態相關的戰術和與基於預防或懲罰目的的識別攻擊者相關戰術兩部分。

基於以上安全性戰術的設計思想,軟件架構設計的安全性主要考慮安全威脅、安全機制、安全設計、訪問控制和安全通道這幾方面

2.1安全威脅

安全威脅主要包括機密性威脅、可用性威脅、完整性威脅和真實性威脅。其中,機密性威脅指的是未經授權的用戶獲得了對一項服務或者數據的訪問權;可用性威脅是指可能導致服務或者數據難以獲得、不能使用;完整性威脅是指在未經授權的情況下篡改數據和服務;真實性威脅是指通過偽造等方法,產生不存在的數據和服務。

在安全威脅中,機密性威脅、完整性威脅和真實性威脅這三方面均涉及到了與抵抗攻擊有關的戰術,而可用性威脅雖然算是可用性戰術需要考慮到的方面,但實際上由於合法用戶的服務可能不能使用,所以將其划分到安全戰術方面也是很合理的。

2.2安全機制

安全機制是指在軟件設計中確保安全的機制和方法,包括加密、身份驗證、授權和審計。其中,加密是指將數據轉換或攻擊者不能理解的形式;身份驗證用於驗證客戶、用戶、服務器等所申明的身份;授權是給予訪問資源所需的適當(最小)權限;審計指的是追蹤訪問內容和形式。

2.3安全設計

安全設計需要考慮以下三個問題:控制焦點、安全機制分層和簡潔性。控制焦點關注對應用程序相關數據的保護,訪問特定數據或資源時,通過指定可以調用的操作以及操作由誰完成來實施保護措施,限定特定用戶或角色訪問該應用程序。安全機制分層解決安全機制應該在哪一層實現的問題。簡潔性強調設計的實現必須簡潔明了。

2.4安全控制

訪問控制主要是主體對客體的訪問權限,主要技術包括訪問控制矩陣、黑白名單等方法。2.5安全通道

安全通道主要對通信各方面進行身份驗證,並保證消息的完整性和機密性。

3.總結

進行軟件安全性方面的架構,意味着要采用更全面也要更細致的思維方式,考慮的東西要更為戰略化,需要更為抽象地考慮問題,並使用溝通工具和技術來全面描述希望團隊實現的目標。除此之外,還需要從更高的角度考慮安全性,而不能只從戰術的角度考慮。

 

 

參考文獻

[1] iteye_227,軟件的質量屬性及其說明(https://blog.csdn.net/iteye_2272/article/details/82099106)2011-07-28

[2] 蝦哥聊網絡安全,軟件安全架構設計不得不考慮安全性方面(https://baijiahao.baidu.com/s?id=1664409356826687297&wfr=spider&for=pc)2020-04-21


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM