服务器遭受攻击之后的常见思路

news2024/11/26 12:16:14

哈喽大家好,我是咸鱼

不知道大家有没有看过这么一部电影:

这部电影讲述了男主是一个电脑极客,在计算机方面有着不可思议的天赋,男主所在的黑客组织凭借着超高的黑客技术去入侵各种国家机构的系统,并引起了德国秘密警察组织、欧洲刑警组织的重视

刚开始看的时候以为是一部讲述黑客的电影,到后面才发现其实是讲“社会工程学”

好了开始今天的正题——跟大家聊聊服务器安全相关的问题

我们需要知道,安全总是相对的,再安全的服务器也有可能遭受到攻击,所以我们需要尽量地做好系统安全防护、及时修复一些已知的漏洞;当服务器收到攻击的时候能够迅速有效地处理攻击行为,最大限度地降低攻击对系统产生的影响

服务器遭受攻击不是最可怕的,最可怕的是面对攻击时自己束手无策无从下手,今天咸鱼就来介绍一下服务器遭受攻击之后我们需要做些什么,让大家在遇到这种情况的时候能有个大概参考

常见思路

  • 切断网络

常见的攻击来自网络

对于一些对外提供服务的服务器,在得知系统遭受到黑客的攻击之后,首先要做的就是断开服务器的网络连接,这样除了能切断攻击源之外,也能够保护服务器所在网络的其他主机不受攻击

  • 查找攻击源

首先我们可以分析系统日志或者登录日志文件,去查看可疑信息

其次查看系统开启了哪些端口,运行了哪些进程(服务),在这个过程中去分析一下哪些是可疑的进程(系统平时运行什么进程心里多多少少都会有个大概)

  • 分析入侵途径和原因

系统受到入侵,肯定是有多方原因的(可能是系统漏洞、可能是程序漏洞)

所以我们需要查清楚是哪个原因导致的,并且还要查清楚攻击的途径,找到攻击源

  • 备份重要数据

在系统遭受攻击之后,需要立即备份服务器上的重要数据(例如用户数据),同时也要查看这些数据中是否隐藏着攻击源

如果攻击源在数据中,一定要彻底删除然后将数据备份到一个安全的地方

  • 重装系统

不要抱有自己能够彻底清除攻击源的幻想,因为没有人能比黑客更了解攻击程序

在服务器遭受到攻击后,最安全也最简单的方法就是重装系统,因为大部分攻击程序都会依附在系统文件或者内核中

处理过程

下面咸鱼将跟大家分享一些关于服务器遭受攻击后的常见处理流程

  • 检查可疑用户

在发现服务器遭受到攻击之后,首先要切断网络连接,但是有些情况下(无法马上切断网络连接),就必须上系统查看是否有可疑用户在登录

如果发现有可疑用户登录了系统,首先要将这个用户锁定,然后中断可疑用户的远程连接

首先查看可疑用户,执行 w 命令列出所有登陆过系统的用户

通过输出的内容可以检查出是否有可疑或者不熟悉的用户登录,同时还可以根据用户名(USER 字段)以及用户登录的源地址(FROM 字段)又或者它们正在运行的进程、执行的命令(WHAT 字段)来判断

  • 锁定可疑用户

一旦发现可疑用户,就要马上将其锁定

例如通过上面的输出发现 nobody 用户应该是可疑用户(因为 nobody 用户默认情况下是没有登录权限的,不可能说执行 bash)

 锁定之后,这个用户有可能还处于登录状态,我们需要把它踢下线,根据上面 w 的输出,即可获得该用户登录进行的 pid 值

  • 查看用户登录日志

last 命令记录了所有用户登录系统的命令,可以通过 last 命令来查找非法用户的登录事件

last 命令的输出结果来源于 /var/log/wtmp 文件中,稍微有点经验的黑客都会删掉这个文件以便清除自己的行踪

  • 查看系统日志

查看系统日志是查找攻击源最好的办法

可以查看的系统日志有 /var/log/messages 和 /var//log/secure ,这两个日志文件可以记录系统的运行状态以及远程用户的登录状态

还可以查看每个用户目录下的 .bash_history 文件,尤其是 /root 目录下的,这个文件记录着用户执行的所有历史命令

  • 检查并关闭系统可疑进程

检查可疑进程可以通过 topps 命令

但是在有些情况下我们只知道进程的名称不知道执行路径,可以通过 pidof 命令找到对应的 PID 号,知道了 PID 号我们再去对应路径去查看进程完整的执行路径

 除此之外,我们还可以通过指定端口来找到进程的 PID,从而找到相关进程

  • 检查文件系统的完整性

检查文件属性是否发生变化是验证文件系统完好性完整性最简单最直接方法

例如可以比较被攻击服务器上 /bin/ls 文件的大小与正常服务器大小是否相同(或者比较 MD5 值)

,以此来验证文件是否被动过

但是这种方法比较耗时耗力,我们可以借助 Linux 上 RPM 工具来完成验证

  • S 表示文件长度发生了变化

  • M 表示文件的访问权限或文件类型发生了变化

  • 5 表示文件的 MD5 校验值发生了变化

  • D 表示设备节点属性发生了变化

  • L 表示文件的符号链接发生了变化

  • U 表示文件子目录下的设备节点的 owner 发生了变化

  • G 表示文件子目录下的设备节点 group 发生了变化

  • T 表示文件最后一次的修改时间发生了变化

一般来讲,如果输出结果中有 'M' 标记出现,那么对应文件可能已经遭受到篡改或替换(注意!不一定是遭受攻击,只是说要你侧重在这些文件上排查) 

不过这个命令有局限性,那就是只能检查通过 RPM 包方式安装的文件;而且如果 RPM 工具遭受攻击,那就不能用这种方法了,这时候你可以从正常的系统上去复制一个 RPM 工具来进行检测

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

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

相关文章

【变形金刚01】attention和transformer所有信息

图1.来源:Arseny Togulev在Unsplash上的照片 一、说明 这是一篇 长文 ,几乎讨论了人们需要了解的有关注意力机制的所有信息,包括自我注意、查询、键、值、多头注意力、屏蔽多头注意力和转换器,包括有关 BERT 和 GPT 的一些细节。因…

VS2015+cublas实操记录(cuda加速GEMM矩阵乘加算子)

1. 环境配置: cuda安装后一般的安装位置在:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 把这个目录下的include和lib分别配置在vs中,安装cuda教程可参考:https://zhuanlan.zhihu.com/p/520995962(笔者…

干货满满的Python知识,学会这些你也能成为大牛

目录 1. 爬取网站数据 2. 数据清洗与处理 3. 数据可视化 4. 机器学习模型训练 5. 深度学习模型训练 6. 总结 1. 爬取网站数据 在我们的Python中呢,使用爬虫可以轻松地获取网站的数据。可以使用urllib、requests、BeautifulSoup等库进行数据爬取和处理。以下是…

【MySQL--->数据库操作】

文章目录 [TOC](文章目录) 一、操作语句1.增2.删3.改4.查5.备份 二、字符集与校验规则 一、操作语句 1.增 语句格式:create database [if no exists]数据库名[create_specification [,create_specification] …]; 中括号内是可选项,if no exists是指如果数据库不存在就创建,存…

OpenCV基础知识(4)— 绘制图形

前言:Hello大家好,我是小哥谈。Opencv提供了许多用于绘制图形的方法,包括绘制线段的line()方法、绘制矩形的retangle()方法、绘制圆形的circle()方法、绘制多边形的polylines()方法和绘制文字的putText()方法。本节课将依次对上述各个方法进行…

JUC并发原理

文章目录 JUC并发synchronized锁对象底层原理 synchronized锁升级无锁偏向锁轻量级锁重量级锁JIT对锁的优化:锁消除和锁粗化 reentrantlock公平锁和非公平锁可重入锁 / 递归锁 死锁死锁产生条件如何排查死锁?如果解决死锁? LockSupport与中断机制中断机…

【SWAT水文模型】SWATCUP率定参数实例-以洮河流域为例

SWATCUP率定参数实例 以SWATCUP首次模拟结果为例,具体模拟结果如下: 模拟参数结果如下: Parameter_Name Fitted_Value Min_value Max_value 1:R__CN2.mgt -0.180000 -0.200000 0.200000 2:V__SUR…

罗勇军 → 《算法竞赛·快冲300题》每日一题:“推箱子” ← 差分及前缀和

【题目来源】http://oj.ecustacm.cn/problem.php?id1819http://oj.ecustacm.cn/viewnews.php?id1023【题目描述】 在一个高度为H的箱子前方,有一个长和高为N的障碍物。 障碍物的每一列存在一个连续的缺口,第i列的缺口从第l个单位到第h个单位&#xff0…

【c语言】通讯录(静态)

小张刚学习完结构体,枚举,联合相关的知识,实践实践,写一个通讯录呗! 通讯录的功能 1.通讯录可存放100的信息 2.信息的内容姓名,性别,年龄,电话,地址 3.支持增加联系人 4.…

许可是开源的基石,协作才是未来! KCC@南京第二次活动

自从疫情结束后,作为“穷游”之城的南京,且具有高性价比的六朝古都,来旅行的人们也是络绎不绝,恰逢暑假之时更为火爆。即便在炎炎夏日,也依然抵挡不住开源人的那颗赤诚之心。 此次活动不仅是本地的开源人,花…

树莓派RP2040 用Arduino IDE安装和编译

目录 1 Arduino IDE 1.1 IDE下载 1.2 安装 arduino mbed os rp2040 boards 2 编程-烧录固件 2.1 打开点灯示例程序 2.2 选择Raspberry Pi Pico开发板 2.3 编译程序 2.4 烧录程序 2.4.1 Raspberry Pi Pico开发板首次烧录提示失败 2.4.2 解决首次下载失败问题 2.4.2.1…

uniapp的UI框架组件库——uView

在写uniapp项目时候,官方所推荐的样式库并不能满足日常的需求,也不可能自己去写相应的样式,费时又费力,所以我们一般会去使用第三方的组件库UI,就像vue里我们所熟悉的elementUI组件库一样的道理,在uniapp中…

基于grpc从零开始搭建一个准生产分布式应用(1) - 开始准备

开始前必读:​​基于grpc从零开始搭建一个准生产分布式应用(0) - quickStart​​ 本来笔者并不想开设这个系列,因为工作量比较大,另外此专题的技术点也偏简单。最近复盘了下最近的工作,发现一个问题就是各个互联网大厂一般都会有…

hbase 报错 Master passed us a different hostname to use; was=

原因 wsl2的 /etc/hosts 配置的不兼容,我这里是ubuntu22 修改为 127.0.0.1 ubuntu22 即可

Blazor 调试控制台

文章目录 设置 设置 Blazor项目启动之后,有好几种项目设置,我其实想要这一种控制台 直接Console.log就行了 public void LoginBtn(){Console.WriteLine("登录");//navigationManager.NavigateTo("/index");}

STM32 LL库开发

一、STM32开发方式 标准库开发:Standard Peripheral Libraries,STDHAL库开发:Hardware Abstraction Layer,硬件抽象层LL库开发:Low-layer,底层库 二、HAL库与LL库开发对比 ST在推行HAL库的时候,…

手机怎样换ip地址 更改手机IP地址有哪些方式

ip地址怎么改:使用深度ip转换器 在互联网时代,IP地址扮演着网络世界中的独特标识符。它是我们在上网时必不可少的元素,负责为设备提供独立的身份,并将信息传输到正确的目的地。然而,有时我们需要改变IP地址&#xff0c…

婚恋交友h5多端小程序开源版开发

婚恋交友h5多端小程序开源版开发 以下是婚恋交友H5多端小程序的功能列表: 用户注册和登录:用户可以通过手机号码或第三方账号注册和登录。个人信息填写:用户可以填写个人基本信息,包括姓名、性别、年龄、身高、体重、学历、职业等…

第11集丨Vue 江湖 —— 过滤器(filter)

目录 一、过滤器1.1 局部过滤器1.2 全局过滤器1.3 过滤器的串联1.4 案例 二、BootCDN2.1 在BootCDN下载dayjs2.2 dayjs官方文档 一、过滤器 过滤器: 定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。语法: a. 注册过…

阿里巴巴面试题---考察对底层源代码的熟悉程度

题目如图所示: 很多人可能会觉得两个输出都会是false,因为我们都会觉得""比较的是引用类型的地址,虽然放入的值都一样但是重新创造了新对象,地址不一样,所以结果都是false. 然而,当我们运行程序会发现结果都是false. 下面,我们来分析为什么是这样的结果. 我们知道…