1. 程式人生 > 其它 >【悟空雲課堂】第二十六期:通過錯誤訊息導致的資訊暴露(CWE-209:Generation of Error Message Containing Sensitive Information)

【悟空雲課堂】第二十六期:通過錯誤訊息導致的資訊暴露(CWE-209:Generation of Error Message Containing Sensitive Information)

技術標籤:悟空雲課堂程式碼規範安全漏洞安全資訊保安java

關注公眾號“中科天齊軟體安全中心”(id:woocoom),一起漲知識!

該欄目為中科天齊全新規劃的悟空雲課堂,每週五下午18:00準時上線,旨在科普軟體安全相關知識,助力企業有效防範軟體安全漏洞,提升網路安全防護能力。

【悟空雲課堂】第二十六期:通過錯誤訊息導致的資訊暴露(CWE-209:Generation of Error Message Containing Sensitive Information)

什麼是通過錯誤訊息導致的資訊暴露缺陷?

軟體會生成一條錯誤訊息,其中包含有關其環境,使用者或關聯資料的敏感資訊。

通過錯誤訊息導致的資訊暴露缺陷構成條件有哪些?

敏感資訊本身可能是有價值的資訊(例如密碼),或者對於發起其他更嚴重的攻擊可能很有用。該錯誤訊息可能以不同的方式建立:

1、自生成的:原始碼顯式構造錯誤訊息並將其傳遞
2、外部生成的:外部環境(例如語言直譯器)處理錯誤並構造自己的訊息,其內容不受程式設計師的直接控制。

通過錯誤訊息導致的資訊暴露缺陷會造成哪些後果?

通常,這可能會洩露敏感資訊,也可能會被用於後續的攻擊,也可能儲存在伺服器中的私人資訊中。

通過錯誤訊息導致的資訊暴露缺陷的防範和修補方法有哪些?

內部處理異常,不向使用者顯示包含潛在敏感資訊的錯誤。如果必須對錯誤進行詳細跟蹤,請在日誌訊息中捕獲錯誤,但是要考慮如果攻擊者可以檢視日誌訊息,會發生什麼情況。避免以任何形式記錄高度敏感的資訊,如密碼。

通過錯誤訊息導致的資訊暴露缺陷樣例:

private void writeLearningDataToFile(int iteration, double error) {
         String errorNumber = String.valueOf(error);
         String iterationNumber = String.valueOf(iteration);
         try {
             buffWriter.write(iterationNumber + "," + errorNumber)
; buffWriter.newLine(); } catch (IOException ex) { Exceptions.printStackTrace(ex); } }

Wukong(悟空)軟體程式碼安全檢測修復系統檢測上述程式程式碼,則可以發現程式碼中存在著“通過錯誤訊息導致的資訊暴露” 導致的程式碼缺陷,如下圖:
Wukong(悟空)軟體程式碼安全檢測修復系統
通過錯誤訊息導致的資訊暴露缺陷在CWE中被編號為CWE-209:Generation of Error Message Containing Sensitive Information

更多的資訊請參考CWE官網:http://cwe.mitre.org/data/definitions/209.html

瞭解更多安全資訊 請關注公眾號 中科天齊軟體安全中心