我正在嘗試編寫一個能夠識別易受攻擊代碼塊的正則表達式。代碼中經常被忽略的典型位置是代碼中的TODO,FIXME,CVE和BUG註釋。正則表達式匹配來識別易受攻擊代碼
在應用程序上執行安全代碼審查時,我的目標是使用合適的正則表達式在註釋中優化「相關」TODO和FIXME和BUG聲明的結果。
也許我試圖瞄準這個寵物項目太大。然後再次,這是堆棧溢出。如果某人在這裏不知道答案,那麼很有可能,沒有人會(尚)。
樣例文本
1. //TODO - autogenerated catch block. This could be a security flaw
2.
3. // But this could be a CVE also.
4.
5. String val = "empty";
6. /*
7. * TODO bug fix later
8. * Fixme although it probably does not need it
9. */
10.
11. //TODO autogenerated
12. //security problem. Too hard to fix
13. Integer int4 = 1;
14. Object o = null;
15. //TODO dummy block
這裏就是我希望的。我想正則表達式:
- FLAG 1號線在單個註釋TODO和安全
- FLAG線7 TODO和bug單註釋行
- FLAG線11 & 12,因爲它有TODO和安全在相同的評論塊中,即在實際的代碼行之前。
- FLAG第3行,因爲它提到了CVE。
- IGNORE 15號線,因爲它似乎是一個虛擬的TODO,因此是噪音。
免責聲明 - 我知道沒有一個統一的MAGIC正則表達式,可以完全退出這個功能,但我希望得到儘可能接近。
謝謝!
你遇到了難題。 – alestanis 2013-03-07 22:46:35
謝謝!但是如果解決了這個問題,那麼對於安全行業中的所有人來說都是有價值的。這是一個不幸的現實,現在的靜態分析工具在分離小麥和穀殼方面做得不好。 – raTM 2013-03-07 22:51:23
那麼,這個問題當然可以解決,但恕我直言不與正則表達式。已經有一些工具可以進行代碼解析(考慮doxygen),並將註釋中的內容分開(這已經不是那麼容易了)。一旦你有評論的內容,你可以做一些[NLP](http://en.wikipedia.org/wiki/Natural_language_processing)?或者只是尋找關鍵詞,因爲你建議 – alestanis 2013-03-07 22:56:49