温馨提示×

如何检测Ubuntu Exploit活动

小樊
39
2025-12-22 02:23:17
栏目: 智能运维

Ubuntu Exploit 活动检测与响应

一 快速排查流程

  • 优先保护现场:将服务器从生产网络隔离(断开公网/内网),避免继续外泄或横向移动;同时保留当前内存与磁盘状态以便取证。
  • 身份与授权异常排查:查看 /var/log/auth.log 中的失败登录与成功登录,例如:
    • 失败登录:grep "Failed password" /var/log/auth.log
    • 成功登录:grep "Accepted password" /var/log/auth.log
    • 特定来源:grep "sshd.*1.2.3.4" /var/log/auth.log
      关注短时间大量失败、root 登录成功、来源 IP 异常等迹象。
  • 系统异常与服务状态:检查 /var/log/syslog/var/log/kern.log 中的崩溃、重启、内核告警,例如:
    • tail -n 200 /var/log/syslog | egrep -i "error|fail|segfault|oom"
    • 观察是否有服务被异常终止后又自动拉起(可能用于清会话)。
  • 登录失败汇总:使用 faillog 快速查看全局失败计数与最近失败时间,例如:
    • faillog
    • 重置某用户计数:faillog -u username -r
  • 审计与命令执行轨迹:若已安装 auditd,用 ausearch 回溯关键行为,例如:
    • 查看命令执行与认证:ausearch -m USER_CMD,USER_AUTH
    • 关注非常规用户读取敏感文件(如 /etc/shadow):ausearch -f /etc/passwd
  • 网络连接与可疑进程:
    • 活跃连接与监听:ss -tulpen | egrep "0.0.0.0|::"
    • 进程与网络:lsof -Pan -p <PID> -iTCP -sTCP:ESTABLISHED
    • 资源异常:top/htop 观察 CPU/内存突增的未知进程。
  • Web 攻击线索(如有 Web 服务):检查 /var/log/nginx/access.log/var/log/apache2/access.log,例如:
    • 探测与注入特征:grep -iE "select|union|insert|../|etc/passwd" /var/log/nginx/access.log
  • 完整性校验:对关键二进制与配置做哈希对比(保存“已知良好”基线),例如:
    • sha256sum /bin/ls /usr/bin/sudo /etc/passwd
    • 发现异常立即隔离并进一步取证。

二 主机与恶意软件检测工具

  • Rootkit/后门检测:
    • chkrootkitsudo apt-get install chkrootkit;直接运行 sudo chkrootkit,或使用 -p 指定可信命令路径、-r 指定已挂载的只读根分区进行检查。
    • rkhuntersudo apt-get install rkhunter;先更新规则 sudo rkhunter --update,再执行 sudo rkhunter -c,日志位于 /var/log/rkhunter.log;默认有 /etc/cron.daily/rkhunter 每日巡检。
  • 主机入侵检测/日志分析:
    • OSSECsudo apt-get install ossec-hids ossec-hids-client,通过 /var/ossec/etc/ossec.conf 配置规则与告警,集中分析系统日志与文件完整性。
  • 文件完整性监控(可选):配置 AIDE 或 Tripwire,建立基线并定期校验关键系统文件是否被篡改。

三 网络层入侵检测

  • 流量抓包与即时分析:
    • tcpdumpsudo tcpdump -i any -w capture.pcap 抓取全接口流量,后续用 Wireshark 分析异常握手、爆破流量、可疑域名解析等。
  • 网络入侵检测系统(NIDS):
    • Suricata(推荐):在 Ubuntu 22.04 可通过 PPA 安装:sudo add-apt-repository ppa:oisf/suricata-stable && sudo apt-get install suricata;启动服务 sudo systemctl enable --now suricata;编辑 /etc/suricata/suricata.yaml 设置 HOME_NET 与接口(如 eth0),启用规则热加载 detect-engine: rule-reload: true;更新规则 sudo suricata-update;测试规则 sudo suricata -T -c /etc/suricata/suricata.yaml -v;用 tail -f /var/log/suricata/fast.log 观察告警,或用 curl http://testmynids.org/uid/index.html 触发测试告警。
    • Snort:经典的 NIDS/NIPS,适合基于规则的深度检测与响应。

四 自动化监控与告警

  • 日志关键字与联动告警:
    • 使用 WGCLOUD 的日志监控模块,对 /var/log/auth.log 配置关键字(如 Failed、Disconnected),默认 10 分钟 扫描一次,可对接邮件/微信/钉钉等告警通道,快速发现暴力破解与异常会话。
  • 阻断与防护:
    • fail2ban:针对 SSH 等服务的暴力破解自动封禁,降低持续性攻击成功率。
  • 集中化与可视化:
    • 将系统日志、auth 日志、Suricata/OSSEC 告警接入 SIEM(如 Splunk、ELK),进行关联分析与可视化告警。

五 处置与加固要点

  • 立即隔离与取证:断开网络,保留 /var/log//proc、内存镜像与可疑文件;记录时间线与操作证据。
  • 账户与访问:强制重置 root 与高权限账户密码,禁用可疑 SSH 公钥,限制 sudo 使用范围,必要时临时关闭 SSH 对外访问。
  • 服务与端口:关闭不必要的服务与端口,仅开放业务必需端口;检查定时任务、systemd 服务、启动项是否被植入后门。
  • 更新与补丁:执行 sudo apt update && sudo apt full-upgrade -y,及时修复已知漏洞;重启验证业务。
  • 持久化与清理:撤销可疑 cron、删除异常用户与 SSH 密钥、清理 WebShell/可疑二进制;完成验证后再恢复网络。
  • 加固基线:最小权限运行、启用 UFW 防火墙、开启 fail2ban、定期运行 rkhunter/chkrootkit 与 AIDE 校验、持续监控与演练。

0