ELK日志分析实战

ELK日志分析实战:从异常流量定位提权攻击

摘要:本文通过模拟真实攻防场景,结合ELK技术栈(Elasticsearch+Logstash+Kibana),演示如何从海量服务器日志中快速定位异常流量并追踪提权攻击行为。包含完整的日志收集方案、攻击特征分析及可视化告警实践。


一、环境准备与数据采集

1.1 实验组件

  • 攻击机:Kali Linux 2023
  • 靶机:CentOS 7.6(暴露Web服务)
  • ELK集群:Elasticsearch 8.5 + Logstash 8.5 + Kibana 8.5
  • 数据采集器:Filebeat 8.5

1.2 日志收集配置

通过Filebeat采集关键日志源:

# filebeat.yml
filebeat.inputs:
- type: filestream
  id: nginx-access
  paths:
    - /var/log/nginx/access.log
  fields:
    log_type: "nginx_access"

- type: filestream
  id: syslog
  paths:
    - /var/log/secure
    - /var/log/messages
  fields:
    log_type: "system"

Logstash添加安全日志解析规则:

filter {
  if [fields][log_type] == "system" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} %{DATA:process}\[%{POSINT:pid}\]: %{GREEDYDATA:message}" }
    }
    date {
      match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

二、异常流量特征分析

2.1 高频404错误(漏洞探测)

在Kibana中创建统计视图:

{
  "query": {
    "bool": {
      "must": [
        { "match": { "response_code": "404" } },
        { "range": { "@timestamp": { "gte": "now-15m" } } }
      ]
    }
  },
  "aggs": {
    "src_ip": {
      "terms": { "field": "source.ip.keyword", "size": 10 }
    }
  }
}

攻击特征:同一IP在5分钟内触发超过100次404响应,且请求路径包含/wp-admin/phpmyadmin等敏感路径。

2.2 Webshell上传行为识别

Nginx日志关键字段过滤:

filter {
  if [request] =~ "(\.php|\.jsp|\.war)(\?|$)" {
    mutate { add_tag => [ "webshell_upload" ] }
  }
}

三、提权攻击行为追踪

3.1 可疑特权操作

在系统日志中监控sudo提权:

process.name: "sudo" AND message: ("/bin/bash" OR "chmod +s" OR "passwd")

3.2 异常用户创建检测

通过audit日志捕获用户变更:

{
  "query": {
    "match": {
      "message": {
        "query": "useradd|usermod",
        "operator": "OR"
      }
    }
  }
}

3.3 SUID权限异常变更

设置定时检测任务:

*/10 * * * * find / -perm -4000 -type f -exec ls -l {} \; | diff /etc/suid.list -

四、攻击场景复现与分析

4.1 攻击链还原

  1. 攻击者通过/manager/html爆破进入Tomcat后台
  2. 上传包含反弹Shell的WAR包
  3. 通过sudo -l探测可用特权
  4. 利用CVE-2021-3156进行本地提权

4.2 日志关联分析

在Kibana中构建关联视图:

{
  "query": {
    "bool": {
      "must": [
        { "match": { "source.ip": "192.168.1.100" } },
        { "range": { "@timestamp": { "gte": "now-30m" } } }
      ],
      "should": [
        { "match": { "tags": "webshell_upload" } },
        { "match": { "event.type": "privilege_escalation" } }
      ]
    }
  }
}

五、防御加固建议

  1. 实时告警配置:使用ElastAlert对关键事件设置阈值告警
  2. 日志存储优化:敏感操作日志单独存储,保留至少180天
  3. 权限最小化:定期审计sudoers文件和SUID/SGID权限
  4. 进程监控:使用Auditd记录所有特权命令执行

附录:常用安全分析语句

// 检测密码暴力破解
event.category: "authentication" AND event.outcome: "failure" | stats count by source.ip

// 查找短时间内多主机登录
user.name: "root" | timechart span=10m count by host.name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值