安全設計原則(選做)

20211115fyq發表於2024-03-17

安全設計原則(選做)

在軟體開發和系統架構設計中,安全設計原則是一組指導方針,旨在幫助開發者和設計師構建更安全的系統。這些原則可以減少系統的脆弱性,提高對抗潛在威脅的能力。
透過各種資料,儘可能多的蒐集安全原則。

一、給出所有你能找到的安全原則的名稱,內容和來源資訊(圖書名稱,網站連結,...)。

以下是一些常見的安全設計原則及其來源資訊:

  1. 最小許可權原則:每個使用者或實體都應該被授予完成其任務所需的最小許可權。來源:OWASP

  2. 防禦性程式設計:在編寫程式碼時,採取防禦性措施來防止錯誤、攻擊和不當使用。來源:《防禦性程式設計》(作者:John Viega, Gary McGraw)

  3. 完整性:確保資料在傳輸和儲存過程中不受未經授權的修改或篡改。來源:NIST

  4. 認證:驗證使用者、系統或實體的身份。來源:ISO/IEC 27001

  5. 安全審計:記錄系統和應用程式中的活動,以便跟蹤和審計對系統的訪問和操作。來源:NIST

  6. 安全認證:確保系統或應用程式符合一組安全標準或規範。來源:ISO/IEC 27002

  7. 安全培訓和意識:為使用者和開發人員提供有關安全最佳實踐和風險的培訓,並提高他們對安全問題的認識。來源:SANS Institute

  8. 安全模組分離:將系統劃分為安全域和非安全域,以便在安全性受到威脅時最大程度地減少損失。來源: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;
}
  1. 這段程式碼的功能是開啟名為"data.txt"的檔案,並將其內容列印到標準輸出。在開啟檔案時,使用了只讀模式("r"),這是根據最小許可權原則的要求,只給予程式必要的檔案訪問許可權。如果檔案開啟失敗,程式會輸出錯誤資訊並退出。接著,程式會逐字元讀取檔案內容,並將其列印到控制檯上。最後,程式關閉檔案並返回0表示正常結束。
  2. 在這個例子中,我們只給予程式開啟檔案的必要許可權,即只讀許可權。這是根據最小許可權原則的要求,即給予程式完成任務所需的最小許可權。透過這種方式,我們限制了程式對檔案系統的訪問許可權,減少了潛在的安全風險。

實踐截圖
image

image

相關文章