关于Curiefense
概述
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秒内完成的流程定义为正常流程,便可以判断并阻止超出定义的异常请求。
架构
服务器是由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。
OWASP Top 10是OWASP(Open Web Application Security Project,开放式网络应用程序安全项目)组织发布的一份安全报告,旨在提升软件的安全性,汇总了针对Web应用程序的威胁中被认为具有高风险的内容。