IAST技术进阶系列(四):DevOps流水线敏捷实践

攻防
2年前

 

数字经济时代,企业的数字化转型已经成为企业发展的重要驱动力之一。无论是传统行业还是互联网数字化转型的内生需求,都需要研发运营模式向敏捷交付一体化发展,即从传统的瀑布式开发到敏捷开发,再演进到当下热门的DevOps研运一体化。

1648199698969237.png

 图1 三种应用开发模式对比

随着企业对代码安全性、安全测试与漏洞扫描、第三方开源组件的安全性、设计符合安全标准和规范等安全问题越来越重视,DevOps带动了DevSecOps安全框架的兴起。悬镜安全作为国内DevSecOps敏捷安全领导者,以前瞻性的思维及多年的技术沉淀,助力企业从DevOps到DevSecOps转型。

在转型中,悬镜专利级代码疫苗技术的核心之一——IAST技术凭借独特优势成为DevOps流程中自动化安全测试的“明星”。能否与各类DevOps平台集成,是评判IAST平台成熟的主要标准之一。

一、 DevOps概念演进到工具链诞生

DevOps,由 Development(开发)和Operations(运维)组合而成,是一组过程、方法与系统的统称,重视软件开发人员和运维人员的沟通合作,通过自动化流程使软件构建、测试、发布更加快捷、频繁和可靠。

1648199785594535.png 

2 DevOps概念

一个简易的DevOps开发流程如下: 

开发团队接到任务进行一个变更->开发完成后提交代码到代码仓库Git->Jenkins拉取Git代码执行CI ->构建 Docker image->基于镜像部署应用到测试环境->在测试环境里通过 Jenkins 触发集成测试功能->完成后再部署应用到生产环境。

流程涉及的工具链包含GitJenkinsDocker等,其中自动化测试工具是关键。将手动的任务通过DevOps工具链形成自动化,开发效率进而提高。

1648199802941511.png 

3 DevOps工具链

二、 不是开发的“安全”而是“安全地开发”

DevOps开发模式流行之前,大多人认为安全只是特定团队的责任,在开发的最后阶段才会介入。但是当采用了DevOps开发模式之后,开发周期缩短至数周、数天甚至数小时,后置介入的安全手段会拖累整个开发流程,加重业务人员的负担,急需一种适应DevOps开发模式的安全解决方案,所以DevSecOpsDevelopment Security Operations)诞生了。

DevSecOps是一套基于DevOps敏捷开发和持续运营的全新IT安全实践战略框架,强调安全需要贯穿整个业务生命周期的每个环节,建议将安全保障措施无缝集成到开发时持续集成(CI)和持续部署(CD)的工具链中。随着技术发展,越来越多的安全技术和工具加入了DevOps生态IASTSCARASP等。其中,交互式应用程序安全测试 IAST)是一种应用程序运行时的安全测试技术,可以精准查找和验证应用程序中的漏洞,并且在DevOps的多个点很容易集成和自动化。

1648199812299703.jpg 

 4 DevSecOps工具链

三、 DevOps周期IAST的技术应用价值解码

1.  如何前置性嵌入安全工具降低修复成本-开发阶段的IAST

借助IAST插桩技术,在定位漏洞时根据流量和代码行精准定位,开发人员能够从开发周期的早期就解决应用的安全漏洞,降低修复成本。同时IAST提供的漏洞详情和修复建议也能为开发人员提供培训,逐步提高开发人员的安全开发水平。而且IAST可以和开发团队经常使用的任务管理工具如 JIRA等进行集成,减少多款工具带来的使用负担。

2.  如何智能化融入安全工具提升修复效率-QA阶段的IAST

DevOps的质量保证环节,IAST可以定义特定质量门禁的自动安全检查点,如漏洞的数量、等级以及类型等。这些检查点可以结合CI/CD工具,并且无需进行额外的扫描,在测试人员完成相关的功能测试环节时,即可完成针对应用的安全测试这对DevOps很友好。

3.  如何一体化应用探针技术实现威胁自免疫-生产阶段的IAST(RASP)

由于开发周期紧张、漏洞修复不彻底等因素,有一些漏洞可能在上线前仍然无法被及时处理,使得上线后的应用依然存在相关安全隐患。采用IAST“一体化探针”技术,通过开关的设置,在测试阶段以IAST插桩探针检测安全漏洞,并在保证应用安全的前提下,将短时间内无法修复的安全漏洞流转到上线后,同时把测试阶段的插桩探针携带到上线后并开启RASP的功能,在上线后的环节做安全防护,实现运行时自我保护机制。这样只需部署一次即可完成上线前的安全检测和上线后的安全防护,使应用得以持续安全运营。

四、 DevOps生态IAST技术的创新与实践

以悬镜安全的灵脉IAST为例,简述在DevOps生态下以及在应用程序的生命周期中,IAST技术与其他工具的集成形式。

1.  图文解读IASTJenkins 的两种结合方式

Jenkins是一个开源的持续集成(CI)工具,主要用于持续自动地构建/测试软件项目、监控外部任务的运行。常用的版本控制工具有SVNGit,构建工具有MavenAntGradle

IASTJenkins的结合一般有两种方式,一种是配置安装插件,上传插件后即可在任务构建步骤中选择插件进行使用,相对简单。

1648199826900880.jpg

5-1 配置安装插件

另一种是采用流水线脚本的方式,较为灵活,可以根据需求进行修改。自动化测试后会有结果展示,可下载相关报告。

1648199850660220.png 

5-2 下载报告

2.  图文解读IASTJIRA的集成方式

JIRA是一套敏捷的工作管理解决方案,可以帮助团队规划、分配、跟踪、报告和管理工作,更好地开展构建。

IAST与JIRA的集成一般可以通过配置JIRA的相关信息如地址、用户名、密码和项目Key等将漏洞信息推送至JIRA平台和项目绑定,相关人员可直接登录JIRA进行漏洞的查看编辑和流转指派。集成步骤如下:

点击“对接配置”,选择“JIRA”,点击“添加平台”即可。

1648199864716129.png

6-1 添加平台

参考以下示例,配置平台及对接内容。支持自定义,注意带“*”内容要完整填写。

1648199889857327.png

6-2 配置平台及对接内容

点击“测试连接”验证平台是否成功连接,然后点击“保存并应用”即可保存当前对接配置。

1648199908643640.png

图6-3 平台连接成功

在漏洞列表中,可以全选或者勾选需要同步的漏洞,然后点击“同步至JIRA”,将已选漏洞信息同步至JIRA平台。

1648199917387066.png

6-4 同步漏洞信息

登录JIRA平台,查看已同步的内容。

1648199931850002.png

6-5 查看漏洞信息

3.  IAST与研发运营一体化平台的兼容探索之路

得益于DevOps的快速发展,商业化研发运营一体化平台得以在企业内部快速推行。让IAST 兼容对接商业化的研发运营一体化平台,同样可以采用插件化和流水线脚本的方式。以悬镜灵脉IAST与某DevOps平台为例,展示集成和安全测试过程。

3.1 插件编排

在流水线构建中,构建测试环境时通过插件将IAST插桩埋入,并将IAST污点追踪插件编排至功能测试后,进行IAST检测结果的获取,请求生成本次流水线运行IAST检测报告。

1648199944977522.png

7-1 安全插件编排 

3.2 质量门禁设置

流水线编排完成后,设置相对应的质量门禁规则,选择质量红线控制位置,指标名称与阀值,标记此质量门禁作用流水线,点击“保存”即可生效。

1648199956617418.png

7-2 质量门禁设置

3.3 安全质量卡点

返回流水线,点击污点追踪插件可见质量门禁规则已成功匹配。

1648199988106344.png

图7-3 安全卡点匹配

执行此流水线,在相关功能测试完成后,流水线进入污点追踪插件逻辑判断。由于漏洞数量超过了质量门禁要求,流水线被阻断。

1648200009164096.png

图7-4 安全门禁生效

3.4 检测报告融合

返回流水线查看检测结果,可以通过点击污点追踪插件,点击“报告”按钮,或是查看产出物报告,两者均可在DevOps流水线查看IAST检测报告。

1648200021125041.png


7-5 检测报告查看

结语:

DevOps是一种不断发展的理念和框架,它鼓励更快、更好的应用程序开发以及更快地向客户发布新的或修订的软件功能或产品。IAST作为下一代敏捷安全思想下的重要技术,它的实践落地,促进了DevOps向DevSecOps的转型,也必然在当下甚至未来的应用安全领域大放异彩。

关于悬镜安全

 

悬镜安全,DevSecOps敏捷安全领导者。由北京大学网络安全技术研究团队“XMIRROR”发起创立,致力以AI技术赋能敏捷安全,专注于DevSecOps软件供应链持续威胁一体化检测防御。核心的DevSecOps智适应威胁管理解决方案包括以深度学习技术为核心的威胁建模、开源治理、风险发现、威胁模拟、检测响应等多个维度的自主创新产品及实战攻防对抗为特色的政企安全服务,为金融、能源、泛互联网、IoT、云服务及汽车制造等行业用户提供创新灵活的智适应安全管家解决方案。更多信息请访问悬镜安全官网:www.xmirror.cn