研究
TRE Python 綁定:正規表達式 ReDoS 攻擊防禦示範

摘要
Simon Willison 發表了一個 TRE 正規表達式函式庫的 Python 綁定專案,旨在展示其在抵禦正規表達式阻斷服務(ReDoS)攻擊方面的卓越韌性。此專案透過 `ctypes` 建立,並由 Claude Code 協助開發,證明 TRE 即使處理惡意模式和千萬字元輸入,也能比 Python 內建的 `re` 模組更快且以線性方式擴展,有效避免 ReDoS 攻擊。
研究:TRE Python 綁定 — ReDoS 韌性示範
此專案展示了強韌的正規表達式效能,提供了一個簡潔的 Python `ctypes` 綁定,連結至 TRE 正規表達式函式庫。它特別強調 TRE 對於正規表達式阻斷服務(ReDoS)攻擊的免疫力,這類攻擊會癱瘓 Python 內建的 `re` 模組。關鍵效能測試顯示,TRE 即使處理龐大輸入(一千萬字元)上的惡名昭彰「惡意」模式,也比 `re` 處理微小輸入時快上許多,並且能以線性而非指數方式隨著輸入大小擴展。
如果連 antirez 都認為它足以加入 Redis,那麼我認為 Ville Laurikari 的 TRE 正規表達式引擎值得更深入地探討。
我請 Claude Code 建立了一個實驗性的 Python 綁定(它使用了 `ctypes`),並嘗試對該函式庫進行一些惡意正規表達式攻擊。TRE 在處理這些攻擊方面,比 Python 的標準函式庫實作表現得更好,這主要歸功於它不支援回溯(backtracking)的特性。
標籤
Python正規表達式ReDoS 攻擊資訊安全TRE 函式庫ctypes
以上為 AI 自動翻譯導讀。原文版權歸 Simon Willison 所有。 建議透過上方「閱讀原文」前往原始網站,以取得最完整資訊與支持原作者。