mcpField
D
detecting-beaconing-patterns-with-zeek

detecting-beaconing-patterns-with-zeek

github.com/mukul975安全35.2k44 次安装8 周前更新
代码仓库

关于 detecting-beaconing-patterns-with-zeek

面向 SOC 分析师和威胁猎手的 Zeek 连接日志分析技能,通过统计源与目标 IP 对之间的连接时间间隔,标记可能的信标通信。

主要功能

  1. 01使用 ZAT 解析 Zeek conn.log
  2. 02按 IP 对分组连接
  3. 03计算连接时间间隔
  4. 04标记低波动时间模式

适用场景

  1. 01调查疑似信标通信
  2. 02编写检测规则或猎杀查询
  3. 03检查监控覆盖情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill detecting-beaconing-patterns-with-zeek

安装后在 Claude Code 中输入/detecting-beaconing-patterns-with-zeek确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

使用 Zeek 检测信标模式

何时使用

  • 在调查需要检测 Zeek 信标模式的安全事件时
  • 在为该领域构建检测规则或威胁狩猎查询时
  • 当 SOC 分析师需要针对此类分析的结构化流程时
  • 在验证相关攻击技术的安全监控覆盖范围时

前提条件

  • 熟悉安全运营概念和工具
  • 可访问测试或实验环境以安全执行
  • 已安装 Python 3.8+ 及所需依赖
  • 对任何测试活动拥有适当授权

操作说明

使用 ZAT(Zeek Analysis Tools)加载 Zeek conn.log 数据,按源/目的对连接进行分组,并计算时间统计信息以识别信标。

from zat.log_to_dataframe import LogToDataFrame
import numpy as np

log_to_df = LogToDataFrame()
conn_df = log_to_df.create_dataframe('/path/to/conn.log')

# Group by src/dst pair and calculate inter-arrival time
for (src, dst), group in conn_df.groupby(['id.orig_h', 'id.resp_h']):
    times = group['ts'].sort_values()
    intervals = times.diff().dt.total_seconds().dropna()
    if len(intervals) > 10:
        std_dev = np.std(intervals)
        mean_interval = np.mean(intervals)
        # Low std_dev relative to mean = likely beaconing

关键分析步骤:

  1. 使用 ZAT LogToDataFrame 将 Zeek conn.log 解析为 DataFrame
  2. 按源 IP 和目的 IP 对连接进行分组
  3. 计算连续连接之间的到达时间间隔
  4. 计算标准差和变异系数
  5. 将变异系数较低的对标记为潜在信标

示例

from zat.log_to_dataframe import LogToDataFrame
log_to_df = LogToDataFrame()
df = log_to_df.create_dataframe('conn.log')
print(df[['id.orig_h', 'id.resp_h', 'ts', 'duration']].head())

评论

支持 Markdown