經得起原始碼資安弱點掃描的程式設計習慣培養(九)_Use of Cryptographically Weak PRNG(Pseudo-Random Number Generator)
接續前幾篇系列 經得起原始碼資安弱點掃描的程式設計習慣培養(一)_OWASP Top 10(十大網站安全風險)_學習寫更安全程式碼的網站推薦 經得起原始碼資安弱點掃描的程式設計習慣培養(二)_8.Insecure Deserialization :不安全的反序列化漏洞ASP.NET處理方式 經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_1.Injection注入攻擊_SQL Injection)_order by 語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(四)_2.Injection注入攻擊_SQL Injection_In語句正確參數化套入 經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header 經得起原始碼資安弱點掃描的程式設計習慣培養(六)_Path Traversal 經得起原始碼資安弱點掃描的程式設計習慣培養(七)_Code Injection 經得起原始碼資安弱點掃描的程式設計習慣培養(八)_Client DOM XSS 在判讀上屬於中風險的漏洞 通常在於應用程式裡面使用的Random亂數功能不夠隨機亂或者隨機範圍很好被預測到因為範圍較小。 風險 可能發生什麼問題 隨機數值通常被用來作為防止惡意使用者猜測如密碼、加密金鑰或session識別元等數值的機制,依照此 隨機數值用途的不同,攻擊者能夠有辦法預測下一個或已經產生過的隨機值,這使得攻擊者可以奪取另 外一位使用者的session,並取代他的身分,或是破解一組加密金鑰 (端看這組偽隨機值的用途)。 原因 如何發生 應用程式使用較弱的演算法來產生偽隨機值,代表決定其他數值的樣本大小相對來說是較小的。因為產 生隨機值所使用的偽隨機值產生器是基於統計學上的均勻分布所設計的,具有近似確定性。所以在收集 到數個產生出來的數值 (建立幾個獨立session然後收集session辨識碼) 後,攻擊者就有可能計算出其他的session辨識值。 更準確的說,如果這組偽隨機值被用做任何安全性使用,如密碼、金鑰、或是隱密辨識值,攻擊者就可以 預測下一個或已經產生的數值。 如何避免 一般