来自 DDOS 2021-08-25 15:24 的文章

DDOS高防服务_便宜的高防服务器_原理

DDOS高防服务_便宜的高防服务器_原理

作者:林文森特,OPSWAT软件工程总监本文档描述了OPSWAT使用的应用程序安全程序,并涵盖以下主题:什么是安全软件开发生命周期(SDLC)以及为什么我们使用it安全框架我们遵循全面的应用程序安全计划,包括战略和治理,从设计到实现和操作。什么是安全的SDLC?软件开发生命周期(SDLC)是一个由开发软件产品的一系列计划活动组成的过程。安全软件开发生命周期(S-SDLC)将安全性纳入软件开发生命周期的每个阶段,包括需求收集、设计、开发、测试和操作/维护。为什么要安全SDLC?近年来,威胁形势发生了巨大变化。有些演员的唯一意图就是闯入计算机系统和网络,破坏它们,不管是为了娱乐还是为了利润。后果是多方面的,但最终它会让企业付出金钱,并带来业务风险。根据最近的一项调查,在生产中发现一个安全漏洞时,修复它的成本可能比在分析和需求时发现它的成本高出30倍实施阶段安全的SDLC由于以下好处对组织非常重要:通过在开发过程早期检测产品中的安全缺陷降低组织的业务风险通过在生命周期早期检测和解决缺陷降低成本使安全成为所有利益相关者持续关注的问题在OPSWATOPSWAT保护SDLC遵循敏捷软件开发生命周期。在敏捷过程的基础上,我们添加了OWASP SAMM 作为安全软件开发生命周期的框架,OWASP asv作为应用程序安全和验证的框架。我们采用这两个OWASP框架的原因如下:来自全球社区的广泛贡献的开源框架为安全需求和检查表提供了指导,这些指导足够详细,足以为工程团队提供可操作性的框架,该框架可以量化安全sdlcowap软件的结果和改进保证成熟度模型(SAMM): 这是一个评估、制定,并实施软件安全组织可以集成到其现有软件开发生命周期(SDLC)中的策略。OWASP应用程序安全验证标准(ASVS):这是使用技术安全控制(如身份验证、授权、会话管理、,访问管理),并为开发人员提供一个安全的可操作要求列表发展。安全OPSWAT的SDLC被映射成几个关键的业务功能和安全实践:应用程序安全治理安全需求和评估安全设计和实现应用程序安全验证应用程序安全操作/维护应用程序安全治理Opswat是一家全球性公司,在世界各地设有办事处,在美国、越南、罗马尼亚和匈牙利OPSWAT应用程序安全的核心是AppSec团队,这是一个虚拟的跨国团队,每个产品团队都有指定的工程师将推动自身产品的安全改进以及安全SDLC。这种方法允许OPSWAT通过提供适当的安全上下文/培训,在来自所有开发中心的多个团队中扩展应用程序安全性,并构建安全产品。AppSec团队已经创建了一套推动我们应用程序安全计划的政策:为每个产品团队/组织制定评估和基于ASVS/SAMM框架实施安全控制开放源代码和第三方组件使用和策略应用程序安全测试和验证策略安全包验证策略应用程序安全意识培训我们安全计划的一个重要方面是针对应用程序安全,涵盖各种主题,包括安全设计、威胁建模、安全编码、安全测试和安全部署。培训内容包括传统视频和一个实践平台,开发人员可以在该平台上学习编写保护应用程序的最佳实践。该培训计划确保所有开发人员都能获得量身定制的培训解决方案,无论他们是初学者还是高级安全倡导者。开发人员通过每月学习路径学习如何安全地编写代码,这些学习路径通过游戏化、社交功能和社区。安全要求和评估作为安全SDLC流程的一部分,在安全性会议中,安全需求和关键需求被列为安全性会议的一部分下图:安全功能需求:这些是集成到产品每个功能需求中的安全相关需求。参见示例下图:示例1:当系统具有用户ID和PIN号码时,安全功能要求可能会在锁定帐户之前定义PIN猜测次数出去。举例2: 对于审计日志,派生需求可以支持日志的完整性,如测井注入预防。功能性安全要求: 这些是系统需要根据保密性、完整性和可用性原则实现的安全服务。功能安全要求示例包括:保密:身份验证,授权完整性:输入验证,错误处理可用性:备份,服务器群集非功能性安全要求: 这些是非功能性安全要求,例如最低性能要求、可伸缩性要求、可审核性,安全开发要求: 这些是软件开发过程中必需的活动,确保应用软件不包含漏洞。例如:"安全编码指南"、"安全代码审查"、"安全设计"和"安全测试方法论"。安全设计和实现安全性作为部分冲刺被纳入设计和实现中。AppSec团队成员协作定义和完善各种安全设计和实现最佳实践:威胁建模 -威胁建模是在开发生命周期的早期阶段识别威胁和漏洞的过程。产品团队进行威胁建模,需要以下活动:识别安全目标识别资产和依赖关系模型攻击可能性威胁模型解释跟踪矩阵用于报告攻击安全设计最佳实践 应用程序安全原则(例如安全失败,最小权限,建立安全的默认值)是理想的应用程序属性、行为、设计和实现实践的集合。产品团队使用这些设计原则来降低威胁的可能性。安全编码最佳实践 -产品团队遵循编码最佳实践,这些实践既可以独立于语言,也可以具有特定于语言的指导原则:语言独立的安全编码最佳实践:输入数据验证;清理发送到其他系统的数据;消除编译器警告。语言特定的安全编码最好的例子是java中的:确保比较操作中使用的密钥在C++中是不可改变的例子:检测和处理内存分配错误。安全测试计划- QA工程师包括安全相关的工件,作为整个软件测试计划的一部分:安全测试。功能和非功能安全需求测试数据的案例,包括攻击模式(例如基于DOM的跨站点脚本, 存储的跨站点脚本)测试工具(例如端口扫描,网络嗅探)安全代码审查和代码审查检查表基于 OWASP备忘单 系列安全代码审查策略(见下文作为安全验证和测试的一部分)应用程序安全验证和测试作为应用程序安全验证策略的一部分,产品团队执行安全验证和测试活动:安全架构和评审:任何设计变更在实施前由工程负责人和高级工程师审查。以下安全主题通常包含在设计/体系结构审核中:应用程序体系结构加密最佳做法身份验证和授权审核系统和网络体系结构部署标准强化最佳做法访问控制审核安全控制验证安全性和对等代码审阅:遵循安全编码指南(见上文),在代码通过进一步测试之前,代码更改由高级工程师和同行审查。优先检查以下常见的安全缺陷:身份验证/授权注入缺陷正确的错误处理/异常缺陷加密(加密)会话相关缺陷不安全配置审核和日志记录静态/动态应用程序安全测试结果审核:AppSec团队定期审核静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)工具,以确保产品不包含严重的漏洞。SAST工具(白盒测试)在开发过程的早期用于分析源代码中的漏洞。SAST工具非常适合于能够以高可信度自动发现的漏洞,例如SQL注入或XML配置缺陷。参见下面的SAST示例工具:DAST tools(黑盒测试)用于查找SDLC末尾的漏洞。这些工具可以找到与运行时(例如内存缺陷)和环境(不安全的网络配置)相关的内容问题。安全测试:QA工程师执行应用程序安全测试,作为上述总体测试计划的一部分。自动和手动应用程序安全测试