[软件工程]十一.信息安全工程

Cheers!《软件工程》理论主线部分完结撒花!后续还会给大家更新更多更详细的软件工程实践知识,和对诸如需求分析,软件测试部分的详细补充的!诸君且等续集!QAQ

11.1什么是信息安全性(security)

信息安全性是指系统保护信息不被未授权访问、泄露、篡改或破坏的能力。它包括数据加密、访问控制、身份验证等措施。是否能抵御意外或蓄意入侵的可能性(鲁棒性)(important)

11.2什么是信息安全工程(Security Engineering)

信息安全工程是应用工程原理和实践来设计、实施和维护信息安全措施的过程。

11.3信息安全工程的防范策略(CLA)

1)机密性(Confidentially)

系统中的机密的信息可能被泄露,被未经授权的人或者程序访问到。

例如:从电子商务系统窃取信用卡数据是一个机密性问题

2)完整性(Integrity)

系统中的完整性信息可能会损坏或者引起错误,使得其异常或者不可靠。

例如:在系统中删除数据中的蠕虫是一个完整性的问题。

3)可用性(Availability)

可用的系统或者数据有时候可能会无法访问,是服务器过载的服务攻击时系统可用性搜到破坏的例子。

4)具体的易于理解的例子

1>机密性(Confidentiality)

机密性确保信息不被未授权的个人、实体或程序访问。如果机密性被破坏,信息可能会被泄露给不应该访问这些信息的第三方。

例子 :假设一个公司有一个内部的项目文档,包含敏感的商业策略和未来的产品计划。如果一个未经授权的员工或外部黑客通过网络攻击获取了这些文档,那么机密性就被破坏了。这可能导致竞争对手获取敏感信息,损害公司的竞争优势。

2>完整性(Integrity)

完整性确保信息在存储、传输或处理过程中不被未授权的修改或破坏。如果完整性被破坏,信息可能会被篡改,导致错误的决策或操作。

例子 :在银行系统中,如果一个黑客通过网络攻击修改了账户余额,将资金转移到自己的账户,那么银行系统的完整性就被破坏了。这不仅会导致资金损失,还可能破坏银行的信誉和客户信任。

3>可用性(Availability)

可用性确保授权用户在需要时能够访问和使用信息或服务。如果可用性被破坏,信息或服务可能无法访问,影响正常业务运作。

例子 :假设一个在线购物网站在黑色星期五期间遭受了分布式拒绝服务(DDoS)攻击,导致网站服务器过载,无法处理用户的请求。这种情况下,网站的可用性被破坏了,用户无法进行购物,这不仅影响了用户体验,还可能导致经济损失。

11.4主要安全攸关系统(Primary Safety-Critical Systems)

1)什么是主要安全攸关系统(Primary Safety-Critical Systems)

主要安全攸关系统(Primary Safety-Critical Systems)是指那些直接关系到人类生命安全或对环境有直接影响的系统。这些系统在失败时可能导致直接的伤害或灾难性后果。

2)举出例子

例如:

  • 航空控制系统 :负责飞机的飞行控制,包括起飞、飞行和降落等关键阶段。
  • 医疗设备 :如心脏起搏器、呼吸机等,直接关系到患者的生命安全。
  • 核电站控制系统 :负责核反应堆的运行和监控,确保核安全。
  • 汽车安全系统 :如防抱死制动系统(ABS)、电子稳定程序(ESP)等,直接影响行车安全。

11.5次要安全攸关系统(Secondary Safety-Critical Systems)

1) 什么是次要安全攸关系统(Secondary Safety-Critical Systems)

次要安全攸关系统是指那些虽然不直接关系到人类生命安全,但其故障可能导致间接影响或次要后果的系统。这些系统在失败时可能不会立即导致人员伤亡,但可能对系统的整体运行产生影响。

2)举个例子

例如:

  • 工业控制系统 :如工厂自动化系统,其故障可能导致生产中断或设备损坏。
  • 金融服务系统 :如银行交易系统,其故障可能导致财务损失或数据泄露。
  • 交通管理系统 :如城市交通信号控制系统,其故障可能导致交通拥堵或事故。

11.6静态检查(Static Checking)

1)什么是静态检查(Static Checking)

静态检查是指在不执行程序代码的情况下,对代码进行分析的过程。这种检查通常在编译之前进行,目的是发现代码中的潜在错误和问题。静态检查可以由人工进行,也可以通过自动化工具来完成。

2)静态检查的目的是什么

静态检查是指在不执行程序代码的情况下,对代码进行分析的过程。这种检查通常在编译之前进行,目的是发现代码中的潜在错误和问题。静态检查可以由人工进行,也可以通过自动化工具来完成。静态检查的目的是:

  • 代码审查 :通过人工审查代码,检查代码的风格、可读性、逻辑结构等。
  • 代码分析 :使用静态分析工具来自动检测代码中的错误,如语法错误、逻辑错误、潜在的运行时错误等。
  • 代码度量 :评估代码的复杂度、可维护性、可测试性等指标。

3)问:静态检查是不是verification的一个部分

答:是的,静态检查是软件验证(Verification)过程的一部分。在软件工程中,验证(Verification)和确认(Validation)是确保软件质量的两个关键活动。

11.7分界检查(Boundary Checking)

1)什么是分界检查(Boundary Checking)

分界检查,也称为边界值分析,是一种测试设计技术,用于测试软件系统中输入或输出的边界条件。边界条件是指输入或输出值的边界,即最小值、最大值、边界值等。

2)分界检查的目的是什么

分界检查,也称为边界值分析,是一种测试设计技术,用于测试软件系统中输入或输出的边界条件。边界条件是指输入或输出值的边界,即最小值、最大值、边界值等。分界检查的目的是:

  • 确保系统能够 正确处理边界情况 :例如,检查一个输入字段是否能够正确处理最小值、最大值和边界值。
  • 发现潜在的错误 :边界条件往往是软件错误的高发区,因此通过测试边界条件可以发现潜在的错误。

分界检查通常在软件测试阶段进行,通过设计测试用例来覆盖边界条件,以确保软件在这些关键点上的正

遗留系统(Legacy System) 分界检查(Boundary Checking)韧性(Resilience) 冗余(Redundancy) 可用性(Availability)可依赖性(Dependability) 可靠性(reliability)增量开发(Icremental Development)需求评审(Requirements review) 机密性(Confidentially) 完整性(Integrity)可用性(Availability)

主要安全攸关系统(Primary Safety-Critical Systems) 验收测试(Acceptance Testing)

相关推荐
Leo.yuan1 分钟前
API是什么意思?如何实现开放API?
大数据·运维·数据仓库·人工智能·信息可视化
秃头摸鱼侠22 分钟前
MySQL查询语句(续)
数据库·mysql
禺垣25 分钟前
知识图谱技术概述
大数据·人工智能·深度学习·知识图谱
MuYiLuck30 分钟前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机30 分钟前
6. MySQL基本查询
数据库·mysql
后端码匠31 分钟前
Spark 单机模式部署与启动
大数据·分布式·spark
奇妙之二进制1 小时前
软件功能模块归属论证方法
软件工程·架构设计
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩1 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift