程式碼安全測試第十期:日誌偽造漏洞

zktq2021發表於2021-05-31

一、什麼是日誌偽造漏洞?

應用程式通常使用日誌檔案來儲存事件或事務的歷史,以供以後檢視、收集統計資訊或除錯。根據應用程式的性質,檢查日誌檔案的任務可以根據需要手動執行,也可以使用工具自動篩選重要事件或趨勢資訊的日誌。

當日志條目包含未經過授權的使用者輸入時,會造成日誌偽造。

二、日誌偽造漏洞的構成條件有哪些?

滿足以下條件,就構成了一個日誌偽造的 安全漏洞

1、資料是從不可靠的來源(包括但不侷限於不可靠使用者的輸入資訊或是不可靠使用者可能更改的檔案)進入應用程式;

2、資料寫入到應用程式或是系統日誌檔案。

三、日誌偽造漏洞會造成哪些後果?

關鍵詞:修改應用程式的資料;隱藏活動;執行未授權的程式碼或命令

如果攻擊者向記錄到日誌檔案的應用程式提供惡意資料,則可能會妨礙或誤導日誌檔案的解讀。最理想的情況是,攻擊者可能透過嚮應用程式提供包括適當字元的輸入,在日誌檔案中插入錯誤的條目。如果日誌檔案是自動處理的,那麼攻擊者可以破壞檔案格式或注入意外的字元,從而使檔案無法使用。透過偽造或其他方式,可能會導致日誌檔案中的統計資訊發生偏差,受到破壞的日誌檔案可用於掩護攻擊者的跟蹤軌跡,甚至還可以牽連第三方來執行惡意行為。最糟糕的情況是,攻擊者可能向日志檔案注入程式碼或者其他命令,利用日誌處理實用程式中的 漏洞

四、日誌偽造漏洞的防範和修補方法有哪些?

1、輸入驗證:對輸入的資訊進行驗證。假設所有輸入都是惡意的,使用“接受已知好的資料”輸入驗證策略,即,使用嚴格符合規範的可接受輸入列表。拒絕任何不嚴格符合規範的輸入,或者將其轉換為符合規範的輸入。

2、輸出編碼:對要寫入日誌檔案的資訊進行編碼,使之符合日誌檔案的編碼格式要求。常見的編碼格式包括ISO-8859-1, UTF-7, 和UTF-8。

五、日誌偽造導致的漏洞樣例:

靜態程式碼檢測分析上述程式程式碼,則可以發現程式碼中存在著日誌偽造導致的程式碼缺陷,如下圖:

日誌偽造在CWE中被編號為CWE-117:Improper Output Neutralization for Logs


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2774669/,如需轉載,請註明出處,否則將追究法律責任。

相關文章