如果部署了Web服务并向Internet提供服务,建议使用WAF(Web Application Firewall,Web应用防火墙)结合RASP(Runtime Application Self-Protection,运行时应用自防护),防御网页挂马、WebShell、数据库攻击、跨站攻击、远程命令执行、文件上传漏洞利用等常见攻击。
安全风险
任何面向互联网提供服务的Web应用(如网站、API接口),都不可避免地会暴露在攻击之下。攻击者利用Web应用程序中普遍存在的漏洞(如参数未严格校验、动态代码执行),可以发起多种攻击:
SQL注入 (SQL Injection): 攻击者通过在输入字段中插入恶意的SQL代码,骗取服务器执行非预期的数据库操作,从而窃取、篡改或删除您的核心数据。
跨站脚本攻击 (XSS): 攻击者将恶意脚本注入到网页中,当其他用户访问该网页时,脚本会在其浏览器中执行,可能导致会话劫持、个人信息泄露。
WebShell上传: 攻击者利用文件上传漏洞,将一个恶意的服务器端脚本(WebShell)上传至您的服务器,从而获得对服务器的远程控制权。
其他常见攻击: 还包括命令注入、路径遍历、文件包含、跨站请求伪造(CSRF)等,这些都可能对您的业务造成毁灭性打击。
Web应用防火墙是一种专门设计用来保护Web应用程序免受各种安全威胁的防护系统,能够深入检查HTTP/HTTPS请求和响应的内容,识别并阻止针对Web应用程序的具体攻击。使用Web应用防火墙能有效降低Web攻击。更进一步可以叠加部署RASP,RASP是嵌入到应用程序运行环境中,通过Hook关键函数来监视应用程序的行为、获取丰富的上下文信息从而更准确发现和阻断攻击。相比WAF,RASP对0day漏洞、处理加密流量、内存马等威胁更有优势。
最佳实践
第一道防线 - Web应用防火墙 (WAF)
WAF工作在您的Web应用之前,是流量进入的第一道关卡。它像一名专业的“网络门卫”,负责检查所有传入的HTTP/HTTPS请求。通过内置的、持续更新的规则库,WAF能够识别并拦截绝大多数已知的攻击流量,例如检测URL中是否包含恶意的SQL注入代码。这是一种在网络层实现的、非侵入式的防护,能有效过滤掉大部分恶意请求,极大减轻后端服务器的压力。
开通和购买:根据自己网站规模和访问量购买不同版本WAF(高级版、企业版、旗舰版)。更多信息,请参见套餐和版本说明。
接入防护:您的Web站点需要接入WAF才能受到保护,WAF支持的接入方式(以WAF3.0为例)如下:
接入方式
原理
适用场景
将Web站点的DNS域名解析记录修改为WAF提供的CNAME地
址,使所有公网访问流量先经过WAF集群。
支持云上(阿里云/非阿里云)或云下IDC的服务
器的防护。例如,通过CNAME接入为网站开启
支持ALB、CLB、NLB、ECS、APIG、MSE、FC、SAE快速
接入WAF防护。不同的云产品接入方式不同,参见。
阿里云产品接入WAF防护。例如,为ECS实例开
在用户自建的统一接入层网关(如Nginx、APISIX)部署WAF SDK插件。复制业务流量至旁路部署的WAF防护集群进行检测,不参与流量转发。
混合云,web服务器线下部署。
第二道防线 - 运行时应用自防护 (RASP)
对于经过加密的流量、利用未知漏洞的0day攻击,或绕过网络检测的复杂攻击,WAF可能难以察觉。此时,就需要更深入的第二道防线——RASP。
RASP以探针或模块的形式直接嵌入到您的应用程序运行环境中(例如Java的JVM)。它通过Hook关键函数来监控应用内部的实际行为。例如,当一个请求即将触发数据库查询时,RASP能直接分析将要执行的SQL语句,判断其是否具有恶意行为,而不是像WAF那样只能从网络流量中猜测。这种“身处内部”的视角,使其在防御0day漏洞、内存马等新型威胁时具有天然优势,是WAF的完美补充。更多信息,请参见接入应用防护。