安全设计 | CISA:构建默认安全的软件,软件安全设计的未来之路

软件制造商在产品设计和开发过程中应采取安全设计原则和方法,以减少网络安全风险,并转变责任重心,使产品在设计时就内置安全特性,而不是依赖于后期的补丁和修复。为此CISA发布了《软件安全设计的原则和方法》,帮助软件制造商确保其产品的安全性,并鼓励全球合作伙伴共同努力提高软件安全标准。

1. 概览

互联网几乎融入了我们日常生活的每个方面,他直接影响到我们的经济繁荣、生计甚至健康。互联网在带来便利的同时也产生了一个缺点,即不安全的技术和关键系统中的漏洞可能会引发恶意网络入侵,产生全球性的网络安全事件。

因此,软件制造商必须将安全设计和默认安全作为产品设计和开发过程的焦点。CISA(网络安全和基础设施管理局)鼓励软件制造商彻底改革他们的设计和开发程序,只允许安全设计和默认安全的产品出货。

  • 安全设计的产品从开发之前就以安全为目标,再有产品可以通过多次迭代逐步演变为安全设计状态
  • 默认安全的产品是指"开箱即用"的安全,几乎不需要进行配置更改,且安全功能无需额外成本即可使用。

以上两种理念共同将保持安全的大部分责任转移到制造商身上,并减少客户因配置不当、客户打补丁速度不够快或许多其他常见问题而成为安全事件受害者的机会。

2. 安全设计的原则与方法

安全设计(Secure by Design)是一种软件开发方法,旨在从一开始就将安全性纳入产品的设计和开发过程中。以下是一些核心原则和方法。

2.1. 安全设计的原则

  1. 拥有客户安全成果的责任(Take Ownership of Customer Security Outcomes): 软件制造商应该负责确保他们的产品设计和开发具有安全性,而不仅仅是在产品发布后修补漏洞。
  2. 拥抱彻底的透明度和问责制(Embrace Radical Transparency and Accountability): 制造商应该对外公开他们的安全实践和漏洞信息,以及他们如何处理安全事件。
  3. 由高层牵引(Lead from the Top): 高级管理层应该将安全性视为产品开发的核心要素,并在整个组织中推动这一理念。

2.2. 安全设计的方法

  1. 威胁建模(Threat Modeling): 在产品设计阶段,通过威胁建模来识别潜在的安全威胁,并在产品蓝图中包含相应的保护措施。
  2. 最小权限原则(Principle of Least Privilege): 确保系统组件仅拥有完成其功能所必需的最小权限集合。
  3. 安全默认设置(Secure by Default): 产品应该默认启用最重要的安全控制,而不需要用户进行额外的配置。
  4. 纵深防御(Defense in Depth): 通过多层防御策略来保护系统,即使攻击者突破了一层防线,还有其他层可以阻止他们。
  5. 安全编码实践(Secure Coding Practices): 遵循安全编码标准和最佳实践,例如输入验证、代码审查和使用安全的编程语言。
  6. 持续监控和响应(Continuous Monitoring and Response): 实施持续的监控机制来检测和响应安全事件。
  7. 安全更新和补丁管理(Security Patching and Update Management): 快速响应安全漏洞,提供及时的更新和补丁来修复已知问题。
  8. 隐私保护设计(Privacy by Design): 在设计阶段就考虑用户隐私,确保个人数据的安全和合规性。

通过遵循这些原则和方法,软件制造商可以创建更加安全的产品,减少安全漏洞的风险,并提高整体的网络安全态势。

3. 总结

CISA发布的《软件安全设计的原则和方法》文档提供了一系列具体的建议和策略,包括威胁建模、最小权限原则、默认安全配置、纵深防御、安全编码实践、持续监控和响应、安全更新和补丁管理等,以帮助软件制造商实现这些原则 。

文档强调了国际合作的重要性,并呼吁行业反馈,以共同提高全球软件安全标准。通过这些努力,文档旨在促进一个更安全、更有韧性的技术生态系统,其中技术产品在设计和默认状态下都是安全的。

若想了解更多关于软件安全设计的原则和方法的详细指导,可以参阅:

  • Secure By Design_1025_508c.pdf (共36页,访问密码: 6277)

4. 参考链接

  • https://www.cisa.gov/securebydesign

推荐阅读:

  • 安全设计 | 68家国内外科技巨头和安全巨头参与了CISA发起的安全设计承诺,包含MFA、默认密码、CVE、VDP等七大承诺目标
  • 安全设计 | Microsoft 威胁建模工具Threat Modeling Tool安装、使用及威胁生成原理详解(文末附样例)
  • 安全设计 | 安全设计不得马虎!微软STRIDE威胁建模方法让你事半功倍,快速发现应用安全隐患!

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

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

相关文章

@EnableFeignClients:简化微服务间调用的艺术

在Spring Cloud框架中,EnableFeignClients注解扮演着至关重要的角色,它不仅简化了微服务间的HTTP调用,还促进了服务间的解耦,提高了开发效率和系统的可维护性。本文将深入探讨EnableFeignClients的作用、如何通过编写包含FeignCli…

python如何把字符串变成小写字母

Python中,将字符串中的字母转换成小写字母,字符串变量提供了2种方法,分别是title()、lower()。 Python title()方法 title()方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后&#xff0…

如何在go语言中调用c语言代码

1.安装c语言编译器 要使用cgo,需要安装c语言编译器 gcc 2.检查CGO_ENABLED时候开启 使用以下命令查看: go env CGO_ENABLED 如果go env CGO_ENABLED被禁用(为0),需要将其设置为开启(为1) 3.编写c语言程序,并用go语言调用c语言程序 1&#xff…

把一个数组分为两部分使得其和相差最小——Java实现(详细注释,全面解析)

package bag;public class Test {/*** 给一个整数数组 array&#xff0c;把他分为两部分 a 和 b* 使得 a 和 b 的元素之和的差最小** param array 输入数组* return 返回差值最小是多少* <p>* 解析&#xff1a;array分出来的两个数组a、b之和sum1、sum2等于总和SUM* 既然…

AIGC 005-Dreambooth定制化生成,微调文本到图像的扩散模型!

AIGC 005-Dreambooth定制化生成&#xff0c;微调文本到图像的扩散模型&#xff01; 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 DreamBooth 论文 (DreamBooth: Fine-Tuning Text-to-Image Diffusion Models for Subject-Driven Generation) 提出了一种新颖的技术&#x…

【开源】大学生竞赛管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、系统介绍 学生管理模块 教师管理模块 竞赛信息模块 竞赛报名模块 二、系统截图 三、核心代码 一、系统介绍 基于Vue.js和SpringBoot的大学生竞赛管理系统&#xff0c;分为管理后台和用户网页端&#xff0c;可以给管理员、学生和教师角色使用&#xff0c;包括学…

mysql实战——xtrabackup全量备份/增量备份及恢复

一、测试前准备 mysql数据库 端口3306数据文件目录 /data/mysql/3306/data 安装目录/usr/lcoal/mysql配置文件/etc/my.cnf 创建数据库 testXtra 创建备份目录 备份目录/data/backup/备份恢复数据文件目录/data/mysql/3307/data备份恢复配置文件/etc/my_3307.cnf 二、开始…

linux查看是否被入侵(一)

1、查看当前系统状态 [rootbastion-IDC ~]#top #一般挖矿等病毒点用CPU比较大 2、查看当前登录用户(w\who) 3、检查系统日志 检查系统错误登陆日志&#xff0c;统计IP重试次数 [rootbastion-IDC ~]# lastb 4、查看近期用户登录情况 [rootkvm01 ~]# last -n 5 #-n 5 表示…

Go 控制协程(goroutine)的并发数量

在使用协程并发处理某些任务时, 其并发数量往往因为各种因素的限制不能无限的增大. 例如网络请求、数据库查询等等。 从运行效率角度考虑&#xff0c;在相关服务可以负载的前提下&#xff08;限制最大并发数&#xff09;&#xff0c;尽可能高的并发。 在Go语言中&#xff0c;…

将list对象里的某一个属性取出组成一个新的list

使用Java8将对象里的某一个属性取出组成一个新的list List<Spgg1> listnew ArrayList<>();Spgg1 spgg1new Spgg1();spgg1.setSpdm("测试");spgg1.setGgdm("001");list.add(spgg1);Spgg1 spgg2new Spgg1();spgg2.setSpdm("测试2");sp…

Mysql 找出未提交事务的SQL及死锁

未提交事务&#xff1a; 通过查看information_schema.INNODB_TRX视图,您可以了解当前系统中正在运行的事务情况,从而进行问题排查和性能优化。 SELECT * FROM information_schema.innodb_trx; 通过trx_state为RUNNIG,trx_started判断是否有一直RUNNING的事务。 如果有未提交…

千帆【API接入】自定义组件简明教程

千帆【API接入】自定义组件简明教程 大家好&#xff0c;我是 JavaRoom&#xff0c;今天来给大家做一个自定义API接入来是心啊遣返组件创建案例简明教学。 1.准备工作 1.1 一个不欠费的千帆账号 财务总览地址&#xff1a;https://console.bce.baidu.com/billing/#/account/i…

“现代汽车中国前瞻软件赛杯” 牛客周赛 Round 43

A. 小红平分糖果&#xff08;签到&#xff09; // Problem: 小红平分糖果 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/82394/A // Memory Limit: 524288 MB // Time Limit: 2000 ms // // Powered by CP Editor (https://cpeditor.org)#include<b…

作业-day-240524

使用sqlite3数据库&#xff0c;实现增删改查操作 #include <myhead.h>int do_add(sqlite3 *sqdb) {int add_num;char add_name[128];double add_score;printf("请输入要添加的学生编号:");scanf("%d",&add_num);printf("请输入要添加的学生…

以前:不会用电脑;现在:不会用AI

购买特价商务机票需要一些策略和灵活性。、 提前规划&#xff1a;商务舱票价通常在出发日期的2-3个月前最便宜。尽早规划您的行程并开始关注票价。 使用比价工具&#xff1a;使用Skyscanner、Kayak等比价网站来比较不同航空公司的商务舱票价。这些网站可以显示多个航空公司的价…

Jeecg | 如何解决 ERR Client sent AUTH, but no password is set 问题

最近在尝试Jeecg低代码开发&#xff0c;但是碰到了超级多的问题&#xff0c;不过总归是成功运行起来了。 下面说说碰到的最后一个配置问题&#xff1a;连接redis失败 Error starting ApplicationContext. To display the conditions report re-run your application with deb…

【ARMv7-A】——内联汇编

简介 使用内联汇编主要目的是为了提高效率,同时还是为了实现 C 语言无法实现的部分。 GNU内联汇编的基本格式: asm volatile("汇编语句": 输出部分: 输入部分: 会被修改的部分);ANSI C规范的关键字(前后都有两个下划线连接,中间没有空格): __asm__ __volati…

近期阅读论文

Exploring Hybrid Active-Passive RIS-Aided MEC Systems: From the Mode-Switching Perspective abstract 移动边缘计算&#xff08;MEC&#xff09;被认为是支持延迟敏感和计算密集型服务的有前途的技术。 然而&#xff0c;随机信道衰落特性导致的低卸载率成为制约MEC性能的…

Rust之函数、单元测试

1、函数 类似于C函数。 1.1、普通函数 在Rust中&#xff0c;函数的定义使用fn关键字&#xff0c;后跟函数名、参数列表、返回类型和函数体。函数体由一系列语句组成&#xff0c;用于执行特定的操作和计算。 函数定义&#xff1a; 使用fn关键字定义函数&#xff0c;函数由函数…

【C语言】C语言基础语法速览

C语言基础语法目录 C语言基础语法速览1. 变量类型1.1 类型字节数1.1 变量输出格式1.2 变量输入格式 2. 分支循环语句2.1 if分支语句2.2 switch 分支语句2.3 while循环语句2.4 do...while循环语句2.5 for循环语句 3. 数组3.1 一维数组3.2 二维数组 4. 结构体4.1 结构体类型定义4…