应用程序安全
来自维基百科,自由的百科全书
应用程序安全(简称AppSec )包括向开发团队引入安全软件开发生命周期的所有任务。最终目标是改进安全实践,并通过它来发现、修复并防止应用程序中的安全问题。它涵盖了从需求分析、设计、实施、验证和维护的整个应用程序生命周期。[1]
方法
不同的方法会在软件生命周期的不同阶段里有效地发现潜伏在应用程序中不同的安全漏洞子集合。它们各自代表在时间、精力、成本和发现的漏洞等因素下的不同权衡。
- 设计审查。在编写程式码之前,可以检查应用程序的架构与设计是否存在安全性问题。此阶段常用的技术是创建威胁模型。
- 白盒安全审查,或程式码审查。这是透过一位安全工程师以手动方式深度查看原始程式码,以发现安全漏洞。透过对应用程序的理解,可以发现应用程序特有的漏洞。
- 黑盒安全稽核。透过使用工具来测试应用程序的安全漏洞,不需要原始程式码。
- 自动化工具。许多安全工具可以透过被包含在开发或测试环境中来实现自动化测试。其中的范例是被整合到程式码编辑器或 CI/CD 平台中的自动化 DAST/SAST (动态应用程序安全测试/静态应用程序安全测试)工具。
- 协作的漏洞平台。透过由许多网站和软件开发人员设立的应用程序安全解决方案,个人可以对网站及软件提出问题回报,并获得对回报错误的认可和补偿。
网络应用安全
Web 应用程序安全是信息安全的一个分支,专门处理网站、 Web 应用程序和Web 服务的安全性。在高层次上,Web 应用程序安全性借鉴了应用程序安全性原则,但专门将它们应用于Internet和Web系统。 [2] [3]
Web 应用程序安全工具是用于处理 HTTP 流量的专用工具,例如Web 应用程序防火墙。
开放 Web 应用程序安全项目 ( OWASP ) 提供免费和开放的资源。它由一个名为 OWASP 基金会的非营利组织领导。 2017 年 OWASP 前 10 名安全问题的结果来自于最近的研究,该研究是从 40 多个合作伙伴组织所收集的综合数据。该数据揭示了超过 50,000 个应用程序中的大约 230 万个漏洞。 [4]根据 OWASP Top 10 - 2021,十大最关键的 Web 应用程序安全风险包括: [5]
安全测试工具
安全测试技术搜索应用程序中的漏洞或安全漏洞。这些漏洞使应用程序容易被利用。理想情况下,安全测试在整个软件开发生命周期(SDLC)中实施,以便及时彻底地解决漏洞。
有多种自动化工具可用于识别应用程序中的漏洞。用于识别应用程序漏洞的常用工具类别包括:
- 静态应用程序安全测试(SAST)在应用程序开发过程中分析安全漏洞的源代码。与 DAST 相比,SAST 甚至可以在应用程序处于可执行状态之前使用。由于 SAST 可以访问完整的源代码,因此它是一种白盒方法。这可以产生更详细的结果,但可能会导致许多需要手动验证的误报。
- 动态应用程序安全测试(DAST,通常称为漏洞扫描器)通过抓取和分析网站自动检测漏洞。这种方法具有高度可扩展性、易于集成和快速。 DAST 工具非常适合处理低级攻击,例如注入缺陷,但不太适合检测高级缺陷,例如逻辑或业务逻辑缺陷。 [6] Fuzzing [7]工具通常用于输入测试。
- 交互式应用程序安全测试(IAST)使用软件工具从内部评估应用程序。这结合了 SAST 和 DAST 方法的优势,并提供对代码、HTTP 流量、库信息、后端连接和配置信息的访问。 [8][9]一些 IAST 产品要求应用程序受到攻击,而其他产品可以在正常的质量保证测试期间使用。 [10][11] ]
运行时应用程序自我保护增强了现有应用程序,以在应用程序运行时内提供入侵检测和预防。 依赖性扫描器(也称为软件组合分析)尝试检测具有已知漏洞的软件组件的使用情况。这些工具既可以按需工作,例如在源代码构建过程中,也可以定期工作。 抽象是使更复杂的事物变得不那么复杂的想法。
安全标准和法规
参见
参考文献
Wikiwand - on
Seamless Wikipedia browsing. On steroids.