Linux主机入侵检测教程_异常行为识别

12次阅读

linux主机入侵检测的核心在于及时发现偏离正常行为的异常活动,重点监控非工作时间ssh登录、sudo提权、陌生网络连接、关键文件篡改及多源日志交叉验证,依赖对系统常态的清晰认知而非工具砌。

Linux主机入侵检测教程_异常行为识别

Linux主机入侵检测的核心在于及时发现与正常行为明显偏离的异常活动。重点不是堆砌工具,而是理解哪些行为在真实环境中往往预示风险——比如非运维时段的sudo提权、陌生进程调用网络连接、关键配置文件被意外修改等。

关注登录与权限使用的异常模式

攻击者常通过合法账户横向移动或提权。需重点检查:

  • 非工作时间(如凌晨2–5点)的SSH登录,尤其是来自非常用IP或新地理位置的会话
  • 普通用户频繁执行sudo命令,特别是调用bashpython、nc、curl等高风险工具
  • /var/log/auth.log中出现大量密码失败后突然成功的记录,可能暗示爆破成功
  • 新增的sudoers规则(visudo -f /etc/sudoers.d/*)或用户被加入wheel/admin组

识别隐蔽的进程与网络行为

恶意进程常伪装或隐藏,不能只依赖ps简单查看:

  • ps auxf –forest观察进程树,留意父进程为systemd但子进程无明确服务名的可疑分支
  • 运行lsof -i -P -n | grep -v “127.0.0.1”筛选出对外建立非本地连接的进程,比对是否属于已知服务
  • 检查/proc/[pid]/cmdline内容,有些木马会清空该文件或写入不可见字符,可用hexdump -C快速验证
  • ss -tulpn确认监听端口与对应进程是否匹配,特别注意非标准端口(如31337、4242)上运行的未知二进制

监控关键系统文件与配置的非预期变更

攻击者植入后门常修改以下位置,建议每日校验或启用inotify实时跟踪:

  • /etc/passwd与/etc/shadow:新增UID 0用户、空密码字段、或shell设为/bin/bash以外的可疑路径(如/bin/shellx)
  • /etc/crontab与/var/spool/cron/:非管理员添加的定时任务,尤其包含base64解码、wget/curl下载、或重定向到/dev/NULL的任务
  • /etc/init.d/、/etc/systemd/system/:新注册的伪装服务,检查ExecStart指向是否为临时目录下的可执行文件
  • ~/.bashrc、~/.profile、/etc/profile.d/:追加的PATH修改或alias定义,可能劫持常用命令(如ls、ps)

利用基础日志交叉验证行为合理性

单一日志易被清除或伪造,需多源比对:

  • 将/var/log/secure中的登录时间,与lastlog输出、w命令当前登录列表对照,排查时间断层或未记录会话
  • 把journalctl -u sshd –since “2 hours ago” 的日志,和sshd_config中设置的AllowUsers/Match块对比,确认登录用户是否合规
  • 当发现异常进程时,查其启动时间:ps -o lstart= -p [PID],再回溯同一时刻的syslog或audit.log,看是否有相关execve事件
  • 启用auditd后,重点监控auditctl -w /etc/passwd -p wa -k identity_change这类规则,确保变更留痕

不复杂但容易忽略。真正有效的异常识别,靠的是对自身环境“常态”的清晰认知,而不是等待告警响起才开始排查。

text=ZqhQzanResources