阿摩線上測驗 登入

申論題資訊

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

題組內容

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

申論題內容

(三)「錯誤處理」不適當是十分常見的程式安全缺陷問題,請舉出兩種「錯 誤處理」不適當的類別或狀況。(10 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

「錯誤處理」不適當常常會導致安全問題和系統漏洞。以下是兩種常見的錯誤處理不當的類別或狀況:

1. 錯誤信息洩露(Error Information Disclosure)

描述

  • 當系統或應用程式在錯誤處理過程中暴露了詳細的內部錯誤信息或系統架構信息,攻擊者可以利用這些信息來進行進一步的攻擊。

問題

  • 內部結構洩露:攻擊者可能獲取有關系統架構、配置或代碼路徑的信息。
  • 敏感數據洩露:錯誤信息中可能包含用戶的敏感數據,如數據庫錯誤信息中包含的用戶憑證或內部ID。

範例

  • SQL錯誤信息:當應用程式發生SQL錯誤時,錯誤信息被直接回應給用戶,顯示了數據庫結構或查詢語句的詳細信息。

    影響:攻擊者可以利用這些信息發現SQL注入漏洞或其他數據庫相關漏洞。

  • 堆棧跟踪(Stack Trace):在發生異常時,系統返回了完整的堆棧跟踪信息。

    影響:攻擊者可以利用堆棧跟踪中的信息瞭解程序的內部結構和潛在漏洞。

2. 錯誤處理缺失(Error Handling Omission)

描述

  • 當系統或應用程式在遇到錯誤或異常時,未能正確處理錯誤,導致程序不穩定或異常行為。

問題

  • 系統崩潰:未處理的錯誤可能導致應用程式崩潰或重啟,影響系統的可用性。
  • 漏洞利用:攻擊者可能利用系統在錯誤狀況下的行為來觸發漏洞或繞過安全檢查。

範例

  • 未處理的異常:在某個操作中,應用程式未對異常進行捕獲和處理,導致應用崩潰。

    影響:如果doRiskyOperation()拋出異常但未被捕獲,應用程式可能會崩潰,造成服務中斷。

  • 缺乏錯誤回報:應用程式在處理錯誤時僅簡單地返回錯誤代碼而未提供詳細的錯誤信息或回報機制。

    影響:錯誤發生後,系統未能記錄詳細的錯誤信息,可能導致錯誤無法被跟蹤和修正。

總結

「錯誤處理」不當可能導致的信息洩露或系統崩潰等安全問題。為了改善錯誤處理,應用程式需要:

  • 限制錯誤信息:避免在錯誤回應中暴露詳細的內部信息,使用通用錯誤信息來防止攻擊者獲取有用的信息。
  • 適當處理異常:確保所有可能的錯誤或異常都得到妥善處理,並在錯誤發生時提供足夠的日志和回報機制,以便後續的問題追蹤和修正。

透過這些方法,可以提高應用程式的安全性和穩定性。