軟體架構設計,安全性你考慮了嗎?

科技的進步,軟體的發展越來越迅速。近年來,關於軟體漏洞和軟體漏洞的報告也越來越多,嚴重影響了公司、教育機構、政府和個人的日常生活。為了解決這一問題,對於軟體開發者來說,開發出來的系統應該是不包含軟體安全漏洞的,那麼軟體漏洞有哪些呢?本文將帶你先了解一下常見的軟體安全漏洞。

1。錯位的信任

軟體程式往往包含多個元件作為子系統,其中每個元件會在一個或多個受信區域中執行。例如,一個元件可以訪問檔案系統,但不允許訪問網路,而另一元件可以訪問網路,但不能訪問檔案系統。非信任解耦及許可權分離是安全設計模式的例子,它意味著首先要減少需要授權的程式碼的數量,這就要在設計系統時,使用不互信的元件,並保證元件在特定的許可權下執行。

2。 注入攻擊

當一個元件從超出該元件受信邊界的外部資料來源接收資料的時候,這些資料可能是惡意的,並且會導致注入攻擊。程式必須採取以下幾個步驟,保證收到的資料是合法的。這些步驟包括驗證,淨化,標準化。

3。 敏感資料洩露

系統的安全策略需要確定哪些資訊是敏感的。敏感資料可能包括使用者資訊,比如社會保障或信用卡號碼、密碼或私鑰。在不同等級受信域的元件中共享資料的時候,我們稱這些資料是跨越受信邊界的。

4。 效能洩露

效能(capability)指的是在授權中可以進行溝通而不會被忘記的標識。效能這個詞是由Dennis和Van Horn[Dennis 1966]引入的。它指向的是一個數值,這個數值指向的物件擁有一系列的物件訪問許可權。在一個基於效能的作業系統中的使用者程式,必須使用效能來訪問物件。

5。 拒絕服務

拒絕服務攻擊試圖使計算機的資源不可獲得,或者對需要使用該計算機資源的使用者來說,會造成資源不足的情況。通常這種攻擊是持續服務的伺服器系統需要重點關注的,它與桌面應用程式有很大區別。