安全软件生命周期之规范性安全软件生命周期流程:接触点

接触点

国际软件安全顾问GaryMcGraw通过编纂构建安全产品的丰富行业经验,提供了七个软件安全接触点。McGraw使用术语接触点来指代可以纳入安全软件生命周期的软件安全最佳实践。McGraw区分了作为实现错误的漏洞和那些是设计缺陷的漏洞。实现错误是单段代码中的局部错误,例如缓冲区溢出和输入验证错误,使发现和理解更容易。设计缺陷是代码设计级别的系统性问题,例如以不安全的方式失败的错误处理和恢复系统或错误地包含传递信任问题的对象共享系统。Kuhn等人[32]分析了来自美国国家漏洞数据库(NVD)的2008-2016年漏洞数据,发现67%的漏洞是实施错误。七个接触点有助于预防和检测错误和缺陷。

下面描述了这七个接触点,并根据McGraw多年来对每种实践的效用的经验按有效性顺序提供,因此具有规范性:

1.   代码审查(工具)。

代码审查用于检测实现错误。可以使用手动代码审查,但要求审核员在严格检查代码之前了解安全漏洞。“使用工具进行代码审查”(又名使用静态分析工具或SAST)已被证明是有效的,可供工程师使用没有专家安全知识。有关静态分析的进一步讨论,请参见第2.1.1节第9点。

2.   架构风险分析。

架构风险分析,也称为威胁建模(请参阅第4节),用于预防和检测设计缺陷。设计人员和架构师提供目标系统的高级视图和假设文档,并识别可能的攻击。通过架构风险分析,安全分析师可以发现架构和设计缺陷并进行排序,以便开始缓解。例如,风险分析可以识别可能的攻击类型,例如拦截和读取数据的能力。这种识别将促使设计人员查看其所有代码的流量,以查看拦截是否令人担忧,以及是否有足够的保护(即加密)。分析提示的审查是发现设计缺陷的原因,例如敏感数据被明文传输。

没有系统是完全安全的,因此必须使用风险分析来确定安全工作的优先级,并将系统级问题与对构建软件的业务至关重要的概率和影响措施联系起来。风险敞口的计算方法是将不良事件发生的概率乘以与该事件相关的成本。

McGraw提出了架构风险分析的三个基本步骤:

•抗攻击性分析。攻击抵抗分析使用清单/系统方法考虑每个系统组件与已知威胁的关系,如第2.1.1节第4点中讨论Microsoft威胁建模中所做的那样。在分析过程中使用有关已知攻击和攻击模式的信息,识别体系结构中的风险并了解已知攻击的可行性。如第2.1.1节第4点所述,合并基于STRIDE的攻击的威胁建模是执行攻击抵抗分析的示例过程。

•   歧义分析。模糊性分析用于捕获发现新风险所需的创造性活动。模糊性分析需要两个或更多经验丰富的分析师在同一系统上并行执行单独的分析活动。通过统一对多重分析的理解,分析师之间的分歧可以发现歧义、不一致和新的缺陷。

•弱点分析。弱点分析侧重于了解与其他第三方组件中的安全问题相关的风险(请参阅第2.1.1节第7点)。这个想法是了解对第三方软件的假设,以及当这些假设失败时会发生什么。

风险识别、排名和缓解是贯穿整个软件生命周期的持续过程,从需求阶段开始。

3.    渗透测试。

渗透测试可以由架构风险分析的结果指导(请参阅第2.1.2节第2点)。有关渗透测试的进一步讨论,请参见第2.1.1节,第11点。

4.    基于风险的安全测试。

安全测试必须包含两种策略:(1)使用标准功能测试技术测试安全功能;(2)基于攻击模式和架构风险分析结果的基于风险的测试(参见第2.1.2节第2点)和滥用案例(参见第2.1.2节第5点)。对于Web应用程序,安全功能的测试可以由OWASP应用程序安全验证标准(ASVS)项目12开放标准指导,用于测试应用程序技术安全控制。ASVS还为开发人员提供了安全开发的要求列表。

利用软件架构和构造、常见攻击和攻击者的心态知识指导测试非常重要。使用架构风险分析的结果,测试人员可以适当地关注攻击可能成功的代码区域。

基于风险的测试和渗透测试之间的区别在于方法的级别和测试的时间。渗透测试是在软件完成并安装在操作环境中时完成的。渗透测试是由外而内的黑盒测试。基于风险的安全测试可以在软件完成甚至预集成之前开始,包括使用白盒单元测试和存根。两者的相似之处在于,它们都应该以风险分析、滥用案例和功能安全要求为指导。

5.    滥用案例

这个接触点编纂了“像攻击者一样思考”。用例描述了仁慈参与者对所需系统的行为。滥用案例[20]描述了系统在受到恶意行为者攻击时的行为。为了开发滥用案例,分析师列举了有动机攻击系统的恶意行为者的类型。

对于每个不良行为者,分析师为不良行为者希望从系统中获得的功能创建一个或多个滥用案例。然后,分析师考虑用例和滥用案例之间的交互,以加强系统。考虑一个汽车的例子。参与者是汽车的驾驶员,这个参与者有一个用例“驾驶汽车”。恶意行为者是偷车贼,其滥用案件是“偷车”。此滥用案例威胁到用例。为了防止盗窃,可以添加新的用例“锁定汽车”,以减轻滥用情况并加强系统。

人为错误是造成大量违规行为的原因。系统分析师还应考虑善意用户的行为,例如成为网络钓鱼攻击的受害者,从而导致安全漏洞。这些行为可以被视为滥用案例[21],应该像滥用案例一样进行分析,考虑滥用案例威胁的用例以及对系统进行强化以减轻滥用案例。

滥用和误用案例分析确定的攻击和缓解措施可用作安全要求的输入(第2.1.1节第2点)。渗透测试(第2.1.1节第11点);以及基于风险的安全测试(第2.1.2节第4点)。

6.    安全要求。

有关安全要求的进一步讨论,请参见第2.1.1节第2点。

7.    安全操作。

网络安全可以与软件安全集成,以增强安全态势。无论其他接触点的应用如何,攻击都不可避免地会发生。了解攻击者行为和成功攻击的软件是一种基本的防御技术。通过了解攻击获得的知识可以反馈到其他六个接触点。

七个接触点旨在随着软件产品的发展而多次循环。接触点也是与过程无关的,这意味着实践可以包含在任何软件开发过程中。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/140541.html<

赞 (0)
管理的头像管理
上一篇2025-03-03 23:59
下一篇 2025-03-04 00:00

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注