网站安全指南:10 步检查清单

请遵循这份网站安全检查清单,其中列出了组织应采取的 10 项关键措施,用于验证和授权用户、加密 Web 流量、减轻第三方风险、阻止 DDoS 攻击和机器人等。

学习目标

阅读本文后,您将能够:

  • Identify different ways to secure websites
  • 了解验证和授权 Web 用户的主要方法
  • Explain some of the most common website attacks

复制文章链接

The importance of website security

对于依赖 Web 应用作为收入、效率和客户洞察来源的所有组织而言,网站安全都至关重要。如果组织的网站接收和存储敏感数据,或提供关键基础设施和服务,则特别容易受到不同复杂性、规模和来源的攻击。

鉴于互联网威胁形势和监管环境不断变化,Web 应用安全作为一门学科,其范围十分广泛且不断发展。例如,本检查清单的重点是如何保护网站,但保护 API 和启用 AI 的应用(网站越来越多地采用这些应用)对大型企业来说越来越重要。

然而,所有规模和所有行业的面向公众的网站都可以从围绕技术控制、访问控制和用户管理的“基础”措施中受益。为此,本网站安全指南涵盖了以下 10 条建议:

1) Secure accounts with strong authentication

建议:使用双因素身份验证而非仅密码身份验证

就像航空公司在允许乘客登机之前必须使用有效身份证件验证乘客身份一样,组织也必须验证谁在登录为其 Web 应用提供支持的数字系统。

(通过确保个人是他们所声称的身份)防止未经授权访问的过程称为身份验证。身份验证通过根据数字记录检查特定特征或“因素”来验证身份。

The following are the most common authentication factors:

  • 某人知道的内容:这会检查只有真实身份应当拥有的秘密知识,例如用户名/密码组合、安全问题或 PIN 码。
  • 某人拥有的内容:这会检查此人是否拥有其被发放或已知拥有的物品(类似于需要实体钥匙才能打开房子的前门)。在数字系统中,身份验证会检查软令牌(例如移动设备生成的代码)或硬令牌(例如必须通过蓝牙或 USB 端口插入设备的小型实体物品),然后才允许访问。
  • 某人的身份:通过生物特征评估一个人固有的特质;例如,通过验证指纹或面部识别来验证身份。

第一种类型的问题是密码通常可能被攻击者猜到或窃取。由于网络钓鱼在途攻击暴力破解密码尝试和密码重用盛行,攻击者收集被盗的登录凭证变得更简单。

因此,组织应该为其帐户实施双因素身份验证 (2FA)。双因素身份验证(至少)要求两种不同的身份验证形式,这比只要求一种身份验证形式更有效。虽然攻击者并非无法破解双因素身份验证,但与仅采用密码的身份验证相比,破坏双因素身份验证的难度和成本要高得多。

2) Enforce role-based permissions

建议:仅对已授权用户设置基于角色的权限

然而,仅仅因为某人的身份经过验证,并不意味着他们应该可以控制一切。授权有助于确定一个经过身份验证的用户可以看到什么和可以做什么(即他们的权限)。

Authorized users

例如,“超级管理员”可能是唯一有权编辑所有设置和页面的人;而“只读”用户可能只能查看网站的分析内容,而不能查看其他任何内容。

随着组织的发展,Web 团队的角色数量也在增加:可能有前端开发人员、后端开发人员、安全分析师、报告分析师、Web 设计师、内容编辑等等。因此,定期审计和更新基于角色的权限非常重要。

3) 使用 SSL/TLS 加密 Web 流量

建议:通过自动管理 SSL/TLS 建立连接

任何收集和传输敏感数据(如登录凭据、联系方式、信用卡信息、健康信息等)的网站都需要 HTTPS。HTTPS 可以防止网站以网络上任何窥探者都能轻易看到的方式广播其信息。

SSL 证书安全浏览

HTTPS 通过称为 Transport Layer Security (TLS) 的协议运作,该协议的早期版本称为 安全套接字层 (SSL)

自动 SSL/TLS

寻找提供自动管理 SSL/TLS 证书的服务,这些证书能让网站和应用建立安全连接。

TLS 是保障隐私和数据安全的通讯支柱。它使用户能够私密地浏览互联网,不会暴露其信用卡信息或其他个人敏感信息。

使用 SSL/TLS,客户端(例如浏览器)可以验证所连接服务器的真实性和完整性,并使用加密来交换信息。这反过来有助于防止在途攻击并满足某些数据合规性要求。

还有其他好处:TLS 有助于最大程度地减少延迟,加快网页加载时间,而且搜索引擎往往会降低未使用加密的网站的优先级。

请记住,每个 SSL/TLS 证书都有固定的到期日期,并且这些证书的有效期会随着时间而缩短。如果证书过期,客户端(例如访问者的浏览器)将认为无法建立安全连接,从而导致警告或错误。错过认证更新也会降低网站的搜索引擎排名,但某些服务可以处理自动更新。

4) 通过 HTTPS 或 TLS 加密 DNS 流量

建议:使用 DNS 加密确保用户浏览的安全和私密

从技术上讲,网站内容并不存在于像 www.example.com 这样的 URL 中,而是存在于像 192.0.2.1 这样的唯一 IP 地址中。将 URL 转换为机器友好的 IP 地址的过程称为域名系统 (DNS) 查找;DNS 记录是互联网关于哪个 IP 地址与特定域关联的说明。

然而,默认情况下,DNS 查询和响应以明文 (UDP) 发送,这意味着网络、ISP 和其他可能监控传输的人可以读取它们。这可能对安全和隐私产生巨大影响。如果 DNS 查询不是私密的,那么政府审查互联网和攻击者跟踪用户的在线行为就会变得更加容易。

使用免费的 DNS 解析器通过以下选项之一加密 DNS 流量

  • DNS over TLS (DoT) 是加密 DNS 查询以确保其安全和私密的一项标准。它使网络管理员能够监视和阻止 DNS 查询,这对于识别和阻止恶意流量非常重要。
  • DNS over HTTPS (DoH) 是 DoT 的替代标准。使用 DoH 时,DNS 查询和响应会得到加密,但它们是通过 HTTP或 HTTP/2 协议发送,而不是直接通过 UDP 发送。这削弱了网络管理员的可见性,但增强了用户的隐私性。

5) 集成 DNS 安全

建议:通过专门构建的 DNS 安全性功能解决某些 DNS 系统限制

DNS 系统本身的设计并未充分考虑安全性,且包含一些设计限制。例如,它无法自动保证 DNS 记录的来源,并且它会毫无疑问地接受提供给它的任何地址。因此,DNS 服务器可能容易受到域欺骗DoS(拒绝服务)攻击等。

基于 DNS 的 DDoS 攻击

DNS安全 (DNSSEC) 有助于解决 DNS 的一些设计缺陷。例如,DNSSEC 通过向现有 DNS 记录添加加密签名来确保域名系统的安全性。通过检查其相关签名,组织可以验证所请求的 DNS 记录是来自其权威名称服务器,而不是虚假记录。

一些 DNS 解析器已经集成了 DNSSEC。此外,请寻找能够提供内容过滤(可以阻止已知分发恶意软件垃圾邮件的网站)和僵尸网络防护(阻止与已知僵尸网络的通信)等功能的 DNS 解析器。这些安全的 DNS 解析器中有许多都可以免费使用,并且可以通过更改单个路由器设置来激活。

6) 隐藏源 IP 地址

Recommendation: Make it more difficult for attackers to find your server

如果攻击者找到组织服务器的源 IP(即实际托管 Web 应用资源的位置),他们可能能够直接向服务器发送流量或攻击。

根据现有的 DNS 解析器,以下步骤也可以帮助隐藏源 IP

  • 不要在与受保护的 Web 资源相同的服务器上托管邮件服务,因为发送到不存在的地址的电子邮件会被退回给攻击者,从而泄露邮件服务器的 IP。
  • Ensure that the web server does not connect to arbitrary addresses provided by users.
  • 由于 DNS 记录属于公共域,因此请轮换源 IP。

7) 防范 DDoS 攻击

建议:实施始终开启的 DDoS 缓解和速率限制

在最严重的情况下,分布式拒绝服务 (DDoS) 攻击可能会导致网站或整个网络长时间离线。

DDoS 攻击是指大量计算机或设备(通常由单个攻击者控制)试图同时访问某个网站或在线服务。这些恶意攻击的目的是使资源离线,使其不可用。

应用层 DDoS 攻击仍然是针对 Web 应用的最常见攻击类型,并且在规模和频率方面变得越来越复杂。

应用层 DDoS 攻击

寻找以下基本的 DDoS 预防工具:

  • 始终开启的 DDoS 缓解:寻找具有以下功能的可扩展、“始终开启”的 DDoS 防御:
    • 尽可能在靠近攻击源的地方自动化解恶意流量(从而减少最终用户延迟和组织的停机时间)
    • 不计量、无限制的 DDoS 攻击缓解(可避免攻击流量激增带来的额外费用)
    • 针对所有 DDoS 攻击类型(包括应用层和网络层攻击)的集中式自主防护
  • 速率限制:速率限制是一种限制网络流量的策略。它本质上是对某人在特定时间范围内重复操作的次数设置上限——例如,当僵尸网络试图对 Web 应用进行 DDoS 攻击时。这就好比警察将超速的司机拦下。有两种速率限制:
    • 基于 IP 的标准速率限制,可保护未经身份验证的端点,限制来自特定 IP 地址的请求数量,并处理屡次违规者的滥用行为
    • 高级速率限制,可同时保护 API 免受滥用,缓解来自经过身份验证的 API 会话的容量耗尽攻击,并提供更多自定义功能

    全面的 DDoS 威胁防御还取决于多种方法,这些方法可能因组织规模、网络架构和其他因素而异。了解有关如何防范 DDoS 攻击的更多信息。

    8) Manage third-party scripts and cookie usage

    建议:寻找专门应对客户端侧风险的工具

    在 Web 开发中,“客户端侧”是指 Web 应用程序中在客户端(最终用户设备)上显示或发生的所有内容。这包括网站用户看到的内容,例如文本、图像和 UI 的其余部分,以及应用程序在用户浏览器中执行的任何操作。

    大多数客户端侧事件需要将 JavaScript 和其他第三方代码加载到 Web 访问者的浏览器中。但是,攻击者会试图破坏这些依赖关系(例如通过 Magecart 式攻击)。这使得访问者容易受到恶意软件、信用卡数据盗窃、加密挖掘等风险的影响。

    客户端侧脚本监控器

    Cookie 也会带来客户端侧风险。例如,攻击者可以利用 Cookie 让网站访问者遭受 Cookie 篡改,最终导致帐户接管或支付欺诈。然而,网站管理员、开发人员或合规团队成员通常甚至不知道他们的网站使用了哪些 Cookie。

    要降低来自第三方脚本和 Cookie 的风险,请实施这样一种服务:

    • 自动发现和管理第三方脚本风险;以及
    • Provides full visibility into first-party cookies being used by websites.
  • 9) 阻止机器人和其他无效流量

    Recommendation: Proactively identify and mitigate malicious bot traffic

    有些机器人是“善意”的,可以执行所需的服务,例如授权的搜索引擎爬虫。但是,也有一些机器人如果不加以控制,会造成破坏和危害。

    在线销售实体商品或服务的组织特别容易受到机器人流量的攻击。机器人流量过多会导致:

    • 性能影响:过多的机器人流量会给 Web 服务器带来沉重的负担,减慢或拒绝对合法用户的服务
    • 运营中断:机器人可以抓取或下载网站内容,快速传播垃圾内容,或囤积企业的在线库存
    • 数据盗窃和帐户接管:机器人可以窃取信用卡数据、登录凭据并接管帐户

    寻找具备以下功能的机器人管理服务:

    • 通过对巨大流量应用行为分析、机器学习和指纹识别技术,大规模准确识别机器人
    • 允许善意机器人(例如属于搜索引擎的机器人)继续到达网站,同时将恶意流量拒之门外
    • 与其他 Web 应用安全和性能服务轻松集成
    • 10) 跟踪并分析 Web 流量和安全指标

      Recommendation: Improve web security with data-driven decisions

      包含可操作数据的分析和日志对于持续提高 Web 性能和安全性非常重要。

      例如,日志和应用安全仪表板可以提供以下洞察:

      • Potential threats in HTTP traffic, so that errors affecting end users can be identified and debugged
      • 攻击变体及其恶意有效负载(例如,注入攻击与远程代码执行攻击),以便可以相应地“调整”和强化系统
      • DNS 查询流量以及查询随时间变化的地理分布,以发现异常流量

      了解 Web 流量分析是进行持续风险评估的关键部分。这样,组织可以做出更明智的决策,了解如何改善应用性能,以及在何处增加安全投资。

      Cloudflare 如何帮助保护网站安全?

      Cloudflare 的全球连通云简化了 Web 应用的安全性和交付,提供一整套集成服务来连接和保护组织的 Web 应用和 API。

      这些服务包括 DDoS 防护、行业领先的 Web 应用防火墙 (WAF)机器人管理客户端安全API 网关、免费公共 DNS 解析器、免费 SSL/TLS 证书、全面的 Web 性能和安全分析等等。

      如需了解适合您网站需求的服务,请访问 www.cloudflare.com/zh-cn/plans/