阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 專技高考_資訊技師:系統分析與資訊安全#111975
科目:系統分析與資訊安全
年份:111年
排序:0

題組內容

四、資訊系統的安全性非常重要,要落實安全的軟體生命週期,須從安全需 求規格、安全設計階段著手整體資訊系統安全,並以安全程式設計原則 與最佳實務撰寫程式。程式安全分類可協助開發者辨識安全問題,了解 程式碼錯誤可能引發的安全問題,提升軟體安全。程式安全分類可以有: 「輸入驗證及表示(Input Validation and Representation)」 、「應用程式介面 誤用(API Abuse) 」 、「安全特性(Security Features)」 、「時間與狀態(Time and State)」 、「錯誤處理(Error Handling) 」、「程式碼品質(Code Quality)」 、 「封裝(Encapsulation) 」等。

申論題內容

(一)「時間與狀態」的安全問題,是在多核心 CPU 或分散式系統中,兩個 事件發生在幾乎同一時間;程式設計多執行緒(Threads)、多程序 (Process)等造成執行期之時間與狀態及訊息間產生非預期的交互作 用。請說明這些狀況可能導致的安全問題有那些。(5 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

「時間與狀態」的安全問題

在多核心CPU或分散式系統中,特別是在多執行緒(Threads)和多程序(Process)的程式設計中,「時間與狀態」的安全問題通常源於多個執行緒或進程在幾乎同一時間訪問共享資源,導致狀態不一致或競爭條件(Race Condition)。這些問題可能導致以下幾種常見的安全問題:

1. 競爭條件(Race Conditions)

定義

  • 當多個執行緒或進程同時訪問或修改共享資源,且這些訪問或修改的順序未被控制時,可能導致資源狀態的不一致,進而引發安全問題。

可能的安全問題

  • 資料損壞:同時訪問和修改共享資源(如變數、文件)的執行緒可能導致數據損壞,數據的不一致性可能導致系統崩潰或不正確的數據處理。
  • 特權提升:競爭條件可能被惡意利用來進行特權提升攻擊。例如,一個低權限的程序可以通過競爭條件獲得高權限資源的訪問權限。

2. 時間-檔案檢查-使用(Time-of-Check-to-Time-of-Use, TOCTTOU)

定義

  • 當一個程序在檢查資源狀態(如文件存在與否、權限等)與實際使用該資源之間有時間間隔時,惡意攻擊者可能在這段時間內修改該資源,導致安全問題。

可能的安全問題

  • 文件替換攻擊:攻擊者可以在文件狀態被檢查後、文件被使用前,將文件替換為惡意文件。例如,一個程序檢查某文件是否存在並有適當的權限,然後在實際打開文件之前,攻擊者將文件替換為一個惡意文件。
  • 權限誤用:一個程序檢查文件的權限並認為它是安全的,但在使用該文件之前,權限可能被改變,導致程序誤用文件的權限。

3. 死鎖(Deadlock)

定義

  • 當兩個或多個執行緒或進程互相等待對方釋放資源,導致這些執行緒或進程永遠無法繼續執行。

可能的安全問題

  • 系統不可用:死鎖可能導致系統或應用程序無法繼續運行,造成系統服務不可用。
  • 資源耗盡:死鎖狀態會持續佔用資源,導致系統資源耗盡,使得其他正常操作無法進行。

4. 非同步處理錯誤(Asynchronous Processing Errors)

定義

  • 當系統執行非同步操作時(如事件驅動的回調、異步I/O操作等),未妥善處理狀態和時間的變化,可能導致非預期的安全漏洞。

可能的安全問題

  • 狀態不一致:非同步操作可能導致系統狀態的不一致性,進而引發安全問題。
  • 資源洩露:如果非同步操作中的錯誤未能被正確處理,可能導致資源洩露,進而降低系統的可靠性和安全性。

實例說明

以下是「時間與狀態」安全問題的具體實例:

  1. 競爭條件

    • 在一個網路銀行系統中,兩個客戶同時嘗試轉賬相同的一筆資金。如果系統沒有正確同步這兩個操作,可能導致其中一個操作被覆蓋,導致資金損失或錯誤的交易記錄。
  2. TOCTTOU

    • 在一個文件處理應用中,程序首先檢查文件是否存在,然後打開該文件進行讀寫操作。如果檢查和打開之間存在時間差,攻擊者可以在這段時間內將文件替換為一個惡意文件,導致程序讀取或修改了不應該訪問的文件。

 

「時間與狀態」的安全問題在多核心CPU和分散式系統中尤為常見,需要開發者在設計和實現多執行緒和多進程應用時特別注意。通過正確的同步機制、檢查和使用之間的狀態管理,以及充分的錯誤處理,可以有效減少這類安全問題的風險,確保系統的穩定和安全運行。