关于Curiefense

概述

overview.png

Curiefense(キュリーフェンス)1是一个开源的云原生应用安全平台,可保护网站、应用程序、API等各种形式的网络流量免受网络攻击。它具有WAF、DDoS保护、速率限制和会话流控等多种功能,并在CNCF的Sandbox项目中进行开发2。

由于Curiefense可以作为Nginx和Envoy的扩展功能使用,因此可以在负载均衡器和服务网格等层面上阻止恶意流量。此外,还提供了度量和日志收集功能,因此管理员可以实时查看度量和请求的详细信息(头部和负载)。

※ 本文根据1.5.0版本的规格进行编写。

各项功能的详细信息 (Gè de

我会挑选主要功能进行说明。

网络应用防火墙 (WAF)

Curiefense的WAF具备保护Web应用程序免受OWASP Top 103及其他多种威胁的功能。该WAF采用了负面安全和正面安全两种模式。

通过负面安全模型的机制,比如定义文件中汇总的不正通信和不正攻击模式以及黑名单,可以防范已知的威胁。通过正面安全模型的机制,比如验证请求数据,可以防范异常请求和零日攻击。

此外,还可以注册外部的威胁情报(由网络安全专家整理的威胁信息),如The Spamhaus DROP列表,定期自动更新与网络攻击演进相适应的签名和IP封锁列表。系统默认已注册多个信息源,也可追加注册。

流量限制(包括DDoS保护)

这是一种功能,旨在防止对Web服务帐户的非法访问、信用卡的非法使用、优惠码的特定以及针对暴力攻击和分布式拒绝服务攻击(DDoS攻击)。您可以在全局设置到每个URL的任何范围内定义速率限制。

由于支持多层速率限制,因此可以设置多个阈值并逐渐增加请求量来触发逐步设置的处理。多层速率限制的使用案例包括:超过第一个阈值的客户端将被重定向到警告页面,而超过最后一个阈值的客户端将被视为违反速率限制的人,并在特定时间内被阻止(持续返回503)。

会话流程控制

根据定义的会话流顺序来阻止敌对请求的功能。由于攻击者为了速度和效率会采取与正常用户不同的行为,因此往往会偏离预期的行为模式。举个例子,当正常用户登录Web应用程序时,预期的流程是首先进行登录页面的GET请求,接着进行包含认证信息的POST请求,但攻击者经常只进行POST请求而不进行GET请求,所以通过将在获取登录页面后直接进行POST请求并在n秒内完成的流程定义为正常流程,便可以判断并阻止超出定义的异常请求。

架构

arch.png

服务器是由Curiefense保护的资源,用户是该资源的请求源。Curiefense由其他组件组成。这些组件包含自己的软件和其他开源软件,为了方便理解,我们给自己的软件添加了Curiefense的标志。现在,让我们逐个说明各个组件的作用。

Curiefense代理

实体是Curiefense成为筛选器与Nginx或Envoy集成,接收来自保护资源前的请求并过滤Web流量,并将访问日志发送到Elasticsearch。同时,它还充当以Prometheus格式公开的Exporter,用于公开与流量相关的度量。日志传输和指标公开也可以根据需要禁用。

更新设置是一种动态进行的机制,Curiefense代理会定期检查云存储,如果发现有新的安全策略,则会从云存储中下载并应用于自身。

此外,在使用某些功能,如速率限制和会话流程控制时,由于需要本地数据存储,因此 Curiefense 代理内部使用 Redis。虽然无法跟踪源代码,但似乎可以根据需要更改存储类型。

云存储

Curiefence代理的配置存储在Git中进行版本管理。由于所有更改都经过版本控制,因此可以随时恢复配置。作为云存储选项,支持Amazon S3、Google Cloud Storage、MinIO和本地文件系统等。

配置服务器

这是一个管理Curiefense代理设置的服务器。通过Web控制台和REST API接收设置更改请求,并将设置存储在云服务器上。值得注意的是,在当前版本中,认证功能似乎没有实施,这意味着它是在受保护的环境中运行的前提下。

网络控制台

这是Config Server的Web界面。

普罗米修斯/格拉法纳

在 Prometheus 中收集 Curiefense Proxy 的指標,然后在专用的 Grafana 仪表板上进行可视化。正如在 Curiefense Proxy 的说明中提到的,可以禁用指标收集功能,因此这些组件并非必需。

Elasticsearch / Kibana 弹性搜索 / 基本分析

可以在Kibana中查看存储在Elasticsearch中的访问日志。正如在Curiefense代理的说明中提到的,可以禁用日志收集功能,因此这些组件不是必需的。

最后

这次简单介绍了一个开源的面向云原生应用的安全平台 Curiefense。Curiefense 可以与 Nginx 和 Envoy 集成,所以在 Kubernetes 环境中,可以通过 Ingress 或 Service Mesh 层来提高服务的安全性。如果在安全方面有问题的话,考虑引入 Curiefense 也是一个不错的选择。

如果您阅读了这篇文章,对Curiefense产生了兴趣并想了解更多细节,请参考官方网站https://www.curiefense.io。

据说,Curiefense这个命名是为了向著名科学家玛丽·居福尼(Marie Curie)致敬而取的。在官方博客上,社区成员发布了与玛丽·居福尼相关的文章。https://www.curiefense.io/blog/inspired-by-marie-curie/Curiefense最初是由Reblaze开发的。因此,在Curiefense的标志中,可以看到Reblaze标志的一部分。有关其被批准为Sandbox项目的公告,请参阅https://www.curiefense.io/blog/now-a-cncf-sandbox-project/。

OWASP Top 10是OWASP(Open Web Application Security Project,开放式网络应用程序安全项目)组织发布的一份安全报告,旨在提升软件的安全性,汇总了针对Web应用程序的威胁中被认为具有高风险的内容。

广告
将在 10 秒后关闭
bannerAds