阿摩線上測驗 登入

申論題資訊

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

申論題內容

二、透過靜態分析(Static Analysis)或動態分析(Dynamic Analysis)兩種方式可檢測應 用程式源碼(Source Code)是否存在安全漏洞。請詳述靜態分析及動態分析的源碼 檢測原理及運作方式。(25 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
  • 靜態分析適用於早期發現程式碼中的潛在問題,無需執行程式碼,分析速度較快,但可能存在誤報。
  • 動態分析則能夠在實際運行環境中發現更多的實際問題,但需要執行程式碼,分析過程較慢,對測試環境要求較高。

這兩種方法通常結合使用,以提供更全面的安全檢測和保障。

 

靜態分析(Static Analysis)

源碼檢測原理

靜態分析是一種在不執行程式碼的情況下,通過檢查源碼或二進制文件來發現潛在安全漏洞的方法。它通常使用工具或程式來解析程式碼,建立其結構,並檢測程式碼中可能存在的錯誤或安全漏洞。

運作方式

  1. 語法檢查:檢查程式碼的語法錯誤和不合規範的結構。
  2. 模式匹配:通過預定義的模式檢測常見的安全漏洞,如SQL注入、緩衝區溢出等。
  3. 數據流分析:分析程式碼中變量和數據的流向,找出可能的漏洞,如未初始化的變量使用、未處理的例外情況等。
  4. 控制流分析:構建程式碼的控制流圖,檢查潛在的邏輯錯誤和死碼。
  5. 代碼審查:結合自動工具和人工審查,發現程式碼中潛在的設計缺陷和安全漏洞。

動態分析(Dynamic Analysis)

源碼檢測原理

動態分析是在程式執行時監控其行為,以發現潛在安全漏洞的方法。這種方法通過實際運行程式並觀察其運行狀態,來檢測程式在特定環境下的反應和行為。

運作方式

  1. 執行跟蹤:監控程式在運行時的系統調用、函數調用和執行流程,發現異常行為。
  2. 模擬攻擊:使用模擬攻擊工具對程式進行測試,檢查程式對惡意輸入的處理情況。
  3. 內存檢查:檢查程式在運行時的內存使用情況,發現內存泄漏、緩衝區溢出等問題。
  4. 性能監控:監控程式在運行時的性能指標,如CPU使用率、內存使用率等,找出性能瓶頸和潛在的資源消耗問題。
  5. 異常處理:觀察程式在異常情況下的行為,如輸入無效數據、資源不可用等,檢查程式的穩定性和容錯能力。