服务器遭受攻击之后的常见思路
哈喽大家好,我是咸鱼
不知道大家有没有看过这么一部电影:
这部电影讲述了男主是一个电脑极客,在计算机方面有着不可思议的天赋,男主所在的黑客组织凭借着超高的黑客技术去入侵各种国家机构的系统,并引起了德国秘密警察组织、欧洲刑警组织的重视
刚开始看的时候以为是一部讲述黑客的电影,到后面才发现其实是讲“社会工程学”
好了开始今天的正题——跟大家聊聊服务器安全相关的问题
我们需要知道,安全总是相对的,再安全的服务器也有可能遭受到攻击,所以我们需要尽量地做好系统安全防护、及时修复一些已知的漏洞;当服务器收到攻击的时候能够迅速有效地处理攻击行为,最大限度地降低攻击对系统产生的影响
服务器遭受攻击不是最可怕的,最可怕的是面对攻击时自己束手无策无从下手,今天咸鱼就来介绍一下服务器遭受攻击之后我们需要做些什么,让大家在遇到这种情况的时候能有个大概参考
常见思路
-
切断网络
常见的攻击来自网络
对于一些对外提供服务的服务器,在得知系统遭受到黑客的攻击之后,首先要做的就是断开服务器的网络连接,这样除了能切断攻击源之外,也能够保护服务器所在网络的其他主机不受攻击
-
查找攻击源
首先我们可以分析系统日志或者登录日志文件,去查看可疑信息
其次查看系统开启了哪些端口,运行了哪些进程(服务),在这个过程中去分析一下哪些是可疑的进程(系统平时运行什么进程心里多多少少都会有个大概)
-
分析入侵途径和原因
系统受到入侵,肯定是有多方原因的(可能是系统漏洞、可能是程序漏洞)
所以我们需要查清楚是哪个原因导致的,并且还要查清楚攻击的途径,找到攻击源
-
备份重要数据
在系统遭受攻击之后,需要立即备份服务器上的重要数据(例如用户数据),同时也要查看这些数据中是否隐藏着攻击源
如果攻击源在数据中,一定要彻底删除然后将数据备份到一个安全的地方
-
重装系统
不要抱有自己能够彻底清除攻击源的幻想,因为没有人能比黑客更了解攻击程序
在服务器遭受到攻击后,最安全也最简单的方法就是重装系统,因为大部分攻击程序都会依附在系统文件或者内核中
处理过程
下面咸鱼将跟大家分享一些关于服务器遭受攻击后的常见处理流程
-
检查可疑用户
在发现服务器遭受到攻击之后,首先要切断网络连接,但是有些情况下(无法马上切断网络连接),就必须上系统查看是否有可疑用户在登录
如果发现有可疑用户登录了系统,首先要将这个用户锁定,然后中断可疑用户的远程连接
首先查看可疑用户,执行 w
命令列出所有登陆过系统的用户
通过输出的内容可以检查出是否有可疑或者不熟悉的用户登录,同时还可以根据用户名(USER 字段)以及用户登录的源地址(FROM 字段)又或者它们正在运行的进程、执行的命令(WHAT 字段)来判断
-
锁定可疑用户
一旦发现可疑用户,就要马上将其锁定
例如通过上面的输出发现 nobody 用户应该是可疑用户(因为 nobody 用户默认情况下是没有登录权限的,不可能说执行 bash)
锁定之后,这个用户有可能还处于登录状态,我们需要把它踢下线,根据上面 w
的输出,即可获得该用户登录进行的 pid 值
-
查看用户登录日志
last 命令记录了所有用户登录系统的命令,可以通过 last 命令来查找非法用户的登录事件
last 命令的输出结果来源于 /var/log/wtmp
文件中,稍微有点经验的黑客都会删掉这个文件以便清除自己的行踪
-
查看系统日志
查看系统日志是查找攻击源最好的办法
可以查看的系统日志有 /var/log/messages
和 /var//log/secure
,这两个日志文件可以记录系统的运行状态以及远程用户的登录状态
还可以查看每个用户目录下的 .bash_history
文件,尤其是 /root
目录下的,这个文件记录着用户执行的所有历史命令
-
检查并关闭系统可疑进程
检查可疑进程可以通过 top
、ps
命令
但是在有些情况下我们只知道进程的名称不知道执行路径,可以通过 pidof
命令找到对应的 PID 号,知道了 PID 号我们再去对应路径去查看进程完整的执行路径
除此之外,我们还可以通过指定端口来找到进程的 PID,从而找到相关进程
-
检查文件系统的完整性
检查文件属性是否发生变化是验证文件系统完好性完整性最简单最直接方法
例如可以比较被攻击服务器上 /bin/ls
文件的大小与正常服务器大小是否相同(或者比较 MD5 值)
,以此来验证文件是否被动过
但是这种方法比较耗时耗力,我们可以借助 Linux 上 RPM 工具来完成验证
-
S 表示文件长度发生了变化
-
M 表示文件的访问权限或文件类型发生了变化
-
5 表示文件的 MD5 校验值发生了变化
-
D 表示设备节点属性发生了变化
-
L 表示文件的符号链接发生了变化
-
U 表示文件子目录下的设备节点的 owner 发生了变化
-
G 表示文件子目录下的设备节点 group 发生了变化
-
T 表示文件最后一次的修改时间发生了变化
一般来讲,如果输出结果中有 'M' 标记出现,那么对应文件可能已经遭受到篡改或替换(注意!不一定是遭受攻击,只是说要你侧重在这些文件上排查)
不过这个命令有局限性,那就是只能检查通过 RPM 包方式安装的文件;而且如果 RPM 工具遭受攻击,那就不能用这种方法了,这时候你可以从正常的系统上去复制一个 RPM 工具来进行检测
相关文章:

服务器遭受攻击之后的常见思路
哈喽大家好,我是咸鱼 不知道大家有没有看过这么一部电影: 这部电影讲述了男主是一个电脑极客,在计算机方面有着不可思议的天赋,男主所在的黑客组织凭借着超高的黑客技术去入侵各种国家机构的系统,并引起了德国秘密警察…...

C语言学习笔记 使用vscode外部console出现闪退-12
前言 在使用vscode的外部console时,会出现闪退现象,这是因为程序运行结束后,系统自动退出了终端(终端机制决定的)。我们可以在C程序结束后,使用system函数来暂停DOS终端系统,这样就可以完整地看…...

从Spring源码看Spring如何解决循环引用的问题
Spring如何解决循环引用的问题 关于循环引用,首先说一个结论: Spring能够解决的情况为:两个对象都是单实例、且通过set方法进行注入。 两个对象都是单实例,通过构造方法进行注入,Spring不能进行循环引用问题&#x…...

03 - 通过git log可以查看版本演变历史
通过git log可以查看版本演变历史 主要包括: commit 哈希id提交的Author信息提交的日期和时间commit info信息 git log本人常用,显示简洁: git log --oneline当log条数很多的时候,可以如下指定显示的数量: git log…...

【图论】单源最短路
算法提高课笔记。(本篇还未更新完… 目录 单源最短路的建图方式例题热浪题意思路代码 信使题意思路代码 香甜的黄油题意思路代码 最小花费题意思路代码 最优乘车题意思路代码 昂贵的聘礼题意思路代码 单源最短路的建图方式 最短路问题可以分为以下两类:…...

闻道网络:2023宠物消费网络营销洞察数据报告(附下载)
关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 行业持续升级,增速放缓,正朝着多元化和专业化的方向发展;自公共事件以来,因,“猫不用遛”,养猫人士增速迅猛反超犬主人…...

Docker 安装和架构说明
Docker 并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。 Docker实质上是在已经运行的Liunx下制造了一个隔离的文件环境,因此他的执行效率几乎等同于所部署的linux主机。因此Docker必须部署在Linux内核系统上。如果其他系统想部署Docke…...

101. 对称二叉树
题目 原题链接 : 101.对称二叉树 题面 : 对于这一题呢,题目要求给出递归和迭代两种方式来解决!!! 注 : 这一题不仅仅是判断左右两个子节点是否对称,而是要遍历两棵树而且要比较内侧和外侧节点 递归 先确认递归三要素 : 确定递归函数的参数和返回值 bool …...
cmake应用:集成gtest进行单元测试
编写代码有bug是很正常的,通过编写完备的单元测试,可以及时发现问题,并且在后续的代码改进中持续观测是否引入了新的bug。对于追求质量的程序员,为自己的代码编写全面的单元测试是必备的基础技能,在编写单元测试的时候…...

静态时序分析与时序约束
一、时序分析的基本概念 1. 时钟 理性的时钟模型是一个占空比为50%且周期固定的方波: 实际电路中输入给FPGA的晶振时钟信号是正弦波: 2. 时钟抖动 Clock Jitter,时钟抖动,相对于理想时钟沿,实际时钟存在不随时钟存在…...

YOLOv5基础知识入门(3)— 目标检测相关知识点
前言:Hello大家好,我是小哥谈。YOLO算法发展历程和YOLOv5核心基础知识学习完成之后,接下来我们就需要学习目标检测相关知识了。为了让大家后面可以顺利地用YOLOv5进行目标检测实战,本节课就带领大家学习一下目标检测的基础知识点&…...
10个AI绘图生成器让绘画更简单
AI不仅影响商业和医疗保健等行业,还在创意产业中发挥着越来越大的作用,开创了AI绘画生成器新时代。在绘画领域当然也是如此,与传统的绘画工具不同,AI人工智能时代的绘画工具是全自动的、智能的,甚至可以说是“傻瓜式”…...

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

【Leetcode】155. 最小栈、JZ31 栈的压入、弹出序列
作者:小卢 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 155. 最小栈 155. 最小栈 题目描述; 设计一个支持 push ,pop ,top …...

网络安全(黑客技术)自学笔记
一、什么是网络安全?什么是黑客? 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等…...
iOS学习—制作全局遮罩
在.h文件中线声明show()方法 - (void)show; .m文件中添加全屏遮罩,在遮罩上添加了一个选择框并添加了底部弹出的动画,可自行在其中添加tableview、pickerview等其他视图,并添加了点击选择框视图外区域隐藏 #import "MaskView.h"…...
GRPC-连接池-GPT
gRPC Dart 管理优化 User grpc for dart 如何统一管理多个Client的创建和销毁,给我一个最优解 ChatGPT 对于在Dart中使用gRPC创建和销毁多个Client的统一管理,您可以使用一个单例模式的管理类来实现最优解。 首先,创建一个管理类,…...

YOLOv5、YOLOv8改进: GSConv+Slim Neck
论文题目:Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles 论文:https://arxiv.org/abs/2206.02424 代码:https://github.com/AlanLi1997/Slim-neck-by-GSConv 在计算机视觉领域&#x…...

重发布选路问题
一、思路 ; 1.增加不优选路开销解决选路不佳问题 2.用增加开销的方式使R1 不将ASBR传的R7传给另一台ASBR解决R1、R2、R3、R4pingR7环回环路 二、操作 ------IP地址配置如图 1.ospf及rip的宣告 rip: [r1]rip 1 [r1-rip-1]version 2 [r1-rip-1]netw…...

LinearAlgebraMIT_9_LinearIndependence/SpanningASpace/Basis/Dimension
这节课我们主要学习一下(Linear Independence)线性无关,(spanning a space)生成空间,(basis)基和(dimension)维度。同时我们要注意这四个很重要的基本概念的描述对象,我们会说向量组线性无关,由一个向量组生成的空间,子…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...