Crowdsec:一款面向Linux的現代化協做式大型多人防火牆

介紹算法

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後,便可掃描全部日誌,在短短几分鐘內阻止入侵,而不用修改全部應用程序以試圖檢測攻擊。

相關文章
相關標籤/搜索