xiaoxiong's blog Thinking and Action

大数据场景下攻击面&静态代码工具攻击面-dc29笔记


大数据场景下攻击面

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

该议题更多是针对大数据场景下的安全配置问题,很清晰的从集群管理,数据访问,数据处理,数据存储,数据读取几个方面讲述了默认应用安全配置下的常见安全问题。

集群管理层

  1. ZooKeeper 默认配置无需权限认证
  2. Ambari(基于web的hadoop管理工具) 默认情况下数据库默认账户为 ambari:bigdata

数据存储层

Hadoop

  1. name node 的IPC端口为8020,默认配置可以直接IPC/RPC访问,对hdfs 文件目录进行修改
  2. http://namenode-ip:50070/conf 未授权配置文件泄漏
  3. http://resman-ip:8088/conf 未授权配置文件泄漏

数据处理层

  1. YARN 提交恶意任务,运行导致RCE
  2. SPARK 提交恶意任务

数据读取层

SQOOP(主要用于数据迁移),可以导入导出数据

数据访问层

暴露在外的dashborads

  1. http://hive-server:10002
  2. http://hbase-master:17010
  3. http://presto-coordinator:8285
  4. jdbc://hive2://hive-server-ip:10000

总结

文章梳理了一遍大数据应用中的常用组件,很能长见识。但个人认为相对于其他研究方向,大数据场景下的攻击向安全投入意义可能有限,笔者见过的生产环境下也都有完备的安全配置,但是由于最初的安全设计关系,没有办法避免一个计算节点失陷后,即可利用获取的密钥或者证书攻击Master的可能性:

  1. 数据的敏感程度有限,
  2. 大数据基础架构常见于可信环境,访问存在局限性
  3. 作为权限提升跳板可能性有限

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

前期研究:

  1. CHECKOV RCE :CVE-2021-3035 CHECKOV 在处理恶意的文件时terraform存在反序列化漏洞
  2. kibit 在解析代码之后会执行代码没有选项禁用该功能
  3. 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/)配置环境变量导致代码执行

扫描器配置文件位置 1628653213907

扫描器配置文件代码执行表格 1628653268610

攻击场景总结

1628653320730

会对 CI/CD 造成的影响

  1. 绕过CI/CD设计的安全保护
  2. 入侵到受限的网络中
  3. 泄漏在 CI/CD 环境中数据
  4. 能够影响生产网络

一台开发机器失陷之后,伴随关键代码仓库及相关开发密钥泄密,导致CI/CD环境受到威胁,进而导致项目组或者整个公司DevOps环境受到威胁。


Comments