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

你可能感兴趣的:(linux)