首页 > 其他分享 >基于“模型”的DevSecOps体系设计

基于“模型”的DevSecOps体系设计

时间:2024-05-04 21:45:46浏览次数:28  
标签:基于 DevSecOps IAST 模型 漏洞 RASP 上下文 响应

最近看了很多模型方面的理论,形成了自己对DevSecOps的新理解并设计了一套理论体系

一、两种模型

请先看图,一个应用针对外部流量和内部函数调用的基本截图如下

1)“请求响应”模型

在一个应用中,每一次请求都对应存在一个响应,对应这个模型的安全类产品有WAF(web应用防火墙),DAST(俗称漏扫)

通过对请求数据的污染以及响应(反应时间、输出内容)进行判定是否存在漏洞

source-->sanitize-->sink是经典的数据流模型,WAF是强制性对输入的净化(sanitize)的措施,其主要针对的是DAST。部署WAF也是等保合规的必要条件

2)“上下文”模型

上下文模型其实是请求响应模型的逻辑串联,如下图

左下角的中记录了当前线程中调用堆栈的信息,以及每个函数调用时的入参值

我们可以把每一次的函数调用都看成一次请求响应,函数的参数即为请求、返回值即为响应

IAST和RASP都在sink函数上进行了Hook,一旦发现sink函数被调用就回溯整个调用链以挖掘是否不安全的因素,例如:缺少数据净化(sanitize)、存在不安全的函数调用链等

通过多年的策略发展,数据净化主要是针对已知漏洞,而不安全的函数调用上下文主要针对的是未知漏洞(上下文可参考XDR+AI分析异常API调用链判断未知木马)

其中值得一提的是判断是否缺少数据净化是分析内容中占比较高的部分,例如sqli、xss、../、..\、异常的url、恶意文件后缀、命令注入、表达式注入,而这些净化往往针对的是特殊字符的校验

所以针对目前主流的springboot工程,对Controller和Service(包括dubbo的接口)的入参包括:字符串和pojo类中的字符串都进行一次净化(净化应做到可配置,包括深度和规则)

3)本节小结:

参考:切面防御   纵深防御  其实2者的本质都是“漏斗模型”(倒数第三个ppt),将“请求响应”和“上下文”结合场景逐层细化,最终把安全风险逐渐收口

 

二、DevSecOps的体系设计

通过第一节的模型分析,我们了解到:

WAF和DAST是请求响应模型,主要针对请求响应报文,而缺少应用内部上下文

RASP和IAST则注重上下文(也能hook应用http相关类以获得请求和响应原始报文)

下面我结合我的工作经验将不同环境使用的策略进行分类介绍

1)环境因素

这几年我反复听到一个问题:不同环境导致测出来的bug不同,甚至有些bug只有生产环境上存在

所以开发联调环境(一般就是开发同事的本机)、测试环境(包括功能、性能、安全)、预发环境、生产环境都存在不同的实施策略

2)开发同事本机一般性能受限,经收不住高并发DAST的扫描,并发较低的联调或手工逻辑漏洞挖掘倒是没问题

在这个环境中要求开发人员采用安全基础设施:统一的开发框架、IAST的agent(上报未净化的数据流和危险组件)、测开工程师编写自动化测试代码(我认为该角色和渗透测试工程师角色可以合并参考:yakit复杂场景测试

主要价值:在开发阶段就介入测试是实践中减少缺陷的一个实践心得,测试人员介入设计和测试以减少逻辑漏洞(尤其是越权),也能结合IAST的自动化能力在前期设计完善的等价类、边界值测试用例以减少数据流漏洞

3)测试环境性能较好可能会低于预发和生产环境,但是漏扫肯定能抗住了

在这个环境中DAST和IAST联动就发挥较大的作用,参考:IAST1   IAST2

注意事项:有的采用IAST和DAST不同厂商,也有采用同厂商,大家在采购前应仔细测试

主要价值:该组合保证了请求响应和上下文的完整分析,保证数据流漏洞测试的覆盖性和全面性,同时在这个环境中可以执行自动化回归测试保证软件的整体逻辑健壮

4)预发环境和生产环境一致,之前环境中“请求响应”模型和“上下文”模型已经分别使用了DAST和IAST,现在剩下了WAF和RASP未使用

WAF除了满足合规要求也拦截低端的漏扫行为以减少RASP的计算量,RASP则主要针对上下文感知是否存在未知漏洞

主要价值:在不影响业务的情况下,满足合规要求(WAF)并使用RASP监测未知漏洞

5)基础设施的统一性

现在有不少代码生成器,针对的是又长又臭的样板代码,尤其是Controller和Service的编写令人无语。。。

开发人员在此类平台能通过点击和注册就生成Controller和Service,让精力主要针对核心业务逻辑的编写

所以在此类基础设施上原生内嵌一套IAST+RASP探针,可以确保应用强制使用IAST或RASP

主要价值:基础设施的统一能保证安全能力的强制执行,减少业务、运维、开发三者对安全团队的抵触情绪

3)本节小结:

通过多年工作经验,总结了关于环境因素、测试介入、回归测试、逻辑漏洞、部门冲突和目前工作的落地实践,设计了不同环境和阶段应当落实的安全工作内容

 

三、其他

大家是不是很奇怪,代码审计去哪里了?我设计的体系中,代码审计归类到了红队的范畴。

红队人员可以无代价直接获得生产环境源代码进行人工分析挖掘深层次漏洞,并且外部SRC(黑盒无源码)也不能停,保证蓝队同时面对用户、SRC、红队以锻炼出抵抗黑扩的工作状态。

 

谢谢

 

标签:基于,DevSecOps,IAST,模型,漏洞,RASP,上下文,响应
From: https://www.cnblogs.com/k4n5ha0/p/18172665

相关文章

  • NVIDIA的人形机器人的基础模型Project GR00T已在实体机器人上进行展示
    原文地址:https://blogs.nvidia.com/blog/isaac-generative-ai-manufacturing-logistics/项目GR00T为人型机器人开发谢幕在GTC上展示,由GR00T驱动的人型机器人可以接受多模态指令——文本、视频和演示——以及它们之前的交互,以产生机器人所需的动作。GR00T在来自不同公司的四个......
  • 基于Lua实现类的继承
    --参考Lua官方给的代码http://lua-users.org/wiki/ClassesAndMethodsExample学习如何基于Lua脚本实现继承和面向对象的机制。下面是测试代码。--objecttest.luarequire("INC_Class")--===========================localcAnimal=SETclass("Animal")functioncAni......
  • Django - 模型与数据库
    目录模型定义与数据迁移模型定义数据迁移模型定义与数据迁移模型定义ORM框架是一种程序技术,用于实现面向对面变成语言中不同类型系统的数据之间的转换。#index\model.pyfromdjango.dbimportmodels#Createyourmodelshere.classPersonInfo(models.Model):id......
  • 文件包含-基于Pikachu的学习
    File_Include(文件包含)原理文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。比如在PHP中,提供了:include(),include_once()require(),require_once()这些文件包含函数,这些函数在代码设计中......
  • 【YoloDeployCsharp】基于.NET Framework的YOLO深度学习模型部署测试平台
    1.项目介绍  基于.NETFramework4.8开发的深度学习模型部署测试平台,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等应用场景,同时支持图像与视频检测。模型部署引擎使用的是OpenVINO™、TensorRT、ONNXruntime以及OpenCVDNN,支持CP......
  • 第?课——基于矩阵快速幂的递推解法
    第?课——基于矩阵快速幂的递推解法由于中间的数论部分我自己学的很差,没有办法写出清晰的博客来,所以这里跳过了数论部分的博客,来到矩阵快速幂。递推递推是一个非常常用的工具。比如经典的斐波那契数列:\[f(x)=\left\{\begin{array}{**lr**}1&,0\l......
  • 基于深度学习网络的鞋子种类识别matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述      基于GoogLeNet深度学习网络的鞋子种类识别是一种利用深度卷积神经网络进行物体识别的方法,特别适用于大规模图像分类问题。GoogLeNet以其独特的Inception模块和高效的层级结构,在Imag......
  • 拂衣天气(微天气)-模型设计
    前言这是一个前后端分离的项目,后端使用Java进行开发,而前端通过微信小程序实现。功能结构可从上图得知,部分功能已去除:消息消息推送紧急情况推送用户个人中心模型设计用户信息(UserInfo)idLong主键oidStringOpenIDuidStringUnionIDnameString昵称pho......
  • 基于SSM的在线考试系统毕业设计论文【范文】
    摘要随着信息技术的飞速发展,网络教学逐渐成为教育行业的重要组成部分。在线考试系统作为网络教学平台的关键模块之一,其便捷性、高效性和公正性受到广泛关注,基于SSM框架的在线考试系统旨在提供一个稳定、可靠并且易于维护的在线考试环境,以满足现代教育评价的需求。本研究围绕在线......
  • eBPF基于LPM实现路由匹配
    基于eBPFlpmmap,icmp只有匹配上路由才能通。最终目录结构效果展示启动应用前,可以ping通192.168.0.1和192.168.0.105。启动应用后,无法ping通192.168.0.1,可以ping通192.168.0.105。停止应用后,可以ping通192.168.0.1和192.168.0.105。icmp/drop-icmp.c#include"../heade......