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

哈喽大家好,我是咸鱼

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

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

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

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

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

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

常见思路

  • 切断网络

常见的攻击来自网络

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

  • 查找攻击源

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

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

  • 分析入侵途径和原因

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

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

  • 备份重要数据

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

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

  • 重装系统

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

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

处理过程

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

  • 检查可疑用户

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis的XML映射文件

Mybatis的开发有两种方式: 注解 XML配置文件 通过XML配置文件的形式来配置SQL语句,这份儿XML配置文件在MyBatis当中也称为XML映射文件。 导学:在MyBatis当中如何来定义一份儿XML映射文件? 在MyBatis当中,定义XML…

ROS学习笔记(三)---好用的终端Terminator

ROS学习笔记文章目录 01. ROS学习笔记(一)—Linux安装VScode 02. ROS学习笔记(二)—使用 VScode 开发 ROS 的Python程序(简例) 一、Terminator是什么? 在前面的学习中,为了运行hello.py我是在vscode频繁的点击运行窗口的“”号…

JS垃圾回收机制

什么是垃圾回收机制? 垃圾回收机制 (Garbage Collection) 简称GC JS中内存的分配和回收都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收。 正因为垃圾回收器的存在,许多人认为JS不用太关心内存管理的问题 但如果不了解JS的内存管…

Mybatis 源码 ④ :TypeHandler

文章目录 一、前言二、DefaultParameterHandler1. DefaultParameterHandler#setParameters1.1 UnknownTypeHandler1.2 自定义 TypeHandler 三、DefaultResultSetHandler1. hasNestedResultMaps2. handleRowValuesForNestedResultMap2.1 resolveDiscriminatedResultMap2.2 creat…

【C++】C++入门基础详解(1)

本篇内容要分享的是C的基础内容,C的诞生简单的说就是为了填补C语言中的语法坑,同时对比C语言来说增添很多便捷的语法规则,使用起来比C语言便捷不少,但是学习难度也大大增强,不过难度是成线性增长,可以一步一…

WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机

WebRTC音视频通话-WebRTC视频自定义RTCVideoCapturer相机 在之前已经实现了WebRTC调用ossrs服务,实现直播视频通话功能。但是在使用过程中,RTCCameraVideoCapturer类提供的方法不能修改及调节相机的灯光等设置,那就需要自定义RTCVideoCaptur…

应届生运维简历攻略

导语: 当下,计算机科学与技术已经成为一个炙手可热的行业,而作为这个行业中的一份子,运维人员的角色无疑至关重要。如果你是一位即将毕业的应届生,并希望在运维领域打拼,那么一份出色的运维简历将是你踏入…

【hive】hive分桶表的学习

hive分桶表的学习 前言: 每一个表或者分区,hive都可以进一步组织成桶,桶是更细粒度的数据划分,他本质不会改变表或分区的目录组织方式,他会改变数据在文件中的分布方式。 分桶规则: 对分桶字段值进行哈…

CXL registers

目录 DVSEC CXL PCIe DVSEC for CXL Device//ID 0 DVSEC CXL Capability (Offset 0Ah) DVSEC CXL Control (Offset 0Ch) DVSEC CXL Status (Offset 0Eh) DVSEC CXL Control2 (Offset 10h) DVSEC CXL Status2 (Offset 12h) DVSEC CXL Lock (Offset 14h) DVSEC CXL Capabilit…

1€滤波器(1 Euro Filter)使用介绍

怎么调整欧拉角x、y、z的抖动问题?

视频集中存储EasyCVR视频汇聚平台定制项目增加AI智能算法

安防视频集中存储EasyCVR视频汇聚平台,可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等功能。为了便…

如何应用项目管理软件进行敏捷开发管理

敏捷开发(Agile Development)是一种软件开发方法论,强调在不断变化的需求和环境下,通过迭代、协作和自适应的方式来开发软件。敏捷方法的目标是提供更快、更灵活、更高质量的软件交付,以满足客户需求并实现项目成功。 …

使用pymupdf实现PDF内容搜索并显示功能

简介: 在日常工作和学习中,我们可能需要查找和提取PDF文件中的特定内容。本文将介绍如何使用Python编程语言和wxPython图形用户界面库来实现一个简单的PDF内容搜索工具。我们将使用PyMuPDF模块来处理PDF文件,并结合wxPython构建一个用户友好的…

C语言刷题训练【第11天】

大家好,我是纪宁。 今天是C语言笔试刷题训练的第11天,加油! 文章目录 1、声明以下变量,则表达式: ch/i (f*d – i) 的结果类型为( )2、关于代码的说法正确的是( )3、已知有如下各变…

根据源码,模拟实现 RabbitMQ - 从需求分析到实现核心类(1)

目录 一、需求分析 1.1、对 Message Queue 的认识 1.2、消息队列核心概念 1.3、Broker Server 内部关键概念 1.4、Broker Server 核心 API (重点实现) 1.5、交换机类型 Direct 直接交换机 Fanout 扇出交换机 Topic 主题交换机 1.6、持久化 1.7…

pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系

tep是一款测试工具,在pytest测试框架基础上集成了第三方包,提供项目脚手架,帮助以写Python代码方式,快速实现自动化项目落地。 在tep项目中,自动化测试用例都是放到tests目录下的,每个.py文件相互独立&…

分布式图数据库 NebulaGraph v3.6.0 正式发布,强化全文索引能力

本次 v3.6.0 版本,主要强化全文索引能力,以及优化部分场景下的 MATCH 性能。 强化 强化增强全文索引功能,具体 pr 参见:#5567、#5575、#5577、#5580、#5584、#5587 优化 支持使用 MATCH 子句检索 VID 或属性索引时使用变量&am…

【Windows系统编程】02.进程与线程(一)-笔记

进程,进程对象 虚拟内存 进程不能执行代码,数据结构,三环PEB,0怀EPROCESS对进程进行管理 线程列表 线程才是真正执行代码 主线程:主函数 线程依赖于cpu时间片切换 单核,多核 主线程消息&#xff0c…

ChatGPT等人工智能编写文章的内容今后将成为常态

BuzzFeed股价上涨200%可能标志着“转向人工智能”媒体趋势的开始。 周四,一份内部备忘录被华尔街日报透露BuzzFeed正计划使用ChatGPT聊天机器人-风格文本合成技术来自OpenAI,用于创建个性化盘问和将来可能的其他内容。消息传出后,BuzzFeed的…

【数据结构与算法】十大经典排序算法-归并排序

🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…