SELKS日志分析实战:Suricata JSON日志格式全解析

【免费下载链接】SELKS 基于Suricata的入侵检测系统/入侵防御系统/网络流量监控发行版。 【免费下载链接】SELKS 项目地址: https://gitcode.com/GitHub_Trending/se/SELKS

SELKS是基于Suricata的入侵检测系统/入侵防御系统/网络流量监控发行版,它能够全面监控网络流量并生成详细的JSON格式日志。本文将带您深入了解Suricata JSON日志的结构和内容,帮助您更好地进行日志分析和网络安全监控。

Suricata日志生成流程

Suricata作为一款强大的网络安全工具,不仅仅是一个入侵检测系统/入侵防御系统。它能够处理各种网络流量,生成多种类型的事件日志,为网络安全监控提供全面的数据支持。

Suricata日志生成流程

如图所示,Suricata可以从云环境和本地环境的网络流量中,生成包括IDS警报、协议事务、网络流、PCAP记录和提取文件等多种类型的事件数据。这些数据最终会以JSON格式存储在日志文件中,为后续的分析和监控提供基础。

Suricata JSON日志的基本结构

Suricata生成的JSON日志具有统一的基本结构,同时根据事件类型的不同,又包含各自特有的字段。让我们以HTTP事件日志为例,了解其基本结构。

以下是一个HTTP事件日志的示例片段:

{
  "in_iface": "tppdummy0",
  "timestamp": "2021-10-08T12:40:00.965786+0300",
  "dest_ip": "82.118.21.221",
  "src_port": 49900,
  "http": {
    "server": "Apache/2.4.25 (Debian)",
    "connection": "Keep-Alive",
    "length": 186336,
    "response_headers": [...],
    "status": 200,
    "http_user_agent": "curl/7.74.0",
    "user_agent": {...},
    "date": "Thu, 15 Jul 2021 17:35:16 GMT",
    "last_modified": "Thu, 15 Jul 2021 17:23:21 GMT",
    "http_content_type": "application/x-msdos-program",
    "http_method": "GET",
    "protocol": "HTTP/1.1",
    "content_type": "application/x-msdos-program",
    "hostname": "82.118.21.221",
    "url": "/177v2.dll",
    "request_headers": [...],
    "content_length": "186336"
  },
  "@timestamp": "2021-10-08T09:40:00.965Z",
  "flow_id": 1357003807701027,
  "metadata": {...},
  "event_type": "http",
  "host": "SELKS",
  "path": "/var/log/suricata/eve.json",
  "geoip": {...},
  "tags": [...],
  "community_id": "1:oQpfk+DMURhDz3k1FILE0ZFmIvc=",
  "type": "SELKS",
  "tx_id": 0,
  "proto": "TCP",
  "src_ip": "172.16.1.101",
  "dest_port": 80,
  "@version": "1"
}

从上述示例中可以看到,一个典型的Suricata JSON日志包含以下几个主要部分:

  1. 基本信息:包括时间戳、源IP、目的IP、源端口、目的端口、协议等。
  2. 事件类型特有信息:如HTTP事件中的请求头、响应头、URL等。
  3. 元数据:包括流ID、社区ID等。
  4. 地理位置信息:通过GeoIP获取的IP地址相关地理位置信息。

常见事件类型日志解析

Suricata可以生成多种类型的事件日志,下面我们将详细解析几种常见的事件类型。

HTTP事件日志

HTTP事件日志记录了HTTP请求和响应的详细信息,包括请求方法、URL、状态码、请求头、响应头、用户代理等。这些信息对于分析Web应用的访问情况和检测Web攻击非常有用。

从前面的HTTP事件日志示例中,我们可以看到http字段包含了丰富的HTTP相关信息。例如,http_method字段表示HTTP请求方法,status字段表示响应状态码,user_agent字段则提供了客户端的用户代理信息。

警报事件日志

警报事件日志记录了Suricata检测到的潜在安全威胁。以下是一个警报事件日志的示例片段:

{
  "in_iface": "tppdummy0",
  "dest_ip": "71.78.79.138",
  "src_port": 49760,
  "@timestamp": "2021-10-08T09:36:42.465Z",
  "flow_id": 1088016435723980,
  "metadata": {...},
  "event_type": "alert",
  "host": "SELKS",
  "path": "/var/log/suricata/eve.json",
  "packet_info": {...},
  "app_proto": "http",
  "flow": {...},
  "packet": "...",
  "tx_id": 0,
  "proto": "TCP",
  "src_ip": "172.16.1.101",
  "dest_port": 443,
  "stream": 1,
  "payload": "...",
  "timestamp": "2021-10-08T12:36:42.465788+0300",
  "alert": {
    "signature_id": 2031241,
    "gid": 1,
    "rev": 2,
    "severity": 1,
    "metadata": {...},
    "action": "allowed",
    "signature": "ET MALWARE Win32/Trickbot Data Exfiltration",
    "category": "Malware Command and Control Activity Detected"
  },
  "http": {...},
  "payload_printable": "...",
  "geoip": {...},
  "tags": [...],
  "community_id": "1:A5l+JC5ncM3L2nUEcOZKmuvx1D4=",
  "type": "SELKS",
  "@version": "1"
}

在警报事件日志中,alert字段包含了警报的详细信息,如签名ID、严重性、签名描述和类别等。这些信息可以帮助安全分析师快速识别潜在的安全威胁。

SELKS日志分析实践

SELKS提供了直观的日志分析界面,帮助用户更好地理解和利用Suricata生成的日志数据。下面是一些实际的日志分析界面示例。

SELKS日志概览

上图展示了SELKS的日志概览界面,通过饼图和表格的形式直观地展示了不同类型的事件数据。这有助于用户快速了解网络中的事件分布情况。

SELKS文件事务分析

上图展示了SELKS的文件事务分析界面,专门用于分析网络中的文件传输情况。通过这个界面,用户可以查看文件类型分布、传输时间趋势等信息,有助于检测可疑的文件传输活动。

总结

Suricata JSON日志是网络安全监控的重要数据来源,深入理解其格式和内容对于有效的网络安全分析至关重要。通过本文的介绍,您应该对Suricata JSON日志有了更清晰的认识,包括其基本结构、常见事件类型和实际分析方法。

在实际应用中,您可以结合SELKS提供的分析工具,充分利用这些日志数据,提高网络安全监控的效率和准确性。无论是检测潜在的安全威胁,还是分析网络流量模式,Suricata JSON日志都能为您提供有力的支持。

希望本文能够帮助您更好地理解和应用Suricata JSON日志,提升您的网络安全分析能力。如果您想深入了解更多关于SELKS和Suricata的信息,可以参考项目中的相关文档和示例日志文件,如doc/example-logs/目录下的各种日志示例。

【免费下载链接】SELKS 基于Suricata的入侵检测系统/入侵防御系统/网络流量监控发行版。 【免费下载链接】SELKS 项目地址: https://gitcode.com/GitHub_Trending/se/SELKS

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐