发送自定义指纹配对扫描引擎
如果您开发自定义指纹,您可以让安全控制台将它们自动分发到当前运行扫描时正在使用的任何配对扫描引擎。要做到这一点,只需将指纹文件复制到安全控制台主机上的[installation_directory]/plugins/fp/custom/目录。
您不必之后重新启动安全控制台。位于[安装_directory] / nsc / logs /目录中的nsc.log文件将显示一条消息,指示新添加的fingperprints的位置和编号。
确保指纹的格式正确
自定义XML指纹文件必须满足一定的格式标准才能正常工作,示例如下:
1<?XML版本=“1.0”?>2<指纹匹配= " ssh.banner " >3.<指纹图案=“^ romsshell _([d \。] +)$”>4.<描述>快板RomSShell SSH > < /描述5.<例子service.version = " 4.62 " > RomSShell_4.62 < / >示例6.< param pos = " 0 " name = "服务。供应商“价值= "快板" / >7.< param pos = " 0 " name = "服务。产品“价值= " RomSShell " / >8.9.< /指纹>10指纹>
第一行包含XML版本声明。
第一个元素是一个指纹块与匹配属性,指示指纹文件旨在匹配的数据。
这匹配属性通常以形式为协议.Field.。
这指纹元素包含一个或多个指纹元素。
每个指纹都包含一个模式属性与正则表达式以匹配数据。
可选标志属性控制如何解释正则表达式。看看FLAG_MAP的Recog文档为更多的信息。
每个指纹都包含一个描述元素,该元素使用人类可读的字符串描述指纹。
至少有一个例子元素,但最好包含多个示例元素。这些元素在rspec中的测试覆盖率中使用,它验证所提供的数据是否与指定的正则表达式匹配。此外,如果指纹正在使用参数元素来从数据中提取字段值,您可以将这些预期的提取添加为示例元素的属性。在前面的例子中,字符串
1<例子service.version = " 4.62 " > RomSShell_4.62 < / >示例
测试RomSShell_4.62匹配提供的正则表达式和服务的值。版本是4.62。
每一个参数元素包含一个pos属性,该属性指示应该从模式中提取什么捕获字段,或0表示静态字符串。
这的名字属性是将在成功匹配中报告的密钥,并且该值将是静态字符串pos值为0或丢失并从捕获的字段中获取。
创建指纹的最佳实践
为每个产品创建一个单一的指纹,只要图案保持清晰和可读。如果这是不可能的,在逻辑上将模式分离成额外的指纹。
创建允许灵活的版本号匹配的正则表达式。这确保了匹配产品的更大概率。例如,一个产品的所有已知的公开发布要么是主要的。Minor或major.minor.build格式版本号。如果指纹严格匹配这个版本号格式,它将无法匹配只报告主要版本号格式的产品的修改版本。
通过命令行测试自定义指纹
您可以通过输入execute命令行来测试指纹bin / recog_verify针对指纹文件:
1bin / recog_verify xml / ssh_banners.xml美元
您可以类似地测试匹配命令行:
1$ echo'openssh_6.6p1 ubuntu-2ubuntu1'|bin / recog_match xml / ssh_banners.xml -2MATCH: {"service.version"=>"6.6p1", "openssh.comment"=>"Ubuntu-2ubuntu1", "service.vendor"=