DevSecOps内置安全保护

news2025/2/28 3:05:46

前言

随着DevOps的发展,DevOps大幅提升了企业应用迭代的速度。但同时,安全如果不能跟上步伐,不仅会抵消DevOps变革带来的提升,拖慢企业数字化转型进程,还会导致漏洞与风险不约而至。所以安全能力在全球范围内受到的重视越来越高, 软件开发内生的安全性成为评价企业DevOps成熟度水平的重要指标 。

一直以来,业界长期重视软件上线后的安全防护,而对研发阶段的安全投入不多。2012年,Gartner提出了DevSecOps的理念。DevSecOps 的理念是将安全防护流程有机地融入传统的 DevOps 流程中,为研发安全提供强有力保证,安全工具支撑研发阶段段安全要求落地。

安全设计的重要性

在《DevSecOps领导者指南》一书中,作者Glenn Wilson提出了DevSecOps的三层方法论,安全教育(Security Education)、通过设计保证安全(Secure By Design)、安全自动化(Security Automation)。设计安全是实现DevSecOps非常重要的一环,大量历史经验也表明,越早在架构设计阶段考虑到安全设计的系统,比那些在越晚的开发设计阶段才考虑安全设计的系统,要安全得多。根据美国国家标准与技术研究所(NIST)统计,在发布后执行代码修复,其修复成本相当于在设计阶段执行修复的 30 倍。具体数据如图所示。
在这里插入图片描述
DevSecOps 的目标是在软件生命周期的全部阶段,可以更早、更快地发现并处理安全问题。从开始的安全左移到现在的无处不移,都是为了实现这个目标。因此设计安全作为全生命研发周期的排头兵必不可少。

业界的相关安全设计实践

如何做好设计安全,我们先来参考下业界相关机构和企业的做法。

  • 安全开发生命周期SDL(Security Development Lifecycle)是微软最早提出,专注在软件开发流程的各个阶段的安全和隐私问题,在系统设计阶段提到了三个方面:安全设计、威胁建模和安全和隐私风险评估。
  • OWASP推出了SAMM(Software Assurance Maturity Model),帮助开发者在软件工程的过程中实施安全,在软件构造阶段提出了威胁评估和安全架构。
  • 信息通信研究院的研发运营安全体系中,明确给出设计阶段需要进行确定质量安全门禁、受攻击面分析、威胁建模、安全需求设计知识库、安全设计原则。
  • 腾讯在设计阶段提出了公司安全规范的建立、安全评估和威胁建模,腾讯构建了自己的隐私保护方法论——用户、控制、数据三位一体的方式。
  • 小米提出了设计阶段要制定小米安全手册、构建安全培训体系、进行威胁建模分析。
  • 华泰证券在DevSecOps敏捷安全大会2021中发表了《安全内建-通过设计保证安全》,提到了安全架构设计、轻量级威胁建模和安全测试金字塔三个方面。
    其他更多内容不在一一列举,关于设计阶段的安全保障大家都有自己独有的特色,下面我们主要是围绕安全架构设计保证安全落地有法可依,进行威胁建模让安全落地有迹可循、做好隐私和敏感数据保护让安全落地在每一个细节和实处这几个方面进行阐述。

安全架构设计

在DevSecOps中,安全设计从应用程序扩展到容器和基础设施,应用程序代码和基础设施代码是抵御恶意行为者的多重威胁的重要防线。将良好的设计原则集成到产品的架构和开发中是编写安全代码的基本要求。当架构与安全控制直接相关时,确保工程师遵守良好的设计原则是非常重要的。安全控制存在于端到端交付的整个价值流中,从开发阶段内置于应用程序中的控制到运行时保存应用程序的控制。这些措施包括保护源代码或者保护应用程序运行时,还扩展到客户与应用程序的交互,如身份验证和授权过程。

在安全架构设计中,可以以安全三元组和安全设计原则为基准。机密性(Confidentiality)、完整性(Integrity)、可用性(Availability),简称为CIA三元组,是安全的基本原则。机密性指只有授权用户可以获取信息,不可被任何未授权的用户获取。完整性指信息在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性。可用性指保证合法用户对信息和资源的使用不会被不正当地拒绝。

业界通用的安全设计原则,主要体现在限制性、简单性和设计性三个方面:
限制性原则

  • 失败-默认安全原则(Fail-Safe Defaults),要有当功能失效后的应急安全机制,还有默认的产品配置就应该是安全状态,不存在安全漏洞。
  • 完全仲裁原则(Complete Mediation),安全检查要覆盖任何一个访问操作。安全机制有能力标识每一个访问操作请求的所有源头。
  • 特权分离原则(Separation of Privilege),将特权进行细分,分配给多个主体,避免一个主体拥有的特权非常多。比如设置系统管理员,配置管理员,安全管理员等不同角色,对应不同特权。
  • 最小权限原则(Least Privilege),每个对象只拥有完成工作所需特权的最小集合,限制由意外或错误所引起的破坏。

简单性原则

  • 经济适用原则(Economy of Mechanism),安全设计尽可能短小精悍,在使用的时候更容易处理。
  • 最少公共机制原则(Least Common Mechanism),公共资源的共享对象应该设置为最少的数量,避免多个对象共享同一个资源的场景。

设计性原则

  • 开放设计原则(Open Design),不要自行设计安全机制,不要自研算法,开发设计更重要。可以通过密钥、口令等来增强系统的安全性,这样有利于安全机制接受广泛的审查。
  • 心理可承受原则(Psychological Acceptability),在心理可承受的前提下,为安全机制设置良好交互性,安全机制可能会为用户增加额外的负担,但是这种负担必须是合理的,用户可承受的。比如多次登录失败后才需要输入验证码。

业界经过多年的发展和总结,又发展引申出其他一些安全原则,例如纵深防御、不要轻信、保护最薄弱环节、提升隐私原则等。

威胁建模

威胁建模是分析应用程序安全性的一种结构化方法,用来识别,量化和解决与应用程序相关的安全风险,通过识别目标和漏洞来优化系统安全,然后定义防范或减轻系统威胁的对策的过程。在设计新产品或者现有产品中功能的时候,工程师需要熟悉攻击者搜索的安全漏洞类型,以便他们能够减轻被利用的风险;需要了解设计中固有的风险,以便在交付生命周期的早期消除或者减轻这些风险。综上所述,威胁建模就是工程师评估产品或功能的设计以识别威胁并确定如何构建针对他们的保护的过程。

威胁建模的过程可以参考微软提供的方法:预设场景->图表化场景/过程->识别威胁->提供给每个威胁的环节措施->验证所有威胁和缓解措施。
在这里插入图片描述
一些IT互联网公司,在大量的实践经验基础上,构建了自己的安全威胁库和安全需求库,实现了轻量级威胁建模过程,通过安全评估调查问卷,从系统结构和使用场景去识别将要构建的应用类型,然后匹配对应的威胁库和需求库,确定安全需求基线,最终得出安全设计方案。

业界有许多的威胁建模的方法已经开发出来,如微软的STRIDE、攻击模拟和威胁分析流程PASTA、LINDDUN、通用漏洞评分系统CVSS、攻击树、Persona non Grata、安全卡、VAST建模等方法,可以将它们组合起来以创建更强大、更全面的潜在威胁视图。并不是所有的方法都是全面的,有些是抽象的,有些以人为中心,还有些方法是专门针对风险或者隐私问题,组织应该根据项目的特定需求选择哪种方法。

安全隐私和数据保护

安全隐私需求分析与设计是服务应用研发运营整个生命周期的源头,在设计阶段应仔细考虑安全和隐私问题,在项目初期确定好安全需求,尽可能避免安全引起的需求变更。

DevSecOps研发运营安全解决方案关注痛点安全问题,如安全要求、合规要求以及目前热点的个人数据和隐私保护等问题,使用安全解决方案可以更好的避免此类安全问题的发生,提升软件应用服务的安全性。

安全隐私需求主要来自于客户安全需求,业界最佳实践如OWASP TOP10、OWASP ASVS,公司安全策略《xxx信息技术管理规范》《xxx数据管理规范》,行业监管要求,以及法律法规《网络安全法》、《个人信息保护规范》、《数据安全法》等。建立明确的安全需求管理流程,能够对安全需求的分析、评审、决策等环节进行有效管理,让需求分解分配可追溯。

华为云安全设计实践

华为有20年研发安全积累,华为的研发安全能力是伴随业务中不断出现的问题逐步形成的。华为将已经开放的运维安全能力,和即将开放的研发安全能力与华为云DevCloud深度融合,为企业带来DevSecOps平台,让企业便捷的落地DevSecOps理念,在软件开发过程中就内置了安全保护,让软件“天生安全,健康成长”,成为企业的竞争力。

安全架构设计

华为在安全设计原则方面,基于业界的规范,构建了自己的基础安全技术与工程能力,形成了安全标准与规范,其中包括安全/隐私需求基线,基础安全设计规范落地,安全编码规范,采购安全要求,开源及第三方软件安全管理策略。

华为云在参考信息技术安全评价通用专责CC的安全功能项、NIST控制集,总结成产品安全架构设计8维度24子项。8维度安全架构设计包括以下几个方面:
在这里插入图片描述
以此指导架构设计人员系统、全面地进行安全架构设计,避免架构级安全设计遗漏。

威胁建模

华为有自己的威胁建模工具 SecDesign,在产品设计期就进行威胁建模,识别并消减风险

从痛点问题入手去思考:在系统需求分析和设计阶段,怎样才能使产品更安全?在什么样的子系统、模块、数据流之间考虑安全风险?识别了风险后,怎么消减几个方面进行思考?华为云开放的安全设计域,对STRIDE方法论进行升级,用于系统威胁分析,提供分析维度、参考案例,辅助进行安全设计;根据识别到的安全风险,智能推荐消减措施及测试用例,输出分析报告;长期积累的安全风险识别方案、消减方案、设计方案、测试用例、场景样例与知识,为安全设计提供丰富的华为与业界经验,极大降低企业安全设计门槛。

安全隐私和数据保护

华为云构建了全生命周期的数据安全和隐私保护设计,实现数据隔离、数据加密和数据冗余。

  • 数据隔离:隔离机制可避免客户间有意或无意的非授权访问、篡改等行为,降低数据泄露风险。华为云的云硬盘EVS、对象存储服务OBS、弹性文件服务SFS等服务均将客户数据隔离作为重要特性。用户在设计云上业务架构时可利用这些云服务实现数据安全隔离的目标。
  • 数据加密:加密可保护静态和传输中的数据。华为云的云硬盘EVS等多个服务均支持与数据加密服务DEW集成,实现密钥管理和数据加密。华为云还采用加密传输通道,保障数据在传输过程的机密性和完整性。用户在设计数据加密功能时,可以充分借鉴华为云已有的实践和能力。
  • 数据冗余:冗余设计可以有效防止数据丢失。华为云采用多副本备份和纠删码设计,通过冗余和校验机制来判断数据的损坏并快速进行修复,以确保服务的可靠性。用户在设计云上业务时,可充分利用华为云服务提供的可靠性服务。
  • 隐私保护设计:在产品设计过程中考虑隐私,可大幅提高产品的隐私保护能力。华为云在构建云服务时,将隐私保护作为需求落入产品开发设计流程。华为云在个人数据全生命周期贯彻PbD(Privacy by design)的理念,构建具备隐私保护特性的安全云服务。华为云基于PbD原则在设计中考虑隐私,即通过设计来保护个人数据和隐私,将保护个人数据和隐私的理念以技术手段运用到产品和服务的各个环节中。华为云贯彻和落实的七条隐私保护基本原则是合法、正当、透明,目的限制,数据最小化,准确性,存储期限最小化,完整性与保密性,可归责。华为云解读GDPR等法律法规,帮助企业满足合规要求。华为云开放的隐私合规域,根据对GDPR等的解读与业务分析,提供工具,生成隐私合规报告、隐私声明,帮助企业合规设计;根据隐私合规设计方案,自动生成和执行测试用例,最后给出隐私合规验证报告。

后记

DevOps 的基本诉求之一是要“快”,而安全保障却具有“快不起来”的特点。因为安全本身需要更为专业的知识背景,分析更复杂的攻击方式和潜在安全问题。并且,即使使用工具,其技术栈也深于普通的检查工具,这意味着耗时更长。比如,对源代码的静态检查,如果只是检查代码风格,他们可以做到快速扫描;如果需要进行安全编码的自动化检查,那么就需要进行流分析,甚至需要一个专门的编译过程来收集必要信息。未来的路任重道远,实现DevSecOps还有很长的路要走。

网络安全学习资料

下面我准备了很多网络安全学习资料,包括视频教程+学习路线+必读电子书+相关工具安装包+面试题等欢迎大家来白嫖
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023_Spark_实验十二:Spark高级算子使用

掌握Spark高级算子在代码中的使用 相同点分析 三个函数的共同点,都是Transformation算子。惰性的算子。 不同点分析 map函数是一条数据一条数据的处理,也就是,map的输入参数中要包含一条数据以及其他你需要传的参数。 mapPartitions函数是一个…

IOTE 2023国际物联网展直击:芯与物发布全新定位芯片,助力多领域智能化发展

IOTE 2023国际物联网展,作为全球物联网领域的盛会,于9月20日在中国深圳拉开帷幕。北斗星通集团应邀参展,旗下专业从事物联网、消费类GNSS芯片研发设计的芯与物公司也随其亮相本届盛会。 展会上,芯与物展示了一系列创新的GNSS定位…

基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(五)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 数据增强3. 模型构建4. 模型训练及保存5. 模型评估6. 模型测试 系统测试1. 训练准确率2. 测试效果3. 模型应用1)程序下载运行2)应用使用说明3)测试结果 相关其它…

【深度学习】快速部署ONNX模型【入门】

【深度学习】快速部署ONNX模型【入门】 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】快速部署ONNX模型【入门】前言搭建打包环境打包exe文件总结 前言 之前的内容已经尽可能简单、详细的介绍CPU【Pytorch2ONNX】和GPU【Pytorch…

编译opencv-3.4.5 [交叉编译]

在unbuntu20.04环境下编译opencv3.4.5, cmake 版本:3.27.4 gcc 版本:11.4.0 g版本:11.4.0 在此环境下编译opencv4.5.4正常。 1. 编译时遇到的问题 (1) Built target libprotobuf make: *** [Makefile:163…

玩玩“小藤”开发者套件 Atlas 200I DK A2 之部署智能语音助手

玩玩“小藤”开发者套件 Atlas 200I DK A2 之部署智能语音助手 0. 背景1. 安装 flac2. 创建自签名证书3. 创建虚拟环境4. 安装PyTorch5. 安装 PyTorch 插件 torch_npu6. 安装APEX混合精度模块7. 安装依赖库8. 使用 gradio 启动智能语音助手9. 访问智能语音助手 0. 背景 总所周…

和逸云 RK3229 如何进入maskrom强刷模式

图中红圈两个点短接以后插usb,就可以进入maskrom模式强刷

【JavaEE】多线程(四)

多线程(四) 在开始讲之前,我们先来回顾回顾前三篇所讲过的内容~ 线程的概念 并发编程,多进程,比较重,频繁创建销毁,开销大 Thread的使用 创建线程 继承Thread实现Runnable继承Thread&#xff…

提交本地项目到GitHub

文章目录 1 下载git1.1 通过homebrew安装Git1.2 通过Xcode安装 2 创建ssh key、配置git3 提交本地项目到GitHub 说明:该博文参考这篇文章和这段视频 1 下载git 1.1 通过homebrew安装Git 1、未安装homebrew,需安装homebrew /usr/bin/ruby -e "$(…

踩坑:Invalid character found in method name. HTTP method names must be tokens

一、原因 在进行本地小程序与服务端请求时,由于加了签名认证,访问接口时报错 Spring boot端 小程序端 二、解决方案 2.1 更改访问路径 将https:更换成http: 示例:https://localhost:8080 改为 http://localhost:8080 2.2其他原因 ssl证书到期了Tomcat的header缓冲区大小不…

使用docker-compose 部署 MySQL8.0

目录 一、拉取MySQL镜像二、创建挂载目录三、添加配置文件my.cnf (没有特殊需求可以跳过)四、编写 docker-compose.yml 文件五、启动容器六、运行后查看启动容器的情况七、连接测试 一、拉取MySQL镜像 我这里使用的是MySQL8.0.18,可以自行选…

pycharm 中package, directory, sources root, resources root的区别

【遇到的问题】 导入yolov5中有utils文件,自己的代码中也有utils文件,使得yolov5中的这部分引用出错了。 【解决方案】 单独建立detection文件夹,把检测相关的都放在这里,yolov5是github上拉取的源码,发现yolov5中fr…

用于设计 CNN 的 7 种不同卷积

一 说明 最近对CNN架构的研究包括许多不同的卷积变体,这让我在阅读这些论文时感到困惑。我认为通过一些更流行的卷积变体的精确定义,效果和用例(在计算机视觉和深度学习中)是值得的。这些变体旨在保存参数计数、增强推理并利用目标…

scryptTS 新版本发布

scryptTS新版本发布,主要带来两个新特性。 您需要使用以下版本来体验: "dependencies": {"scrypt-ts": "0.1.5-beta.2" },1. scryptTS 中隐藏了交易原像 OP_PUSH_TX 技术 使用 OP_PUSH_TX 可以让合约代码访问整个 trans…

解决:Android Studio 中sdk tools 中库显示不全的问题

问题描述 如下图,打开配置后显示不全 解决方案 这是网络问题,由于Android Studio是goolge旗下的产品,多少需要向外访问 通过更改hosts文件即可,用记事本打开,末尾添加如下三行 203.208.43.97 dl.google.com 20…

1.3python基础语法——PyCharm

1)PyCharm的作用 python的集成开发环境,功能如下: Project管理 智能提示 语法高亮 代码跳转 调试代码 解释代码(解释器) 框架和库 2)下载与安装 下载地址:http://www.jetbrains.com/pycharm/download/#sectionwind…

flash attention的CUDA编程和二维线程块实现softmax

本文参考了链接添加链接描述 flash attention介绍 flash attention的介绍可以参考论文:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness,具体的数学公式参考下面这个图片:其中注意关于矩阵S有两个维度,softmax的操作维度是dim=1,用pytorc…

python 全网最优雅命令行参数解析, 没有之一

背景 我们在编写python程序时,程序中经常会提供多种功能或者模式,在实际使用时根据不同的参数使用不同的功能。那么如何获取命令行传入进来的参数呢? 一般方法 一般情况下,我们会使用 sys 模块,如👇 im…

Python - 小玩意 - 请求网络地址获取网页链接

from bs4 import BeautifulSoup from urllib import request # 要请求的网络地址 url https://blog.csdn.net/qq_43116031/ # pip --default-timeout500000 install bs4 # 请求网络地址得到html网页代码 html request.urlopen(url)# 整理代码 soup BeautifulSoup(html, html…

深度学习论文: ISTDU-Net:Infrared Small-Target Detection U-Net及其PyTorch实现

深度学习论文: ISTDU-Net:Infrared Small-Target Detection U-Net及其PyTorch实现 ISTDU-Net:Infrared Small-Target Detection U-Net PDF: https://doi.org/10.1109/LGRS.2022.3141584 PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTo…