- 客户端压缩:保持原格式(JPG保持JPG,PNG保持PNG),不再强制转换为WebP - 提高压缩质量:最低质量从0.6提高到0.90,避免画质损失 - 启用高质量图像平滑:减少锯齿,提升画质 - 服务器端智能优化:使用MozJPEG和PNG优化算法 - 避免双重压缩:小文件(<3MB)跳过服务器端优化,只有优化效果明显(>5%)才使用 - 优化策略:优先缩小尺寸而不是降低质量,留余量给服务器端优化 技术改进: - JPEG: MozJPEG编码器,质量92%,渐进式,优化扫描 - PNG: 压缩级别6,自适应过滤,调色板优化 - 智能判断:避免不必要的双重压缩,保护画质
12 KiB
恶意程序来源深入调查报告
调查时间
2025年1月1日
调查目的
深入调查 kinsing、kdevtmpfsi 等恶意挖矿程序的启动来源和传播途径。
执行摘要
✅ 好消息:恶意程序已被成功清除
当前系统状态:
- ✅ 真正的恶意进程数: 0
- ✅ 恶意文件数: 0
- ✅ CPU空闲率: 98.5%(挖矿程序会导致接近100%使用率)
- ✅ 系统负载: 正常(0.35)
- ✅ 网络连接: 无异常
⚠️ 重要发现:日志存在误报
关键问题:
- 日志中显示的"恶意进程"检测实际上大部分是误报
- 清理脚本使用
find / -name .system3d命令时,产生的find进程被防重感染脚本误判为恶意进程 - 防重感染脚本使用
pgrep -f匹配命令行,导致误匹配清理脚本的子进程
实际情况:
- 真正的恶意程序已被清理脚本成功清除
- 当前系统无真正的恶意进程在运行
- 所有启动源(定时任务、systemd服务、启动脚本等)均已检查,均为正常
- 日志的高频率检测是误报,不是真正的威胁
📋 建议
- 立即行动:修复脚本误报问题(使用更精确的检测方法)
- 持续监控:关注CPU使用率等真实指标,而不是误报日志
- 系统加固:继续保持现有安全措施,加强SSH和网络安全
1. 恶意程序行为分析
1.1 恶意程序特征
根据日志分析,检测到以下恶意程序:
- kinsing - 加密货币挖矿恶意软件
- kdevtmpfsi - 恶意挖矿程序
- .system3d - 隐藏的恶意程序
1.2 活动频率
- 检测频率:每1-2分钟检测到新的恶意进程启动
- 终止次数:最近1小时内约100次
- 模式:恶意程序持续尝试重新启动,但很快被清理脚本终止
2. 启动源检查结果
2.1 定时任务 (Cron)
检查位置:
/var/spool/cron/root- ✅ 仅包含正常的清理脚本/etc/crontab- ✅ 正常系统定时任务/etc/cron.d/*- ✅ 仅包含0hourly/etc/cron.hourly,/etc/cron.daily等 - ✅ 正常
结果:✅ 未发现恶意定时任务
2.2 Systemd 服务
检查位置:
/etc/systemd/system/- ✅ 仅发现防护服务:prevent-malware-regeneration.service- 防护服务(正常)malware-monitor.service- 监控服务(正常)
/usr/lib/systemd/system/- ✅ 系统服务正常~/.config/systemd/user/- ✅ 目录不存在
结果:✅ 未发现恶意systemd服务
2.3 系统启动脚本
检查位置:
/etc/rc.local- ✅ 仅包含标准内容(touch /var/lock/subsys/local)/etc/rc.d/rc.local- ✅ 仅包含标准内容~/.bashrc- ✅ 正常~/.bash_profile- ✅ 正常(无恶意命令)~/.profile- ✅ 文件不存在
结果:✅ 启动脚本均为正常内容
2.4 文件系统位置
检查位置:
/tmp/- ✅ 未发现恶意文件(可疑目录已删除)/var/tmp/- ✅ 未发现恶意文件(可疑目录已删除)/dev/shm/- ✅ 未发现恶意文件/root/- ✅ 仅包含正常的脚本文件/etc/data/- ✅ 目录已被锁定
结果:✅ 文件系统中无恶意文件
3. 网络活动分析
3.1 可疑网络连接
检查是否有:
- 可疑的外部IP连接 - ✅ 未发现
- 下载恶意脚本的网络活动 - ✅ 未发现
- 与挖矿池的连接 - ✅ 未发现
- 反向shell或后门连接 - ✅ 未发现
结果:✅ 网络连接正常,无可疑活动
3.2 下载记录
检查日志中的:
- wget/curl 下载记录 - ✅ 系统日志中未发现
- 可疑URL访问 - ✅ 未发现
- 文件下载活动 - ✅ 监控脚本日志正常
结果:✅ 未发现恶意下载活动
4. 进程分析
4.1 进程树分析
关键发现:捕获到的"恶意进程"实际上是清理脚本的子进程!
示例:
- 进程PID: 1003037
- 命令:
find / -name .system3d -type f -exec rm -f {} ; - 父进程:
aggressive-malware-cleanup.sh(PID 1003009) - 工作目录:
/root - 可执行文件:
/usr/bin/find
结论:这是清理脚本在删除恶意文件时启动的正常 find 进程,不是恶意程序本身。
4.2 真正的恶意进程检查
使用精确方法检查(只检查进程名,不检查命令行):
- 方法1: 检查进程名(
ps aux | awk '{print $11}') - ✅ 未发现 - 方法2: 检查可执行文件路径 - ✅ 未发现
- 当前运行: 0个真正的恶意进程
- 恶意文件: 0个
结果:✅ 当前无真正的恶意进程在运行
5. 日志分析
5.1 系统日志
检查 /var/log/ 中的:
- secure - SSH登录和命令执行 - ✅ 未发现恶意命令记录
- messages - 系统消息 - ✅ 正常
- audit - 审计日志 - ⚠️ 服务未启用
结果:✅ 系统日志中未发现恶意活动记录
5.2 应用日志
检查应用相关的日志:
- 清理脚本日志 - ⚠️ 包含大量"恶意进程"记录(实际是误报)
- 防重生成日志 - ⚠️ 包含大量"发现恶意进程"记录(实际是误报)
- 监控日志 - ✅ 正常
关键问题:日志中的"恶意进程"记录大部分是误报,因为:
- 清理脚本使用
find / -name .system3d命令 - 这些
find进程的命令行包含.system3d关键词 - 防重感染脚本的
pgrep -f匹配到了这些进程
结果:⚠️ 日志存在误报,但真正的恶意活动已被清除
6. 安全脚本分析
6.1 清理脚本逻辑
aggressive-malware-cleanup.sh 脚本分析:
- 检测方法: 使用
pkill -9 -f匹配进程命令行 - 终止方式: 强制终止(
-9信号) - 清理策略:
- 终止恶意进程(kinsing, kdevtmpfsi, .system3d等)
- 删除恶意文件和目录
- 使用
find搜索并删除隐藏文件 - 锁定目录(
chattr +i) - 清理定时任务和启动脚本
问题:脚本使用 find / -name '.system3d' -type f -exec rm -f {} \; 时,这个 find 进程会被防重感染脚本误判为恶意进程。
6.2 防重生成脚本
prevent-reinfection.sh 脚本分析:
- 检测逻辑: 使用
pgrep -f 'kinsing|kdevtmpfsi|system3d|b4nd1d0'匹配进程 - 问题:
-f参数会匹配整个命令行,包括参数,导致误报 - 防护机制:
- 检查crontab是否被修改
- 检查.bash_profile是否被修改
- 检查恶意目录是否重新创建
- 检测并终止恶意进程
改进建议:
- 使用
pgrep -x只匹配进程名,不匹配命令行 - 或排除清理脚本的进程(通过检查父进程)
- 记录进程的完整信息以便分析
7. 调查结论
7.1 关键发现
⚠️ 重要发现:日志中的"恶意进程"大部分是误报!
通过深入分析发现:
-
误报问题:
- 防重感染脚本使用
pgrep -f 'kinsing|kdevtmpfsi|system3d'检测恶意进程 - 但清理脚本执行的命令如
find / -name .system3d -type f -exec rm -f {} ;也包含关键词.system3d - 这导致清理脚本的
find进程被误判为"恶意进程" - 实际上这些进程是清理脚本在清理恶意文件时产生的正常进程
- 防重感染脚本使用
-
真正的恶意进程:
- 当前检查未发现真正的
kinsing或kdevtmpfsi可执行文件 - 当前系统无真正的恶意进程在运行(排除误报后)
- 之前的恶意程序已被清理脚本成功清除
- 当前检查未发现真正的
-
启动源检查结果:
- ✅ 定时任务:未发现恶意定时任务,只有正常的清理脚本
- ✅ Systemd服务:只有防护服务,无恶意服务
- ✅ 启动脚本:
.bash_profile、.bashrc等均为正常内容 - ✅ 文件系统:未发现恶意可执行文件
- ✅ 网络连接:无可疑外部连接
- ✅ 容器:未使用Docker/Podman容器
- ✅ Web脚本:未发现通过Web服务器执行的恶意脚本
7.2 实际情况分析
日志显示的高频率检测实际上是:
- 清理脚本每分钟执行,使用
find命令搜索并删除恶意文件 find进程的命令行包含.system3d等关键词- 防重感染脚本每2分钟执行,使用
pgrep -f匹配包含这些关键词的进程 - 误将清理脚本的
find进程识别为"恶意进程" - 脚本记录日志并尝试终止这些进程(但由于进程很快结束,实际无影响)
真正的状态:
- ✅ 恶意程序已被成功清除
- ✅ 当前无真正的恶意进程在运行
- ✅ 清理脚本工作正常,持续清理可能的残留
- ⚠️ 日志记录存在误报,导致看起来恶意程序很活跃
7.3 恶意程序的原始来源推测
虽然当前未发现活跃的恶意程序,但从历史记录和常见攻击模式推测,可能的来源:
- SSH暴力破解:通过弱密码或密钥泄露获得SSH访问权限
- Web应用漏洞:通过Web应用(如Redis未授权访问、Web Shell等)获得执行权限
- 供应链攻击:通过被感染的依赖包或第三方脚本
- 已修复的漏洞:通过已修复的已知漏洞入侵(系统已更新)
由于恶意程序已被清除,原始入侵痕迹可能已被清理或覆盖。
8. 建议措施
8.1 立即行动
-
修复脚本误报问题 ⭐ 重要
修改
/root/scripts/prevent-reinfection.sh脚本:# 当前代码(有问题): if pgrep -f 'kinsing|kdevtmpfsi|system3d|b4nd1d0' > /dev/null; then # 这会误匹配清理脚本的find进程 fi # 建议修改为: # 方法1: 只检查进程名(更精确) if pgrep -x 'kinsing' > /dev/null || pgrep -x 'kdevtmpfsi' > /dev/null; then # 只匹配进程名,不匹配命令行 fi # 方法2: 排除清理脚本的进程 pgrep -f 'kinsing|kdevtmpfsi|system3d' | while read pid; do # 检查父进程,排除清理脚本 ppid=$(ps -o ppid= -p $pid | tr -d ' ') if ! ps -p $ppid -o cmd= | grep -qE 'cleanup|prevent'; then # 这是真正的恶意进程 kill -9 $pid fi done -
持续监控
- ✅ 继续保持清理脚本运行(已有效清除恶意程序)
- ⚠️ 注意日志中的误报,关注真正的威胁指标
- ✅ 最重要的指标:CPU使用率(当前98.5%空闲,正常)
- ✅ 系统负载(当前正常)
- ✅ 恶意文件数量(当前为0)
8.2 系统加固
-
SSH安全
- 使用密钥认证,禁用密码登录
- 限制SSH访问IP(如可能)
- 使用fail2ban防止暴力破解
-
网络安全
- 确保Redis等服务仅监听本地或使用密码
- 定期检查开放的端口和服务
- 使用防火墙限制不必要的网络访问
-
应用安全
- 保持系统和应用更新
- 使用最小权限原则
- 定期进行安全审计
8.3 监控优化
-
改进日志记录 ⭐ 推荐
建议修改脚本,添加更详细的进程信息:
# 记录进程详细信息 pgrep -f 'kinsing|kdevtmpfsi' | while read pid; do cmd=$(ps -p $pid -o cmd=) ppid=$(ps -p $pid -o ppid=) pcmd=$(ps -p $ppid -o cmd=) log "发现进程 PID=$pid, CMD=$cmd, PPID=$ppid, PCMD=$pcmd" # 只终止真正的恶意进程(排除清理脚本的子进程) if ! echo "$pcmd" | grep -qE 'cleanup|prevent'; then kill -9 $pid log "已终止真正的恶意进程: $pid" else log "跳过清理脚本的子进程: $pid (父进程: $pcmd)" fi done -
资源监控 ✅ 当前正常
- ✅ CPU使用率:98.5% 空闲(挖矿程序会导致接近100%使用)
- ✅ 系统负载:0.35(正常)
- ✅ 内存使用:正常
- ⚠️ 建议:设置CPU使用率告警(如>80%持续5分钟)
- ⚠️ 建议:监控网络流量(挖矿程序需要连接挖矿池)
8.4 长期建议
-
备份和恢复
- 建立定期备份机制
- 测试恢复流程
- 保存系统配置的干净副本
-
安全审计
- 定期进行安全审计
- 检查系统日志
- 关注安全公告和更新
-
事件响应
- 建立事件响应流程
- 记录所有安全事件
- 分析攻击模式和来源
报告生成时间: 2025年1月1日
调查人员: AI Assistant
服务器: 45.192.99.48