Cloudflare 發生問題的 RegEx - 資安
By Tristan Cohan
at 2019-07-13T22:12
at 2019-07-13T22:12
Table of Contents
在 Clludflrae[0] 的官方文章中提到了 大家想知道發生問題的 regex 為何
根據文章中提到出現問題的 regex 因為出現了 .*(?:.*=.*) 導致出現 DoS 的狀況發生
也就是資源被佔滿的情況 (以這次的例子是 CPU)
這類型的問題可以被稱為 ReDos [1]
是一種因為正規表示法 (RegEx) 撰寫時的疏忽導致再比對時 耗盡 CPU 資源
經典的例子是 (a+)+ 這個表示法 當比對 aaaa! 時
會根據 a 的數量而比對次數成等比成長
原因在於當配失敗時 會觸發 backtrack 而繼續比對
更多的比對資訊可以使用 Perl[2] 的 debug 工具
[0]: https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/
[1]: https://en.wikipedia.org/wiki/ReDoS
[2]: https://metacpan.org/pod/Regexp::Debugger
--
根據文章中提到出現問題的 regex 因為出現了 .*(?:.*=.*) 導致出現 DoS 的狀況發生
也就是資源被佔滿的情況 (以這次的例子是 CPU)
這類型的問題可以被稱為 ReDos [1]
是一種因為正規表示法 (RegEx) 撰寫時的疏忽導致再比對時 耗盡 CPU 資源
經典的例子是 (a+)+ 這個表示法 當比對 aaaa! 時
會根據 a 的數量而比對次數成等比成長
原因在於當配失敗時 會觸發 backtrack 而繼續比對
更多的比對資訊可以使用 Perl[2] 的 debug 工具
[0]: https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/
[1]: https://en.wikipedia.org/wiki/ReDoS
[2]: https://metacpan.org/pod/Regexp::Debugger
--
Tags:
資安
All Comments
By Dinah
at 2019-07-16T08:57
at 2019-07-16T08:57
Related Posts
使用者名稱當做電腦名稱
By Andrew
at 2019-07-09T22:18
at 2019-07-09T22:18
Injection in API HTTP request from frontend?
By Zora
at 2019-07-04T20:21
at 2019-07-04T20:21
資料突然消失?
By Lucy
at 2019-06-17T01:42
at 2019-06-17T01:42
CSA Taiwan Wargame 報名
By Margaret
at 2019-06-13T00:51
at 2019-06-13T00:51
手機網卡上網資安問題
By Carol
at 2019-06-03T19:06
at 2019-06-03T19:06