本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程。本产品已经成熟稳定并投入商用。

在线演示环境:https://kf.shengxunwei.com 注意:演示环境仅供演示交流与评估,不保证 7x24 小时可用。

文章目录列表请点击这里


系统公开发表不久之后,遭到了一次来自不明人士的蓄意攻击。(当你努力作一件事的时候,你永远不知道有些人会怎么想)

本篇详细介绍问题的定位和处理过程。

问题发现

21日上午,收到报警,服务器 CPU 使用率持续超过 80%。我尝试远程桌面连接,非常卡,连接服务器后发现 CPU 占用率 100%。查看任务管理器,客服系统后台服务占用了 CPU,

重新启动客服系统后台进程 ,CPU 占用率恢复正常。查看网络监控数据并没有大的网络流量流入流出,初步推测是对客服系统所使用的通信端口的攻击行为。

更换系统所使用的监听端口后继续观察。

23日晚间,再次收到 CPU 使用率报警,查看发现依然是客服系统后台服务 100% 占用了 CPU。重启服务后恢复正常。几小时后,我远程服务器查看,发现 CPU 占用率稳定在 50%,看来攻击者为了避免引起我的注意,改进了工击手段,降低了攻击强度。

相同的版本,部署在我的客户的服务器上运行的环境则是一切正常,持续运行了两周没有任何异常情况,而且客户正式使用的环境,使用强度比我的演示环境要大的多。

在任务管理器里,虽然能看到是客服系统后台服务占用了 CPU,但是无法查看占用的具体原因。

问题定位

在我第一次发现问题,更换端口,消停两次之后,再次发生的攻击行为,看起来是和我杠上了。

  1. 首先,在攻击行为发生时,创建客服系统后台服务的 Dump 文件,注意区分 x86 和 x64。

  2. 安装 WinDbg 或 WinDbg Priview ,Windows 10 推荐使用 WinDbg privew,使用 WinDbg 打开 Dump 文件。

    第一次打开时,会自动下载所需的 PDB 文件,等待下载完成后,即可加载调试信息,如下图:

  3. 执行 reload 命令

  4. 执行 loadby sos clr 命令

  5. 执行 !tp 命令

    显示出 CPU 占用率 51%。

  6. 接下来,我们要找到造成 CPU 占用具体的线程和位置,使用 !runaway 命令。定位到线程 41 长时间占用 CPU。

  7. 使用命令 ~41s 进入线程。接着使用 !clrstack 命令显示调用堆栈。

    如图,根据调用堆栈显示的信息,非常明确的指示出,Socket 端口接收数据时,大量占用了 CPU。


结合系统的其它日志,判断攻击者通过连接 TCP 端口,高强度,大量的发送垃圾数据,导致服务器 CPU 高负荷运行,企图拖垮服务器。明确攻击位置和原因之后,就好办了,在 Socket 端口连接和监听时,加入安全反制的机制,重新部署上线。

不久,抓到了一个国内 IP ,此 IP 发起了攻击行为,系统自动切换了连接并拉黑了此 IP 地址。随后的几天中,攻击者使用了国外代理发起攻击行为,先后抓到了两个不同国家的 IP,使用相同的方式发起攻击行为。虽然攻击者切换了国外代理,但最初的国内 IP 已经暴露。

28日夜,攻击者使用了一个位于荷兰的 IP ,再次发起攻击,服务器在识别到攻击行为后,几秒钟内切断了连接。


其实我并不认为目前我所做的一点点工作能够对业内其它做同类型软件的企业产生什么影响,我推测发起攻击行为的人只是普通的技术人员。正如我上文说的:当你努力作一件事的时候,你永远不知道有些人会怎么想。

我也没有以某种方式运营这个系统的计划。

在接下来的文章中,我将具体解构服务端程序的结构和设计、客服端程序的结构和设计,敬请关注。

.net core 和 WPF 开发升讯威在线客服与营销系统:(插曲)一次端口攻击行为的分析与应对的更多相关文章

  1. .net core 和 WPF 开发升讯威在线客服与营销系统:背景和产品介绍

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf-m.shengxunwei.com ...

  2. .net core 和 WPF 开发升讯威在线客服与营销系统:系统总体架构

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  3. .net core 和 WPF 开发升讯威在线客服与营销系统:使用 WebSocket 实现访客端通信

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  4. .net core 和 WPF 开发升讯威在线客服与营销系统:使用 TCP协议 实现稳定的客服端

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  5. .net core 和 WPF 开发升讯威在线客服与营销系统:使用线程安全的 BlockingCollection 实现高性能的数据处理

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  6. .net core 和 WPF 开发升讯威在线客服与营销系统:实现对 IE8 的完全完美支持 【干货】

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  7. .net core 和 WPF 开发升讯威在线客服系统:怎样实现拔网线也不丢消息的高可靠通信(附视频)

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...

  8. .net core 和 WPF 开发升讯威在线客服系统:把 .Net Framework 打包进安装程序

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程. 系列文章目录: https://blog.shengxunwei.com/Home/Post/44a3 ...

  9. .net core 和 WPF 开发升讯威在线客服系统:使用本地IP数据库实现访客来源快速定位,支持国外

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 免费使用 & 私有化部署:https://kf.shengxun ...

随机推荐

  1. macOS tips

    1.设置常用linux命令的快捷键 打开terminal command+space,搜索"terminal"关键字 进入"~/"目录 cd ~/ touch ...

  2. IEEE浮点数标准

    IEEE浮点数标准 阅读笔记:Computer System : A Programmmer's Perspective 基本概念 IEEE浮点数标准采用 \[V=(-1)^s\times M\tim ...

  3. ModelViewSet + ModelSerializer

     ModelSerializer (封装好的序列化器,不需要我们写字段) from rest_framework import serializers from .models import * cl ...

  4. JZOJ8月10日提高组T2 Fix

    JZOJ8月10日提高组T2 Fix 题目 Description There are a few points on a plane, and some are fixed on the plane ...

  5. 一千行MySQL命令

    基本操作 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysqld_bin_p ...

  6. 02day

    1.python注释(不执行) #:单行注释 ''' '''或者""" """:多行注释 2.python2中文解决方法 #coding=u ...

  7. PyQt(Python+Qt)学习随笔:model/view架构中类QStandardItemModel的使用方法

    老猿Python博文目录 老猿Python博客地址 一.概述 QStandardItemModel是QAbstractItemModel的派生类,用于在Model/View架构中存储自定义数据的通用模 ...

  8. 攻防世界 web进阶区 lottery

    首先进入题目的页面. 按其要求登录.然后看到以下界面. 御剑扫描目录,发现了robots.txt (robots协议) ,进入查看 进入.git/目录,用神器 GitHack 下载文件. 然后查看源码 ...

  9. 推荐系统(CTR领域)实战入门指南

    CTR经典模型如:FM,FFM,Wide&Deep,建议自己去复现一个完整的通用模型 先从pytorch版本入手(后期考虑tensorflow),从kaggle上找实际的比赛 github 相 ...

  10. numpy 中的堆叠 stack

    参考: https://blog.csdn.net/Riverhope/article/details/78922006 vstack,vertical 垂直堆叠 hstack, horizontal ...