首页 > 其他分享 >【攻防系列】服务器被攻击的过程与应对:一场持续两个多月的攻防战

【攻防系列】服务器被攻击的过程与应对:一场持续两个多月的攻防战

时间:2024-08-31 16:14:39浏览次数:8  
标签:攻防 攻击 校验 CC 攻防战 邮箱 攻击者 服务器 我们

原创 程序员笔记

在2024年4月遭遇了一场前所未有的网络攻击,持续了两个多月。本文将详细记录这场攻击的过程、我们的反应以及快速处理的具体细节。

2024年4月,站点开始断断续续地收到各种攻击,主要集中在工作高峰期。攻击者每天准时发起攻击,使用的主要手段是CC攻击,平均每小时1000万次左右,偶尔还会夹杂DDoS攻击,导致服务器频繁崩溃。

  1. 人机校验与邮箱黑名单

    初始阶段,站点的账号注册使用自建邮局,没有上人机校验和邮箱黑名单,导致接口被刷爆。攻击者利用我们的邮件接口向政府部门邮箱发送大量验证码。我们迅速增加了邮箱白名单和人机校验,漏洞得以修复。

  2. 垃圾消息污染

    攻击者转而瞄准摸鱼聊天室的即时通讯功能,使用高并发刷屏。我们采用了AC算法替代DFA算法,提高了敏感词过滤的精准度和效率,并结合koa-ratelimit中间件进行限速,暂时防住了攻击。

  3. 消息发送的漏洞

    攻击者发现了MQTT没有鉴权的问题,直接绕过了敏感词过滤机制。我们增加了ID鉴权,并修复了昵称设计和用户ID校验的漏洞。

  4. 后端爆炸

    攻击者发现接口没有做数据合法性校验,导致后端频繁崩溃。我们引入了joi插件进行数据合法性校验,并在前端增加了token校验和混淆代码,迷惑攻击者。

  5. 上WAF

    由于纯粹的CC攻击导致服务器资源消耗严重,我们尝试部署雷池WAF,但由于服务器性能不足,WAF崩了,业务也受到影响。

  6. 持续性CC攻击

    我们采用了多线程和负载均衡的方法,复制入口文件并在不同端口运行,暂时缓解了CC攻击的压力。

  7. 反击

    朋友尝试使用gzip炸弹进行反击,成功让攻击者暂停了两个小时,但随后攻击更加猛烈。

  8. 低成本解决方案:高防CDN

    最终,我们选择了高防CDN作为解决方案,设置CC频率限制、IP地区和请求头规则,成功防御住了攻击。

在这场攻防战中,我们也反思了自身的问题。最初,我们在处理攻击者发送垃圾广告时,态度过于激烈,导致结仇。作为官方,我们应该平静对待,封号拉黑即可,不应与用户对骂。

其他经验分享

我们还发现,不同云服务商的应对策略有所不同。阿里云和腾讯云在遭遇攻击时会封IP,而亚洲云则提供了更稳定的服务。选择服务器时,不应只看服务商的规模,还要考虑实际的服务质量和响应速度。

标签:攻防,攻击,校验,CC,攻防战,邮箱,攻击者,服务器,我们
From: https://www.cnblogs.com/o-O-oO/p/18390430

相关文章

  • 微信小程序+php后台服务器实现登录流程实例说明(转)
    下面就对PHP后台实现微信小程序登录进行详细讲解。一、获取微信小程序登录凭证小程序登录流程中,首先需要通过微信小程序接口获取登录凭证(code)。我们需要在小程序端调用微信提供的wx.login()函数,该函数返回用户登录凭证code。例如:wx.login({success:function(res){......
  • 使用脚本向SFTP服务器传输文件
    摘自:https://blog.csdn.net/qq_45882426/article/details/138275975 #!/usr/bin/expect-fsettimeout60setipaddr[lindex$argv0]setusername[lindex$argv1]setpasswd[lindex$argv2]setlcdirname[lindex$argv3]setdirname[lindex$argv4]set......
  • 代码实现高性能分布式云服务器性能监测系统
    Python代码实现高性能分布式云服务器性能监测系统数据收集模块(Agent)在每个服务器节点上运行,收集性能数据。importpsutilimporttimeimportsocketimportjsonclassPerformanceAgent:def__init__(self,server_ip,server_port):self.server_ip=server_......
  • 【网络编程通关之路】 Tcp 基础回显服务器(Java实现)及保姆式知识原理详解 ! ! !
    本篇会加入个人的所谓鱼式疯言❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • Broker服务器模块
    一.Broker模块介绍二.Broker模块具体实现1.类的成员变量与构造函数成员变量事件循环和TCP服务器:muduo::net::EventLoop_baseloop;muduo::net::TcpServer_server;这些是muduo库提供的核心组件,负责处理网络事件和管理TCP连接。消息分发和编码:muduo::net::Protobuf......
  • 基于live555开发的多线程RTSPServer轻量级流媒体服务器EasyRTSPServer开源代码及其调
    EasyRTSPServer参考live555testProg中的testOnDemandRTSPServer示例程序,将一个live555testOnDemandRTSPServer封装在一个类中,例如,我们称为ClassEasyRTSPServer,在EasyRTSPServer_Create接口调用时,我们新建一个EasyRTSPServer对象,再通过调用EasyRTSPServer_Startup接口,将EasyRTSP......
  • 一个linux服务器安装多个java版本,如何选择指定的 java版本去执行
    linux中有时候可能你由于不同的项目需要使用不同版本的javajdk部署,你就需要在你的linux服务中安装很多个版本的javajdk,那么在linux中如何安装和使用不同版本的javajdk呢?1.安装第一个javajdk版本:到java官网下载一个javajdk版本,并解压,然后配置环境变量。javajdk地址:wge......
  • nginx服务器如何配置ssl证书演示
    nginx服务器如何配置ssl证书,配置代码如下:server{#listen80default_server;listen443;#listen[::]:80default_serveripv6only=on;server_name你的域名;indexindex.phpindex.htmlindex.htm;root/mnt/te......
  • 服务器数据恢复—异常断电导致ESXI主机共享存储中raid6阵列崩溃的数据恢复案例
    服务器存储数据恢复环境:一台存储中有一组由12块SAS硬盘组建的raid6磁盘阵列,划分了1个卷,由数台VmwareESXI主机共享存储。卷中存放了大量的Windows系统虚拟机。这些虚拟机系统盘大小一致,数据盘大小不确定,数据盘都是精简模式。服务器存储故障:机房异常断电导致存储瘫痪,加电后存储依......
  • 使用devpi-server搭建pypi本地缓存服务器
    使用缓存机制可以显著减少对外部源的请求量,从而提高下载速度,并降低被源站封禁的风险。下面详细解释如何在本地服务器上设置和使用pip缓存机制。缓存机制的基本原理缓存机制的原理是在本地服务器上保存已经下载过的Python包,当其他服务器请求同样的包时,本地服务器可以直接提供,......