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