DevSecOps意味着在DevOps交付管道把安全性包含进去。该模型尽可能早地将安全原则集成到软件开发生命周期的所有适用阶段中。下图展示了安全方面在DevOps后期阶段的集成,但DevSecOps安全性集成到生命周期的所有阶段。

IT安全领导者应该在他们的组织中采用有效的漏洞管理实践来实施适当的DevSecOps。

漏洞管理

漏洞管理是一种帮助组织识别、评估、确定优先级并修复系统中漏洞的做法。最终,漏洞管理的目标是通过使用修补、加固和配置管理等技术来降低漏洞带来的风险。这有助于确保安全性,同时限制恶意用户可能利用的风险。IT安全的主要职责是防范漏洞。我们都知道,安全漏洞可能代价高昂;根据Ponemon研究所和IBM进行的联合研究,每次数据泄露的平均成本为435万美元,而85%的组织在2022年至少有一次数据泄漏。根据《2022年数据泄露报告》,以下是近年来十大数据泄露和十大数据泄漏属性。

漏洞vs.利用vs.威胁

理解漏洞、威胁和利用之间的定义和关系非常重要。
漏洞(vulnerability)是代码或软件中的缺陷,为攻击者提供了未经授权访问系统的途径。在高层次上,漏洞可以分为两种类型:

1.技术漏洞:与代码相关的bug或错误、配置不当的防火墙、未打补丁或过时的操作系统或基础设施等。
2.人的漏洞:人们有意或无意地犯错误,并通过利用人类心理获得数据、系统或包的访问权限。

漏洞利用(exploit)是黑客利用漏洞的方法。利用漏洞攻击是指一些恶意代码,用来攻击系统的漏洞。它可能会窃取信息,减慢/阻止系统运行,或者成为服务器上的寄生虫,在未来制造问题。例如,Log4Shell漏洞是Log4j程序允许用户根据本应打印在日志中的值执行任意代码的一个弱点。随后实施了许多不同的漏洞利用,试图以不同的方式使用此漏洞——其中一些漏洞利用允许您插入自己的代码。相比之下,其他人暴露了软件的私有环境变量。

威胁(threat)是指一个或多个漏洞利用漏洞发起攻击的实际事件。

漏洞管理和DevSecOps组合

为了在DevSecOps项目中有一个良好的开端,在应用程序开发的早期——最好是在开始编写代码之前——就集成安全目标。安全可以集成,并且可以在项目的初始阶段开始有效的威胁建模。当开发人员在代码进入管道之前检查代码以识别任何问题时,静态分析筛选器和策略引擎可以随时运行。这有助于开发人员立即了解安全问题,使他们能够处理安全问题的所有权。一旦在静态应用程序中检查了代码,就可以使用SAST(static
analysis security
testing,静态分析安全测试)工具执行安全测试,以识别漏洞并执行软件组合分析。应该将SAST工具集成到提交后的过程中,以确保主动扫描引入的新代码以查找漏洞。因此,在软件开发生命周期的早期集成SAST工具可以降低应用程序漏洞风险。

在代码构建之后,就可以开始进行安全集成测试。在一个独立的容器沙盒中运行代码可以自动测试网络调用、输入验证和授权等内容。这些测试是DAST工具(dynamic
application security
testing,动态应用程序安全测试)的一部分。这些测试会生成即时反馈,从而能够快速迭代以测试问题。如果发生意外的网络调用或未经净化的输入等情况,测试将失败,管道将以通知相关团队的形式生成可操作的反馈。

访问管理是需要与DevSecOps集成的下一个重要原则。我们需要确保应用程序编写相关的安全性和性能指标。需要执行角色工程,定义与每个角色相关的角色和访问权限——需要定义标准的天生权利角色。

安全扫描和漏洞管理甚至在产品/项目投入生产后仍在继续。我们需要确保通过适当的配置管理将自动补丁应用到产品的最新版本。确保产品运行的是软件及其代码的最新稳定版本。

DevSecOps 中的漏洞管理(上)的更多相关文章

  1. 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架

    一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG ...

  2. 在Visual Studio 中使用git——分支管理-上(八)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...

  3. 在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全

    基于角色的安全是从 Windows NT 的第一个版本开始在 Windows 平台上发展而来的.使用角色,操作系统可以通过检查称为 BUILTIN\Administrators 的组的安全上下文做出一 ...

  4. .NET Core中的认证管理解析

    .NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...

  5. [转].NET Core中的认证管理解析

    本文转自:http://www.cnblogs.com/durow/p/5783089.html 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用 ...

  6. Laravel中的日志与上传

    PHP中的框架众多,我自己就接触了好几个.大学那会啥也不懂啥也不会,拿了一个ThinkPHP学了.也许有好多人吐槽TP,但是个人感觉不能说哪个框架好,哪个框架不好,再不好的框架你能把源码读上一遍,框架 ...

  7. 深入理解javascript中的焦点管理

    × 目录 [1]焦点元素 [2]获得焦点 [3]失去焦点[4]焦点事件 前面的话 焦点作为javascript中的一个重要功能,基本上和页面交互都离不开焦点.但却少有人对焦点管理系统地做总结归纳.本文 ...

  8. C++中的内存管理

    在C++中也是少不了对内存的管理,在C++中只要有new的地方,在写代码的时候都要想着delete. new分配的时堆内存,在函数结束的时候不会自动释放,如果不delete我分配的堆内存,则会造成内存 ...

  9. iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库

    一种新的第三方库管理工具:Carthage 如何使用Carthage管理iOS依赖库 Podfile Syntax Reference v1.1.0.rc.3 https://guides.cocoa ...

  10. Spring中的事物管理,用 @Transactional 注解声明式地管理事务

    事物: 事务管理是企业级应用程序开发中必不可少的技术,  用来确保数据的 完整性和 一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四 ...

随机推荐

  1. python利用random模块随机生成MAC地址和IP地址

      import random   def randomMac(): macstring = "0123456789abcdef"*12 macstringlist=random. ...

  2. 【Android 逆向】【ARM汇编】 arm64部分知识

    arm64寄存器更多 X0-X30 SP CPSR PC 64位 W0-W30 32位 PC寄存器的值禁止修改 参数放在 X0-X7/W0-W7 结果放在 X0 函数返回 RET 相当于 bl lr ...

  3. linux下安装django2.2

    安装 pip3 install django==2.2 创建项目 django-admin startproject pyweb 创建应用 django-admin startapp app01 修改 ...

  4. day04---虚拟主机网络配置的三种模式介绍

    课程大纲 补充:安装系统过程中 分区的知识 1.虚拟软件使用方法 2.操作系统网络配置 3.虚拟主机网络设置 4.操作系统远程连接 5.远程连接排错思路 补充:安装系统过程中 分区的知识 1.企业常见 ...

  5. 导入Excel文件的时候公式为【#Ref!】应该怎么解决?

    前言 在我们使用Excel时,经常会遇到一个问题,就是导入Excel时公式显示为[#Ref!]的情况.这通常是因为公式中引用的单元格已被删除或对应的工作表被删除,导致原公式无法识别对应的参数而显示为[ ...

  6. stm32L4xx串口日志配置解析

    前言: st这两年推出了一款超低功耗的芯片,stm32l4xx系列,该系列芯片有着功耗低,尺寸小等特点,非常适合应用在可穿戴式设备. 团队在这一领域深耕,所以不可避免的要用到这款芯片,这里就针对该芯片 ...

  7. Android Studio批量打渠道包

    原文: Android Studio批量打渠道包 - Stars-One的杂货小窝 公司项目渠道包越来越大,每次发版本都是开发人员打包,研究了下如何批量打渠道包,记录过程 步骤 1.gradle配置 ...

  8. posix API的一些理解

    TCP Posix API的理解 我们主要从TCP连接讲解整个的流程. 连接的建立 消息的收发 连接的断开 连接的建立 先看一下一个TCP server的创建过程. #include<stdio ...

  9. java -jar xxx.jar命令执行jar包时出现Error: Invalid or corrupt jarfile xxx.jar解决方案

    MANIFEST.MF清单文件内容: Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.2 Created-By: 1.8.0_60-b27 (Ora ...

  10. Mysql范式

    什么是范式? "范式(NF)"是"符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度".很晦涩吧?实际上你可以把它粗略地理解为一张数据 ...