美文网首页
suricata-update规则管理

suricata-update规则管理

作者: lx_jian | 来源:发表于2019-06-19 10:35 被阅读0次

    虽然可以手动下载和安装规则,但建议使用管理工具。Suricata-Update是更新和管理Suricata规则的官方方式。

    Suricata-update与Suricata4.1及更高版本捆绑在一起,通常与它一起安装。它也可以与旧版本一起使用。在这种情况下,必须单独安装。

    1.安装suricat-update

    Suricata-Update是一个用Python编写的工具,最好与pip安装Python包的工具一起安装。可以使用pip全局安装Suricata-Update供所有用户使用,也可以安装到你指定的目录供用户使用。

    (1.1)全局安装

    pip  install  --upgrade  suricata-update

    (1.2)安装到您自己的主目录

    pip  install  --user  --upgrade  suricata-update

    安装到主目录时, suricata-update程序将安装到$ HOME / .local / bin,因此请确保此目录位于您的路径中:export PATH=$HOME/.local/bin:$PATH

    2.规则管理

    2.1 目录和权限

    为了suricata-update正常工作,需要以下权限:

    目录/etc/suricata:读访问权限

    目录/var/lib/suricata/rules:读/写访问

    目录/var/lib/suricata/update:读/写访问

    为了获得上述权限,简单的方式是使用root用户,或者执行sudo。建议创建一个suricata组并使用该suricata组的设置上述目录权限,然后将用户添加到该suricata 组。

    2.2 更新规则

    (2.2.1)suricata-update

    该命令将执行以下操作:

    a.查找suricata路径上的程序以确定其版本。

    b.查找/etc/suricata/enable.conf,/​​etc/suricata/disable.conf,/​​etc/suricata/drop.conf和/etc/suricata/modify.conf以查找要应用于下载规则的过滤器。这些文件是可选的,不需要存在。

    c.下载适用于您的Suricata版本的Emerging Threats Open规则集,如果找不到则默认为4.0.0。

    d.应用上面加载的启用,禁用,删除和修改过滤器。

    e.写出规则/var/lib/suricata/rules/suricata.rules。

    f.在测试模式下运行Suricata /var/lib/suricata/rules/suricata.rules。

    (2.2.2)suricata-update [OPTIONS]

    -h, --help:

    显示帮助信息

    -D <directory>, --data-dir <directory>: 

     设置备用数据目录。默认值:/var/lib/suricata

    -c <filename>, --config <filename> : 

     suricata-update配置文件的路径。默认值:/etc/suricata/update.yaml

    -q, --quiet:

     安静地跑。仅显示警告和错误消息。

    -v, --verbose:

    提供更详细的输出

    --suricata-conf :

    suricata配置文件的路径。默认值:/etc/suricata/suricata.yaml

    --suricata <path>:

     Suricata程序的路径。如果没有提供, suricata-update将尝试在您的路径上找到Suricata。Suricata程序用于确定Suricata的版本以及提供有关Suricata配置的信息。

    --suricata-version <version>: 

    将Suricata版本设置为特定版本,而不是检查路径上的Suricata版本。

    --user-agent <string>:

    为HTTP请求设置自定义用户代理字符串。

    -o, --output:

    要将规则输出到的目录。默认值:/var/lib/suricata/rules

    --force:

    强制远程规则文件下载(如果它们不是刚刚下载),或者远程校验和与缓存副本匹配。

    --merged=<filename>:

     写一个包含所有规则的文件。这可以作为补充--output或替代使用--output。

    --no-merge:

    不要将规则合并到单个规则文件中。警告:如果2个输入规则文件具有相同名称,则不会尝试解决冲突。

    --yaml-fragment=<filename.yaml>: 

    输出包含规则文件部分的YAML片段将列出所有下载的规则文件以包含在 suricata.yaml中

    --url=<url>:

    从中下载规则的URL。此选项可以多次使用

    --local=<filename or directory>

    要包含的本地规则文件的文件名或目录的路径。如果路径是目录,则将加载以.rules结尾的所有文件。接受通配符但是为了避免shell扩展,必须引用参数.如:--local '/etc/suricata/custom-*.rules'

    --sid-msg-map=<filename>

    输出v1样式的sid-msg.map文件。

    --sid-msg-map-2=<filename>

    输出v2样式的sid-msg.map文件。

    --disable-conf=<disable.conf>

    指定禁用过滤器的配置文件。

    --enable-conf=<enable.conf>

    指定启用规则的配置文件。

    --modify-conf=<modify.conf>

    指定规则修改过滤器的配置文件。

    --drop-conf=<drop.conf>

    指定丢弃过滤器的配置文件。

    --ignore=<pattern>

    要忽略的文件名。这是一个与规则文件的基名匹配的模式。可以多次指定此参数。默认值:* deleted.rules。如:--ignore  dnp3-events.rules  --ignore deleted.rules  --ignore  "modbus*"

    --no-ignore

    禁用-ignore选项。最有用的是禁用默认忽略模式而不添加其他模式。

    --etopen

    下载ET / Open规则集。这是默认操作,不用--url提供任何选项或未配置任何源。除了命令行上提供的任何URL或配置中提供的源之外,还可以使用此选项启用ET / Open规则集

    --dump-sample-configs

    输出示例配置文件为--disable, --enable,--modify和--threshold-in命令。

    --threshold-in=<threshold.conf.in>

    指定threshold.conf输入模板

    --threshold-out=<threshold.conf>

    指定要输出的已处理threshold.conf的名称

    -T <command>, --test-command <command>

    指定自定义测试命令以在重新加载Suricata之前测试规则。这将覆盖默认命令,也可以在配置文件中指定test-command。

    --no-test

    禁用测试命令并继续进行,就像它已经通过一样。

    --reload-command=<command>

    更新规则后运行的命令; 如果未对输出文件进行任何更改,则不会运行。例如:--reload-command='sudo kill -USR2 $(cat /var/run/suricata.pid)'将告诉Suricata重新加载其规则。

    --no-reload

    禁用Suricata规则重新加载。

    -V, --version

    显示suricata-update的版本。

    (2.3) 规则匹配

    可以使用以下方法执行禁用,启用,转换为删除或修改的匹配规则:

    (2.3.1)签名ID匹配

    签名ID只能通过其签名ID进行匹配,例如:1034 。生成器ID还可用于与其他工具兼容,如:1:1034

    (2.3.2)正则表达式匹配

    正则表达式匹配将匹配完整规则上的正则表达式。例:

    re:heartbleed

    re:MS(0[7-9]|10)-\d+

    (2.3.3)组匹配

    组匹配器与加载规则的组匹配。基本上这是没有前导路径或文件扩展名的文件名。例:

    group:emerging-icmp.rules

    group:emerging-dos

    也可以使用类似于Unix shell中使用的通配符的通配符匹配:

    group:*deleted*

    (2.3.4)文件名匹配

    文件名匹配器与加载规则的文件名匹配,并考虑完整路径。允许使用Shell通配符模式:

    filename:rules/*deleted*

    filename:*/emerging-dos.rules

    (2.4)修改规则

    可以使用正则表达式搜索和替换来完成规则修改。规则修改说明符的基本格式是:

    <match>  <from>  <to>

    其中<match>是上面的规则匹配器之一,<from>是要替换的文本,<to>是替换文本。将所有警报规则转换为drop的示例:

    re:.  ^alert  drop

    将noalert的所有丢弃规则转换回警报的示例:

    re:.  "^drop(.*)noalert(.*)"  "alert\\1noalert\\2"

    2.3 配置suricata加载suricata-update更新的规则

    Suricata-Update采用与Suricata传统方法不同的规则文件约定。最明显的区别是默认情况下存储规则在 /var/lib/suricata/rules/suricata.rules

    方式一:使用 -s 选项

    suricata   -s  /var/lib/suricata/rules/suricata.rules  

    方式二:修改suricata.yaml配置文件。

    default-rule-path:/var/lib/suricata/rules

    rule-files:

            -suricata.rules

    2.4 使用其他可用的规则源

    (2.4.1)首先使用update-sources命令更新规则源索引:

    suricata-update  update-sources

    (2.4.2)然后列出索引中的源:

    suricata-update  list-sources

    (2.4.3)现在启用ptresearch/attackdetection规则集,每个规则集都有一个名称,该名称具有“供应商”前缀,后跟一个集名称。例如:

    suricata-update  enable-source  ptresearch/attackdetection

    (2.4.4)再次更新规则

    suricata-update

    2.5 其他的一些命令

    (2.5.1)列表启用的源:

    suricata-update  list-enabled-sources

    (2.5.2)禁用源:

    suricata-update  disable-source  et/pro

    禁用源会保留源配置但禁用。当源需要诸如您不想丢失的代码之类的参数时,这很有用,如果您删除了源代码,则会发生这种情况 。

     re-enables在不提示用户输入的情况下重新启用已禁用的源。

    (2.5.3)删除源

    suricata-update  remove-source  et/pro

    这将删除此源的本地配置。重新启用 et / pro将需要重新输入您的访问代码。

    (2.5.4)按URL添加源

    suricata-update  add-source  <name>  <url>

    2.6 控制使用哪些规则

    默认情况下,suricata-update会将所有规则合并到一个文件“/var/lib/suricata/rules/suricata.rules”中。

    要启用默认禁用的规则,请使用'/etc/suricata/enable.conf'.

    同样,要禁用规则,请使用/etc/suricata/disable.conf.

    更新这些文件后,再次重新运行suricata-update.

    最后重启Suricata。

    相关文章

      网友评论

          本文标题:suricata-update规则管理

          本文链接:https://www.haomeiwen.com/subject/nhdhqctx.html