lovart3/恶意程序来源调查报告.md
Your Name fea5e0fac5 优化图片压缩技术:避免双重压缩,保持JPG/PNG格式
- 客户端压缩:保持原格式(JPG保持JPG,PNG保持PNG),不再强制转换为WebP
- 提高压缩质量:最低质量从0.6提高到0.90,避免画质损失
- 启用高质量图像平滑:减少锯齿,提升画质
- 服务器端智能优化:使用MozJPEG和PNG优化算法
- 避免双重压缩:小文件(<3MB)跳过服务器端优化,只有优化效果明显(>5%)才使用
- 优化策略:优先缩小尺寸而不是降低质量,留余量给服务器端优化

技术改进:
- JPEG: MozJPEG编码器,质量92%,渐进式,优化扫描
- PNG: 压缩级别6,自适应过滤,调色板优化
- 智能判断:避免不必要的双重压缩,保护画质
2026-01-02 20:46:01 +08:00

12 KiB
Raw Permalink Blame History

恶意程序来源深入调查报告

调查时间

2025年1月1日

调查目的

深入调查 kinsing、kdevtmpfsi 等恶意挖矿程序的启动来源和传播途径。


执行摘要

✅ 好消息:恶意程序已被成功清除

当前系统状态:

  • ✅ 真正的恶意进程数: 0
  • ✅ 恶意文件数: 0
  • ✅ CPU空闲率: 98.5%(挖矿程序会导致接近100%使用率)
  • ✅ 系统负载: 正常(0.35)
  • ✅ 网络连接: 无异常

⚠️ 重要发现:日志存在误报

关键问题:

  • 日志中显示的"恶意进程"检测实际上大部分是误报
  • 清理脚本使用 find / -name .system3d 命令时,产生的 find 进程被防重感染脚本误判为恶意进程
  • 防重感染脚本使用 pgrep -f 匹配命令行,导致误匹配清理脚本的子进程

实际情况:

  • 真正的恶意程序已被清理脚本成功清除
  • 当前系统无真正的恶意进程在运行
  • 所有启动源(定时任务、systemd服务、启动脚本等)均已检查,均为正常
  • 日志的高频率检测是误报,不是真正的威胁

📋 建议

  1. 立即行动:修复脚本误报问题(使用更精确的检测方法)
  2. 持续监控:关注CPU使用率等真实指标,而不是误报日志
  3. 系统加固:继续保持现有安全措施,加强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 信号)
  • 清理策略:
    1. 终止恶意进程(kinsing, kdevtmpfsi, .system3d等)
    2. 删除恶意文件和目录
    3. 使用 find 搜索并删除隐藏文件
    4. 锁定目录(chattr +i)
    5. 清理定时任务和启动脚本

问题:脚本使用 find / -name '.system3d' -type f -exec rm -f {} \; 时,这个 find 进程会被防重感染脚本误判为恶意进程。

6.2 防重生成脚本

prevent-reinfection.sh 脚本分析:

  • 检测逻辑: 使用 pgrep -f 'kinsing|kdevtmpfsi|system3d|b4nd1d0' 匹配进程
  • 问题: -f 参数会匹配整个命令行,包括参数,导致误报
  • 防护机制:
    1. 检查crontab是否被修改
    2. 检查.bash_profile是否被修改
    3. 检查恶意目录是否重新创建
    4. 检测并终止恶意进程

改进建议:

  • 使用 pgrep -x 只匹配进程名,不匹配命令行
  • 或排除清理脚本的进程(通过检查父进程)
  • 记录进程的完整信息以便分析

7. 调查结论

7.1 关键发现

⚠️ 重要发现:日志中的"恶意进程"大部分是误报!

通过深入分析发现:

  1. 误报问题:

    • 防重感染脚本使用 pgrep -f 'kinsing|kdevtmpfsi|system3d' 检测恶意进程
    • 但清理脚本执行的命令如 find / -name .system3d -type f -exec rm -f {} ; 也包含关键词 .system3d
    • 这导致清理脚本的 find 进程被误判为"恶意进程"
    • 实际上这些进程是清理脚本在清理恶意文件时产生的正常进程
  2. 真正的恶意进程:

    • 当前检查未发现真正的 kinsing 或 kdevtmpfsi 可执行文件
    • 当前系统无真正的恶意进程在运行(排除误报后)
    • 之前的恶意程序已被清理脚本成功清除
  3. 启动源检查结果:

    • ✅ 定时任务:未发现恶意定时任务,只有正常的清理脚本
    • ✅ Systemd服务:只有防护服务,无恶意服务
    • ✅ 启动脚本:.bash_profile、.bashrc 等均为正常内容
    • ✅ 文件系统:未发现恶意可执行文件
    • ✅ 网络连接:无可疑外部连接
    • ✅ 容器:未使用Docker/Podman容器
    • ✅ Web脚本:未发现通过Web服务器执行的恶意脚本

7.2 实际情况分析

日志显示的高频率检测实际上是:

  1. 清理脚本每分钟执行,使用 find 命令搜索并删除恶意文件
  2. find 进程的命令行包含 .system3d 等关键词
  3. 防重感染脚本每2分钟执行,使用 pgrep -f 匹配包含这些关键词的进程
  4. 误将清理脚本的 find 进程识别为"恶意进程"
  5. 脚本记录日志并尝试终止这些进程(但由于进程很快结束,实际无影响)

真正的状态:

  • ✅ 恶意程序已被成功清除
  • ✅ 当前无真正的恶意进程在运行
  • ✅ 清理脚本工作正常,持续清理可能的残留
  • ⚠️ 日志记录存在误报,导致看起来恶意程序很活跃

7.3 恶意程序的原始来源推测

虽然当前未发现活跃的恶意程序,但从历史记录和常见攻击模式推测,可能的来源:

  1. SSH暴力破解:通过弱密码或密钥泄露获得SSH访问权限
  2. Web应用漏洞:通过Web应用(如Redis未授权访问、Web Shell等)获得执行权限
  3. 供应链攻击:通过被感染的依赖包或第三方脚本
  4. 已修复的漏洞:通过已修复的已知漏洞入侵(系统已更新)

由于恶意程序已被清除,原始入侵痕迹可能已被清理或覆盖。


8. 建议措施

8.1 立即行动

  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
    
  2. 持续监控

    • ✅ 继续保持清理脚本运行(已有效清除恶意程序)
    • ⚠️ 注意日志中的误报,关注真正的威胁指标
    • ✅ 最重要的指标:CPU使用率(当前98.5%空闲,正常)
    • ✅ 系统负载(当前正常)
    • ✅ 恶意文件数量(当前为0)

8.2 系统加固

  1. SSH安全

    • 使用密钥认证,禁用密码登录
    • 限制SSH访问IP(如可能)
    • 使用fail2ban防止暴力破解
  2. 网络安全

    • 确保Redis等服务仅监听本地或使用密码
    • 定期检查开放的端口和服务
    • 使用防火墙限制不必要的网络访问
  3. 应用安全

    • 保持系统和应用更新
    • 使用最小权限原则
    • 定期进行安全审计

8.3 监控优化

  1. 改进日志记录 ⭐ 推荐

    建议修改脚本,添加更详细的进程信息:

    # 记录进程详细信息
    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
    
  2. 资源监控 ✅ 当前正常

    • ✅ CPU使用率:98.5% 空闲(挖矿程序会导致接近100%使用)
    • ✅ 系统负载:0.35(正常)
    • ✅ 内存使用:正常
    • ⚠️ 建议:设置CPU使用率告警(如>80%持续5分钟)
    • ⚠️ 建议:监控网络流量(挖矿程序需要连接挖矿池)

8.4 长期建议

  1. 备份和恢复

    • 建立定期备份机制
    • 测试恢复流程
    • 保存系统配置的干净副本
  2. 安全审计

    • 定期进行安全审计
    • 检查系统日志
    • 关注安全公告和更新
  3. 事件响应

    • 建立事件响应流程
    • 记录所有安全事件
    • 分析攻击模式和来源

报告生成时间: 2025年1月1日
调查人员: AI Assistant
服务器: 45.192.99.48