签名自动更新
Web App Firewall中的签名自动更新功能允许用户获取最新的签名,以保护 Web 应用程序免受新漏洞的侵害。自动更新功能可提供更好的保护,而无需持续的手动干预即可获得最新更新。
签名每小时自动更新一次,无需定期检查最新更新的可用性。启用签名自动更新后,NetScaler 设备将连接到托管签名的服务器以检查是否有更新版本可用。
自定义位置
最新的应用程序防火墙签名托管在亚马逊上,该签名被配置为检查最新更新的默认签名 URL。
但是,用户可以选择将这些签名映射文件下载到其内部服务器。然后,用户可以配置不同的签名 URL 路径,从本地服务器下载签名映射文件。为了使自动更新功能起作用,您可能需要配置 DNS 服务器以访问外部站点。
更新签名
使用 appfw 默认签名对象创建的所有用户定义的签名对象的版本都大于零。如果启用签名自动更新,则所有签名都将自动更新。
如果用户导入了采用外部格式(如 Cenzic 或 Qualys)的签名,则会导入签名并使用版本为零。同样,如果用户使用空白模板创建了签名对象,则该对象将作为零版本签名创建。这些签名不会自动更新,因为用户可能对管理未使用的默认签名的开销不感兴趣。
但是,Web App Firewall还允许用户灵活地手动选择这些签名并更新它们以将默认签名规则添加到现有规则中。手动更新签名后,版本会更改,然后签名也将与其他签名一起自动更新。
配置签名自动更新
要使用 CLI 配置签名自动更新功能:
在命令提示符下,键入:
set appfw settings SignatureAutoUpdate on
set appfw settings SignatureUrl https://s3.amazonaws.com/NSAppFwSignatures/SignaturesMapping.xml
<!--NeedCopy-->
要使用 GUI 配置签名自动更新:
- 导航到安全 > NetScaler Web App Firewall > 签名。
- 从操作中选择 自动更新设置。
- 启用 签名自动更新 选项。
- 如有必要,可以为签名更新 URL 指定自定义路径。单击“重置”以重置为默认值
s3.amazonaws.com server
。 - 单击“确定”。
手动更新签名
要手动更新零版本签名或任何其他用户定义的签名,必须首先获取默认签名的最新更新,然后使用此更新来更新目标用户定义的签名。
从 CLI 运行以下命令以更新签名文件:
update appfw signatures "*Default Signatures"
update appfw signatures cenzic –mergedefault
<!--NeedCopy-->
注意:
Default Signatures
区分大小写。前面命令中的 Cenzic 是更新的签名文件的名称。
导入没有互联网访问的默认签
建议将代理服务器配置为指向亚马逊 (AWS) 服务器以获取最新更新。但是,如果 NetScaler 设备没有与外部站点的互联网连接,则用户可以将更新的签名文件存储在本地服务器上。然后,设备可以从本地服务器下载签名。在这种情况下,用户必须经常检查 亚马逊网站 以获取最新更新。您可以根据相应的 sha1 文件下载并验证签名文件,该文件是使用 Citrix 公 钥为防止篡改而创建的。
要将签名文件复制到本地服务器,请完成以下步骤:
- 创建本地目录,例如本地服务器上的
<MySignatures>
。 - 打开 AWS 网站。
- 将
SignaturesMapping.xml
文件复制到<MySignatures>
文件夹中。
如果打开 SignaturesMapping.xml
文件,则可以看到用于签名的所有 xml 文件以及不同受支持版本的相应 sha1 文件。以下屏幕截图中突出显示了其中一对:
- 在
<MySignatures>
文件夹中创建子目录<sigs>
。 - 将
SignaturesMapping.xml
文件的相应<sha1>
标记中列出的*.xml files listed in the <file>
标记和*.xml.sha1
文件的所有对复制到<sigs>
文件夹。以下是复制到<sigs>
文件夹的几个示例文件:
https://s3.amazonaws.com/NSAppFwSignatures/sigs/sig-r10.1b86v3s3.xml
https://s3.amazonaws.com/NSAppFwSignatures/sigs/sig-r10.1b86v3s3.xml.sha1
https://s3.amazonaws.com/NSAppFwSignatures/sigs/sig-r10.1b0v3s2.xml
https://s3.amazonaws.com/NSAppFwSignatures/sigs/sig-r10.1b0v3s2.xml.sha1
注意:
您可以为
<MySignatures>
文件夹指定任何名称,它可以位于任何位置,但子目录<sigs>
必须是复制映射文件的<MySignatures>
文件夹中的子目录。此外,请确保如 SignaturesMapping.xml 所示,子目录名称<sigs>
必须具有准确的名称并且区分大小写。所有签名文件及其相应的 sha1 文件都应复制在此<sigs>
目录下。
将托管 Amazon Web 服务器的内容镜像到本地服务器后,请更改新本地 Web 服务器的路径,将其设置为 SignatureUrl 以进行自动更新。例如,从设备的命令行界面运行以下命令:
set appfw settings SignatureUrl https://myserver.example.net/MySignatures/SignaturesMapping.xml
<!--NeedCopy-->
更新操作可能需要几分钟时间,具体取决于要更新的签名的数量。留出足够的时间来完成更新操作。
如果您面临错误“访问 URL 时出错!“配置时,请按照步骤解决该问题。
- 将 URL
https://myserver.example.net
添加到/netscaler/ns_gui/admin_ui/php/application/controllers/common/utils.php
,以便内容安全策略 (CSP) 安全性不会阻止 URL 访问。请注意,这些设置在升级过程中不会保留。用户必须在升级后再次添加它。
$configuration_view_connect_src = "connect-src 'self' https://app.pendo.io https://s3.amazonaws.comhttps://myserver.example.net;";
<!--NeedCopy-->
- 用户必须配置 web 服务器
https://myserver.example.net
,使其响应https://myserver.example.net/MySignatures/SignaturesMapping.xml
的以下 CORS 标头
Access-Control-Allow-Methods: GET
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 3000
<!--NeedCopy-->
更新签名的指南
更新签名时使用以下准则:
- 当签名更新 URL 具有相同或更新版本的签名对象时,签名将更新。
- 每个签名规则都与规则 ID 和版本号相关联。例如:
<SignatureRule id="803" version="16" …>
- 即使传入签名文件中的签名规则与现有签名文件具有相同的 ID 和版本号,即使它具有不同的模式或日志字符串,也将被忽略。
-
添加了带有新 ID 的签名规则。所有操作和启用标志都是从新文件中使用的。
注意:
您必须定期查看更新的签名,以启用新添加的规则并根据应用程序的要求更改其他操作设置。
- 具有相同 ID 但版本号较新的规则将替换现有版本号。保留现有规则中的所有操作和启用标志。
提示:
当您从 CLI 更新签名时,必须首先更新默认签名。然后,您必须添加更新命令以更新基于默认签名的每个自定义签名文件。如果不首先更新默认签名,则版本不匹配错误会阻止自定义签名文件更新。
自动启用新签名
在版本 13.1 buid 27.x 及更高版本中,您可以选择“自动启用新签名”以允许在更新后自动启用新的 WAF 签名默认规则。
使用 GUI 自动启用新签名
- 导航到安全 > NetScaler Web App Firewall > 签名。
- 选择一个签名,然后单击“编辑”。
-
选择“自动启用新签名”。
使用 CLI 自动启用新签名
在命令提示符下,键入:
import appfw signatures <src> <name> [-xslt <string>] [-comment <string>] [-overwrite] [-merge [-preservedefactions]] [-sha1 <string>] [-VendorType Snort] [-autoEnableNewSignatures ( ON | OFF )]
示例:
import signatures http://www.example.com/ns/signatures.xml my-signature -autoEnableNewSignatures ON