Concept of SSDLC

18

SSDLC即 S(Secure)-SDLC

就是将安全活动引入SDLC的各个阶段

主要的安全活动分为以下几个阶段:

风险评估 威胁建模 安全编码 安全评估

风险评估

风险评估的步骤

  1. 风险评估的第一步是假设该应用易受攻击,列出应用易受攻击的影响因子。

  2. 第二步是进行风险评估,如果攻击者成功攻击了该软件,则包括最坏情况的因素,例如如果被攻击成果会被盗取的数据的价值,以及被攻击利用的复杂性程度

  3. 最后一步是确定目标的可访问性。确定目标是在网络上接受请求还是仅在本地访问中接受请求,是否需要建立连接的身份验证,或者是否有人可以发送请求。

风险评估的分类

1.Qualitative Risk Assessment 定性风险评估

这是最常见的风险评估类型,将风险分为 "低","中","高",每个级别都有不同的优先级,而“高”具有最高优先级


风险 = 严重性 x 可能性


  1. Quantitative Risk Assessment 定量风险评估

使用数值衡量风险,而不是 "低","中","高"三个等级

例如,如果bug影响业务关键服务(身份验证服务,付款基础架构等),则将分配5分

Risk Matrix

威胁建模

威胁建模最好在代码编写前进行,即在设计阶段

威胁建模是一个结构化的过程,用于识别潜在的安全威胁并确定减轻攻击的技术,从而保护已经被归类为有价值或较高风险的数据或资产

有多种威胁建模的方式,比如STRIDEDREADPASTA

STRIDE

https://learn.microsoft.com/zh-cn/azure/security/develop/threat-modeling-tool-threats

STRIDE是微软开发的用于威胁建模的一套方法论,从攻击者的角度,把威胁划分成6个类别,分别是Spoofing(欺骗)、Tampering(篡改)、Repudiation(否认性)、InformationDisclosure(信息泄露)、Dos(拒绝服务)和Elevation of privilege (特权提升)

DREAD

DREAD是原来微软的风险评估威胁系统的一部分,但在实际使用过程中有时评分十分不准确,比如可复现性很多场景下不重要,所以微软在2008年弃用了此模型

DREAD提供了5个维度,进行威胁评级,每个维度0-10分。通过最后的评分确定威胁的严重程度

Damage 危害程度

风险会造成怎样的危害?包括:系统受危害程度,泄露信息的数据敏感性,资金资产损失,公关法律风险。

0:无损失 5:一般损失 10:巨大损失

Reproducibility 可复现性

重现攻击是否容易,风险是否可以稳定复现。

0 :管理员也难以复现。 5:授权用户需要复杂步骤。 7 :身份验证用户可通过简单步骤复现。 10 :只是一个Web浏览器即可复现。

Exploitability 利用难度

需要多少成本才能实现这个攻击

0 = 高级程序和网络知识,以定制的或高级攻击工具

5 = 互联网上存在恶意软件,此漏洞可被轻易地利用和可用的攻击工具

10 = 仅仅一个web浏览器就可以

Affected Users 影响用户

影响多少用户

0 = 没有

5 = 一些用户,但不多

10 = 所有用户

Discoverability 可发现性

0 = 非常困难,甚至不可能; 需要源码或者管理员权限

5 = 可以通过猜测或者监测网络活动来发现

9 = 错误的细节已经在公共平台上披露,可以用搜索引擎轻易发现

10 = 信息在web浏览器的地址栏或者表单里可见。

PASTA

PASTA技术专注于帮助团队根据业务优先级评估威胁。它首先确定业务目标和支持它们所需的技术资源。然后,团队确定哪些威胁可能会影响这些资源——进而,他们会发现可能危及业务优先级的威胁。

  1. 定义目标

  2. 定义技术范围

  3. 分解应用程序

  4. 执行威胁分析

  5. 检测漏洞

  6. 枚举攻击

  7. 执行风险和影响分析

安全编码

SAST

SAST表示静态应用程序安全测试,这是一种直接分析源代码的白盒测试方法

SAST通常在编译代码之前分析并扫描应用程序

SCA

SCA用于扫描依赖的安全漏洞,帮助开发团队跟踪和分析带入项目的任何开源组件

DAST

DAST表示动态应用程序安全测试,这是一种在运行时发现漏洞的黑盒测试方法

IAST

IAST是指交互式应用程序安全测试,该测试分析应用程序运行时的安全漏洞代码

SAST在不运行应用程序的情况下对代码进行工作。

DAST可以与正在运行的应用程序一起工作,但不能接触到代码。

IAST在一个正在运行的应用程序中与代码一起工作

相当于是DAST和SAST结合的一种互相关联运行时安全检测技术。IAST可以像SAST一样看到源代码,也可以像DAST一样看到应用程序运行时的执行流。 IAST不仅拥有安全测试上的能力优势,也更容易与DevOps紧密结合

RASP

RASP代表运行时应用自我保护。 RASP是集成到应用程序中的运行时应用程序,用于分析内外流量以及最终用户行为模式,以防止安全攻击

安全评估

进行漏洞评估和渗透测试