本应用程序安全指南将为您提供在2022年保持安全所需的所有信息。
什么是应用程序安全性?
应用程序安全性定义为在开发和部署应用程序期间为阻止恶意行为者通过易受攻击的软件或硬件访问数据或代码而采取的操作和过程。
随着越来越多的组织依靠软件来推进其业务流程,保持应用程序安全性与开发实践一致变得至关重要。近年来,开发人员构建和发布应用程序的方式发生了巨大变化。今天的开发周期类似于软件工厂,其新功能和更新通常每天从装配线上更新。对于软件安全经理来说,这增加了复杂性和额外的风险,以确保应用程序不会在业务系统中创建新的漏洞。
应用程序安全最佳实践应定期更新,以保持领先于黑客和不良行为者,他们经常寻找利用软件的新方法。
本应用安全指南旨在阐明核心应用安全概念和方法、漏洞和问题,并为您提供在 2022 年保持安全所需的所有工具。
为什么应用程序安全性很重要?
应用程序安全作为一门独特的学科在不断发展。到2020年,该市场价值为57亿美元,Forrester分析师预计到2025年将达到129亿美元。漏洞可能源于配置错误等简单操作,也可能来自包含已知漏洞的软件组件,这就是为什么维护和提高应用程序安全性对企业如此重要的原因。
最近的一项研究显示,在分析的85,000个应用程序中,有83%至少包含一个安全漏洞。其中,20%有严重的漏洞。虽然并非所有这些漏洞都必然会带来重大的安全风险,但黑客通过使用巧妙的变通办法来渗透软件,从而继续完善其攻击。
为了提高应用程序的安全性,公司需要投资于与他们的开发环境整合的工具。这对于处理高度敏感数据的公司(如金融机构、政府组织、医疗保健等)至关重要。
OWASP等组织对发现的漏洞进行跟踪,并提供一份清单,开发人员和安全团队可以将其作为应用程序安全的起点。最近的OWASP 10强名单于2021年发布,包括破损的访问控制、注入攻击、安全错误配置等。
云原生应用程序安全状况报告定义了云原生的采用如何在2021年转变组织防御安全威胁的方式。应用安全变得更加重要,因为错误配置和已知的未修补的安全漏洞被发现是造成最大数量安全事件的原因。

超过56%的人经历了涉及其云原生应用的错误配置或已知的未修补漏洞事件。
5 种类型的 Web 应用程序安全性
- 关键基础设施和网络安全
- 移动和网络应用安全
- 网络安全
- 云安全
- 物联网安全
对于应用程序安全性,没有千篇一律的解决方案。每个组织在发布解决方案之前都有不同的方法来审查解决方案。要找到提高应用程序和软件安全性的最佳方法,需要采用攻击面的整体视图。这还取决于用于应用程序的特定访问和部署模型,包括使用它的环境以及它对持续操作的重要性。
1、关键基础设施和网络安全
提供关键基础设施(例如,电网、水净化或医院和金融服务系统)访问的网络物理系统将需要部署额外的安全解决方案。管理任何此类应用程序的组织必须进行尽职调查,这一点至关重要。
2、移动和网络应用安全
在企业中,任何应用程序(无论是内部应用程序还是面向公众的应用程序)都需要一个正式的流程来测试和修复开发过程中的漏洞。每当需要移动或远程访问时,都应将加密作为设计的一部分内置。此外,应在每个连接的节点上使用防火墙和防病毒等传统保护层。
3、网络安全
网络入侵工具和威胁监控系统可以保护内部系统,并帮助提高整体安全性。传统上,此任务将落在网络管理员身上。但是,随着构建和部署方法的进步,现在它已成为参与将新应用程序发布到公司网络过程中的每个开发人员的责任。
4、云安全
基于软件的安全工具可保护云应用程序和监视公司数据,使云资源成为首选的部署方法。云服务提供商正在不断审查其平台并改进其安全解决方案。另一方面,发现本地部署平均比云环境遭受更多的违规行为。
请记住,云安全的责任分布在云提供商和客户之间。提供商必须处理基础结构本身的安全性,而客户则负责管理用户和访问控制。
5、物联网安全
物联网(IoT)的日益普及使尚未实施和控制其连接设备的组织面临风险。从生物识别扫描仪,闭路电视摄像机和楼宇管理系统(BMS)到一切,如果没有得到充分的保护,都可能导致违规行为。
连接到公司网络或可通过互联网访问的任何设备都需要额外的安全性。这是为了防止黑客将这些设备用作攻击的中间点或起点,以进一步升级。此类攻击也可能难以检测,因此这一点变得更加重要。
什么是应用程序安全工具?
应用程序安全工具查找已知漏洞并对结果进行分类。它们可用于识别趋势和模式。由于漏洞经常利用应用层访问系统,因此应用安全工具对于提高应用层安全性至关重要。它们可帮助开发人员在生成和发布阶段测试已知漏洞(或代码错误)。

应用安全测试工具类型比较
随着新漏洞的不断出现,以及手动代码审查和其他传统测试方法所涉及的大量时间投入,安全工具可以提供许多优势。
这些工具改进了应用程序安全测试。他们执行的测试是可重复和可扩展的。给定的测试可以重复执行,只需很小的增量成本。
这些工具查找已知漏洞并对结果进行分类。它们还能够识别趋势和模式。
让我们来探讨一下五种最流行的应用程序安全工具:
- 静态应用安全测试(SAST)。SAST是白盒测试,可以访问源代码,在静止状态下,它可以识别可能导致漏洞的弱点,然后生成一份报告。
- 动态应用安全测试(DAST)。DAST是在应用程序运行时进行的黑盒测试,不需要深入了解系统的内部运作方式。DAST工具分析操作代码,以确定请求、响应、接口、脚本、注入、认证和使用模糊处理的会话的问题。
- 软件组成分析(SCA)。也被称为起源分析,这种方法有助于分析所有来源的软件组件和库。这些工具有助于识别已知的漏洞,并通知用户任何可用的补丁或更新。
- 互动应用安全测试(IAST)。混合式IAST工具结合了静态和动态方法,使用预定义的测试案例对应用程序和数据流进行测试。该工具可以根据结果推荐额外的测试案例。
- 应用安全测试即服务(ASTaaS)。在这种情况下,组织征用一个外部公司为他们的应用程序进行所有测试。ASTaaS通常结合静态和动态安全方法,包括渗透测试和评估应用程序编程接口(API)。
虽然不同的工具可以提供上述的一个或多个功能(以及其他测试方法),但一个新的术语正在获得关注,那就是应用安全测试协调(ASTO)。这些应用安全方法也可以合并到一个中央管理和协调控制台,用于所有使用ASTO的测试工具。
什么是应用安全的挑战?
企业在努力提高其应用安全方面面临着许多挑战。其中最主要的是预算不足,无法跟上技术领域日益增长的攻击面。大多数安全经理都会欣然承认他们的测试和安全项目在未来需要改进,这就需要在应用安全测试上投入更多的资金。其他挑战包括继承的漏洞、第三方开放源码漏洞、缺乏DevSecOps模型、合格专家的短缺以及没有集中的测试管理工具,我们将在下面探讨这些问题。

现代应用程序的风险状况
历史遗留漏洞
通过重用旧代码或遗留的应用程序,开发人员继承了技术债务。盲目地使用以前由别人写的代码是一个巨大的风险。你无法知道已经采取了哪些安全措施,而且代码可能包含许多弱点和遗漏。
如果你使用旧的代码,关键是要确保在将其与应用程序的其他部分整合之前对其进行安全审查。SAST工具也可以帮助你更快地抓住代码中的漏洞。
第三方和开放源代码的漏洞
多达96%的应用程序使用开源软件和库。但是,使用外部组件和模块,特别是开放源码,需要持续监测漏洞,并确保立即应用更新和补丁。
采用Devsecops方法
采用DevSecOps方法是确保你的应用程序在整个安全开发生命周期中的安全的关键,而不是把安全作为一个附加的东西。这种 "向左转 "的方法意味着每一个安全事件都应该尽快解决。

DevSecOps的采用。将安全整合到CI/CD管道中
不幸的是,许多公司和创建应用程序的软件公司还没有采用DevSecOps模式,这是因为实施过程中的挑战:它需要找到合适的工具和整合它们的技能,在你的CI/CD过程中实施安全,并修复通过该过程发现的任何问题。
寻找合格的专家
随着应用市场的不断发展,程序员也越来越多。虽然找到一个开发人员不是问题,但要找到一个有经验的程序员就难得多了。同时,也缺乏既具备编程技能又具备应用安全专业知识的训练有素的工程师。
缺乏集中管理的工具
应用安全团队面临的另一个挑战是,他们往往无法获得一个集中的工具来管理开发过程中的所有测试。ASTO工具可以帮助安全经理和分析师建立对构建和发布周期的有效监督,确保他们发现并解决所有的漏洞,以防止漏洞的发生。
2022年应用安全趋势
应用安全正在不断发展,以满足该领域许多新的和持续的挑战。其中一些趋势包括。
云原生应用的兴起增加了对安全的需求,将其作为标准内置。在云原生时代的成功是由一个组织更快、更有效地提供新版本软件的能力来定义的,这一点在我们的调查结果中得到了加强。能够更快地将代码部署到生产中,并更容易地管理这些应用程序是转向容器化基础设施的主要原因。
然而,随着企业接受云原生技术作为其数字化转型的一部分,安全被视为构建成功平台的关键因素。虽然36%的受访者表示,安全是将其生产应用转移到容器中的主要原因之一,但99%的受访者认为安全是其云原生战略中的一个重要因素。此外,超过80%的人表示安全对他们来说是非常重要的。
运行时应用程序自我保护(RASP):这项技术使应用程序能够自动识别漏洞。自我评价的应用程序可以实时检测、诊断和提供保护,以防止攻击。
后台即服务(BaaS)和功能即服务(FaaS):BaaS(如谷歌Firebase)和FaaS(如AWS Lambda)解决方案作为无服务器部署模型也越来越受欢迎。通过减少后端基础设施的复杂性,它们使开发人员更容易在云环境中构建和发布安全代码。
公有云和私有云软件即服务(SaaS)应用程序的监控工具成熟了:现在,更多的组织选择为公共和私有云部署部署应用级安全监控,以实现对整个应用组合的漏洞检测。
网络应用防火墙(WAF):WAF是一种专门的工具,可以通过帮助控制传入和传出的网络流量为网络应用提供保护。它的有效性主要取决于所创建的规则(即允许列表和阻止列表)。这些规则应明确规定哪些内容是允许的,哪些内容应被阻止,提供对零日和其他漏洞的保护。
WAF可以通过确保动态测试工具产生的所有攻击载体被阻止而得到改进。主要的云供应商都提供WAF解决方案:AWS WAF、Azure Web Application Firewall和Google Cloud Armor。
FaaS(功能即服务)和无服务器模式:在FaaS模式下,现有的应用程序必须被重写成FaaS支持的兼容语言。无服务器模式为这个问题提供了一个解决方案。GCP和AWS已经提供了这种解决方案。
Google Cloud Run使用任何Docker镜像,通过自动平衡资源,按需作为容器运行。AWS Fargate作为Amazon ECS(弹性容器服务)的启动类型提供,根据容器的处理器和内存要求,使资源可以被访问。
什么是应用安全控制?
应用安全控制增加了软件保护的另一个层次。通过确保适当的覆盖,同时监控应用程序及其相关数据的保密性、可用性和完整性,这些控制能够监控应用程序执行的所有操作,并防止任何未经授权的任务执行。
控制措施可能包括有效性检查、认证验证、识别管理或输入控制。这有助于通过分析行为模式减少攻击面,并在应用程序试图破坏网络时锁定它们。如果一个应用程序试图在已知参数之外执行任务,该控制将阻止这种情况并提醒安全团队。
应用安全词汇

- SAST-静态应用安全测试
- DAST--动态应用安全测试
- SCA-软件构成分析
- OWASP-开放网络应用安全项目
- XSS-跨站脚本
- CSRF-跨站请求伪造
- RASP-运行时应用自我保护
- DoS-拒绝服务
- CSP-内容安全策略
- SSRF-服务器端请求伪装
我们在社交媒体上收到了很多反馈,说人们不知道SAST是什么。因此,我们认为这是一个好主意,把10个最常见的安全缩略语放在一起,不要担心,我们已经把SAST列为其中之一。
本文为翻译文章,原文链接:
https://snyk.io/learn/application-security/