动态分析
学习功能是一个模式过滤器,用于观察和学习后端服务器上的活动。根据观察结果,学习引擎会为每次安全检查生成多达 2000 条规则或例外(放宽)。为了自动执行该过程并自动部署放宽规则,NetScaler 设备使用动态分析。
通过动态分析,设备记录预定义阈值的学习数据,并向用户发送 SNMP 警报。如果用户没有在宽限期内跳过数据,则设备会自动将其作为放宽规则进行部署。此前,用户必须手动部署放松规则。目前,动态分析仅适用于以下安全检查:
- HTML SQL 注入
- HTML 跨站点脚本
- 字段格式
- 起始 URL
- 内容类型
- 字段格式
- CSRF 表单标记
- Cookie 一致性
- 拒绝 URL
- 缓冲区溢出
- 信用卡
- 内容类型保护
- JSON Cmd 注入保护
例如,考虑启用了动态分析的 HTML SQL 注入安全检查。您可以将 Learning 用于 IP 列表(称为“受信任的学习客户端”列表),学习功能必须从中生成推荐。要配置受信任的客户端列表,请参阅学习受信任的客户端主题。如果传入的流量存在违规行为,则会将其记录为已学习的数据。 如果学习的数据记录在学习引擎中,则设备会向用户发送 SNMP 警报。如果用户无法识别误报并且在宽限期内没有跳过学习的数据,设备会自动将其部署为放松规则。
注意: 配置动态配置文件后,必须定期查看设备配置以便自动部署放宽规则并将其保存在设备上。
使用 NetScaler 命令界面配置动态性能分析
动态分析可用于“开始 URL”、“HTML 跨站点脚本编写”、“字段格式”或 HTML SQL 注入安全检查。要配置动态性能分析,必须完成以下步骤。
- 配置动态学习
- 配置自动部署宽限期
配置动态学习
作为第一步,您必须在设备上配置动态学习。在命令提示符下,键入:
set appfw profile <profile_name> dynamicLearning <security_checks>
示例
set appfw profile test1 dynamicLearning SQLInjection CrossSiteScripting fieldFormat startURL
配置自动部署宽限期
在特定安全检查中启用该功能后,必须为自动部署配置宽限期。
set appfw learningsettings <profile name> -crossSiteScriptingAutoDeployGracePeriod <seconds>
set appfw learningsettings <profile name> fieldFormatAutoDeploymentGracePeriod <seconds>
set appfw learningsettings <profile name> SQLInjectionAutoDeploymentGracePeriod <seconds>
set appfw learningsettings <profile name> –startURLAutoDeployGracePeriod <seconds>
示例
set appfw learningsettings test1 –crossSiteScriptingAutoDeployGracePeriod 30
set appfw learningsettings test1 –startURLAutoDeployGracePeriod 7
set appfw learningsettings test1 –fieldFormatAutoDeploymentGracePeriod 10
set appfw learning settings test1 –SQLInjectionAutoDeploymentGracePeriod 12
注意:
在这里,自动部署宽限期以分钟为单位。
使用 NetScaler GUI 配置动态分析
- 导航到 安全 > NetScaler Web App Firewall > 配置文件。
- 在详细信息窗格中,选择配置文件,然后单击 编辑。
- 在 Citrix Web 应用程序配置文件 页面中,单击 高级设置 下的 动态性能分析。
- 在“动 态分析”部分中,选择安全检查,然后单击“编辑”。
-
在“动 态分析和学习设置”页面中,设置安全检查的宽限期。
- 单击 确定 并 完成 。
导出和导入放宽规则
启用动态分析后,学习的数据将作为放宽规则自动部署。除此之外,设备还可以导出基于动态分析的放松规则和常规放松规则。您可以从暂存环境中导出规则并将其导入到生产环境中。
注意:
将规则导入到生产环境时,必须确保流程是附加性的,且不会覆盖现有配置。
如何导出和导入放松规则
要导出和导入放宽规则,必须完成以下步骤:
- 您必须首先导出基于动态分析的数据。为此,导出选项可用于 WAF 配置文件中的放宽规则。选择此选项时,将导出动态配置放宽规则和常规放宽规则。您可以使用导出选项将配置作为压缩包下载到设备上。
- 从暂存环境中导出数据后,必须将其导入另一台 NetScaler 设备。为此,您必须使用 WAF 配置文件的放宽规则中提供的导入选项。选择此选项时,设备将导入捆绑的指定放宽规则,并将其还原到所选装置的 WAF 配置文件中。
注意:
如果要在 WAF 配置文件中导入放宽规则,则有两种类型的操作: 增加 — 此操作可确保导入是累加的,因此不会覆盖任何现有配置。 覆盖 — 此操作使用压缩导出包中存在的配置覆盖现有配置。”
使用 CLI 导入存档的放松规则文件
要导入放松规则,必须将存档导入 NetScaler 设备,然后运行还原命令提取配置。以下 CLI 命令集可用于导出、导入和管理配置。
要从特定位置导入存档文件并恢复,请在命令提示符处键入:
import appfw archive <src> <name> [-comment <string>]
其中,
“src”:表示形式中 tar 归档文件的来源,<protocol>://<host>[:<port>][/<path>]
“name”:表示归档文件的名称。
“评论”:与此档案相关的评论。
restore appfw profile <archivename> [-relaxationRules] [-importProfileName <string>] [-matchUrlString <string>] [-replaceUrlString <string>] [-overwrite] [-augment]
其中,
archivename
:表示 tar 存档的来源。这是一个强制性的参数。
“relaxationRules”:可以选择导入所有 appfw 放宽规则。
importProfileName
:表示为在恢复操作期间关联放宽规则而创建或更新的配置文件名称。
“matchUrlString”:表示要在已存档的放松规则中匹配的操作 URL 字符串。
replaceUrlString
:表示要在恢复放宽规则时替换实际操作 URL 的字符串。
overwrite
:用于清除现有放宽规则并在导入期间替换的现有规则操作。
augment
:在导入过程中增强放宽规则的现有规则操作。
示例:
import appfw archive local: dutA_test_pr.tgz demo
restore appfw profile dutA_test_pr
使用 CLI 将存档的文件导出到选定的装置
如果使用 CLI 导出 appfw 放宽规则,则必须存档配置然后将其导出。 要存档并导出存档文件,请在命令提示符处键入:
archive appfw profile <name> <archivename> [-comment <string>]
其中,
archive name
:表示 tar 存档的来源。这是一个强制性的参数。
name
:表示包含要导出的放宽规则的 appfw 配置文件名称
export appfw archive <name> <target>
在哪里, 姓名称。tar 存档的名称。 这是一个强制性的参数。 最大长度:31 个 目标。要导出的文件的路径。这是一个强制性的参数。 最大长度:2047
示例:
> archive appfw profile test_pr archived_test_pr
> export appfw archive archived_test_pr local:dutA_test_pr
使用 NetScaler GUI 导出放松规则
按照下面给出的步骤导出放宽规则:
- 导航到“安全”>“NetScaler Web App Firewall”。
- 在详细信息页面中,单击 配置摘要部分下的 NetScaler Web App Firewall 配置文件 链接。
- 在 NetScaler Web App Firewall 配置文件 页面中,单击“高级设置”部分下的 放宽规则 链接。
-
在“放宽规则”部分中,单击“导出所有放宽规则”。该操作适用于所有安全检查以及在该配置文件上启用了动态学习的安全检查。
使用 NetScaler GUI 导入放松规则
完成导入放宽规则的步骤:
- 导航到“安全”>“NetScaler Web App Firewall”。
- 在详细信息页面中,单击 配置摘要部分下的 NetScaler Web App Firewall 配置文件 链接。
- 在 NetScaler Web App Firewall 配置文件 页面中,单击“高级设置”部分下的 放宽规则 链接。
- 在“放宽规则”部分中,单击“导入所有放宽规则”。
- 在 配置 NetScaler Web App Firewall 配置文件 页面中,设置以下参数:
- 本地文件。包含放宽规则的压缩存档文件的名称。
- 配置文件名称。放宽规则绑定到的配置文件的名称。
- 匹配的 URL 字符串。URL 中匹配的部分。
- 替换 URL 字符串。替换 URL 字符串的 URL 部分。
- 现有规则操作。选择规则是否必须覆盖现有规则或扩充现有规则。
- 单击确定。