ubuntu服务器木马类挖矿程序排查、及安全管理总结

news/2024/12/17 6:01:33/
  • 版本 24.04

由于GPU多卡服务器多人使用,需要链接隧道ssh等,容易中招挖矿脚本。

总的思路是,顺着进程的PID回溯最终的程序运行起点,这里可以先看一下日志:

journalctl -u PID

通过 PID 精确定位进程的信息,包括其启动命令、用户等。

ps -ef | grep PID

也可以是命令本身:

ps -ef | grep python

1. 基本排查

1.1 Top命令

这个是看cpu进程的命令,

一般程序的进程不可能100%, 如果是多核,那么多个100%, 就是40个核长期跑满,就是4000%

就是有脚本启动了程序长期高负载占用cpu。

1.2 Nvidia-smi命令

如果发现显卡被未知程序长期占用,那肯定也是挖矿程序

2. 删除木马

用top确定进程后,如果删除后又出现,说明有其他程序在定时启动它,需要排查隐藏的文件。

2.1 查询定时启动程序

  • 定时任务文件包括 /var/spool/cron/root和 /etc/crontab, 使用vi或vim修改时会提示无法修改(文件被锁定了),使用chattr可进行解锁,使用lsattr可以查看文件的锁定属性

crontab -l # 查看所有定时器

crontab -r # 全部清除定时任务

crontab -e # 编辑定时器

  • 也可以通过文件查找

ubuntu的/etc目录下有cron.weekly、cron.daily、cron.hourly等存放定时任务的文件夹,

里面的脚本是否有/bin下的文件记录,就是可疑文件

2.2 查询守护进程

通过PID查看进程树:

systemctl status PID #这一步主要是插文件位置和守护进程的PID

strace -p

也可以:

cat /proc//stat

如果PPID(父进程 ID) 是 init(PID=1),说明它可能是一个守护进程。
如果TTY 字段是 0 或 ?,通常表明它是后台运行的。

找到守护进程的PID后,

systemctl stop PID #停止

systemctl disable PID #暂停开机启动

find / -name PID #找到位置

rm /usr/lib/systemd/system/.service #删掉

3. 常见报错 (有些忘记记录了,后面有再更新)

打开cmd出现:

ERROR: ld.so: object ‘/usr/local/lib/libSSL2.3.0.so’ from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored

分析:

这个是开机启动的服务,即病毒通过守护进程启动,但启动的程序被先前删除了无法启动,就报了上面的错。这里脚本会随机命名一个进程(一般是一些系统程序名)运行

解决方法:

1.停止守护进程服务

2.删除守护进程

4. 总结

4.1 解决思路

如果只是简单的病毒,删除PID运行的文件即可

进一步就是定时启动程序,及开机启动程序(守护进程-daemon, 也叫系统服务,是指在后台运行且不直接与用户交互的进程)

最后就是排查日志,另外做好权限管理,账户的密码尽量复杂一些,跑程序的普通用户系统文件的改动权限(w)不需要给, 仅读(r)或运行(x)就行

4.1 工作账户权限设置

  • 工作账户只拥有访问必要文件的权限,例如读取配置文件、写入日志文件等

chmod 700 /path/to/program

  • 将敏感文件(如配置文件中的密钥)限制为可读:

chmod 600 /path/to/config

  • 如果要用到root权限(sudo),在/etc/sudoers设置可用的特殊命令

  • 未来计划,用docker容器将工作程序与系统隔离

reference

https://blog.csdn.net/ouxx2009/article/details/123479424

https://blog.csdn.net/weixin_43312117/article/details/143647187


http://www.ppmy.cn/news/1555788.html

相关文章

(Windows系统)详细介绍Windows系统 含有英文版

在上期中小亦为大家介绍了MacOS系统,这期小亦就带大家继续详细介绍一下,大家熟知的Windows,话不多说~ Windows系统详细介绍 Windows操作系统,作为微软公司(Microsoft)的旗舰产品,自1985年问世以…

链表的应用

尾删 int tail_del (linkListPtr S) { if(NULL S || empty(S)) { printf("失败\n"); return 0; } linkListPtr q S; for(int i0 ; i<S->len-1;i) { qq->next; } free(q->next); q->n…

深度学习实战101-基于生成对抗网络GAN在医学核磁共振跨模态的应用,以及性能优化,并结合代码实例进行说明

大家好,我是微学AI,今天给大家介绍一下深度学习实战101-基于生成对抗网络GAN在医学核磁共振跨模态的应用,以及性能优化,并结合代码实例进行说明。在医学影像领域,跨模态重建是一项前沿技术,旨在解决多模态影像获取受限的问题。这项技术的核心目标是 利用现有的一种模态影…

scala泛型的特质:Trait

泛型特质指的是把泛型定义到特质的声明上, 即:该特质中的成员的参数类型是由泛型来决定的. 在定义泛型特质的子类或者子单例对象时, 明确具体的数据类型. 定义格式: 1)trait 类名[T] 2)trait 类名[S,T...] 演示代码如下&#xff1a; object demo18_3 {trait Logger[x]{val…

架构12-容器间网络

零、文章目录 架构12-容器间网络 1、Linux网络虚拟化 &#xff08;1&#xff09;网络通信模型 网络通信模型概述 OSI 七层模型 和 TCP/IP 四层模型 是理解网络通信的基础。Linux 网络协议栈&#xff08;简称“网络栈”&#xff09;呈现“逐层调用&#xff0c;逐层封装”的特…

加载文件到docker中的mysql上

一 非docker 二 docker 2.1 先上传文件到docker容器中 docker cp 文件路径及文件 容器名:存放的路径 2.2 进入docker容器 docker exec -it 容器id /bin/bash 2.2 加载文件到数据库 1 不需要连接mqsql mysql -u root -p 数据库名 &…

ACL(访问控制列表)

ACL技术概述 • 随着网络的飞速发展&#xff0c;网络安全和网络服务质量 QoS &#xff08; Quality of Service &#xff09;问题日益突出。 ▫ 园区重要服务器资源被随意访问&#xff0c;园区机密信息容易泄露&#xff0c;造成安全隐患。 ▫ Internet 病毒肆意侵略园区内网&am…

如何进行mysql慢查询日志设置以及日志管理与分析

1、引言 MySQL的慢查询日志是MySQL提供的一种日志记录功能&#xff0c;它用于记录在MySQL中响应时间超过设定阈值的SQL语句。 主要作用如下&#xff1a; 发现性能问题&#xff1a;通过分析慢查询日志&#xff0c;可以找出执行时间较长的SQL语句&#xff0c;从而…