2015-12-16 96 views
5

我一直在試圖檢測源代碼文件中的硬編碼密碼。檢測硬編碼密碼

目前我正在檢查變量賦值和比較標識符的子字符串與密碼pswd匹配。

但它是導致大量誤報像在這種情況下(讀取從配置文件密碼)

String PASSWORD_KEY = "server.password"; 
String password = prop.getProperty(PASSWORD_KEY); 

我可以標記出一些子串狀鍵,位置,路徑,我可以跳過錯誤代,但除此之外,我想不出更好的方法。

所有的建議表示讚賞。

+0

也許是太寬泛,但一個很好的問題....它想成爲一個普遍的或你的密碼有一些模式(我的意思是'大寫','小寫','符號'強制性?? –

+0

@JordiCastilla我想要一些可能在不同代碼基礎上工作的東西,目前的檢查我已經做了匹配而不考慮大小寫我一直在閱讀並試圖使它更通用,以迎合不同的編碼風格 –

+0

所以如果它決定所有的硬件編碼的密碼將是一個**字符串類型**,我認爲你可以用正則表達式「*」搜索所有硬編碼字符串的代碼庫,然後你可以過濾密碼 –

回答

0

隱藏的後門的真實世界案例瞭解到,代碼通常使用變量名稱來表示目的更加模糊。

因此,爲了達到萬無一失,您需要做一個完整的靜態分析,並在代碼檢查器中具有「智能」以瞭解代碼並找到認證發生的位置,然後向後工作以驗證沒有隱藏達到此目的的方法。

恕我直言,聘請某人做(安全)代碼審查比試圖自動化這個更便宜。