大数据场景下攻击面
The Unbelievable Insecurity of the Big Data Stack: An Offensive Approach to Analyzing Huge and Complex Big Data Infrastructures
视频:https://www.youtube.com/watch?v=vl9hk4fQdos
pdf: http://i.blackhat.com/USA21/Wednesday-Handouts/us-21-The-Unbelievable-Insecurity-of-the-Big-Data-Stack-An-Offensive-Approach-To-Analyzing-Huge-And-Complex-Big-Data-Infrastructures.pdf
该议题更多是针对大数据场景下的安全配置问题,很清晰的从集群管理,数据访问,数据处理,数据存储,数据读取几个方面讲述了默认应用安全配置下的常见安全问题。
集群管理层
- ZooKeeper 默认配置无需权限认证
- Ambari(基于web的hadoop管理工具) 默认情况下数据库默认账户为 ambari:bigdata
数据存储层
Hadoop
- name node 的IPC端口为8020,默认配置可以直接IPC/RPC访问,对hdfs 文件目录进行修改
- http://namenode-ip:50070/conf 未授权配置文件泄漏
- http://resman-ip:8088/conf 未授权配置文件泄漏
数据处理层
- YARN 提交恶意任务,运行导致RCE
- SPARK 提交恶意任务
数据读取层
SQOOP(主要用于数据迁移),可以导入导出数据
数据访问层
暴露在外的dashborads
- http://hive-server:10002
- http://hbase-master:17010
- http://presto-coordinator:8285
- jdbc://hive2://hive-server-ip:10000
总结
文章梳理了一遍大数据应用中的常用组件,很能长见识。但个人认为相对于其他研究方向,大数据场景下的攻击向安全投入意义可能有限,笔者见过的生产环境下也都有完备的安全配置,但是由于最初的安全设计关系,没有办法避免一个计算节点失陷后,即可利用获取的密钥或者证书攻击Master的可能性:
- 数据的敏感程度有限,
- 大数据基础架构常见于可信环境,访问存在局限性
- 作为权限提升跳板可能性有限
TODO: 第一见Ambari
, 有空挖一挖
静态代码工具攻击面
Abusing SAST tools! When scanners do more than just scanning
视频:https://www.youtube.com/watch?v=Jl-CU6G4Ofc
pdf地址:https://media.defcon.org/DEF%20CON%2029/DEF%20CON%2029%20presentations/Rotem%20Bar%20-%20Abusing%20SAST%20tools%20When%20scanners%20do%20more%20than%20just%20scanning.pdf
前期研究:
- CHECKOV RCE :
CVE-2021-3035
CHECKOV 在处理恶意的文件时terraform
存在反序列化漏洞 - kibit 在解析代码之后会执行代码没有选项禁用该功能
- SNYK 和 TERRASCAN 都能根据 terraform 配置文件定制扫描功能,一款自动化编排工具,terraform配置文件可控可导致命令执行
terraform 提供命令执行功能,CI 工具集成了checkov 功能
攻击实例
- 劫持扫描器的配置文件(checkov.yml),使无法正常进行代码检查,以某种方式改变源码可以改变扫描器的行为
- 劫持扫描器的配置文件(checkov.yml),可以执行代码
- KIBIT(一款针对Clojure, ClojureScript, cljx and other Clojure语言的静态代码分析器) 使用
clojure.core/read
或者clojure.core/read-string
处理不安全的代码时会造成代码执行 - 配置文件使用
ERB templating
(ruby静态代码分析器)机制预处理时,可能造成动态内容执行。 - PMD (https://pmd.github.io/latest/)配置环境变量导致代码执行
扫描器配置文件位置
扫描器配置文件代码执行表格
攻击场景总结
会对 CI/CD
造成的影响
- 绕过CI/CD设计的安全保护
- 入侵到受限的网络中
- 泄漏在
CI/CD
环境中数据 - 能够影响生产网络
一台开发机器失陷之后,伴随关键代码仓库及相关开发密钥泄密,导致CI/CD环境受到威胁,进而导致项目组或者整个公司DevOps
环境受到威胁。