安全是首要任务 对于软件开发员来说将面临哪些挑战?

在所有类型的应用程序中,所连接设备的数量不断增加,凸显了开发安全软件的重要性。每个设备都面临着不同的风险,因此,必须为每个新项目详细评估软件安全性要求。云的使用越来越多,也开辟了新的攻击载体,并使软件安全性越来越复杂且难以实现。零信任已成为软件安全性的新口 。

安全软件的开发始终是一个挑战,绝不是一项完整的任务。了解保护的内容,保护的对象以及各种攻击的潜在影响是开发安全软件的起点。威胁的不断发展的性质意味着,在项目开始时往往无法完全确定安全要求。在整个开发过程中,它们可能会多次更改。并且一旦系统或设备进入现场,各种 络威胁和威胁向量将继续发展。面对不断变化的威胁,越来越多地使用无线更新和补丁程序来维护安全性。

不幸的是,软件漏洞是始终存在的动态风险(图1)。因此,您必须确保您的代码是安全的和受保护的。不安全的应用程序会让黑客进入。他们可以直接控制一台设备,或者提供到另一台设备的访问路径。软件安全性是一个多维挑战,其中包括安全通信、安全操作系统、安全启动、静态和传输中的安全数据、消除漏洞的安全编码标准和实践、健壮性测试等。以下内容将探讨什么是安全编码,并为您提供安全编码资源的示例,包括行业标准、准则、法规以及公认的测试和验证协议。

图1:软件安全性是一个多维且不断发展的挑战


安全编码

安全编码是计算机软件的开发,可以防止意外引入安全漏洞。通过识别不安全的编码做法,您可以采取积极的措施来减少或消除软件中的漏洞,然后再进行大量部署。安全软件的开发是一个复杂的过程,包括许多国家和国际准则,法规和标准。它始于威胁建模。

威胁建模

威胁建模和理解所需的安全级别是在定义安全代码开发目标(图2)的新项目的早期阶段要采取的重要步骤。安全需要花费时间和精力,并且不是绝对的。几个标准和准则采用安全级别、分数或等级来定义安全软件的功能。因此,您需要清楚地了解每个项目的特定安全需求和目标。每种威胁建模方法的共同要素包括:

对数据流进行记录,以识别系统容易受到攻击的位置。

系统地识别尽可能多的威胁。

确定用于减少每种潜在威胁的可能性或影响的控件。

图2:威胁建模是安全软件开发中复杂而关键的第一步

一些常用的威胁建模方法包括:

Microsoft安全开发生命周期(SDL)是一种工程技术,可用于帮助识别可能影响您的应用程序的威胁、攻击、漏洞和对策。

攻击模拟和威胁分析过程(PASTA)是一个以风险为中心的七步方法。它提供了一个将业务目标和技术要求统一起来的流程,同时考虑到合规性问题和业务分析。

通用漏洞评分系统(CVSS)是一个开放框架,用于传达软件漏洞的特征和严重性。CVSS由三个度量标准组组成:基本、时间和环境。

混合威胁建模方法(hTMM)由卡内基梅隆大学软件工程学院于2018年开发。它由SQUARE(安全质量要求工程方法)、安全卡(由华盛顿大学开发)和Persona non Grata组合而成(PnG,由德保罗大学开发)。

准则和规定

例如,“支付卡行业数据安全标准”要求定期且在系统更改后进行渗透测试。存在几种进行渗透测试的标准框架和方法。其中包括《开源安全测试方法手册》,《渗透测试执行标准》,NIST SP 800-115,《信息系统安全评估框架》和《 OWASP测试指南》。

图3:渗透测试应同时考虑试图进入 络外部的恶意行为者(外部测试)和来自 络内部的攻击

通用漏洞列表(CWE?)是 区开发的软件和硬件漏洞类型列表。CWE帮助开发人员和安全从业人员:

用通用语言描述和讨论软件和硬件的弱点。

检查现有软件和硬件产品中的弱点。

评估针对这些弱点的工具的覆盖范围。

利用通用的基准标准来识别,缓解和预防漏洞。

部署之前防止软件和硬件漏洞。

设备的评估保证级别(EAL)是从1到7的数值,它是使用国际标准化的通用标准安全性评估确定的。EAL级别越高,相应的设备“安全目标”文档中列出的验证和测试要求就越详细。较高的EAL级别不一定标识更安全的设备。它仅表示彻底的测试和验证过程。如果两个设备具有相同的“安全目标”定义,则更高评级的设备应该更值得信赖。

还可以扩大EAL要求,以包括比给定EAL最低要求更广泛的保证要求。增强的EAL可以使用单词EAL5 +或使用加 来表示。

结论

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月27日
下一篇 2021年10月27日

相关推荐