加入收藏 | 设为首页 | 会员中心 | 我要投稿 平顶山站长网 (https://www.0375zz.cn/)- 分布式云、数据处理、媒体处理、图像分析、基础存储!
当前位置: 首页 > 云计算 > 正文

Zadig + 洞态 IAST:让安全溶于持续交付

发布时间:2022-08-03 11:54:08 所属栏目:云计算 来源:互联网
导读:IAST 作为当下备受关注的一种安全测试技术,我们如何利用 Zadig 运行时环境管理能力,快速的将 IAST 能力集成到我们的日常工作流程中? 本文中以 Zadig K8s 项目 + Java 服务为例,来了解在 Zadig 中如何为已有服务快速接入 IAST 监测服务漏洞信息,为服务安
  IAST 作为当下备受关注的一种安全测试技术,我们如何利用 Zadig 运行时环境管理能力,快速的将 IAST 能力集成到我们的日常工作流程中?
 
  本文中以 Zadig K8s 项目 + Java 服务为例,来了解在 Zadig 中如何为已有服务快速接入 IAST 监测服务漏洞信息,为服务安全保驾护航。
 
  What is IAST & DongTai?
  IAST:交互式应用程序安全测试(Interactive Application Security Testing),是近年来兴起的一项新技术,被 Gartner 公司列为信息安全领域的 Top 10 技术之一。它融合了 SAST 和 DAST 技术的优点,IAST 使用运行时代理方法在测试阶段分析&监控应用程序的行为。
  DongTai 是一款开源的被动式交互式安全测试(IAST)产品,通过动态 Hook 和污点跟踪算法等实现通用漏洞检测、多请求关联漏洞检测(包括但不限于越权漏洞、未授权访问)、第三方组件漏洞检测等,目前支持 Java、Python 两种语言的应用漏洞检测。
  注意:主要用于 开发环境 和 测试环境,即只需单次访问即可实行安全检测,并不适用在并发量高的生产环境 (参考 IAST 性能测试报告 [1])
 
   Zadig  & IAST 运行原理图
  图片
 
  准备工作
  1. Zadig 中待开启 IAST 功能的服务,下面提供一个示例服务,服务名:demo ,服务 YAML 配置如下(Zadig 新建服务 [2]):
 
  复制
 
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      app: dongtai-java-agent-demo
    name: dongtai-java-agent-demo
  spec:
    selector:
      matchLabels:
        app: dongtai-java-agent-demo
    template:
      metadata:
        labels:
          app: dongtai-java-agent-demo
      spec:
        containers:
          - name: app-container
            image: dongtai/dongtai-java-agent-demo:0.0.1
  1.
  2.
  3.
  4.
  5.
  6.
  7.
  8.
  9.
  10.
  11.
  12.
  13.
  14.
  15.
  16.
  17.
  18.
  19.
  2.获取 DongTai backend 服务,有以下两种方式:
 
  使用洞态官方提供的 SaaS 版本
  使用 Docker-Compose 或者 Kubernetes 完成私有化安装 安装文档 [3]
  我们以第一种方式为例,使用洞态官方提供的 SaaS 服务,注册登录账号,进入项目管理界面:
 
  点击页面右上角 「+ Add Agent」
  在「下载探针」部分可以直接下载或者获取下载链接
  图片
 
  这里假设我们获取到的连接是:​
 
  复制
  AGENT_URL= http://192.168.2.169:8000/api/v1/agent/download?url=http://192.168.2.169:8000&language=java
  AUTH_HEADER= 'Authorization: Token 88cab3057e199b95cb0780e2a8ab4771c8874acd'
  1.
  2.
  以下是图中 Shell 脚本:
 
  复制
  curl -X GET "http://192.168.2.169:8000/api/v1/agent/download?url=http://192.168.2.169:8000&language=java" -H 'Authorization: Token 88cab3057e199b95cb0780e2a8ab4771c8874acd' -o agent.jar -k
  1.
  创建&部署 注入 Agent 的 demo 服务
  在 Zadig 中复制待测试服务配置,修改 K8s resource name 以及 label&selector 等,避免和现有服务冲突。
  配置中添加 initContainer,提前将 agent 下载到服务所在容器中。
  修改服务启动命令,添加 -javaagent:/path/to/agent.jar
  新建服务,服务名:demo-with-iast,粘贴修改后的配置并保存,修改后的服务 YAML 配置如下:
  复制
 
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    labels:
      app: dongtai-java-agent-demo-iast
    name: dongtai-java-agent-demo-iast
  spec:
    selector:
      matchLabels:
        app: dongtai-java-agent-demo-iast
    template:
      metadata:
        labels:
          app: dongtai-java-agent-demo-iast
      spec:
        volumes:
          - name: dongtai-iast-agent
            emptyDir: {}
        initContainers:
          - name: agent-init-container
            image: curlimages/curl
            volumeMounts:
              - name: dongtai-iast-agent
                mountPath: /tmp
            args:
              - "-k"
              - "-X"
              - "GET"
              - ${AGENT_URL}  # 替换成前面获取到的 AGENT_URL
              - "-H"
              - ${AUTH_HEADER} # 替换成前面获取到的 AUTH_HEADER
              - "-o"
              - "/tmp/agent.jar"
        containers:
          - name: app-container
            image: dongtai/dongtai-java-agent-demo:0.0.1
            volumeMounts:
              - name: dongtai-iast-agent
                mountPath: /agent
            env:
              - name: JAVA_TOOL_OPTIONS
                value: "-javaagent:/agent/agent.jar"
  
  将新建服务 demo-with-iast 部署到环境中(Zadig 创建环境 [4]),查看对应环境中服务的日志,出现如下日志则意味着 agent 注入成功。
  图片
 
  基于新部署的 demo-with-iast 服务,运行服务的自动化测试&功能测试,触发内部函数/服务的调用,agent 会自动地对运行过程中的漏洞信息进行采集与上报。
  至此,漏洞信息已完成采集上报,可以在刚才获取的 Dongtai backend 中查看当前服务漏洞相关信息。
 
  配置自动化工作流
  我们如果想要实时跟踪服务中的漏洞信息,需要我们将 IAST 融入我们的 DevOps 流程中。下面我们假设 demo 服务已经拥有 Zadig 工作流&构建的配置(Zadig 工作流配置 [5])),这时我们只需要两步就轻松能将 IAST 加入我们现有流程中。
 
  将我们刚才配置的服务 demo-with-iast  与  demo 服务的构建绑定。

(编辑:平顶山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读