文档章节

DevSecOps 怎么做?利用 Zadig 测试环境持续运行 IAST 安全扫描,完美搞定!

Zadig云原生交付
 Zadig云原生交付
发布于 06/23 17:33
字数 1401
阅读 1.6K
收藏 0

IAST 作为当下备受关注的一种安全测试技术,我们如何利用 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

 

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'


以下是图中 Shell 脚本:

以下是图中 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

 

创建&部署 注入 Agent 的 demo 服务

  1. 在 Zadig 中复制待测试服务配置,修改 K8s resource name 以及 label&selector 等,避免和现有服务冲突。
  2. 配置中添加 initContainer,提前将 agent 下载到服务所在容器中。
  3. 修改服务启动命令,添加 -javaagent:/path/to/agent.jar
  4. 新建服务,服务名: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"

 

5. 将新建服务 demo-with-iast 部署到环境中(Zadig 创建环境 [4]),查看对应环境中服务的日志,出现如下日志则意味着 agent 注入成功。

6. 基于新部署的 demo-with-iast 服务,运行服务的自动化测试&功能测试,触发内部函数/服务的调用,agent 会自动地对运行过程中的漏洞信息进行采集与上报。

至此,漏洞信息已完成采集上报,可以在刚才获取的 Dongtai backend 中查看当前服务漏洞相关信息。

配置自动化工作流

我们如果想要实时跟踪服务中的漏洞信息,需要我们将 IAST 融入我们的 DevOps 流程中。下面我们假设 demo 服务已经拥有 Zadig 工作流&构建的配置(Zadig 工作流配置 [5])),这时我们只需要两步就轻松能将 IAST 加入我们现有流程中。

  1. 将我们刚才配置的服务 demo-with-iast  与  demo 服务的构建绑定。

2. 启动工作流,选择服务 demo-with-iast,对我们最新的服务进行部署与验证。

 

运行效果

回到洞态 backend 界面,点击项目,就可以看到当前服务的漏洞情况分析:

至此我们已将 IAST 检测与 Zadig 交付流程无缝结合起来,工程师可以随时对业务服务的更新进行漏洞检测,更加安全可靠的迭代产品。

参考链接:

[1] 洞态丨JAVA Agent v1.7.0 性能测试

[2] https://docs.koderover.com/zadig/v1.12.0/project/service/k8s/#新建服务

[3] https://doc.dongtai.io/docs/category/server-部署指南

[4] https://docs.koderover.com/zadig/v1.12.0/project/env/k8s/#创建环境

[5] https://docs.koderover.com/zadig/v1.12.0/project/workflow/#配置工作流

Zadig,让工程师更专注创造!

欢迎加入 开源吐槽群?

Zadig on Github

Zadig on Gitee

 

Zadig云原生交付

Zadig云原生交付

粉丝 198
博文 65
码字总数 106693
作品 1
浦东
私信 提问
加载中
点击加入讨论?(1)
带你零门槛掌握基于大模型技术的AIGC场景应用

当下,越来越多AI领域前沿技术争相落地,逐步释放出极大的产业价值,其中最受关注的方向之一便是大规模预训练模型(简称“大模型”),大模型不仅效果好、泛化能力强、通用性强,而且具有强大...

飞桨PaddlePaddle
50分钟前
24
0
腾讯云微服务引擎 TSE 7月产品动态

云原生网关 【新功能】Kong 网关支持实例升降配能力:Kong 网关支持在控制台中修改网关实例的节点数量,节点数量支持1-50。 【新功能】Kong 网关提供实时日志服务:Kong 网关默认为您提供网关...

腾讯云中间件
08/11
0
0
溪塔科技入选「2022年中国元宇宙最具创新力企业」领跑元宇宙新赛道

8月10日,「2022年中国元宇宙最具创新力企业」完整榜单正式披露。本次榜单结合声望、投融资、技术、规模、市场占有率等多个评价维度,邀请行业大咖、专家学者、投资机构成立组委会,进行评审...

溪塔科技
08/12
19
0
一块GPU训练TB级推荐模型不是梦,OneEmbedding性能一骑绝尘

来源 | 机器之心 个性化推荐已成为人们获取信息的主要形式。以往,人们更多通过主动搜寻自己感兴趣的信息,而现在,基于算法推荐技术的信息分发平台会自动识别用户兴趣,快速筛选信息,推送用...

OneFlow深度学习框架
08/12
0
0
安全日报(2022.08.11)

赶紧点击上方话题进行订阅吧! 报告编号:B6-2022-081199 报告来源:360CERT 报告作者:360CERT 更新日期:2022-08-11 1 Security Incident|安全事件 Bitter组织正在分发Dracarys安卓间谍软件...

360CERT
08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

{{formatHtml(o.title)}}

{{i}}-{{formatHtml(o.content)}}

{{o.author.name}}
{{o.pubDate | formatDate}}
{{o.viewCount | bigNumberTransform}}
{{o.replyCount | bigNumberTransform}}

暂无文章

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
http://www.vxiaotou.com