安全软件开发基础

主要是开发有关软件安全知识、软件实现漏洞和可用于防止或检测攻击或减少攻击利用的技术的理解概述

什么是软件保障(Software  Assurance)?

Software  Assurance is defined as a level of confidence that software is free from errors and vulnerabilities, either accidental or deliberate and functions as intended(https://en.wikipedia.org/wiki/Software_assurance)

软件保障被定义为一种信心, 即软件没有意外或故意的错误和漏洞, 并按预期的方式发挥功能

挑战:

  • 与软件相关的安全性仍未得到很好的理解。
  • 安全具有动态属性,因为软件存在于一个不断变化的环境中。
    • 技术变化很快, 这就改变了部署安全控制的环境。
    • 不能保证安全控制将在不同的环境中提供相同级别的保护。
  • 软件本身的变化/随着业务需求和社会变革而变化 (功能的不断推出)
  • 新的软件工具和平台的发展。 黑客往往是这种技术的早期使用者, 他们可以用它来发动攻击。
    • Example, hackers adopted cloud (Virtual Machines) to spin-up ‘landing pages’ that are used to launch ransomware campaigns.  Bitcoin, another technology that had early adoption with criminals not to facilitate the payment of ransoms.
  • 我们如何定义一个可信度的度量(measure of confidence)?通过测试?
  • 安全涵盖了多个企业(businesses)、政策(policies)、技术(technology)和人员。

安全指标:

  • Average Time to Detect and Respond (ATD) 平均检测和响应时间
  • SOC – “By reducing ATD, Security Operations Centre (SOC) personnel give themselves more time to assess the situation and decide upon the best course of action that will enable the enterprise to accomplish its mission while preventing damage to enterprise assets,“ (Lockheed Martin)

 

Target initial infection – Pivot Attack Fazio Mechanical Services (FSM), connected there heating, ventilation and air conditioning (HVAC) software. 2013年目标初始感染枢轴攻击法齐奥机械服务 (FSM), 连接那里的加热, 通风和空调 (HVAC) 软件。

 

方案:

通过查看软件开发生命周期和搜索关键点来做到这一点,可以改进应用程序整体安全状态的活动(activities)、流程(procedures)、策略(policies)、测试(testing )。

安全成本:

  1. 人力(Personal
  2. 所需技术
  3. 测试

影响:

  1. 上市时间
  2. 收入回报(Return on Revenue
  3. 忘记的事情(forget things
  4. 对更新密码的懒惰

将安全性构建进产品中:

  • 强化软件
    • 清除代码中的所有漏洞和弱点
    • 从一开始就将安全性构建到流程和产品中
    • 开发安全的业务协议功能
  • 理解风险
  • 缓解(Mitigate)风险