LearningMode
LearningMode 指令在 NGINX Anti XSS & SQL Injection 模块中启用自适应学习阶段,根据流量模式自动生成白名单规则。
NGINX Anti XSS & SQL Injection module
·
httpserverlocationlimit_except
语法LearningMode;
默认值off
上下文http, server, location, limit_except
参数none
说明
LearningMode 指令旨在通过允许 NGINX Anti XSS & SQL Injection (NAXSI) 模块进入自动学习模式来增强该模块的功能。在此模式下,NAXSI 会分析进入的请求,以识别与所保护应用相关的合法流量模式和行为。这包括收集有关允许的输入格式和应用通常接收的典型查询的数据。因此,模块可以根据观测到的行为生成必要的白名单规则,简化管理员的安全管理,而无需手动指定所有可接受的输入。
启用后,LearningMode 有助于实现 NAXSI 中常见的 DROP-by-default 策略,该策略会阻止大多数未请求或可能有害的流量。该指令通过观察并收集合法请求的详细信息并将其汇总为白名单规则来实现这一点。这些规则作为防火墙行为的基础,有助于减少安全告警中的误报。这种自适应方法对流动性强或不断变化的应用特别有利,因为流量模式可能会随时间改变,同时它有助于降低诸如 XSS 和 SQL Injection 等严重漏洞带来的风险。
LearningMode 指令的有效性在很大程度上取决于学习阶段的持续时间以及所分析请求的范围。管理员需要定期监控生成的白名单并根据需要进行调整,以在允许合法用户请求的同时维持对恶意尝试的最佳防护。
配置示例
http {
LearningMode;
server {
location / {
# Other configurations
}
}
}⚠
确保对学习阶段进行监控,以确认合法流量被正确识别并加入白名单。未能审查生成的规则可能导致安全漏洞。
⚠
在生产环境中使用 LearningMode 而没有适当监控,可能会使应用程序暴露于攻击,尤其是当生成的规则过于宽松时。