WAF 对软件即服务(SaaS)应用的防护细节

 

  • 应用层防护
    • SQL 注入防护
      • SQL 注入是一种常见的攻击手段,攻击者通过在用户输入字段(如登录表单、搜索框等)中注入恶意 SQL 语句,试图获取、篡改或删除数据库中的数据。WAF 会对输入的内容进行检查,通过分析 SQL 语法规则和语义,识别并阻止包含恶意 SQL 片段的请求。例如,对于像 “’ or 1=1 –” 这样的典型 SQL 注入语句,WAF 能够检测到其中的非法逻辑,并拒绝包含此类语句的请求访问 SaaS 应用。
      • 它使用多种技术,如语法分析和语义理解。语法分析可以检查请求中的 SQL 关键字和结构是否合法,语义理解则可以判断 SQL 语句的意图是否符合正常业务逻辑。
    • 跨站脚本攻击(XSS)防护
      • XSS 攻击分为存储型、反射型和 DOM – based 型。对于存储型 XSS,攻击者将恶意脚本存储在目标服务器(如在 SaaS 应用的数据库中存储用户评论,其中包含恶意脚本),当其他用户访问包含该恶意脚本的页面时,浏览器就会执行该脚本。WAF 可以扫描用户输入和输出的内容,对可能包含脚本的内容进行过滤和转义。
      • 例如,将 “<script>alert(‘XSS’)</script>” 这样的脚本标签进行转义,使其在浏览器中以文本形式显示,而不是被执行。对于反射型 XSS,当用户通过恶意链接(如带有恶意脚本参数的 URL)访问 SaaS 应用时,WAF 能够检测并阻止包含恶意脚本参数的请求,从而保护用户免受攻击。
    • 文件包含漏洞防护
      • 在 SaaS 应用中,如果存在文件包含漏洞,攻击者可能会通过构造恶意请求,让应用包含并执行非预期的文件,从而获取敏感信息或者执行恶意代码。WAF 会对请求中的文件包含参数进行检查,确保其符合应用的预期访问规则。
      • 例如,对于 PHP 应用中常见的 “include” 和 “require” 函数相关的参数进行严格审查,防止攻击者通过修改参数来包含恶意文件。它会验证文件路径是否在应用允许的范围内,以及文件类型是否符合预期。
    • 防止恶意文件上传
      • SaaS 应用通常允许用户上传文件,如文档管理类 SaaS 应用。WAF 会对上传文件的类型、大小和内容进行检查。对于文件类型,只允许符合应用功能需求的文件类型上传,如文档管理应用可能只允许.docx、.pdf 等文件类型。
      • 对于文件大小,会限制上传文件的大小以防止服务器资源被耗尽。在内容方面,会扫描上传文件是否包含恶意代码,如病毒、木马或恶意脚本。通过检查文件的头部信息、文件扩展名和文件内容特征等多种方式来识别恶意文件。
  • 协议和数据完整性防护
    • HTTP 协议验证
      • WAF 会对 HTTP 请求和响应进行严格的协议验证。确保请求遵循 HTTP 标准,如检查请求方法(GET、POST 等)是否被正确使用。例如,阻止不符合应用设计逻辑的请求方法,如在一个只应该使用 POST 方法进行数据提交的表单中,拒绝 GET 方法的请求。
      • 同时,会检查 HTTP 头部信息是否完整和合法。例如,验证 “Content – Type” 头部是否与上传或提交的数据类型相符,防止攻击者通过篡改头部信息来绕过应用的安全机制。
    • 数据加密和完整性检查
      • 在数据传输过程中,WAF 可以协助确保数据的完整性。对于一些敏感的 SaaS 应用,如金融或医疗数据管理应用,WAF 可以检查数据是否在传输过程中被篡改。
      • 例如,通过验证数据的哈希值或者数字签名来确保数据的完整性。同时,它可以配合应用的加密机制,确保数据在传输过程中是加密的,如检查 SSL/TLS 证书是否有效,推动安全的加密通信协议的使用,防止数据被中间人窃取或篡改。
  • 访问控制和身份验证强化
    • 多因素身份验证支持
      • WAF 可以与 SaaS 应用的身份验证系统集成,支持多因素身份验证(MFA)。例如,在用户登录时,除了常规的用户名和密码,还可以要求用户提供一次性密码(通过短信、令牌等方式)或者生物识别信息(如指纹、面部识别等)。
      • 这样可以大大增强身份验证的安全性,即使用户名和密码被泄露,攻击者也难以通过单一凭证获取访问权限。WAF 可以在身份验证过程中检查各个身份验证因素是否有效,并根据应用的安全策略允许或拒绝访问。
    • 基于角色的访问控制(RBAC)加强
      • SaaS 应用通常有不同的用户角色,如管理员、普通用户、访客等。WAF 可以加强基于角色的访问控制,确保每个角色只能访问其权限范围内的数据和功能。
      • 例如,对于一个项目管理类 SaaS 应用,WAF 会检查管理员用户的请求是否符合管理员权限范围,如是否在尝试访问只有普通用户才能访问的任务详情页面。如果请求不符合角色权限,WAF 会拒绝该请求,防止越权访问。
  • 性能和可用性防护
    • 负载均衡和流量优化
      • WAF 可以与负载均衡器协同工作,确保 SaaS 应用在高流量情况下的性能和可用性。它可以根据服务器的负载情况和性能指标,将流量合理分配到不同的服务器实例。
      • 例如,当某个服务器的 CPU 使用率过高或者内存占用已满时,WAF 会将新的请求引导到负载较轻的服务器上,避免单点服务器过载导致应用崩溃。同时,它可以优化流量,如缓存经常访问的静态资源(如图像、样式表等),减少服务器的响应时间,提高用户体验。
    • 故障转移和容错保护
      • 在服务器出现故障时,WAF 可以帮助实现故障转移机制。例如,当主服务器出现故障无法响应请求时,WAF 可以快速将请求切换到备用服务器上,确保 SaaS 应用的持续可用性。
      • 它还可以检测服务器的健康状况,如通过定期发送心跳包来检查服务器是否正常运行。如果发现服务器出现异常,及时采取措施,如将其从服务池中移除并进行修复,从而增强整个 SaaS 应用的容错能力。