APISIX 集成长亭雷池 WAF,实现 Web 安全防护
2023-9-8 12:3:47 Author: mp.weixin.qq.com(查看原文) 阅读量:13 收藏

在当今数字化时代,网络安全成为了重中之重。为了保护应用程序和用户数据的安全,APISIX 携手 chaitin-waf 插件,为用户提供全面的安全防护与流量管理功能。

Apache APISIX

是一个动态、实时、高性能的开源 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。APISIX 基于 NGINX 和 LuaJIT 构建,具有超高性能,单核 QPS 高达 23000,平均延迟仅为 0.2 毫秒。它能解决传统架构中的一些问题,同时适应了云原生时代的需求。

作为 API 网关,Apache APISIX 的应用场景非常广泛,可应用于网关、Kubernetes Ingress 和服务网格等场景,可以帮助企业快速、安全地处理 API 和微服务流量。

APISIX:https://github.com/apache/apisix

长亭雷池 chaitin-waf 插件

雷池是由长亭科技耗时十年开发的 WAF 系统,核心检测能力由智能语义分析算法驱动,提供对 HTTP 请求的安全请求,提供完整的 API 管理和防护能力,具备方便快捷、高安全性、高性能、高可用的特性。

雷池:https://github.com/chaitin/SafeLine

使用方式

安装 APISIX

💡 注意,使用 APISIX 3.5.0 及以上的版本。

本文使用 APISIX 的 docker 版本来做演示,克隆 apisix-docker 仓库,运行以下命令来安装:

git clone https://github.com/apache/apisix-docker
cd apisix-docker/compose
echo 'APISIX_DOCKER_TAG=3.5.0-debian' >> .env
docker compose -f docker-compose-release.yaml up -d
  • 业务地址:http://127.0.0.1:9080/
  • 管理地址:http://127.0.0.1:9180/

安装雷池

使用雷池官方提供安装命令:

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"

正常情况下,一路回车就能安装成功。

  • 安装目录:/data/safeline/
  • 控制台:https://127.0.0.1:9443/

修改雷池检测引擎的工作模式

社区版雷池的检测引擎默认以 unix socket 的方式提供服务,需要把它修改为 tcp 方式,供 APISIX 调用。

进入雷池检测引擎的配置目录:

cd /data/safeline/resources/detector/

用文本编辑器打开目录里的 snserver.yml 文件,寻找这样的三行内容:

bind_addr: unix:///resources/detector/snserver.sock
# bind_addr: 0.0.0.0
# listen_port: 8000

找到以后,将 bind 方式从 unix socket 改为 tcp,将这三行修改为以下内容:

# bind_addr: unix:///resources/detector/snserver.sock
bind_addr: 0.0.0.0
listen_port: 8000

这样我们就把雷池引擎的服务监听到了 8000 端口,现在只需要把容器内的 8000 端口映射到宿主机即可。

进入雷池的安装目录

cd /data/safeline/

用文本编辑器打开目录里的 compose.yaml 文件,为 detector 容器增加 ports 字段,暴露其 8000 端口,参考如下:

......

detector:
    ......
    ports:
    - 8000:8000

......

改好了之后,在雷池安装目录下执行以下命令重启雷池即可生效。

docker compose down
docker compose up -d

修改雷池的默认端口

雷池和 APISIX 默认都监听 9443 端口,如果在同一台机器上安装,需要修改雷池的默认端口。

在雷池的安装目录下,有一个名为 .env 的隐藏文件,修改其中的 MGT_PORT 字段后使用上面的方法再重启雷池即可生效。

在 APISIX 里绑定雷池

调用 APISIX 的 API,设置雷池检测引擎的地址,供 APISIX 调用,参考以下请求:

💡 192.168.99.11 是我本地雷池的地址,替换为你的 IP 即可。

curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/chaitin-waf -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "nodes":[
     {
       "host": "192.168.99.11",
       "port": 8000
     }
  ]
}'

调用 APISIX 的 API,设置一条路由,参考以下请求:

💡 192.168.99.12:80 是上游服务器的地址,APISIX 会将请求反向代理到这个地址。

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
   "uri": "/*",
   "plugins": {
       "chaitin-waf": {}
    },
   "upstream": {
       "type": "roundrobin",
       "nodes": {
           "192.168.99.12:80": 1
       }
   }
}'

测试防护效果

经过以上步骤,雷池 + APISIX 已基本配置完成,开始测试效果。请求 9080 端口,可以看到 APISIX 成功代理了上游服务器的页面:

curl 'http://127.0.0.1:9080/'

在请求中加入一个 a 参数,模拟 SQL 注入攻击:

curl 'http://127.0.0.1:9080/' -d 'a=1 and 1=1'

返回了 HTTP 403 错误,从错误消息中可以看出,雷池成功抵御了此次攻击。

{"code": 403, "success":false"message""blocked by Chaitin SafeLine Web Application Firewall""event_id""18e0f220f7a94127acb21ad3c1b4ac47"}

打开雷池的控制台界面,可以看到雷池记录了完整的攻击信息。

结语

Apache APISIX 集成长亭开源项目雷池 WAF 插件,提供更全面、更强大的安全防护和流量管理功能,使其应用程序和用户数据免受各种 Web 应用程序攻击的威胁,为用户带来更安全、更可靠的数字化服务体验。

往期回顾


 
近期版本发布

Apache APISIX 3.5 | Apache APISIX 3.4 | Apache APISIX 3.3 Apache APISIX 3.2 Apache APISIX Ingress 1.6 | Apache APISIX 3.1 | Apache APISIX 3.0 Apache APISIX Ingress 1.5-rc1

 
用户案例精选

移动云 | 腾讯游戏 | 腾讯蓝鲸 | 腾讯优图实验室 Airwallex | 新浪微博 | 贝壳 | Zoom | 雪球 | 同程数科 | 金山办公 | 又拍云 | 有赞 | vivo | 地平线 | Beeto | 小电 | 马蜂窝 | 君润人力 | 希沃 | 景顺长城

 
生态合作

Elasticsearch | Doris | Kafka | TiDB | ClickHouse NebulaGraph  | OpenWhisk Dubbo | Wasm | Dapr | Ory Hydra 

近期社区活动

2023 Apache APISIX Meetup Malaysia | 2022 Apache APISIX 年度记忆 | Apache APISIX × EDAS | Apache APISIX × Apache SeaTunnel | Apache APISIX × Apache EventMesh | Apache APISIX × Apache EventMesh | Apache APISIX × Apache Dubbo | 南京站 | 合肥云原生技术沙龙 | Apache APISIX Summit 2022

 关于 Apache APISIX 

Apache APISIX 是一个动态、实时、高性能的开源 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。

作为 API 网关,Apache APISIX 可以帮助企业快速、安全地处理 API 和微服务流量,可应用于网关、Kubernetes Ingress 和服务网格等场景。目前已被普华永道数据安全团队、腾讯蓝军、平安银河实验室、爱奇艺 SRC 和源堡科技安全团队等专业网络安全机构测试,并得到了高度认可。
 Apache APISIX 落地用户(部分)

  • Apache APISIX GitHub:https://github.com/apache/apisix

  • Apache APISIX 官网:https://apisix.apache.org/ 

  • Apache APISIX 文档:https://apisix.apache.org/zh/docs/apisix/getting-started


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzOTE1ODczMg==&mid=2247498654&idx=1&sn=6a580d8be9a740dc7eadf7d68f82ba3c&chksm=e92cef3dde5b662b0cf4cd0e4a4f465a464ec1035621fd21934916049a656198e5a570bc7bfe&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh