CISP 4.2备考之《软件安全开发》知识点总结

文章目录

    • 第一节 软件安全开发基础
    • 第二节 软件安全开发模型
    • 第三节 安全需求、设计、编码、测试、交付

第一节 软件安全开发基础

  • 1.软件工程三要素:方法、过程、工具。
  • 2.软件开发模型:瀑布模型、迭代模型、增量模型、螺旋模型、原型模型、净室模型。
  • 3.千行代码缺陷率:KLOC。
  • 4.软件安全原因:内因、外因。
  • 5.软件安全目标:
    • (1)可信赖性:无论是恶意而为还是无意疏忽,软件都没有可利用的漏洞存在。
    • (2)可预见性:对软件执行时其功能符合开发者的意图的信心。
    • (3)遵循性:软件开发跨学科的活动计划并系统化,以确保软件过程和软件产。
  • 6.软件安全思想
    • (1)需要贯彻风险管理的思想。
    • (2)软件安全开发覆盖软件整个生命周期。
    • (3)软件安全保障—思想之提前介入思想。

第二节 软件安全开发模型

  • 1、SDL:七个阶段、16 项活动(了解)。
  • 2、BSI 的三个部分:风险管理、接触点、安全知识。
  • 3、SAMM 的四个部分:监管(治理)、构造、验证、部署。
  • 4、CLASP:轻量级、应用,基于不同角色(活动)而实现的。
  • 5、CMMI:能力集成成熟度模型 1-5 级。

第三节 安全需求、设计、编码、测试、交付

  • 1、需求来源:
    • 政策、法律、标准、业务、应用场景、安全威胁。
    • 标准化需求建议采用 PP 的方法。
  • 2、设计原则:
    • 标准化的设计建议采用 ST 的方法。
    • 原则:不信任、纵深防御、最小特权、权限分离、完全中立、经济性、公开设计、攻击面最小化、心理可接受、隐私保护、保护薄弱环节、默认故障处理、最小共享等。
  • 3、受攻击面:针对一个对象受到攻击方法和路径的集合。
  • 4、降低受攻击面的方法:
    • (1)分析产品的功能及特征。
    • (2)分析从哪些路径可以访问该产品。
    • (3)降低访问的特权和增强防护措施。
  • 5、威胁建模
    • (1)流程:确定对象、识别威胁、评估威胁、消减威胁。
    • (2)方法:基于 STRIDE 的威胁建模方法。
    • (3)S-欺骗;T-篡改;R-抵赖;I-信息泄露;D-拒绝服务;E-权限提升。
  • 6、安全编码工作
    • (1)语法规范
    • (2)逻辑开放性
    • (3)不存在冗余代码
    • (4)代码要精简清晰
    • (5)不存在复杂代码
    • (6)完全符合设计及详细设计
    • (7)源代码编写要进行体系化的规划和分解
    • (8)进行安全的标识
    • (9)进行安全输入的验证(内部之间、外部输入)
    • (10)进行安全的输出,最小化
    • (11)安全的协议、组件、命令使用调用
    • (12)统一的返回值设计
    • (13)写软件的代码注释
    • (14)源代码的安全审计(前提是对安全需求和安全设计的审计)
  • 7、测试工作
    • (1)模糊测试:提供非预期的输入监视异常的结果。
    • (2)渗透测试:测试结果真实严重,但是测试的结果有限。
  • 8、灵活组合:根据软件开发实际情况,设计软件开发的安全措施。
  • 9、验收交付:
    • 1)供应链的安全;
    • 2)安全部署运行维护。

温馨提示:为了减少学习的负担和聚焦核心,知识点总结写的是关键的精要的要点,并非是知识点的全文,请根据你的理解程度和需要,结合教材和其他可信文献进行理

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

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

相关文章

Python BaseModel和dataclass用法和区别

Pydantic 的 BaseModel Pydantic 是一个数据验证和设置管理的库,它使用 Python 类型注释来定义数据模型的结构。在 Pydantic 中,BaseModel 是所有模型的基类,提供了类型检查、数据转换和验证等功能。下面是一个简单的例子: from…

AI和机器学习中的Python基础库和框架

Python基础 基本语法 Python是一种高级的、解释型的编程语言,以其简洁清晰的语法和强大的灵活性而闻名。对于初学者来说,掌握Python的基本语法是学习其他高级概念之前的重要步骤。以下是Python基本语法的详细介绍: 变量类型 在Python中&a…

基于单片机的事务管理系统

基于单片机的事务管理系统 摘 要 所谓事务管理系统就是主要用来做提醒,辅助以计时、秒表等的一个小系统。利用MCS51单片机即可完成系统硬件需要,成本低廉,程序简单,功能丰富实用,使用率广。根据题目的设计要求&#…

电商API接口淘宝/天猫按图搜索淘宝商品(拍立淘)API请求接入演示

"拍立淘"是淘宝提供的一种图片搜索功能,允许用户上传图片来搜索相似的商品。要接入淘宝的API进行按图搜索的功能,通常需要以下几个步骤: 注册账号:你需要有一个开放平台的账号,并成为开发者。 创建应用&…

30个业务场景的SQL优化

作为 SQL 专家,一定深知 SQL 查询优化对于数据库性能的重要性。在不同的业务需求场景中,SQL 查询可能因各种原因导致性能下降。以下是一些常见的业务需求场景、可能的性能问题原因、优化策略以及详细的示例解释,这是 V 哥验证过的经验&#x…

10 开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分)

开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分) 作者将狼才鲸日期2024-03-20 开源鸿蒙通过芯片仓存放指定芯片和指定开发板的代码,硬件相关的代码和纯逻辑代码是分开存放的 源码模块的组织结构在manifest这个Git仓库,这也是拉…

HW中常见的面试题

1.说说你在工作中或者SRC中挖到的比较典型的漏洞? 2.HW中如果已经发现红方IP地址,该如何溯源? 通过蜜罐系统或者安全设备锁定红方MAC,然后通过IP地址对,whois查询到该IP注册人以及注册邮箱,如果是发现邮箱是某厂商注册则可利…

SpringBoot-03 | SpringBoot自动配置

SpringBoot-03 | SpringBoot自动配置 原理分析代码示例源码剖析SpringBootConfiguration:组合注解,标记当前类为配置类ComponentScanEnableAutoConfigurationImport加载spring.factoriesrun初始化加载spring.factoriesspring.factories中的钩子类 网上盗…

部署DiffSynth-Studio实现视频风格转换

DiffSynth 是一个新的 Diffusion 引擎,可以实现图片和视频的风格转换。 拉取源码 git clone https://github.com/Artiprocher/DiffSynth-Studio/ 创建环境 conda env create -f environment.yml conda activate DiffSynthStudio 下载模型 将Stable Diffusion模…

组织学习的革命:打破常规,引领未来

组织学习的革命:打破常规,引领未来 一、组织学习的重塑:从传统到现代的转变 在知识经济的时代背景下,组织学习已经成为企业持续发展和竞争优势的关键。传统的组织学习方式,如培训、研讨会等,虽然在一定程…

NeRF——基于神经辐射场的三维场景重建和理解

概述 三维重建是一种将物理世界中的实体转换为数字模型的计算机技术。其基本概念是通过对物理世界中的物体或场景进行扫描或拍摄,并使用计算机算法将其转换为三维数字模型。抽象意义上的三维模型指的是:形状和外观的组合,并且可以渲染成不同…

阿里云服务器2核4G服务器收费价格表,1个月和一年报价

阿里云2核4G服务器多少钱一年?2核4G服务器1个月费用多少?2核4G服务器30元3个月、85元一年,轻量应用服务器2核4G4M带宽165元一年,企业用户2核4G5M带宽199元一年。本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1…

PyTorch学习笔记之激活函数篇(三)

文章目录 3、ReLU3.1 公式3.2 对应的图像3.3 对应的图像的代码3.4 优点与不足3.5 torch.relu()函数 3、ReLU 3.1 公式 ReLU函数的公式&#xff1a; f ( x ) { x , x > 0 0 , x < 0 f(x) \begin{cases} x&,x>0 \\ 0&,x<0 \end{cases} f(x){x0​,x>…

Vue 3响应式系统详解:ref、toRefs、reactive及更多

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

为什么延迟删除可以保证MYSQL 与redis的一致性?

看过很多保持MYSQL 与redis保持一致性的文章都提到了延迟删除&#xff0c;其实脱离任何业务场景的设计都是不切实际的&#xff0c;所以我会本着一个通用的读写场景去分析为什么延迟删除大概率可以保证MYSQL与redis的最终一致。 通常的读写场景 通常在使用redis作为读写缓存时…

Oracle SEQUENCE实现自增流水号,并设置定时任务每日清零

--创建增长序列 create sequence IMES.TEST_SEQ_PALLET minvalue 1 maxvalue 1336335 start with 1 increment by 1 nocache cycle order; --测试 select IMES.TEST_SEQ_PALLET.nextval from dual; --创建存储过程重置自增序列从1开始 IMES.TEST_SEQ_RESET_NEXT create or r…

无人机/飞控--ArduPilot、PX4学习记录(2)

这是一篇碎碎念&#xff0c;零零碎碎的记录了环境配置过程&#xff0c;仅供本人记录学习历程和参考。(记录的挺乱的&#xff0c;但是文章链接里的博客写的是真好) 本章主要完成的目标&#xff1a; 安装PX4 并 成功运行出3D无人机界面。 参考文章&#xff1a; 搭建PX4环境&…

虹科干货 | 网络取证分析和入侵分析培训重磅来袭,先来认真预习!什么是IOC?应该如何识别和响应?

文章速览&#xff1a; 网络安全中的IOC是什么&#xff1f;IOC和IOA有什么区别&#xff1f;IOC有哪些类型&#xff1f;IOC的常见实例有哪些&#xff1f;IOC解决方案和工具 近期&#xff0c;Wireshark 大学和 虹科Allegro Packets联合举办了网络取证和入侵分析线上培训课程&…

cv::Mat::depth() 获取图像的深度时返回值为0?

在OpenCV中&#xff0c;当使用函数比如 cv::Mat::depth() 获取图像的深度时&#xff0c;返回的整数值是代表数据类型的枚举值&#xff0c;而不是直接的比特数。这些枚举值定义在cv::Mat的数据类型中&#xff0c;用于描述像素值的数据类型及其位深度。如果cv::Mat::depth() 返回…

不同的Git仓库单独设置用户名和邮件地址

最近使用公司电脑将自己的一个私人项目推送到远程仓库&#xff0c;仓库显示的公司邮箱地址。因为设置了全局的username和usermail&#xff0c;这样就比较尴尬了。但是又不能频繁来回改用户信息&#xff0c;那么请看下面如何单独设置仓库的用户信息&#xff0c;让不同的仓库展示…