标题 : 什么是应用程序安全性?概念、工具和最佳实践
日期 : 2023-07-14
应用程序安全 (AppSec) 有助于保护应用程序数据和代码免遭网络攻击和数据盗窃。它涵盖了应用程序设计、开发和部署期间的所有安全注意事项。AppSec 涉及实施软件、硬件和程序,以识别和减少安全漏洞的数量,并最大限度地减少成功攻击的机会。
AppSec 通常涉及在软件流程中构建保护和控制。例如,对新代码进行自动静态分析,测试新软件版本是否存在安全漏洞或错误配置,以及使用应用程序防火墙严格定义允许和禁止的活动。
在本文中:
- 什么是威胁建模?
- 什么是应用程序安全测试?
- 应用程序安全工具和解决方案
- 静态应用程序安全测试 (SAST)
- 动态应用程序安全测试 (DAST)
- 交互式应用程序安全测试 (IAST)
- 运行时应用程序安全保护 (RASP)
- 移动应用程序安全测试 (MAST)
- Web 应用程序防火墙 (WAF)
- 国家应用程序协会
- 应用程序安全最佳实践
什么是威胁建模?
威胁建模有助于优化系统、业务流程和应用程序的安全性。它涉及识别漏洞和目标并定义适当的对策以减轻和防止威胁的影响。它是综合应用程序安全计划的基本组成部分。
以下是威胁建模的主要步骤:
- 定义所有企业资产。
- 确定与已识别资产相关的应用程序功能。
- 为每个应用程序创建一个安全配置文件。
- 识别潜在威胁并确定其优先级。
- 记录不良事件以及在每种情况下采取的所有措施。
威胁模型构成安全开发过程的重要组成部分。当纳入 DevOps 流程时,威胁建模使团队能够在开发和维护阶段将安全性构建到项目中,以防止常见问题,例如身份验证薄弱、无法验证输入、缺乏数据加密以及错误处理不足等。
什么是应用程序安全测试?
应用程序安全测试或 AppSec 测试 (AST) 有助于识别并最大程度地减少软件漏洞。此过程测试、分析和报告应用程序在整个软件开发生命周期 (SDLC) 中的安全级别。它使团队能够在部署之前预防软件漏洞,并快速识别生产中的漏洞。目标是开发更强大的源代码并使应用程序更安全。
应用程序安全工具和解决方案
以下是最常见的应用程序安全类别:
静态应用程序安全测试 (SAST)
SAST 通过分析应用程序源文件查找根本原因来帮助检测代码缺陷。它可以将静态分析扫描结果与实时解决方案进行比较,以快速检测安全问题、缩短平均修复时间 (MTTR) 并协作排除故障。
动态应用程序安全测试 (DAST)
DAST 是一种主动测试方法,可模拟正在运行的 Web 应用程序上的安全漏洞,以识别可利用的缺陷。这些工具评估生产中的应用程序,以帮助检测运行时或与环境相关的错误。
交互式应用程序安全测试 (IAST)
IAST 利用 SAST 和 DAST 元素,在应用程序内实时或在任何 SDLC 阶段执行分析。IAST 工具可以访问应用程序的代码和组件,这意味着这些工具可以实现生成准确结果所需的深入访问。
运行时应用程序安全保护 (RASP)
RASP 工具在应用程序内工作,提供持续的安全检查并自动响应可能的违规行为。常见的响应包括向 IT 团队发出警报并终止可疑会话。
移动应用程序安全测试 (MAST)
MAST 工具使用各种技术测试移动应用程序的安全性,例如执行静态和动态分析以及调查移动应用程序收集的取证数据。MAST 工具可帮助识别特定于移动设备的问题和安全漏洞,例如恶意 WiFi 网络、越狱和移动设备的数据泄露。
Web 应用程序防火墙 (WAF)
WAF 解决方案监视并过滤 Internet 和 Web 应用程序之间传递的所有 HTTP 流量。这些解决方案并不能涵盖所有威胁。相反,WAF 作为安全堆栈的一部分工作,提供针对相关攻击媒介的整体防御。
当 WAF 作为开放系统互连 (OSI) 模型的一部分应用时,可充当协议第七层防御。它有助于保护 Web 应用程序免受各种攻击,包括跨站点脚本 (XSS)、SQL 注入 (SQLi)、文件包含和跨站点伪造 (CSRF)。
国家应用程序协会
云原生应用程序保护平台(CNAPP)集中控制用于保护云原生应用程序的所有工具。它统一了各种技术,例如云安全态势管理 (CSPM) 和云工作负载保护平台 (CWPP)、身份授权管理、Kubernetes 等容器编排平台的自动化和编排安全性,以及 API 发现和保护。
4 个应用程序安全最佳实践
以下最佳实践应有助于确保应用程序安全。
1. 资产追踪
组织必须对其资产具有全面的可见性才能保护它们。建立安全开发环境的第一步是确定哪些服务器托管应用程序以及应用程序包含哪些软件组件。
未能追踪数字资产可能会导致巨额罚款(例如 Equifax 因未能保护数百万客户数据而被处以 7 亿美元的罚款)。开发和安全团队必须了解每个应用程序中运行的软件,以便及时修补和更新。
例如,Equifax 本来可以通过修补客户门户网站中的 Apache Struts 组件来防止泄露,但他们没有意识到自己正在使用易受攻击的组件。
资产跟踪可以防止下游的安全问题。自动化可以加速这一耗时的过程并支持扩展,而基于功能的分类允许企业确定资产的优先级、评估和修复。
2. 安全性左移
现代快节奏的软件开发行业需要频繁发布——有时一天几次。安全测试必须嵌入到开发流程中,以确保开发和安全团队满足需求。测试应该在 SDLC 的早期开始,以避免阻碍管道末端的发布。
了解现有的开发流程以及开发人员和安全测试人员之间的关系对于实施有效的左移策略非常重要。它需要了解团队的职责、工具和流程,包括他们如何构建应用程序。下一步是将安全流程集成到现有的开发流程中,以确保开发人员轻松采用新方法。
CI/CD 管道应包括各个阶段的自动化安全测试。将安全自动化工具集成到管道中可以让团队在内部测试代码,而无需依赖其他团队,以便开发人员可以快速轻松地解决问题。
3. 进行威胁评估
列出需要保护的资产后,就可以开始识别特定的威胁和对策。威胁评估涉及确定攻击者可利用的路径来破坏应用程序。
通过识别潜在的攻击媒介,安全团队可以评估其现有的安全控制措施,以检测和预防攻击,并确定新的工具来改善公司的安全状况。
然而,在评估现有安全措施和规划新的安全策略时,对适当的安全级别抱有现实的期望非常重要。例如,即使是最高级别的保护也不能完全阻止黑客。
一个考虑因素是安全策略的长期可持续性——最高的安全标准可能无法维持,特别是对于成长型公司中的有限团队而言。另一个考虑因素是可接受的风险水平以及对拟议安全措施的成本效益评估。
4. 权限管理
并非组织中的每个用户都需要相同的访问权限。根据需要限制对数据和应用程序的访问是一项关键的安全最佳实践。限制权限的主要原因有两个:
- 如果黑客可以使用窃取的凭据(例如,来自营销部门的员工)访问系统,则必须采取控制措施来防止他们访问其他数据。最低权限访问控制有助于防止横向移动并最大限度地减少攻击的影响范围。
- 当网络具有开放的内部访问权限时,内部威胁更加危险。这些威胁可能是恶意的或无意的,例如员工放错设备或下载恶意文件。
权限管理应遵循最小权限原则,以防止员工和外部用户访问他们不需要的数据,从而减少整体暴露。
|