什么是 Web 应用安全?
Web 应用程序安全是保护网站、应用程序和 API 免受攻击的做法。这是一门广泛的学科,但其最终目标是保持 Web 应用程序平稳运行,并保护企业免受网络破坏、数据窃取、不道德竞争,以及其他负面后果的影响。
互联网的全球性使 Web 应用程序和 API 暴露于来自许多位置以及各种规模和复杂性级别的攻击。因此,Web 应用程序安全包含多种策略,涵盖软件供应链的许多部分。
常见的 Web 应用程序安全风险有哪些?
Web 应用程序可能面临多种攻击类型,具体取决于攻击者的目标、目标组织的工作性质以及应用程序的特定安全漏洞。常见的攻击类型包括:
- zero-day 漏洞:这些是应用程序制造商不知道的漏洞,因此没有可用的修复程序。现在,我们每年都会发现超过 20,000 个 zero-day 漏洞。攻击旨在快速利用这些漏洞,并且通常会试图逃避安全供应商实施的保护措施。
- 跨站点脚本 (XSS):XSS 是一个漏洞,攻击者可以利用此漏洞将客户端脚本注入网页,以便直接访问重要信息、假冒用户,或诱使用户泄露重要信息。进一步了解如何防范 XSS 攻击。
- SQL 注入 (SQLi):SQLi 攻击者通过数据库执行搜索查询来利用漏洞。攻击者使用 SQi 来访问未经授权的信息,修改或创建新的用户权限,或以其他方式操纵或破坏敏感数据。详细了解如何防止 SQL 注入。
- 拒绝服务 (DoS) 和分布式拒绝服务 (DDoS) 攻击:攻击者可以利用多种手段和途径通过不同类型的攻击流量使目标服务器或其周围基础设施超载。当服务器不再能够有效处理传入请求时,它开始表现缓慢,最终拒绝为合法用户的传入请求提供服务。
- 内存损坏:内存中的位置被无意修改时,会发生内存损坏,从而可能导致软件出现意外行为。恶意的攻击者将试图通过代码注入或缓冲区溢出攻击之类的方法来嗅探并利用内存损坏。
- 缓冲区溢出:缓冲区溢出是在软件将数据写入内存中定义的空间(称为缓冲区)时发生的异常。缓冲区容量的溢出会导致相邻的存储器位置被数据覆盖。可以利用此行为将恶意代码注入内存,从而有可能在目标计算机中创建漏洞。
- 跨站点请求伪造 (CSRF):跨站点请求伪造包括诱骗受害者使用其身份验证或授权进行请求。通过利用用户的帐户特权,攻击者能够发送伪装成该用户的请求。一旦用户的帐户受损,攻击者便可以窃取,破坏或修改重要信息。通常会以高特权帐户(例如管理员或执行官)为目标。
- 凭据填充:攻击者可能会使用机器人将大量窃取的用户名和密码组合快速输入到 Web 应用程序的登录门户中。如果凭据填充使攻击者能够访问真实用户的帐户,他们可能会窃取用户的数据或以用户的名义进行欺诈性购买。
- 页面抓取:攻击者还可能使用机器人大规模窃取网页内容。他们可能会使用此内容来获得相对于竞争对手的价格优势,出于恶意目的或其他原因模仿页面所有者。
- API 滥用:API(应用程序编程接口)是允许两个应用程序相互通信的软件。与任何类型的软件一样,它们可能存在漏洞,允许攻击者将恶意代码发送到其中一个应用程序,或在敏感数据从一个应用程序移动到另一个应用程序时进行拦截。随着 API 使用的增加,这是一种越来越常见的攻击类型。OWASP API Top 10 清单简明扼要地总结了当今组织面临的主要 API 安全风险。
- 影子 API:开发团队快速工作以满足业务目标,在不通知安全团队的情况下频繁构建和发布 API。这些未知的 API 可能会暴露敏感的公司数据,在“影子”中运行,因为负责保护 API 的安全团队并不知道它们的存在。
- 第三方代码滥用:许多现代 Web 应用程序使用各种第三方工具——例如,使用第三方支付处理工具的电子商务网站。如果攻击者在其中一个工具中发现漏洞,他们可能会入侵该工具,窃取它处理的数据,阻止它运行,或者使用它在应用程序的其他地方注入恶意代码。Magecart 攻击是这种攻击类型的一个例子,它从支付处理器中盗取信用卡数据。这些攻击也被认为是浏览器供应链攻击。
- 攻击面配置错误:组织的攻击面是指可能容易遭受网络攻击的整个 IT 足迹:包括可以从互联网访问的服务器、设备、SaaS 和云资产。由于忽略或错误配置了某些元素,此攻击面可能仍然容易遭受攻击。
有哪些重要的 Web 应用程序安全策略?
如前所述,Web 应用程序安全是一个广泛的、不断变化的学科。因此,随着新的攻击和漏洞的出现,该学科的最佳实践也会发生变化。但现代互联网威胁形势非常活跃,如果没有某些符合其业务特定需求的“筹码”安全服务,任何组织都无法生存:
- DDoS 缓解:DDoS 缓解服务位于服务器和公共互联网之间,使用专门的过滤和极高的带宽容量来防止恶意流量激增使服务器不堪重负。这些服务很重要,因为许多现代 DDoS 攻击提供的恶意流量足以淹没即使是最具弹性的服务器。
- Web 应用程序防火墙 (WAF):过滤掉已知或怀疑利用 Web 应用程序漏洞的流量。WAF 很重要,因为新的漏洞出现得太快而且悄无声息,几乎所有组织都无法自行捕捉。
- API 网关:有助于识别被忽视的“影子 API”,并阻止已知或怀疑以 API 漏洞为目标的流量。它们还帮助管理和监控 API 流量。(了解有关 API 安全性的更多信息。)
- DNSSEC:此协议可确保 Web 应用程序的 DNS 流量安全路由到正确服务器,让用户不会被中间人攻击者拦截。
- 加密证书管理:由第三方管理 SSL/TLS 加密过程的关键元素,如生成私钥、更新证书、因漏洞而撤销证书等。这消除了这些元素被忽视和暴露私人流量的风险。
- 机器人管理:其使用机器学习和其他专门的检测方法来区分自动流量和人类用户,并阻止前者访问 Web 应用程序。
- 客户端安全:检查新的第三方 JavaScript 依赖项和第三方代码更改,帮助组织更快地捕获恶意活动。
- 攻击面管理:可操作的攻击面管理工具应该提供一个单一的地方来映射攻击面,识别潜在的安全风险,而且只需几次点击即可缓解风险。
组织应该期望他们的供应商提供哪些应用程序安全最佳实践?
Web 开发人员可以对应用程序进行精心设计和构建,以防止攻击者访问私有数据、欺诈性访问用户帐户和执行其他恶意操作。OWASP Top 10 清单列出了开发人员应该注意的最常见的应用程序安全风险。预防这些风险的做法包括:
- 要求输入验证:阻止格式不正确的数据通过应用程序的工作流程,有助于防止恶意代码通过注入攻击进入应用程序。
- 使用最新的加密技术:以加密方式存储用户数据,并使用 HTTPS 加密入站和出站流量的传输,协助防止攻击者窃取数据。
- 提供强身份验证和授权:内置和强制实施强密码控制、提供包括硬密钥在内的多因素身份验证选项、提供访问控制选项以及其他做法,让攻击者更难以欺诈方式访问用户帐户并在您的应用程序内横向移动。
- 跟踪 API:有一些工具可用于识别可能构成攻击面的被忽视的“影子 API”,但当 API 从一开始就不被忽视时,API 安全性就会变得更容易。
- 记录代码更改:这有助于安全和开发团队更快地修复新引入的漏洞。
Cloudflare 如何保证 Web 应用程序的安全?
Cloudflare 运行的全球网络遍布 330 座城市,提供上面列出的许多安全服务,包括 DDoS 缓解、Web 应用程序防火墙、API 保护、DNSSEC、托管 SSL/TLS、机器人管理、客户端保护等。
这些服务都设计为从 Cloudflare 网络中的任意数据中心运行,从而使它们能够在靠近来源的地方阻止攻击。它们与 Cloudflare 的网站性能服务集成,因此,添加新的安全保护,永远不会减慢流量速度。此外,所有这些服务都适用于各种网站基础设施,并且通常可以在几分钟内启动。
进一步了解应用程序安全解决方案,或注册 Cloudflare 计划。