Debian日志中如何发现恶意软件活动
小樊
34
2025-12-10 09:12:54
Debian日志中识别恶意软件活动的实用指南
一 关键日志与重点信号
- 认证与登录:检查 /var/log/auth.log,关注 Failed password、Invalid user、root 登录、来源 IP 异常集中、非常规时间段的成功登录。
- 系统行为:检查 /var/log/syslog 与 journalctl 输出,关注异常的内核/服务报错、频繁崩溃重启、可疑守护进程启动。
- 计划任务:检查 /var/log/cron.log,关注未知或异常的 crontab 执行记录、来自 /tmp /var/tmp /dev/shm 的脚本执行。
- 内核与防护:检查 /var/log/kern.log,关注 SELinux/AppArmor 拒绝(DENIED)、异常模块加载。
- 服务与应用:Web 查 /var/log/apache2/access.log / error.log,数据库查 /var/log/mysql/error.log,留意异常 404/403 爆发、可疑 URL、Webshell 特征、暴力扫描路径。
- 完整性基线:使用 AIDE/Tripwire 建立并对比基线,发现关键系统文件被篡改(如 /bin /sbin /usr/bin 等)。
二 快速排查命令与示例
- 实时查看系统日志:
- 查看最近启动日志:journalctl -b
- 按时间过滤:journalctl --since “2025-12-10 00:00:00” --until “2025-12-10 23:59:59”
- 按服务过滤:journalctl -u ssh
- 认证日志异常登录与爆破:
- 统计失败登录 Top IP:grep “Failed password” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | head
- 统计成功登录 Top IP:grep “Accepted” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | head
- 查找非常规时间成功登录:grep “Accepted” /var/log/auth.log | egrep " 02:|03:|04:"
- 可疑进程与网络连接:
- 列出对外连接与进程:ss -tulpen | egrep ‘:(22|80|443|3306|6379)’
- 查看进程打开文件与网络:lsof -i -P -n | grep ESTABLISHED
- Web 访问异常:
- 统计 4xx/5xx 爆发:awk ‘$9 ~ /^[45]/ {print $1}’ /var/log/apache2/access.log | sort | uniq -c | sort -nr | head
- 查找可疑 UA/路径:grep -E ‘curl|wget|python|perl’ /var/log/apache2/access.log | awk ‘{print $1,$7}’ | sort | uniq -c | sort -nr
- 定时任务异常:
- 查看系统级与用户级定时任务:grep -R “CRON” /var/log 2>/dev/null 与 crontab -l -u
- 内核与防护告警:
- 内核拒绝与模块加载:dmesg | tail -n 200 | egrep ‘DENIED|segfault|OOM|module’
- 文件完整性:
- 使用 AIDE 初始化并校验:aideinit && aide --check(对比基线发现被篡改文件)
三 可疑迹象与处置要点
- 迹象清单:
- 短时间内大量 Failed password 或 Invalid user,伴随同一来源 IP 的反复尝试。
- 非常规时段出现 root 或高权限账户成功登录。
- cron 中出现未知脚本、从 /tmp /var/tmp /dev/shm 拉取并执行内容。
- 新启动不明服务、守护进程,或 systemd 单元文件出现在 /etc/systemd/system 且无法合理解释。
- 对外异常连接(尤其连接到已知恶意 IP/端口)、非常用端口通信。
- AIDE/Tripwire 报告关键系统文件被修改,或 dpkg --audit 提示异常包状态。
- 处置要点:
- 立即隔离:断开网络或限制访问(如封禁来源 IP、关闭对外端口)。
- 取证留痕:保存 auth.log、syslog、journalctl 相关时间段、可疑进程列表、网络连接快照。
- 阻断与清理:停止/禁用可疑服务,删除异常 cron 与启动项,清理临时目录可疑文件。
- 修复与加固:更新系统 apt update && apt upgrade;禁用 root SSH 登录并改用 SSH 密钥;配置 ufw/iptables/nftables 最小端口放行;部署 fail2ban 自动封禁。
- 恢复与验证:从干净备份恢复必要时,复核完整性基线,持续监控 24–72 小时 确认无残留后恢复业务。
四 长期监测与自动化
- 集中化与可视化:部署 ELK Stack(Elasticsearch/Logstash/Kibana) 或 Graylog,统一采集 auth.log、syslog、kern.log、cron.log 与应用日志,配置可视化与告警规则。
- 入侵检测与防护:部署 Snort/Suricata 做网络层威胁检测,结合 OSSEC/Wazuh 做主机行为监控与文件完整性校验。
- 自动化阻断:启用并调优 fail2ban,对 SSH、FTP、HTTP 等常见暴力与扫描行为进行自动封禁。
- 监控告警:使用 Prometheus + Grafana 采集系统指标,结合日志告警实现多维异常发现与响应。