Suricata深度包检测插件nDPI使用指南

Suricata深度包检测插件nDPI使用指南

【免费下载链接】suricata Suricata is a network Intrusion Detection System, Intrusion Prevention System and Network Security Monitoring engine developed by the OISF and the Suricata community. 【免费下载链接】suricata 项目地址: https://gitcode.com/gh_mirrors/su/suricata

概述

Suricata作为一款开源的网络威胁检测引擎,其强大的功能部分来自于对各种插件的支持。其中nDPI插件为Suricata提供了深度包检测(DPI)能力,能够识别超过250种应用层协议,并检测多种网络风险行为。本文将详细介绍如何在Suricata中配置和使用nDPI插件。

安装与配置

编译支持nDPI的Suricata

要使用nDPI功能,首先需要在编译Suricata时启用nDPI支持。编译配置示例如下:

./configure --enable-ndpi --with-ndpi=/path/to/nDPI

其中/path/to/nDPI应替换为实际的nDPI源码路径。编译完成后,Suricata将具备nDPI检测能力。

加载nDPI插件

在Suricata的配置文件suricata.yaml中,需要确保加载了nDPI插件:

plugins:
  - /usr/lib/suricata/ndpi.so

该路径可能因系统而异,通常编译完成后默认配置中会自动包含正确的插件路径。

核心功能与规则编写

nDPI插件为Suricata提供了两个关键的关键词:ndpi-protocolndpi-risk,它们可以用于规则编写中实现精细化的流量检测。

ndpi-protocol关键词

ndpi-protocol用于匹配nDPI检测到的应用层协议(L7协议)。使用此关键词时,建议在规则中添加依赖检查:

requires: keyword ndpi-protocol
语法格式
ndpi-protocol:[!]<protocol>;

其中<protocol>可以是:

  • 传输层协议(如TLS)
  • 应用层协议(如HTTP)
  • 组合形式(如TLS.YouTube)
使用示例
  1. 匹配HTTP流量:
ndpi-protocol:HTTP;
  1. 排除TLS流量:
ndpi-protocol:!TLS;
  1. 匹配YouTube的TLS流量:
ndpi-protocol:TLS.YouTube;
  1. 检测DNS端口上的TLS流量(异常检测):
alert tcp any any -> any 53 (msg:"TLS traffic over DNS standard port"; requires:keyword ndpi-protocol; ndpi-protocol:TLS; sid:1;)

ndpi-risk关键词

ndpi-risk用于匹配nDPI检测到的流量风险特征,包括但不限于:

  • 非标准端口上的已知协议
  • 二进制应用传输
  • 自签名证书
  • 可疑DGA域名
  • 恶意软件主机通信等

同样建议在使用时添加依赖检查:

requires: keyword ndpi-risk
语法格式
ndpi-risk:[!]<risk>;

风险参数可以是单个或多个(逗号分隔)风险代码,如:

  • NDPI_BINARY_APPLICATION_TRANSFER
  • NDPI_TLS_OBSOLETE_VERSION
  • NDPI_TLS_WEAK_CIPHER
使用示例
  1. 检测二进制应用传输:
ndpi-risk:NDPI_BINARY_APPLICATION_TRANSFER;
  1. 检测过时的TLS版本和弱密码:
ndpi-risk:NDPI_TLS_OBSOLETE_VERSION,NDPI_TLS_WEAK_CIPHER;
  1. 检测HTTP流量中的二进制传输:
alert tcp any any -> any any (msg:"Binary application transfer over HTTP"; requires:keyword ndpi-protocol, keyword ndpi-risk; ndpi-protocol:HTTP; ndpi-risk:NDPI_BINARY_APPLICATION_TRANSFER; sid:1;)

最佳实践

  1. 协议与风险组合检测:结合ndpi-protocolndpi-risk可以实现更精确的检测,如特定协议上的特定风险行为。

  2. 异常检测:利用nDPI的协议识别能力,可以检测协议与端口不匹配的异常情况(如HTTP运行在非80端口)。

  3. 风险评分:可以将不同的风险行为赋予不同的分数,实现基于风险评分的威胁检测。

  4. 协议白名单:使用否定匹配(!)可以创建协议白名单规则,检测非预期的协议流量。

总结

nDPI插件极大地扩展了Suricata的应用层检测能力,使其不仅能够基于传统的五元组和特征匹配进行检测,还能基于协议行为和风险特征进行更智能的分析。合理利用nDPI功能可以显著提升网络威胁检测的准确性和覆盖率。

【免费下载链接】suricata Suricata is a network Intrusion Detection System, Intrusion Prevention System and Network Security Monitoring engine developed by the OISF and the Suricata community. 【免费下载链接】suricata 项目地址: https://gitcode.com/gh_mirrors/su/suricata

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值