一个用于将应用程序安全集成到软件工程中的框架(FIASSE),基于可安全软件工程模型(SSEM)实现。
注意: 本仓库是一项持续进行的工作。欢迎贡献!
TL;DR:请阅读 DOC。探索 FIASSE 网站。访问 GitHub Discussions 参与贡献。
本仓库包含 OWASP 将应用安全集成到软件工程中的框架(FIASSE)的资源和材料。FIASSE(发音为 /feiz/,类似 'phase')提倡一种以开发者为中心、基于原则的方法来构建可安全化的软件——认识到安全是一个动态的、持续的过程,就像开发一样。它引入了可安全化软件工程模型(SSEM)作为一种通用设计语言,使用既定的软件工程术语将安全集成到软件架构、设计和工程中。将安全集成到塑造代码本身的原则中。该框架旨在构建能够随时间抵御威胁的弹性应用程序。
提供实用指南,赋能开发者无需深厚的安全专业知识即可创建可安全化的软件,并指导安全专业人员将其安全经验有效地集成到软件工程中。FIASSE 通过软件工程视角实现这一目标,降低认知负荷并促进开发团队与安全团队之间的协作。
虽然像 OWASP Top 10 这样的以保障为重点的项目强调要避免什么(黑名单),但 OWASP FIASSE 提供了一套要遵循的积极属性和实践(白名单)。这种方法利用现有的软件工程技能来构建可安全化的软件,而不是要求开发者学习利用技术或采用以漏洞为中心的思维方式。重点是通过熟悉的工程原则实现实用的安全编码。
通过明确定义安全在开发过程中的实际角色,该框架确保业务价值被有效捕获。通过这种方式设定期望,显著降低了安全缺陷被发现并需要后期修复的可能性。
/docs 目录中的文档本仓库将可安全化软件定义为可靠、有弹性且可适应的系统。它强调真正的安全是一个持续的过程,而不是静态的成就。它引入了可安全化软件工程模型(SSEM),该模型将安全视为精心设计的软件的一组固有品质。为此,它提出了可维护性、可信赖性和可靠性(包括弹性)等属性类别。FIASSE 倡导将安全实践集成到开发工作流中影响最大的地方。这从"安全作为事后考虑"或"左移"方法转变为主动的、协作的模型。其理念是产品负责人、开发者和安全专业人员从设计的最早阶段就共同协作,特别是通过安全需求定义、协作威胁建模和验收标准等活动。这为代码活动和测试设定了明确的期望。软件工程师获得关于平衡灵活性和控制的指导。他们还获得了一个用于做出安全决策的明确模型。最终,这赋能所有利益相关者为构建更健壮、更可靠且本质上可安全化的系统做出贡献。
FIASSE 与现有方法的不同之处在于,它不要求开发者成为安全专家或采用对抗性思维方式。这种方法旨在降低开发者的认知负荷,同时确保安全团队能够确信其关注点通过代码和软件工程流程的特定属性得到解决。
FIASSE 旨在保持开放、平易近人和协作性。
FIASSE 项目的初始里程碑:
进一步的里程碑将与项目团队共同制定。欢迎通过 GitHub Discussions 提供社区意见。
本仓库是对 FIASSE 网站 的补充。
OWASP FIASSE 项目是 OWASP 基金会 的一部分,该基金会是一个致力于消除不安全软件使命的非营利组织。OWASP 基金会提供了大量与 FIASSE 原则一致的资源和框架。
本框架专注于可安全化软件工程,并得到其他 OWASP 项目的补充:
OWASP 还托管了许多记录安全需求和功能的项目,例如 OWASP 移动应用安全。OWASP 开发者指南 是各种其他 OWASP 资源的综合参考。
另一个用于参考需求和保障实践的优秀资源是 OpenCRE,它汇集并映射了各种安全框架。
NIST 安全软件开发框架(SSDF) 定义了代表实施安全软件开发实践不同方面的四个阶段。它通过强调将安全集成到软件开发生命周期中,与 FIASSE 的原则保持一致。
NCSC 的 软件安全实践守则 定义了期望结果和一些关键策略。而 FIASSE 框架侧重于实现可安全化结果的第一级后续原则和策略,旨在让开发和保障团队与业务战略保持一致。SSEM 指定了用于产生期望结果的属性,FIASSE 方法论则为在软件工程实践中实施这些属性提供了实用指导。
卡内基梅隆大学的 CERT 是一套语言级规则,既提供"不该做什么"的示例(展示易受攻击的代码模式),也提供"该做什么"的示例。FIASSE 通过提供一种基于原则的方法来补充这些规则,帮助程序员理解可安全化代码背后的"为什么"。
软件工厂安全框架(SF2)"为安全领导者提供了一种在改善业务成果的同时扩展安全能力的战略方法。"它是一个组织级框架,补充了 FIASSE 对软件工程实践的关注。
欢迎为改进文档和示例做出贡献。请参阅我们的贡献指南了解详情。
知识共享署名-相同方式共享 4.0 国际(CC BY-SA 4.0)——详情请参阅 LICENSE 文件。
本项目是 OWASP 社区的协作成果。我们感谢所有贡献者的宝贵投入和对改进软件安全的奉献。
这里有一份参与本项目的贡献者列表。一些早期贡献者帮助塑造了初始概念并对想法进行了红队测试。