华为云云耀云服务器L实例评测|服务器反挖矿防护指南

前言

本文为华为云云耀云服务器L实例测评文章,测评内容是 云耀云服务器L实例 反挖矿防护指南

系统配置:2核2G 3M CentOS7.9

之前的文章中『一文教你如何防御数据库恶意攻击』,我们讲到黑客如何通过攻击数据库来获取权限,以及我们需要如何处理防护云耀云服务器L实例

接下来我们将要讲述另外一种黑客攻击的手段 —— 挖矿,本文将从黑客如何入侵,布置挖矿程序入手,逐步讲解我们应该如何排查挖矿程序,根除挖矿程序

注意:一般来说,普通服务器仅支持安全告警检测,不支持安全告警处理。如果您需要安全告警处理,需要使用防病毒版、高级版或企业版来加强防护

挖矿木马

简述

挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,严重影响其他应用的正常运行。

黑客为了得到更多的算力资源,一般都会对全网进行无差别扫描,同时利用SSH爆破和漏洞利用等手段攻击主机

部分挖矿木马还具备蠕虫化的特点,在主机被成功入侵之后,挖矿木马还会向内网渗透,并在被入侵服务器上持久化驻留以获取最大收益。

同时挖矿程序具有联动作用,在清理过程中会存在处理不及时或清理不干净导致挖矿病毒反复发生、出现恶意脚本替换系统命令的现象,从而导致执行系统命令时触发恶意脚本执行(例如:xorddos)。因此,需要在挖矿程序的一个执行周期内,尽快将被入侵服务器上的木马程序和持续化后门清理干净,否则容易导致挖矿病毒频繁复发

部门木马会对系统命令进行篡改(阻止你查看恶意进程),执行 rpm -Va |grep bin/ 可查看系统文件更改情况:missing表示命令找不到了,5代表MD5发送了改变,有可能对应的命令文件被替换或者被修改了 M则表示命令的权限发生了修改,找到异常命令后然后执行stat /usr/bin/kill 查看文件的具体变更时间。

处理方法

1. 及时隔离主机

部分带有蠕虫功能的挖矿木马在取得主机的控制权后,会继续对公网的其他主机,或者以当前主机作为跳板机对同一局域网内的其他主机进行横向渗透,所以在发现主机被植入挖矿木马后,在不影响业务正常运行的前提下,应该及时隔离受感染的主机,然后进行下一步分析和清除工作。

2. 阻断异常网络通信

挖矿木马不仅会连接矿池,还有可能会连接黑客的C2服务器,接收并执行C2指令、投递其他恶意木马,所以需要及时进行网络阻断。

(1)检查主机防火墙当前生效的iptables规则中是否存在业务范围之外的可疑地址和端口,它们可能是挖矿木马的矿池或C2地址

iptables -L -n

(2)从iptables规则中清除可疑地址和端口

vi /etc/sysconfig/iptables

(3)阻断挖矿木马的网络通信

iptables -A INPUT -s 可疑地址 -j DROP
iptables -A OUTPUT -d 可疑地址 -j DROP

3. 清除计划任务

大部分挖矿木马会通过在受感染主机中写入计划任务实现持久化如果仅仅只是清除挖矿进程,无法将其根除,到了预设的时间点,系统会通过计划任务从黑客的C2服务器重新下载并执行挖矿木马

查看系统当前用户的计划任务:

crontab -l

查看系统特定用户的计划任务:

crontab -u username -l

查看其他计划任务文件:

cat /etc/crontab
cat /var/spool/cron
cat /etc/anacrontab
cat /etc/cron.d/
cat /etc/cron.daily/
cat /etc/cron.hourly/
cat /etc/cron.weekly/
cat /etc/cron.monthly/
cat /var/spool/cron/

4. 清除启动项

除了计划任务,挖矿木马通过添加启动项同样能实现持久化。

可以使用如下命令查看开机启动项中是否有异常的启动服务。

CentOS7以下版本:

chkconfig –list

CentOS7及以上版本:

systemctl list-unit-files

如果发现有恶意启动项,可以通过如下命令进行关闭:

CentOS7以下版本:

chkconfig 服务名 off

CentOS7及以上版本:

systemctl disable <服务名>

另外,还需要仔细排查以下目录及文件,及时删除可疑的启动项:

/usr/lib/systemd/system
/usr/lib/systemd/system/multi-user.target.wants
/etc/rc.local
/etc/inittab
/etc/rc0.d/
/etc/rc1.d/
/etc/rc2.d/
/etc/rc3.d/
/etc/rc4.d/
/etc/rc5.d/
/etc/rc6.d/
/etc/rc.d/

排查的时候,可以按照文件修改时间来排序,重点排查近期被创建服务项。

5. 清除预加载so

通过配置/etc/ld.so.preload,可以自定义程序运行前优先加载的动态链接库,部分木马通过修改该文件,添加恶意so文件,从而实现挖矿进程的隐藏等恶意功能。

检查/etc/ld.so.preload(该文件默认为空),清除异常的动态链接库。可以执行> /etc/ld.so.preload命令进行清除。

6. 清除SSH公钥

挖矿木马通常还会在~/.ssh/authoruzed_keys文件中写入黑客的SSH公钥,这样子就算用户将挖矿木马清除得一干二净,黑客还是可以免密登陆该主机,这也是常见的保持服务器控制权的手段。

排查~/.ssh/authorized_keys文件,如果发现可疑的SSH公钥,直接删除。

7. 清除挖矿木马

(1)清除挖矿进程

执行如下命令排查系统中占用大量CPU资源的进程

# 实时查看进程
top -c
# 查看全部进程
ps -ef
# 获取挖矿进程文件路径
ls -l /proc/$PID/exe
# 删除挖矿程序进程
kill -9 $PID
# 最后删除挖矿程序文件

(2)清除其它相关恶意进程

恶意进程与外部的C2服务器进行通信时,往往会开启端口进行监听。执行如下命令,查看服务器是否有未被授权的端口被监听。

netstat -antp

然后按照第一步的方法清除进程及程序即可

可以通过如下命令排查近期新增的文件,清除相关木马

find /etc -ctime -2 (这里指定目录为/etc,获取近2天内的新增文件)
lsof -c kinsing (这里要查看文件名为kinsing的相关进程信息)

其他有效命令

find /etc/ -name '*' | xargs grep 'kinsing' -n 2>/dev/null  (在/etc/目录下搜索包含木马信息kinsing的文件,/etc/可替换为其他目录)while true; do netstat -anplt | grep 10.112.85.71; sleep 1; done (根据矿池地址查找进程,矿池地址在主机安全-恶意请求中有告警)

实战演练

之前博主的服务器经常被异常登录,通过查询云服务器监控控制台,发现攻击者 IP 地址非常多,包括很多国家,美国,德国,英国(肉鸡网络),但是登录用户很固定,都是 postgres,故据此进行如下处理。

image-20230912102329561

排查木马

正常来说,我们使用 top 命令查找占用 CPU 高的进程,木马程序占用 CPU 会很高,然后就可以开快速定位,但是博主使用这种方法却失效了,没有找到占用 CPU 高的进程。可能是因为植入的木马程序是定时挖矿,并不是一直占用 CPU,当然也可能是系统命令被木马篡改了,从而隐藏了木马进程的踪迹。只能使用下面搜索进程方法

image-20230912104837162

使用如下命令查找与 postgres 相关的进程

ps -ef | grep post

image-20230912104124720

清除木马

我们看到有些进程后面带了一大堆参数-t 515 -f 1 -s 12 -S 8 -p 0 -d 1 p ip,如果比较敏感的话我们就可以猜出来这是木马了,很明显我在使用kill -9 <PID> 命令删除进程之后,隔了大概 20 秒,该进程又重新启动,确认是木马无疑。或者说我们对虚拟币种比较熟悉的情况下,也可以看出 blitz 是一种虚拟币。

确定木马进程之后流程就会顺畅很多,按照上面的步骤处理即可,但是注意,并不是所有木马程序入侵都需要全部处理步骤,酌情处理即可。

博主就是在处理木马的过程中,中间业务需要重启服务器,重启之后就发现木马程序消失,并且木马程序已经销毁,说明入侵者没有启用自启动,没有更深度的入侵

云耀云服务器L实例

基础监控

控制台:弹性云服务器 - 控制台 (huaweicloud.com)

这里要推荐华为云的防护监控服务,点击进入基础监控服务页面,我们可以查看不同周期的 CPU 使用率,磁盘带宽网络流出,直观清晰

image-20230912103351547

详细监控

控制台:云监控服务 - 控制台 (huaweicloud.com)

如果您觉得基础监控的服务不能满足需求,可以进入详细监控的控制台页面,可以实时监控操作系统,基础监控,进程监控,全方位监控防护服务器。

如果防护级别还是不够,您可以购置防病毒版、高级版或企业版来加强防护

image-20230912103850075

云防护文档

这里列出华为云及其他云服务厂商的挖矿防护文档,供大家参考

华为云:处置挖矿木马实践手册

腾讯云:挖矿木马自助清理手册

阿里云:挖矿程序处理最佳实践

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pyarmor 加密许可证的使用

一 pyarmor 许可证的用处 文档&#xff1a;5. 许可模式和许可证 — Pyarmor 8.3.6 文档 试用版本有如下的限制&#xff1a; 加密功能对脚本大小有限制&#xff0c;不能加密超过限制的大脚本。 混淆字符串功能在试用版中无法使用。 RFT 加密模式&#xff0c;BCC 加密模式在试…

《确保安全:PostgreSQL安全配置与最佳实践》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

线性代数的本质(十)——矩阵分解

文章目录 矩阵分解LU分解QR分解特征值分解奇异值分解奇异值分解矩阵的基本子空间奇异值分解的性质矩阵的外积展开式 矩阵分解 矩阵的因式分解是把矩阵表示为多个矩阵的乘积&#xff0c;这种结构更便于理解和计算。 LU分解 设 A A A 是 m n m\times n mn 矩阵&#xff0c;…

【网络编程】深入理解TCP协议一(三次握手四次挥手、标记位、确认应答机制、超时重传机制)

TCP协议 1.三次握手四次挥手2.TCP协议段格式3.标记位介绍4.确认应答机制5.超时重传机制 1.三次握手四次挥手 当客户端发起连接请求时&#xff0c;SYN需要被设置位1&#xff0c;告诉服务器客户端希望建立一个链接服务器收到响应之后会回复 SYNACK&#xff0c;表示确认了客户端地…

利用Semaphore实现多线程调用接口A且限制接口A的每秒QPS为10

前段时间在群里面发现有个群友抛出一个实际需求&#xff1a;需要通过一个接口拉取数据&#xff0c;这个接口有每秒10QPS限制&#xff0c;请问如何实现数据拉去效率最大化且限制调用拉取接口每秒10PQPS&#xff1f;我觉得这个需求挺有意思的&#xff0c;跟某群友讨论&#xff0c…

莫比乌斯召回系统介绍

当前召回系统只能召回相关性高的广告&#xff0c;但不能保证该广告变现能力强。莫比乌斯做了如下两点创新&#xff1a; 在召回阶段&#xff0c;引入CPM等业务指标作为召回依据在召回阶段&#xff0c;引入CTR模型&#xff0c;从而召回更多相关性高且变现能力强的广告 参考 百度…

leetcode 26.删除有序数组中的重复项

给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0c;你需要做…

5.k8s jenkins集成k8s一键发布案例

文章目录 前言一、jenkins配置1.1 jenkins配置git1.2 jenkins 配置maven1.3 jenkins配置java 二、jenkins流水线配置2.1.新增项目2.2 springboot项目配置git仓库2.3 springboot项目配置maven打包2.4 系统配置 ssh到hadoop1配置&#xff0c;也就是k8s的master节点2.6 springboot…

【多线程】常见的锁策略

常见的锁策略 1. 乐观锁 vs 悲观锁2. 读写锁 vs 普通互斥锁3. 重量级锁 vs 轻量级锁4. 自旋锁&#xff08;Spin Lock&#xff09;vs 挂起等待锁5. 公平锁 vs 非公平锁6. 可重入锁 vs 不可重入锁7. Synchronized8. 相关面试题 1. 乐观锁 vs 悲观锁 悲观锁&#xff1a; 总是假设…

安防监控系统/视频云存储EasyCVR平台视频无法播放是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

誉天在线项目~ElementPlus Tag标签用法

效果图 页面展现 <el-form-item label"课程标签"><el-tagv-for"tag in dynamicTags":key"tag"class"mx-1"closable:disable-transitions"false"close"handleClose(tag)"style"margin:5px;">…

Arcgis多值提取至点所有波段数值一样

Arcgis多值提取至点所有波段数值一样 问题描述 进行多值提取多波段后的结果&#xff0c;所有波段数值都是一样的。 原因 操作流程问题&#xff0c;输入栅格只选择了一个栅格文件 解决方案 实际上&#xff0c;每个波段都会对应一个栅格文件&#xff0c;要把这些添加进去 这…

进程地址空间(Linux虚拟内存机制)

文章目录 一.Linux进程地址空间的结构二.Linux管理进程地址空间的方式三.Linux进程使用物理内存的模型四.进程地址空间的存在意义 本章理论基于32位平台的Linux–kernel 2.6.32版本内核 一.Linux进程地址空间的结构 为了保证内存安全,现代操作系统不允许应用程序(进程)直接访问…

(二十八)大数据实战——Flume数据采集之kafka数据生产与消费集成案例

前言 本节内容我们主要介绍一下flume数据采集和kafka消息中间键的整合。通过flume监听nc端口的数据&#xff0c;将数据发送到kafka消息的first主题中&#xff0c;然后在通过flume消费kafka中的主题消息&#xff0c;将消费到的消息打印到控制台上。集成使用flume作为kafka的生产…

基于Protege的知识建模实战

一.Protege简介、用途和特点 1.Protege简介 Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具&#xff0c;也是基于知识的编辑器&#xff0c;属于开放源代码软件。这个软件主要用于语义网中本体的构建&#xff0c;是语义网中本体构建的核心开发…

高阶导数的概念与公式

目录 高阶导数的概念 常用的高阶导数的公式 隐函数补充 反函数补充 高阶导数的概念 高阶导数是指一阶或二阶及以上的导数。这些导数可以通过连续进行一阶导数的计算来得到。然而&#xff0c;实际计算高阶导数时&#xff0c;存在一些问题&#xff0c;例如对抽象函数高阶导数…

西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(一)

西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(一) 第一部分:组态配置 具体步骤可参考以下内容: 如下图所示,新建一个项目后,添加一个安全型PLC,这里以1516F-3 PN/DP为例进行说明, 如下图所示,添加CPU完成后,可以看到左侧的项目树中比普通的PLC多了几个选项…

leetcode 232 用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头…

【Docker】Docker简介

Docker简介 &#x1f4cb;导航 1. Docker简介1.1 什么是Docker&#xff1f;1.2 什么是容器&#xff1f;1.3 容器的优势&#xff1f;1.4 Docker的优势&#xff1f;1.5 虚拟技术与容器技术Docker的区别&#xff1f;1.6 为什么学习Docker? 2. 安装Docker3. Docker架构4. Docker命…

Vue3样式绑定

文章目录 Vue3样式绑定1. class 属性绑定1.1 v-bind:class 设置一个对象&#xff0c;从而动态的切换 class1.2 在对象中传入更多属性用来动态切换多个 class1.3 直接绑定数据里的一个对象1.4 绑定一个返回对象的计算属性。这是一个常用且强大的模式1. 5 数据语法1.6 errorClass…