怀疑你的Linux服务器被入侵了?快来排查一下吧

举报
ImAlex 发表于 2024/10/29 18:22:43 2024/10/29
【摘要】 在面对Linux系统疑似被入侵的情况下,快速而有效地进行应急响应和排查是至关重要的。本文将带你全面了解应急响应的排查思路和掌握必要的基础技能,帮助你在第一时间解决问题,保障系统安全。

在面对Linux系统疑似被入侵的情况下,快速而有效地进行应急响应和排查是至关重要的。本文将带你全面了解应急响应的排查思路和掌握必要的基础技能,帮助你在第一时间解决问题,保障系统安全。


🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。各技术博客社区平台的优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 群里红包不断,异常活跃,感兴趣的加我vx(ID:gylzbk),拉你进群,互相学习共同进步。

image.png

应急响应基础技能

基本技能和工具

在进行应急响应之前,掌握以下基础技能和工具是必不可少的:

  1. 基本的Linux命令操作:如ls, cat, grep, find, awk, sed等。
  2. 日志分析能力:熟悉系统和应用日志文件的位置和格式,如/var/log目录下的日志文件。
  3. 网络连接和端口分析:使用netstat, ss, nmap等工具。
  4. 文件完整性检查工具:使用md5sum, sha256sum等工具检验文件完整性。
  5. 系统和用户进程管理:如ps, top, htop等。

应急响应排查思路

1. 初步调查

1.1 确认事件类型

首先需要明确当前是遭遇何种安全事件,例如:

  • 入侵检测
  • 恶意软件感染
  • 数据泄露
  • 拒绝服务(DDoS)攻击

1.2 检查系统异常

检查系统中是否有以下异常现象:

  • 系统性能显著下降
  • 未授权的用户登录或进程
  • 磁盘空间异常减少

2. 数据收集

2.1 获取登录历史

使用lastlastb命令查看系统的用户登录和失败的登录尝试记录。

last
lastb

2.1.1 实例输出

$ last
username pts/0 192.168.0.105 Wed Sep 22 10:21 still logged in
username pts/0 192.168.0.105 Wed Sep 22 09:56 - 10:21 (00:24)
reboot system boot 4.15.0-142-generic Wed Sep 22 09:55 - 10:22 (00:27)
# 表示用户username在2021年9月22日上午10点21分登录并仍然在线。

2.2 检查系统日志

查看系统日志,尤其是auth.log(认证日志)和syslog(系统日志)。

tail -n 100 /var/log/auth.log
tail -n 100 /var/log/syslog

2.2.1 示例内容

$ tail -n 100 /var/log/auth.log
Sep 22 10:21:17 hostname sshd[12345]: Accepted password for username from 192.168.0.105 port 54321 ssh2
# 表示一次成功的SSH登录尝试。

2.3 网络连接和端口监控

使用netstatss命令查看当前的网络连接和监听端口。

netstat -tulnp
ss -tulnp

2.3.1 示例输出

$ netstat -tulnp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5678/nginx

2.4 进程与服务检查

使用pstop命令查看系统中的当前进程和服务。

ps aux
top

2.4.1 示例输出

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1234  0.0  0.1 125684  3644 ?        Ss   Sep22   0:00 /usr/sbin/sshd
www-data   5678  0.2  1.2 123456 123456 ?       S    Sep22   0:23 nginx: worker process

2.5 文件完整性检查

使用find命令查找系统中近期被修改的文件。

find / -mtime -1

2.5.1 示例输出

$ find / -mtime -1
/var/log/auth.log
/etc/passwd

2.6 检查开机启动项

查看系统中的开机启动项,检查是否存在异常的启动项。

# 对于系统d
systemctl list-unit-files --type=service --state=enabled

# 检查rc.local
cat /etc/rc.local

# 检查crontab
crontab -l
ls /etc/cron.*
ls /var/spool/cron/crontabs

2.7 检查计划任务

查看cron计划任务,确认是否存在可疑的定时任务。

crontab -l
cat /etc/crontab
ls /etc/cron.d/
cat /etc/cron.hourly/
cat /etc/cron.daily/

3. 分析与确认

3.1 分析登录记录与日志

  • 检查是否有可疑的登录记录和失败的登录尝试。
  • 查看日志中是否存在可疑的错误或警告信息。

3.2 分析网络连接

  • 确认所有监听端口和网络连接是否正常。
  • 使用tcpdumpwireshark进行网络流量捕获和分析。
tcpdump -i eth0

3.2.1 示例输出

$ tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
10:23:04.123456 IP 192.168.0.105.54321 > 192.168.0.100.80: Flags [S], seq 1234567890, win 29200, options [mss 1460,sackOK,TS val 1234567890 ecr 0,nop,wscale 7], length 0

3.3 分析进程和服务

  • 检查是否有可疑的进程占用大量系统资源。
  • 确认所有正在运行的服务是否正常。

3.3.1 高CPU占用进程示例

$ top
top - 10:24:01 up  1:29,  1 user,  load average: 0.10, 0.15, 0.09
Tasks:  93 total,   1 running,  92 sleeping,   0 stopped,   0 zombie
%Cpu(s): 25.0 us,  5.9 sy,  0.0 ni, 69.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2047120 total,   800764 free,   126904 used,  1119452 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1756024 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 5678 www-data  20   0 123456 123456  12345 S  50.0  6.0   0:30.01 nginx: worker process

3.4 验证文件完整性

  • 检查最近修改的文件(如系统配置文件,二进制文件等)是否有异常修改。
  • 使用diff命令对比文件内容是否发生变化。
md5sum /var/log/auth.log
sha256sum /etc/passwd

3.4.1 文件校验示例

$ md5sum /etc/passwd
5d41402abc4b2a76b9719d911017c592  /etc/passwd

4. 联网分析与对策

4.1 隔离受感染系统

若确认系统被入侵或恶意软件感染,立即从网络中隔离受感染的系统,以防进一步扩散。

4.2 事件报告

向相关安全团队和管理人员进行详细的事件报告,记录调查过程、发现和采取的措施。

4.3 恢复与加固

  • 清理系统中的恶意软件和后门。
  • 更新系统和应用软件,修补漏洞,确保没有残留的恶意代码。
  • 修改受影响用户的密码和密钥,确保剩余的系统安全。

4.4 事后总结与改进

  • 分析事件原因,查明漏洞源头,记录教训。
  • 更新和完善事件响应计划,改进系统安全策略和防御措施。

常用工具和命令汇总

文件与日志操作

命令 作用
ls 列出目录内容
cat, more, less 查看文件内容
grep 搜索文本或日志文件
find 查找文件
tail 查看文件尾部内容
head 查看文件头部内容

系统状态监控

命令 作用
ps 查看系统当前进程
top, htop 实时查看系统资源使用情况
df 显示磁盘空间使用情况
du 显示目录空间占用情况
uptime 查看系统运行时间和负载

网络监控

命令 作用
netstat 显示网络连接和端口信息
ss 显示网络连接和端口信息
tcpdump 网络流量捕获与分析
nmap 网络扫描和端口扫描
ifconfig 显示网络接口配置信息
ping 测试网络连接性
traceroute 路由跟踪

文件完整性检查

命令 作用
md5sum 生成MD5校验码
sha256sum 生成SHA-256校验码
diff 比较文件差异
stat 显示文件或文件系统的状态信息

用户和权限管理

命令 作用
who, w 查看登录用户信息
last, lastb 查看用户登录历史和失败记录
chmod 修改文件权限
chown 更改文件所有者
sudo 提供管理员权限

进阶工具

工具 作用
fail2ban 防止暴力破解攻击
iptables 配置防火墙规则
auditd 安全审计服务
clamav 开源杀毒软件
chkrootkit Rootkit检查工具
rkhunter Rootkit猎人,用于Rootkit检测

结语

如果你怀疑你的Linux系统已经被入侵,不要惊慌。通过上述详细的排查步骤和常用命令工具,你将能够迅速、有效地应对安全事件,减少损失并恢复系统正常运行。掌握这些技能对保障系统安全至关重要。

祝你在保障系统安全的道路上顺利前行!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。