项目简介

TwLogEye是一个AI原生的日志服务器,能够高效地收集、存储和分析多种类型的日志数据,包括Syslog、SNMP Trap、Netflow/IPFIX和Windows事件日志。它集成了SIGMA规则进行威胁检测,并通过机器学习实现日志异常检测。TwLogEye特别支持Model Context Protocol (MCP),提供标准化的JSON-RPC接口,允许大型语言模型(LLM)客户端访问和操作日志数据、调用内置分析工具以及获取各类报告,从而有效赋能AI进行日志分析和自动化安全响应。

主要功能点

  • 日志收集与存储: 能够接收并持久化Syslog、SNMP Trap、Netflow/IPFIX和Windows事件日志。利用Go语言高性能的Key/Value存储Badger,支持每秒处理数万条日志,存储容量可达数TB。
  • 威胁检测: 直接加载和应用流行的SIGMA规则,对传入的日志进行实时威胁匹配和检测,识别潜在的安全事件。
  • 异常检测: 运用先进的机器学习算法,从海量日志数据中识别出偏离正常模式的异常行为,辅助发现未知威胁。
  • MCP服务器集成: 提供标准的MCP接口,允许LLM客户端通过JSON-RPC协议调用以下工具:
    • 'search_log': 按时间范围、类型和正则表达式筛选日志。
    • 'search_notify': 按时间范围和级别搜索通知。
    • 'get_report': 获取Syslog、Trap、Netflow、Windows Event或Monitor报告。
    • 'get_sigma_evaluator_list': 获取已加载的SIGMA规则评估器列表。
    • 'get_sigma_rule_id_list': 获取数据库中存储的所有SIGMA规则ID。
    • 'get_sigma_rule': 根据ID获取具体的SIGMA规则内容。
    • 'add_sigma_rule': 添加新的SIGMA规则(YAML格式)。
    • 'delete_sigma_rule': 根据ID删除SIGMA规则。
    • 'reload_sigma_rule': 重新加载服务器中的SIGMA规则配置。
  • 报告与监控: 生成详细的日志趋势报告、网络流报告、Windows事件报告和系统资源监控报告,并提供直观的命令行仪表板进行实时监控。
  • 通知与自动化: 可通过Syslog、SNMP Trap或Webhook将检测到的威胁和异常情况实时通知给外部系统或AI自动化工具。

安装步骤

TwLogEye支持Linux/macOS和Windows系统,推荐使用以下方式进行安装。

  • Linux/macOS (通过shell脚本安装): 打开终端并执行以下命令:

    curl -sS https://lhx98.linkclub.jp/twise.co.jp/download/install_twlogeye.sh | sh
  • Linux/macOS (通过Homebrew安装): 如果您的系统安装了Homebrew,可以使用以下命令:

    brew install twsnmp/tap/twlogeye
  • Windows (通过Scoop安装): 如果您的系统安装了Scoop,可以使用以下命令:

    scoop bucket add twsnmp https://github.com/twsnmp/scoop-bucket
    scoop install twlogeye

    您也可以从项目的GitHub Release页面下载对应的ZIP文件进行手动安装。

服务器配置(MCP客户端启动示例)

MCP客户端可以配置TwLogEye作为其后端MCP服务器。以下是一个JSON格式的配置示例,展示了MCP客户端如何定义和启动TwLogEye MCP服务器。请根据实际情况调整 'command' 的路径及 'args' 中的参数,如监听地址 ('--mcpEndpoint')、认证令牌 ('--mcpToekn')、SIGMA规则路径 ('--sigmaRules') 和数据库路径 ('--dbPath')。如果启用TLS,还需要提供证书路径。

{
  "name": "TwLogEye-MCP-Server",
  "command": "twlogeye",
  "args": [
    "start",
    "--mcpEndpoint", "tcp://0.0.0.0:8080",
    "--mcpToekn", "your_mcp_token",
    "--sigmaRules", "./sigma",
    "--dbPath", "./logs"
  ],
  "description": "此配置定义了MCP客户端如何启动TwLogEye MCP服务器。'command'指定了TwLogEye的可执行文件,'args'包含了启动服务器时所需的命令行参数。LLM或其他MCP客户端将使用这些配置来连接和利用TwLogEye提供的日志分析和威胁检测功能。"
}

参数注释:

  • 'name': MCP服务器的标识名称。
  • 'command': 启动TwLogEye服务器的可执行文件路径(例如,'twlogeye' 或 '/usr/local/bin/twlogeye')。
  • 'args': 传递给 'twlogeye start' 命令的命令行参数列表。
    • '--mcpEndpoint': 指定MCP服务器的监听地址和端口,例如 'tcp://0.0.0.0:8080' (监听所有接口的8080端口) 或 'tls://your_server_ip:8443' (如果启用TLS)。
    • '--mcpToekn': 用于MCP通信的认证令牌。如果TwLogEye服务器配置了此令牌,客户端在连接时必须提供。
    • '--sigmaRules': 指定SIGMA规则文件所在的目录路径,TwLogEye将加载这些规则进行威胁检测。
    • '--dbPath': 指定TwLogEye数据库文件存储的路径。
    • 其他TwLogEye的启动参数(如 'syslogUDPPort'、'netflowPort'、'winEventLogChannel' 等)也可以添加到此列表中,以启用相应的日志收集功能。
  • 'description': 对该MCP服务器配置的简要说明。

基本使用方法

  1. 准备数据存储和规则目录: 在您希望存储日志和SIGMA规则的目录下创建相应的文件夹:
    mkdir logs
    mkdir sigma
  2. 创建配置文件: 根据您的需求,在当前目录或指定位置创建 'twlogeye.yaml' 配置文件。例如,您可以配置日志接收端口、数据库路径等。
  3. 部署SIGMA规则: 将您希望用于威胁检测的SIGMA规则文件(通常为YAML格式)复制到 'sigma' 目录中。
  4. 启动TwLogEye服务器: 在终端中执行以下命令来启动TwLogEye。请务必指定 '--mcpEndpoint' 参数以启用MCP服务器功能,并指向您的SIGMA规则和数据库目录:
    twlogeye start --mcpEndpoint :8080 --sigmaRules ./sigma --dbPath ./logs --syslogUDPPort 514 --netflowPort 9995
    这会启动一个TwLogEye实例,监听MCP请求(在8080端口),同时开始收集Syslog(UDP 514端口)和Netflow(UDP 9995端口)。
  5. 通过MCP客户端连接: 一旦TwLogEye MCP服务器启动并运行,您的LLM或其他MCP客户端就可以使用上述“服务器配置”中提供的Endpoint(如 'tcp://localhost:8080')和任何必要的认证令牌来与服务器建立连接。客户端即可通过MCP协议调用 'search_log'、'get_report'、'add_sigma_rule' 等工具,实现高级日志分析和自动化功能。
  6. 使用CLI客户端进行基本操作(可选): 您也可以直接使用TwLogEye的命令行界面(CLI)进行操作,例如:
    • 搜索日志: 'twlogeye log --logtype syslog --start "2024/01/01 00:00:00" --end "2024/01/02 00:00:00" --search "error"'
    • 查看检测通知: 'twlogeye notify --level critical'
    • 获取报告: 'twlogeye report syslog' 'twlogeye report anomaly syslog'

信息

分类

AI与计算