安全設計原則(選做)
在軟體開發和系統架構設計中,安全設計原則是一組指導方針,旨在幫助開發者和設計師構建更安全的系統。這些原則可以減少系統的脆弱性,提高對抗潛在威脅的能力。
透過各種資料,儘可能多的蒐集安全原則。
一、給出所有你能找到的安全原則的名稱,內容和來源資訊(圖書名稱,網站連結,...)。
以下是一些常見的安全設計原則及其來源資訊:
-
最小許可權原則:每個使用者或實體都應該被授予完成其任務所需的最小許可權。來源:OWASP
-
防禦性程式設計:在編寫程式碼時,採取防禦性措施來防止錯誤、攻擊和不當使用。來源:《防禦性程式設計》(作者:John Viega, Gary McGraw)
-
完整性:確保資料在傳輸和儲存過程中不受未經授權的修改或篡改。來源:NIST
-
認證:驗證使用者、系統或實體的身份。來源:ISO/IEC 27001
-
安全審計:記錄系統和應用程式中的活動,以便跟蹤和審計對系統的訪問和操作。來源:NIST
-
安全認證:確保系統或應用程式符合一組安全標準或規範。來源:ISO/IEC 27002
-
安全培訓和意識:為使用者和開發人員提供有關安全最佳實踐和風險的培訓,並提高他們對安全問題的認識。來源:SANS Institute
-
安全模組分離:將系統劃分為安全域和非安全域,以便在安全性受到威脅時最大程度地減少損失。來源:NIST
這些安全原則都是為了保護系統和資料免受潛在的威脅和攻擊,提高系統的安全性和穩定性。
二、根據2/8原則,選擇你認為最重要的20%,給出應用例項(程式碼編寫,命令列應用等),寫出實踐過程。
我選擇了安全性原則中的最小許可權原則,透過一個簡單的C語言實現示例,演示如何在檔案系統訪問中應用最小許可權原則:
點選檢視程式碼
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file;
// 使用最小許可權原則,只給予必要的檔案訪問許可權
file = fopen("data.txt", "r");
if (file == NULL) {
perror("開啟檔案時出錯");
exit(EXIT_FAILURE);
}
// 讀取檔案內容並列印
int character;
while ((character = fgetc(file)) != EOF) {
putchar(character);
}
// 關閉檔案
fclose(file);
return 0;
}
- 這段程式碼的功能是開啟名為"data.txt"的檔案,並將其內容列印到標準輸出。在開啟檔案時,使用了只讀模式("r"),這是根據最小許可權原則的要求,只給予程式必要的檔案訪問許可權。如果檔案開啟失敗,程式會輸出錯誤資訊並退出。接著,程式會逐字元讀取檔案內容,並將其列印到控制檯上。最後,程式關閉檔案並返回0表示正常結束。
- 在這個例子中,我們只給予程式開啟檔案的必要許可權,即只讀許可權。這是根據最小許可權原則的要求,即給予程式完成任務所需的最小許可權。透過這種方式,我們限制了程式對檔案系統的訪問許可權,減少了潛在的安全風險。
實踐截圖