关于我的阿里云服务器被入侵 - 分析报告

news2024/12/26 22:50:57

目录

  • 引言
  • 一、事件概述
    • 1. 异地登陆
    • 2. 挖矿程序
    • 3. 密钥未注册
    • 4. 勒索病毒
  • 二、问题分析
    • 1. 异地登陆
    • 2. 挖矿程序
    • 3. 密钥登录失效(密钥未注册)
    • 4. 勒索病毒
  • 三、安全知识讲解
    • 1. 密钥登录
  • 四、总结

引言

因为是第一次租云服务器,所以出现了很多的问题,最严重的就是安全问题了,而且问题还是很多的。因为黑客会用各种方式入侵你的服务器,来使用你的服务器资源挖矿,或者获取你服务器的信息,甚至将你的数据锁住来让你给他转账。这些问题真的防不胜防,身为一个程序员,在进行项目开发的时候,首先要考虑的就是安全问题,接下来我将以时间线来叙述我遇到的安全问题,以及怎么提防。

一、事件概述

1. 异地登陆

因为是第一次租服务器,啥都不懂,只知道设置个密码,通过密码登录Workbench远程连接,属于是小白一个。之后登录云服务器管理控制台时,显示我的服务器存在风险,内容是异地登陆,ip显示广州(再之后又有陆续的云南、咸阳、香港等),我当时觉得自我感觉良好,因为觉得你登就登呗,我服务器又没啥你用的,而且也没影响我的正常使用,就没管了。
之后我不知道是安全意识上来了可能,也可能是因为觉得使用密钥登录很帅,就学人家,把密码登录的方式禁用了,改为使用密钥登录,也是防止异地登录的原因。

2. 挖矿程序

之后我的服务器就连接不上了,我很疑惑,觉得密钥是对的啊,通过XShell7和CLion连接不上,但好像通过有时Workbench能连上,有时使用密码都连不上,这就不知道怎么回事了。然后我发现我的CPU使用率异常的高,高达90%多,当时不知道怎么回事,以为是我的程序的问题,因为对这CPU资源也没啥概念,觉得就是个2核2G的服务器,觉得应该就是这样的,当时还想着升级一下服务器,但太贵了,就打消了念头。当时是通过反复的关机重启,然后让我的服务器能正常的工作。之后通过云安全中心看到检测到了挖矿程序,才明白,但为什么还能使用我的服务器。

3. 密钥未注册

使用密钥登录刚开始的时候还是好的,不过之后就出现了使用密钥登录不了的情况,这让我感觉有点疑惑,因为我也不知道密钥登录的原理是什么,所以自己也是一头雾水。我以为是自己的密钥有问题,因为用XShell7远程连接时,显示密钥未注册。所以我就从控制台上把密钥解绑然后删除,然后重新创建一个密钥登录,第一次成功了,过了一会就又连接不上服务器了,又是刚才的问题,而且在这期间,居然也出现了异地登陆出现,我原以为他们是通过暴力枚举连接上我的服务器,但是现在我禁用了密码登录的方式,改为使用密钥登录,但也不行,这我就更不明白了。我就网上各种找原因,也没找到解决办法,自己没有从根上解决这个问题。然后就没办法,自己的学习开发之路不能停,所以只能改为密码登录了,通过VNC远程连接设置。
之后,我依然倔强的禁用了密码登录方式,使用密钥登录,因为这期间也知道了密钥登陆的大概原理,觉得应该是创建密钥时,把公钥文件没写进磁盘中(当时可不知道是公钥),所以我就看网上的教程,通过ssh命令的方式生成密钥对,然后将公钥存放到root下的.ssh文件夹里,把私钥存放到本地磁盘。

4. 勒索病毒

之后的某一天,又发生了同样的问题,使用密钥登录不了了,我熟练的通过解绑创建密钥对的方式,重新登录结果不行,然后折腾了一两天觉得还是不能耽误开发,就想着改用密码登陆吧,好歹能连上服务器,我熟练的使用VNC修改配置文件,保存时,发现该文件是只读文件,我一下子就纳闷了,然后我使用ls -l 查看文件权限,发现确实没有写权限(之后发现我所有的文件都没有写权限,即使我是root用户也添加不了写权限),我就是使用chmod命令修改权限,结果失败了,提示什么什么ReadOnly,我就想我是root用户诶,我为什么修改不了,这是我从未遇到的问题,然后就网上查资料看文档,也没解决啥,我不知咋的就跑到root文件夹里,在里面发现了两个文件JKkaqk.lockedfiles'Your data has been locked!.txt',然后我就打开后一个文件,里面的内容是这样的:
在这里插入图片描述

大概的翻译如下图,主要的意思就是:你的数据被锁住了,但没有被泄露,如果你有备份,你可以自行恢复(因为我可以直接初始化磁盘,但是所有的源码和依赖库就都没了)。你需要支付1.00monero币(加密货币,约3400多人民币)到一个钱包地址,然后将我的id和支付截图发送到他的邮箱,就会解锁我的数据。
在这里插入图片描述

然后我就意识到了我的服务器被黑客入侵了,我的第一反应就是绝对不向你屈服,所以就没考虑这方面的事,3400多RMB的事是我后来感兴趣才查的,所以不是这个原因,当时想的是一毛钱也不给你。然后就去网上查资料,这事折腾了一两天,是第二天才知道被入侵了,第一天晚上使用免费的病毒检测,才发现自己服务器上全是病毒:持久化后门紧急安全事件:自启动后门Redis配置不当致使Root被提权修改装载库文件,然后第二天在网上查了一天,才知道可以通过初始化磁盘的方式来解锁,代价就是我的所有源码和安装的依赖库都要重新来一遍。这时自己才意识到安全问题的重要性,幸好自己是远程开发,源码都在本地,只不过上传到服务器运行而已,但要在服务器有那问题就真的太严重了,还有就是安装的依赖库都要重新安装。我就通过云服务器管理控制台初始化了我的磁盘,然后禁用密码登录,采用密钥登录,这期间我才了解到密钥登陆的原理,知道了redis的一些漏洞的处理,比如修改端口、设置指定ip、用其他用户运行,开放仅使用到的端口号,运用我所知道的知识,把我的服务器保护的滴水不漏。
自从上一次入侵到现在,没有遇到过什么安全问题,而且自己的密钥也是一直能够正常使用,也没遇到过什么问题了。

二、问题分析

1. 异地登陆

原因: 应该是使用暴力穷举我的密码,然后登录。因为服务器连接不比我们正常的登录,没有输入密码限制

处理方式: 禁用密码登录,改为密钥登录。

做法: 修改/etc/ssh/sshd_config中的PasswordAuthentication 设置为no,这样就会禁用密码登录方法。然后可以通过阿里云控制台生成密钥对,也可以通过服务器中的ssh命令,将私钥保存到本地,公钥拷贝到服务器的~/.ssh/authorized_keys文件中就行。需要在/etc/ssh/sshd_config中添加如下语句:RSAAuthentication yesPubkeyAuthentication yes

参考博客:Linux设置密钥登录、使用第三方客户端通过密钥认证登录Linux实例 | 阿里云

在这里插入图片描述

2. 挖矿程序

原因: 这个时候已经执行了异地登陆的处理操作了,但还是入侵了。应该是之前留下了后门,因为我当时检测到了什么装载库被修改、持久化后门什么的。(因为处理这些问题,要付费自己就没管了hh)

处理方式: 刚租服务器时,就得把安全做到位,防止被人安插后门、修改程序啥的。自从磁盘初始化后也没检测到这些问题了

做法: 处理异地登录的做法

3. 密钥登录失效(密钥未注册)

原因: 能修改我服务器的公钥,应该就是Redis配置不当致使Root被提权漏洞,查询了一下解释,发现有人跟我的问题相同 黑客攻防Redis拉锯战之Root提权 ,简单来说就是我使用root用户运行我的redis服务器,由于一些配置不当,黑客能够借此修改我的服务器上的ssh公钥,相当于把锁给换了,他拿他的钥匙就能登录,而我拿原来的钥匙打不开现有的锁。这导致我本地的私钥跟公钥不配对,所以才会出现在Xshell7里的该密钥未注册问题。

处理方式: 1. 修改redis默认端口号(6379)为其它 2. 将bind为我的服务器ip(只能连接服务器ip)3. 使用其它用户运行redis服务器(未使用,觉得前两种够了)

做法: 修改redis.conf文件中的配置port xxxbind xxx

4. 勒索病毒

原因: 其实以上原因都已经致使对方能够访问我的服务器了。只不过目的不同罢了。

处理方式: 我已知只有两种做法:1.初始化磁盘文件。因为他也是在我本地放程序来锁住我的文件,所以直接磁盘初始化,相当于把锁也给删了,代价就是自己的源码文件和安装的库也都没了。 2. 交费

做法: 阿里云服务器初始化云盘

三、安全知识讲解

1. 密钥登录

前提: 客户端(本地)生成一个非对称加密的密钥对,密钥对只能自己有,将非对称加密的公钥拷贝到服务器的~/.ssh/authorized_keys文件中。

流程: 客户端(本地)给服务器发送登录请求,发送一个数据,并使用自己的非对称加密私钥对其进行加密,加密后的数据和原始数据一并发送。服务器接受数据,使用自己非对称加密的公钥解密加密数据与原始数据对比,则可知该请求是“本人”。因为默认私钥只有“本人”才有,私钥与公钥是配对的,私钥加密的数据只有公钥能解开,如果所得数据是一样,则可以证明该请求对应的用户是“本人”。

四、总结

我目前的安全措施为:

  • 开放仅使用的端口号
  • 禁用密码登陆、开启密钥登陆
  • 修改redis默认端口号,设置其只能 bind 服务器IP

目前就这些,因为遇到的问题这些就够了,目前还没有其它的安全问题,其实也算可以了,经历了之后才会更加重视这些东西,要不然以后的成本还是会越来越大的。自己还是得不断努力才行!

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

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

相关文章

Clion配置ESP32开发,一文就够了

目录 1.下载ESP-IDF2.配置ESP32开发环境2.1方法1:Clion官方手册2.2方法2: 3.测试Clion开发ESP32的环境4.关于Clion的monitor无法正常运行的解决方法 我这里使用的CLiion版本是2023.2.1,网上激活方法有很多,这里就不赘述。 电脑是WIn11系统。 1.下载ESP-I…

无线感知会议系列【1】【增强无线感知应用的鲁棒性】

前言: 这个是2021年 泛在可信智能感知论坛,汤战勇 (西北大学物联网研究院 )教授的 一个讲座《wireless signals like WiFi, RFID and (ultra) sound as a powerful modality for ubiquitous sensing》 参考连接: 4.见微知萌—…

02_硬件基础知识学习

通过上一课的学习,我们貌似成功的点亮了一个 LED 小灯,但是有一些知识大家还没彻底搞明白。单片机是根据硬件电路图的设计来编写代码的,所以我们不仅仅要学习编程知识,还要学习基本的硬件知识,这节课我们就要来穿插介绍…

萱仔环境记录——git的使用流程:以上传一个项目进入GitHub仓库为例子

前段时间我已经不使用学校的电脑了,在自己的笔记本上安装了git,准备好好把我这几年做的项目整理一下进行开源,由于前几次的面试,一些公司考核到了git的用法,虽然平时我也在使用git对自己的项目进行管理,但还…

为什么腾讯难以再现《黑神话:悟空》这样的游戏大作?

自《黑神话:悟空》发布以来,它凭借令人惊艳的画面和深入人心的故事情节,迅速在全球范围内收获了大量粉丝。这款游戏的成功,不仅让全球玩家看到了国产游戏的新高度,也让许多人开始好奇:作为中国游戏行业的巨头,腾讯为什么没能推出类似《黑神话:悟空》这样震撼的作品?今…

c++166面下该过程 向面向对象的转变

#include<iostream> using namespace std; //设计类 属性 函数 //案例一 &#xff1a;立方体 面积和体积 //求两个立方体是否相等 &#xff08;全局函数和成员函数&#xff09; class Cube { private:int m_a;int m_b;int m_c;int m_v;int m_s;public://void setA(int a…

视频剪辑软件大盘点:四款神级工具让你工作更高效!

工作中&#xff0c;视频剪辑是一项不可或缺的技能。而选择一款好用的视频剪辑软件&#xff0c;更是提升工作效率的关键。今天&#xff0c;我就将从功能、易用性、效果以及个人使用感受等方面为大家推荐四款免费的视频剪辑软件&#xff1a; 第一款&#xff1a;福昕视频剪辑 我…

中秋之约,尽在食家巷小程序

中秋&#xff0c;那是一个被月光温柔包裹&#xff0c;被亲情浓浓环绕的节日。在这个象征团圆的日子里&#xff0c;美食就像是情感的纽带&#xff0c;将人们的心紧紧系在一起。而食家巷的美味绝对能让你的中秋更添几分甜蜜。 现在呀&#xff0c;我要给大家推荐一个超级方便的好东…

毫欧表设计整体思路

原因 对于焊接设备的低阻值测量&#xff0c;一般都是mΩ级别的&#xff0c;但万用表的电阻档一般都是以200Ω做为最小档位 设计原理及软件实现设计 设计思路原理图 通过串联在电路中的电流相等&#xff0c;根据阻值和电压的关系得到电阻对应大小 设计中需要考虑的问题 1…

[ccs调试记录]

解决方式&#xff1a;删除code_strat 提示Page0内存不够&#xff0c;找到Page0&#xff0c;根据红叉提示&#xff0c;Ram1内存不足&#xff0c;进行修改 Ram1 length从1000修改为2000&#xff0c;即可&#xff1a;

MIT6.824 课程-PrimaryBackupReplication

Primary Backup Replication 背景 为实现可容错的服务器&#xff0c;主从备份是一种常用的解决方案&#xff1a;在开启了主动备份的系统中&#xff0c;备份服务器的状态需要在几乎任何时候都与主服务器保持一致&#xff0c;这样当主服务器失效后备份服务器才能立刻接管。实现…

计算机网络(二) —— 网络编程套接字

目录 一&#xff0c;认识端口号 1.1 背景 1.2 端口号是什么 1.3 三个问题 二&#xff0c;认识Tcp协议和Udp协议 三&#xff0c;网络字节序 四&#xff0c;socket编程接口 4.1 socket常见API 4.2 sockaddr结构 一&#xff0c;认识端口号 1.1 背景 问题&#xff1a;在进…

C++,Qt学习 2024.9.10

制作ui界面实现&#xff1a;模拟定时闹钟功能 启动后&#xff0c;lab实时获取系统时间&#xff0c;当系统时间走到设置的时间时&#xff0c;语音播报下方lineEdit中的内容&#xff0c;启动前取消按键不可用&#xff0c;启动后除了取消按键可用其他部分都设为不可用&#xff0c…

Java 创建对象方法的演变

1、普通 Java 代码 public class Rectangle {private int width;private int length;public Rectangle() {System.out.println("Hello World!");}public void setWidth(int widTth) {this.width widTth;}public void setLength(int length) {this.length length;}…

个人随想-如何开发一个code agent

随着sonnet的普及&#xff0c;现在的开发确实可以达到事半功倍的效果&#xff0c;再加上cursor、claude dev等工具的加持&#xff0c;现在的软件开发&#xff0c;确实门槛降低了很多&#xff0c;我们可以快速的让ai给我们大量的提示、重构、单元测试、explain甚至是完全用自然语…

c++指针和引用专题

一 基本概念 图解C++指针与引用的区别_指针与引用 图解-CSDN博客https://blog.csdn.net/shang_0122/article/details/104755481 为什么C+

房屋租赁|基于springboot的房屋租赁管理系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#x…

方位对称性+均匀分布=交叉极化和同极化不相关

这个推导是一种方为对称散射矩阵的均匀分布&#xff0c;对于多种方位对称性的散射矩阵&#xff0c;均匀分布。可以看作该模型的简单叠加。从而交叉极化和同极化不相关

PhotoZoom Classic 9.0.2中文版新功能介绍及PhotoZoom 9使用教程

PhotoZoom Classic 9.0.2中文版简介 PhotoZoom Classic 9.0.2中文版是一款新颖的、技术上具有革命性的对数码图片进行放大的工具。通常的工具对数码图片进行放大时&#xff0c;总会降低图片的品质&#xff0c;而这款软件使用了S-SPLINE技术(一种申请过专利的&#xff0c;拥有自…

Word文档的读入(3)

逐个读取答题卡后&#xff0c;我们可以访问Word文档&#xff08;Document&#xff09;中的 .paragraphs 属性&#xff0c;来获取文档中的段落列表。段落列表的组成元素是所有的段落对象&#xff0c;可以使用索引定位到指定的段落对象。 完善代码&#xff08;读取学生学号所在的…