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后,便可扫描全部日志,在短短几分钟内阻止入侵,而不用修改全部应用程序以试图检测攻击。

相关文章
相关标签/搜索