Linux入侵检测方法_安全监控策略

2次阅读

入侵检测需多层策略:基于文件完整性(如AIDE)、进程与网络异常监控、日志审计(远程转发+fail2ban)、eBPF实时追踪。关键措施包括初始化AIDE数据库、定期校验告警、检查非常规端口/进程、分析日志异常、启用tracee或bpftrace实时监控。

Linux入侵检测方法_安全监控策略

linux系统一旦被入侵,往往表现为异常进程、可疑网络连接、文件篡改或日志消失。有效的入侵检测不是靠单一工具,而是结合行为基线、文件完整性、日志审计和实时监控的多层策略。

基于文件完整性的入侵痕迹识别

攻击者常替换关键二进制文件(如/bin/bash/usr/bin/sudo)或植入后门脚本。使用AIDE(Advanced Intrusion Detection Environment)或Tripwire可定期比对文件哈希、权限、属主等属性变化。

  • 首次部署后立即初始化数据库:aide –init && mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
  • 每周自动校验并邮件告警:0 2 * * 0 /usr/bin/aide –check | grep -E “(changed|added|removed)” | mail -s “AIDE alert” admin@example.com
  • 数据库文件必须存放在只读介质或独立安全主机上,防止被攻击者覆盖

进程与网络连接的非常规行为监控

合法服务通常有固定端口、父进程和启动方式。异常可能包括:非标准端口上的ssh监听、/tmp目录下运行的Python/perl进程、无tty的高权限shell。

  • ps auxf –sort=-%cpu | head -20快速查看CPU占用异常进程
  • 检查监听端口与对应进程:ss -tulnp | grep -v “127.0.0.1”,重点关注非80/443/22/25等常见端口
  • 发现可疑进程后,用lsof -p PID查打开文件,cat /proc/PID/environ看环境变量,常能发现恶意载荷路径

系统日志的集中采集与异常模式匹配

/var/log/auth.log、/var/log/secure、journalctl输出中隐藏大量线索:暴力破解IP频次、sudo提权失败记录、用户登录时间异常(如凌晨3点root登录)、命令执行日志缺失(说明history被清空或bash未记录)。

  • 启用rsyslog远程转发,避免本地日志被删除:*.* @syslog-server:514
  • goaccessgrep -E “Failed password|invalid user|session opened for user root”做初步筛选
  • 配置fail2ban自动封禁高频失败登录IP,并记录其后续行为(如是否转向其他服务)

轻量级运行时监控:Sysmon for Linux 或 eBPF 工具链

传统日志滞后性强,而eBPF驱动的工具(如bpftracetracee)可在内核层捕获进程执行、文件打开、网络连接等事件,近乎实时。

  • tracee –output format:table –trace Event=execve实时跟踪所有命令执行,过滤出/dev/shm/run/.lock等隐蔽路径的调用
  • 编写简单bpftrace脚本监控非白名单路径的动态库加载:uprobe:/lib/x86_64-linux-gnu/libc.so.6:system { printf(“suspicious system() call from %sn”, comm); }
  • 注意资源开销,生产环境建议仅对关键主机开启核心事件追踪
text=ZqhQzanResources