^-^
CV | FE
软件安全复习参考
背就完了
  1. 计算环境与软件安全
    1. 计算环境(略)
    2. 信息安全与软件安全
    3. 软件安全的重要概念
  2. 典型软件安全问题与威胁分析
    1. 安全问题的来源
    2. 常见的设计问题
    3. 语言问题(C++ 各种溢出)
    4. 平台问题
    5. OWASP
    6. CWE
  3. 安全软件工程
    1. SSE-CMM
    2. SDL(Secure Development Lifecycle)
  4. 软件安全测试
    1. 软件安全测试
    2. 软件安全测试的方法
    3. 安全测试的实施方法
    4. 安全漏洞分级
    5. 典型安全测试工具
  5. OWASP 安全编码快速参考(略)
  6. 编写安全的代码(略)
  7. 一个信息系统的安全模型分析(略)
    1. 信息系统及其特征
    2. 信息系统的安全问题分析
    3. 信息系统的安全模型
    4. 信息系统的异常行为探测
  8. WEB 应用安全(略)
  9. 对威胁的认识(STRIDE)
  10. 隐私问题:

计算环境与软件安全

计算环境(略)

信息安全与软件安全

信息安全定义:针对特定的信息体系或技术:信息或系统不受外来的威胁与侵害;为数据处理系统建立和采用的技术、管理上的安全保护,为的是保护计算机硬件、软件、数据不因偶然和恶意的原因而遭到破坏、更改和泄露。

信息安全的基本属性:

  • 安全性
  • 可用性
  • 保密性
  • 可控性
  • 可靠性

信息的基本属性:

  • 保密性
  • 完整性
  • 可用性

软件安全性是指软件不被恶意使用或者攻击进而造成用户信息资产损失的属性。软件安全:软件在恶意攻击下能够正确地完成其功能。

软件安全属性:

  • 可信性
  • 完整性
  • 可用性

软件安全保护

  • 自身安全
  • 存储安全
  • 通信安全
  • 使用安全
  • 运行安全

ISO7498-2(信息处理系统.开放系统互连.基本参考模型):

五种安全服务:

  • 鉴别服务
  • 访问控制
  • 数据完整性
  • 数据保密性
  • 抗抵赖

八种安全机制:

  • 加密
  • 数字签名
  • 访问控制
  • 数据完整性
  • 数据交换
  • 业务流填充
  • 路由控制
  • 公证

5 种普遍性安全管理机制:

  • 可信功能度
  • 安全标记
  • 事件检测
  • 安全审计跟踪
  • 安全恢复

软件安全的重要概念

  1. 漏洞和脆弱性

漏洞是软件的属性

  1. 软件质量与安全性

软件质量:

  • 功能性
  • 可靠性
  • 易用性
  • 效率
  • 维护性
  • 可移植性
  1. Safety 强调的是一个系统、组织或个人按照自己的机制正常运转的“稳定状态”

Security 强调的是免受来自外部或内部“蓄意或恶意”的伤害,采取必要的措施防止这样的伤害发生,确保国家、组织或个人正常运转。

典型软件安全问题与威胁分析

安全问题的来源

  • 软件或协议设计时的瑕疵
  • 软件或协议实现中的弱点
  • 软件本身的瑕疵
  • 系统和网络的错误配置

常见的设计问题

  • 密码技术败笔
  • 对用户及其许可权限进行跟踪的薄弱或缺失
  • 有缺陷的输入验证
  • 薄弱的结构性安全

语言问题(C++ 各种溢出)

平台问题

  • 符号链接
  • 目录遍历
  • 字符转换

OWASP

CWE

安全软件工程

SSE-CMM

SDL(Secure Development Lifecycle

软件安全测试

软件安全测试

安全性测试是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。

应用程序级安全测试的主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力。

安全指标不同,测试策略也不同。

软件安全测试的方法

  • 静态测试
  • 动态的测试
  • 渗透测试
  • 模糊测试
  • 程序数据扫描

安全测试的实施方法

  • 基于风险的安全测试
  1. 信息搜集
  2. 威胁(风险)建模
  3. 识别威胁路径
  4. 识别威胁
  5. 识别漏洞
  6. 风险分级
  • Damage potential 潜在的破坏
  • Reproducibility 再现性
  • Exploitability 可利用性
  • Affected users 受影响的用户
  • Discoverabiliby 可发现性
  1. 可用性分析

安全漏洞分级

典型安全测试工具

OWASP 安全编码快速参考(略)

编写安全的代码(略)

一个信息系统的安全模型分析(略)

信息系统及其特征

信息系统的安全问题分析

信息系统的安全模型

信息系统的异常行为探测

WEB 应用安全(略)

对威胁的认识(STRIDE)

开始从攻击者的角度考虑问题。

了解在威胁范畴广泛使用的 STRIDE 方法。

  • Spoofing(哄骗):哄骗是指尝试使用假身份获取系统的访问权。可以使用偷取的用户凭证或假的 IP 地址来实现。攻击者作为合法用户或主机成功获取访问权后,则可以开始特权提升或滥用授权。
  • Tampering(篡改):篡改是指未经授权修改数据,例如当数据通过网络在两台计算机之间传递时。
  • Repudiation(抵赖):抵赖是指用户(合法或非合法)否认他们已执行了特定操作或事务的能力。没有足够的审核,抵赖攻击很难证明。
  • Information Disclosure(信息泄露):
  • Denial of Service

识别并应对在网络、主机和应用程序级别存在的威胁。

隐私问题:

个人数据包括四个要件:“任何信息”、“相关性”、“已识别或可识别”、“自然人”