当前位置: 首页 > news >正文

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

哈喽大家好,我是咸鱼

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

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

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

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

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

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

常见思路

  • 切断网络

常见的攻击来自网络

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

  • 查找攻击源

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

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

  • 分析入侵途径和原因

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

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

  • 备份重要数据

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

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

  • 重装系统

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

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

处理过程

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

  • 检查可疑用户

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

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

首先查看可疑用户,执行 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 工具来进行检测

相关文章:

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

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

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…...

【图论】单源最短路

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

闻道网络:2023宠物消费网络营销洞察数据报告(附下载)

关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 行业持续升级,增速放缓,正朝着多元化和专业化的方向发展;自公共事件以来,因,“猫不用遛”,养猫人士增速迅猛反超犬主人&#xf…...

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的统一管理,您可以使用一个单例模式的管理类来实现最优解。 首先,创建一个管理类&#xff0c…...

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)维度。同时我们要注意这四个很重要的基本概念的描述对象,我们会说向量组线性无关,由一个向量组生成的空间,子…...

rknn优化教程(一)

文章目录 1. 前述2. 优化思想2.1 实时帧率2.2 多线程处理2.2.1 排序2.2.2 批量处理2.2.3 队列 2.3 进一步优化 3. 代码 1. 前述 OK,铺垫了很久的rknn优化,终于开始写了。为什么要优化呢?当然是我们的使用遇到了瓶颈,要么使用的时…...

记录一个用了很久的git提交到github和gitee比较方便的方法

在当前git init后,在隐藏的git文件夹中找到config文件 [user]name thels [remote "github"]url your github repository urlfetch refs/heads/*:refs/remotes/origin/* [remote "gitee"]url your gitee repository urlfetch refs/heads/*:…...

从代码学习深度强化学习 - 初探强化学习 PyTorch版

文章目录 前言强化学习的概念强化学习的环境强化学习中的数据强化学习的独特性总结前言 本文将带你初步了解强化学习 (Reinforcement Learning, RL) 的基本概念,并通过 PyTorch 实现一些简单的强化学习算法。强化学习是一种让智能体 (agent) 通过与环境 (environment) 的交互…...

cv::FileStorage用法

cv::FileStorage 是 OpenCV 中的一个类,用于读取和写入结构化数据(如 YAML、XML、JSON)。它非常适合保存和加载诸如: 相机内参(K、D) 位姿(R、T) IMU 数据 配置参数 向量、矩阵、…...

安全访问家中 Linux 服务器的远程方案 —— 专为单用户场景设计

在现代远程办公与频繁差旅的背景下,许多人需要从外地访问家中的 Linux 文件服务器,以获取重要文件。在涉及敏感数据(如客户资料、财务信息)时,数据的安全性成为首要考虑因素。以下内容将聚焦于如何在仅有一台笔记本电脑…...

Java Map完全指南:从基础到高级应用

文章目录 1. Map接口概述Map的基本特性 2. Map接口的核心方法基本操作方法批量操作方法 3. 主要实现类详解3.1 HashMap3.2 LinkedHashMap3.3 TreeMap3.4 ConcurrentHashMap 4. 高级特性和方法4.1 JDK 1.8新增方法4.2 Stream API结合使用 5. 性能比较和选择建议性能对比表选择建…...

将HTML内容转换为Canvas图像,主流方法有效防止文本复制

HTML to Canvas 使用说明 项目概述 此项目实现了将HTML内容转换为Canvas图像的功能,可有效防止文本被复制。适用于需要保护内容的场景,如试题系统、付费内容等。 主要功能 防止复制: 将文本内容转换为Canvas图像,使用户无法选择和复制Mat…...

Paraformer分角色语音识别-中文-通用 FunASR demo测试与训练

文章目录 0 资料1 Paraformer分角色语音识别-中文-通用1 模型下载2 音频识别测试3 FunASR安装 (训练用)4 训练 0 资料 https://github.com/modelscope/FunASR/blob/main/README_zh.md https://github.com/modelscope/FunASR/blob/main/model_zoo/readm…...

WINUI——Magewell视频捕捉开发手记

背景 因需要融合视频,并加载患者CT中提取出的气管镜与病变,以便能实时查看气管镜是否在正确位置。 开发环境 硬件:Magewell的USB Capture HDMI Gen 2 IDE:VS2022 FrameWork: .Net6 WINUI Package: MVVMToolKit NLog Ma…...

Spring AI(10)——STUDIO传输的MCP服务端

Spring AI MCP(模型上下文协议)服务器Starters提供了在 Spring Boot 应用程序中设置 MCP 服务器的自动配置。它支持将 MCP 服务器功能与 Spring Boot 的自动配置系统无缝集成。 本文主要演示支持STDIO传输的MCP服务器 仅支持STDIO传输的MCP服务器 导入j…...