Crowdsec:一款面向Linux的現代化協作式大型多人防火墻
譯文【51CTO.com快譯】介紹
CrowdSec是一款大型多人防火墻,旨在通過服務器端代理保護互聯網上敞開的Linux服務器、服務、容器或虛擬機。它受Fail2Ban的啟發,旨在成為這款入侵防御工具的現代化協作版本。
CrowdSec免費開源(采用MIT許可證),源代碼發布在GitHub上。它使用行為分析系統,根據日志來確定是否有人企圖攻擊您。如果您的代理檢測到這類攻擊,會處理違規的IP,并發送加以審查。如果該信號通過審查過程,該IP被重新分發給共享相似技術配置文件的所有用戶,讓他們免受該IP的侵襲。
目的是利用群體的力量來創建實時IP信譽數據庫。至于攻擊您計算機的IP,您可以選擇以自己覺得合適的任何方式對付威脅。最終,CrowdSec利用社區的力量創建了一個極其準確的IP信譽系統,惠及其所有用戶受益。
在創始人看來很顯然,開源將是CrowdSec的主要支柱之一。該項目的創始人從事開源項目已有幾十年,他們不僅追隨開源,確切地說堅定地信仰開源。他們認為,社區是對付我們面臨的大規模黑客攻擊的關鍵,而開源是創建社區,并讓人們為項目貢獻知識,最終使該項目變得更出色更安全的有力手段。
該解決方案最近迎來了1.x版本,帶來了架構上的重大變化:引入了本地REST API。
CrowdSec的工作原理
CrowdSec用Golang編寫,目的在于在復雜的現代架構(比如云、lambda和容器)上運行。為此,它是“分離的”,這意味著您可以“在這里檢測”(比如在數據庫日志中)和“在那里緩解”(比如在防火墻或rproxy中)。
該工具在內部使用漏桶算法(leaky bucket),以便嚴格控制事件。場景用YAML編寫,盡可能簡單易讀,又不犧牲精細度。推理引擎讓您可以從鏈桶(chain bucket)或元桶(meta-bucket)獲取洞察力,這意味著如果多個桶(比如Web掃描、端口掃描和登錄嘗試失敗)溢出到一個“元桶”中,您可以觸發“針對性攻擊”緩解措施。
激進的IP使用互聯網保鏢(bouncer)來處理。CrowdSec Hub提供了現成的數據連接器、互聯網保鏢(比如ginx、PHP、Cloudflare或Netfilter)和場景,以阻止不同類別的攻擊。這些保鏢可通過多種方式來緩解威脅。
Crowdsec可在Captcha之類的保鏢上工作,限制可適用的權限、多因子身份驗證、遏制查詢,或者需要時激活Cloudflare攻擊模式。通過輕量級的可視化界面和強大的Prometheus可觀察性,您可以了解本地發生的情況(以及發生的地方)。
眾包安全
盡管Crowdsec軟件目前看起來像是改進的Fail2Ban,但該項目的目的是利用群體的力量,創建高度準確的IP信譽數據庫。CrowdSec攔截特定IP時,觸發的場景和時間戳被發送到我們的API,接受檢查,并添加到全球不良IP數據庫中。
雖然我們已經在向社區重新分發阻止名單,但計劃一旦處理了,其他先決代碼行就真正改善這一方面。網絡已經發現了超過130000個IP(每天在更新),能夠將其中的約10%(13000個)重新分發給我們的社區成員。
我們的愿景是,一旦CrowdSec社區足夠大,我們就會實時生成最準確的IP信譽數據庫。這種全球信譽引擎加上本地行為評估和緩解,有望讓許多企業可以以很低的成本獲得更嚴格的安全。
案例探究
以下是表明CrowdSec本領的兩個例子:
案例1
一家保護客戶免受DDoS攻擊的公司創建了依賴Fail2Ban的DDoS緩解策略。當其中一個客戶受到涉及7000臺機器的僵尸網絡的攻擊時,CrowdSec能夠攝取所有日志,并成功阻止了僵尸網絡中超過95%的機器,在不到五分鐘的時間內有效地緩解了攻擊。不妨比較一下,要應對這種攻擊,Fail2Ban將需要每分鐘處理幾千條日志,這頗具挑戰性,將花費近50分鐘。
案例2
一家電子商務公司正遭到大規模信用卡填塞攻擊。攻擊者正向支付網關發送垃圾郵件,并使用唯一的IP地址測試成千上萬不同的信用卡資料。這家公司安裝CrowdSec后,即可掃描所有日志,在短短幾分鐘內阻止入侵,而不用修改所有應用程序以試圖檢測攻擊。
原文標題:Introducing Crowdsec: A Modernized, Collaborative Massively Multiplayer Firewall for Linux,作者:Brittany Day
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】