1.
发现与初步隔离
- 识别迹象:确认是否异常,如网站篡改、被植入恶意JS、流量暴增、无法登录、异常进程或端口。
- 立即隔离:将受影响服务器从网络中隔离(断网或在防火墙上封掉对外所有端口),保留电源避免重启以便取证。命令示例:在云平台控制台关闭公网IP或在边界防火墙下拉规则。
- 记录时间线:记录首次发现时间、变更操作人、当前会话信息,避免信息丢失。
2.
证据保存与取证准备
- 快速做磁盘镜像:使用dd或云端快照(优先云快照)制作完整镜像以供离线分析(dd if=/dev/sda of=/mnt/backup/server.img)。
- 收集日志:导出/var/log/auth.log、/var/log/syslog、web服务器访问/错误日志、数据库日志、应用日志及/var/log/messages。可用scp或rsync传到安全分析主机。
- 保存内存与进程信息:若可能做内存转储(linux下使用LiME),或至少记录ps aux、netstat -tunlp、ss -plant、crontab -l等输出。
3.
定位入侵点与确认范围
- 检查账号与秘钥:检查/etc/passwd、/etc/shadow修改时间,审查~/.ssh/authorized_keys,列出最近修改的文件(find / -mtime -7 -type f -ls)。
- 查找后门与Webshell:在web目录执行命令查找可疑文件(例如find /var/www -type f -name '*.php' -exec grep -Hn "eval(\|base64_decode(\|shell_exec(" {} \;)。
- 检查定时任务与服务:查看crontab、systemd服务、rc.local,确认是否有未知服务或定时任务在启动恶意脚本。
4.
消除威胁(清理)操作步骤
- 禁用受损账户与密钥:立即禁用可疑Linux账户,删除陌生的authorized_keys,重置所有管理员账户密码并强制所有API密钥与数据库凭据轮换。
- 停止并隔离恶意进程:记录进程细节后关闭恶意进程(kill PID),但保留可执行文件与日志以便分析。
- 清除后门或重装:对于Web入侵,若不能确认所有后门已清除,建议从干净备份或新构建镜像恢复;重装系统并只恢复经验证的应用代码与数据。
5.
恢复与加固
- 从可信备份恢复:选择入侵前的已验备份恢复数据库与文件,恢复前先在隔离环境做完整扫描验证。
- 更新补丁与最小化暴露:升级系统与软件到最新版,关闭不必要服务,禁止root远程登录,启用SSH密钥登录并禁用密码登录(编辑/etc/ssh/sshd_config)。
- 网络防护:配置防火墙(如ufw或iptables),仅开放必须端口。示例:ufw allow 22/tcp from 203.0.113.0/24;配置WAF/云安全组并启用DDoS防护。
6.
沟通、合规与持续监控
- 通知步骤:向托管商(柬埔寨服务商)、内部管理层、相关客户告知事件概要与影响范围;按当地法规必要时向CERT或监管机构报备。
- 建立监控与日志外发:部署集中日志(ELK/Graylog)与告警规则,关键日志实时外发到独立监控环境以防被删除。
- 制定演练与备份策略:实行定期安全演练、每周/每日备份并做备份恢复演练,备份要离线或至少有不同可控权限账户。
7.
问:被攻陷后是否一定要重装系统?
答:如果无法确认所有后门与修改点(比如未知的rootkit、内核被篡改或账户被植入后门),最佳做法是重装系统并恢复可信备份。对关键服务器优先采用“重建比清理更安全”的原则,清理只适用于能完全取证确认无残留的情况。
8.
问:如何在柬埔寨或海外托管环境中快速与服务商配合?
答:准备好服务商账号信息、受影响实例ID、快照权限授权,立即提交工单并要求出具事件时间线与网络流量资料;同时要求他们协助冻结公网IP并提供流量镜像用于取证。必要时通过律师或本地代表处理法律/合规事宜。
9.
问:日常对本地企业有什么可行的预防措施?
答:实行最小权限原则、强制SSH密钥与多因素认证、定期打补丁、定期备份并离线保存、部署WAF与IPS、外发日志到第三方监控、并建立应急响应手册与演练。这些措施能大幅降低被攻破与被持续利用的风险。
来源:案例分析本地企业遭遇柬埔寨服务器被黑客攻击后的教训