Osmedeus日志聚合与分析:ELK Stack集成实现集中式日志管理

Osmedeus日志聚合与分析:ELK Stack集成实现集中式日志管理

【免费下载链接】osmedeus A Workflow Engine for Offensive Security 【免费下载链接】osmedeus 项目地址: https://gitcode.com/GitHub_Trending/os/osmedeus

你是否还在为Osmedeus扫描日志分散、难以追踪安全线索而困扰?本文将带你通过ELK Stack(Elasticsearch、Logstash、Kibana)实现日志集中管理,从日志采集、过滤到可视化分析,让安全扫描数据成为安全挖掘的强力助手。读完本文你将掌握:

  • Osmedeus日志系统工作原理
  • ELK Stack部署与配置要点
  • 日志实时监控与异常检测方法
  • 安全溯源与攻击路径分析技巧

Osmedeus日志系统架构

Osmedeus采用分级日志架构,核心日志功能由utils/log.go实现。系统默认将日志同时输出到控制台和文件,通过InitLog()函数初始化多写入器(MultiWriter):

mwr := io.MultiWriter(os.Stdout, f) // 同时输出到控制台和文件

日志文件默认存储在~/.osmedeus/logs/目录,命名格式为osmedeus-*.log,包含扫描进度、模块执行结果和错误信息等关键数据。通过-l参数可自定义日志路径:

osmedeus scan -t example.com -l /var/log/osmedeus/custom.log

日志级别控制通过utils/log.go实现,支持--debug(调试模式)、--verbose(详细模式)和--quite(静默模式)三个级别,满足不同场景的日志需求。

ELK Stack部署与配置

环境准备

确保系统已安装Docker和Docker Compose,然后克隆Osmedeus仓库:

git clone https://gitcode.com/GitHub_Trending/os/osmedeus
cd osmedeus

创建ELK专用目录并编写docker-compose.yml

version: '3'
services:
  elasticsearch:
    image: elasticsearch:7.14.0
    environment:
      - discovery.type=single-node
    ports:
      - "9200:9200"
  logstash:
    image: logstash:7.14.0
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline
    depends_on:
      - elasticsearch
  kibana:
    image: kibana:7.14.0
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch

Logstash配置

创建日志处理管道logstash/pipeline/osmedeus.conf,配置文件输入、过滤和输出:

input {
  file {
    path => "/root/.osmedeus/logs/osmedeus-*.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

filter {
  grok {
    match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:loglevel}\] %{GREEDYDATA:content}" }
  }
  date {
    match => [ "timestamp", "yyyy-MM-dd'T'HH:mm:ss" ]
  }
  if "vulnerability" in [content] {
    mutate { add_tag => [ "sec_alert" ] }
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "osmedeus-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}

该配置使用Grok模式解析Osmedeus日志格式,对包含"vulnerability"的日志添加标签,便于后续告警处理。

Osmedeus日志采集优化

自定义日志路径

修改Osmedeus扫描命令,将日志输出到ELK监控目录:

osmedeus scan -f general -t example.com -l /var/log/osmedeus/scan-%(date +%Y%m%d).log

日志轮转配置

创建/etc/logrotate.d/osmedeus文件实现日志轮转:

/var/log/osmedeus/*.log {
  daily
  rotate 7
  compress
  delaycompress
  missingok
  notifempty
}

Kibana日志可视化

索引模式创建

  1. 访问Kibana控制台(http://localhost:5601)
  2. 进入Management > Stack Management > Index Patterns
  3. 创建索引模式osmedeus-*,时间字段选择@timestamp

安全监控仪表板

导入预设仪表板配置文件kibana-dashboard.json(可从docs/目录获取示例),包含以下关键面板:

  • 扫描趋势图:按小时统计扫描任务数量
  • 漏洞类型分布:饼图展示不同漏洞分类占比
  • 模块执行耗时:条形图显示各扫描模块性能
  • 错误告警列表:实时展示失败的扫描任务

实时告警配置

通过Kibana Alerts创建规则,当出现高风险安全日志时触发通知:

  1. 进入Stack Management > Alerts and Insights > Rules
  2. 创建新规则,选择索引模式osmedeus-*
  3. 设置触发条件:tags: "sec_alert" AND content: "Critical"
  4. 配置通知方式(邮件/Slack/Webhook)

实战案例:安全溯源分析

假设Kibana发现以下异常日志:

2023-10-04T15:30:22 [INFO] [subdomain] Found 100+ subdomains for example.com
2023-10-04T15:32:45 [DEBUG] [portscan] Open port 443 on test.example.com
2023-10-04T15:35:18 [WARNING] [vulnerability] Critical: Log4j RCE found on test.example.com

通过日志时间线分析,可快速定位安全漏洞产生的上下文:子域名枚举→端口扫描→漏洞检测,结合execution/process.go中的进程管理代码,追溯漏洞检测模块的执行参数和输出结果。

总结与进阶方向

本文介绍了基于ELK Stack的Osmedeus日志管理方案,通过集中式日志收集和可视化分析,显著提升安全扫描的可观测性。进阶探索方向包括:

  • 结合Elastic APM实现扫描性能分析
  • 使用Machine Learning检测异常扫描行为
  • 集成SIEM系统实现安全事件联动响应

完整配置文件和示例仪表板可参考项目test-workflows/目录下的ELK集成测试用例。定期查阅README.md获取日志功能更新信息,持续优化你的安全监控体系。

如果觉得本文对你有帮助,请点赞、收藏并关注项目更新,下期将带来"Osmedeus分布式扫描集群部署"实战教程。

【免费下载链接】osmedeus A Workflow Engine for Offensive Security 【免费下载链接】osmedeus 项目地址: https://gitcode.com/GitHub_Trending/os/osmedeus

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

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

抵扣说明:

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

余额充值