据说聊天室有7种语言,每个语言的频道ID都是1到7,第一种是英语,最后两种是西班牙语和法语。Bitmex的相应接口允许您按通道ID查询最后100行。考虑到表的大小(约5000万行),执行反向顺序扫描然后进行过滤实际上更快。查询优化器对所有语言执行反向顺序扫描,直到最终找到要返回的100行。就西班牙语而言,很长一段时间没有人聊天了,所以扫描849748条线路,以找到足够的线路来满足标准。这种昂贵的顺序扫描可以快速分配和释放大量内存,溢出到磁盘,并迅速使系统因系统调用而过载。在攻击发生时,数据库只花费0.6%的时间处理请求,其余99.4%的时间用于Io等待,这导致所有查询都非常缓慢。
尽管与用户相关的数据(电子邮件、活动、聊天室、登录事件等)与交易数据(位置、交易、保证金等)是分开的,但聊天室与用户相关,访问令牌和API密钥也是如此。这意味着这种资源消耗会导致事务引擎前面的身份验证和访问控制层出现严重问题。交易引擎运行正常,市场数据、存取款不中断。然而,在这段时间内,请求几乎不可能到达引擎,导致服务质量严重下降。
对于已经登录该网站的用户来说,他们会发现,攻击前动荡的市场形势突然变成一片平静的湖面,偶尔会有小鱼跳跃引起的涟漪。但是,当用户注销时,他不能再成功登录。
没有一个系统能够抵抗DDoS的干扰,有很多技术可以用来减少或消除这种影响。Bitmex表示,它已经解决了潜在的问题,并日夜引入额外的检测和响应层,并将做出其他努力来提高负载下的自动化可伸缩性,并进一步隔离关键系统。Bitmex强调,作为上述持续监控和缓解措施的一部分,其安全团队正在审查系统中最古老、最脆弱的部分,以简化、分离、提高性能并隔离系统。与此同时,该公司的团队正在为停机、市场停滞、市场恢复和通信开发面向公众的协议,以便在未来服务中断时为用户提供更大的透明度。
(2) DDoS攻击实践
由于我们攻击的主机数量较少,严格来说,以下攻击行为应属于DOS攻击(拒绝服务攻击)。只有当大量主机参与攻击时,才能称之为DDoS攻击(分布式拒绝服务攻击)。
通过编写程序,我们利用一些主机向自有服务器发送大量数据包,希望导致服务器资源耗尽甚至崩溃。但是,由于发起攻击的主机数量很少,实现这一目标并不容易。网络上有更多的此类攻击的程序示例,因此我们不在这里详细说明和展示。
我们也可以使用相关工具进行攻击——下载pylori模块,在DOS中进行slowloris攻击。
在slowloris攻击中,即使只使用一台PC,web服务器也可能瘫痪。在分析攻击原因时,通常使用web服务器的日志。由于日志只记录在头文件分析的末尾,slowloris攻击不会在日志文件中留下痕迹,因此很难检测到。普通的HTTP报头以/R/N/R/N结尾,web服务器通过查找/R/N/R/N来判断HTTP报头的结束,然后对服务请求进行分析和处理。slowloris攻击使用的HTTP报头只以/R/N结尾,因此web服务器认为HTTP报头没有完成,因此无法分析HTTP报头并继续保持连接。当服务器连接数达到最大值时,它无法继续处理新请求,然后拒绝提供服务[12]。
从官网下载的Chloris模块版本号为3.2,适用于python2。我们修改了源代码,使其可以在python3中运行,然后在run界面中填写一个要攻击的自有测试网站的地址和端口:
点击“启动”按钮开始攻击。如下图所示,运行界面分为两个区域。状态区域用于显示当前的攻击状态,其中attacks表示当前使用的连接数,threads表示到目前为止创建的线程数;log区域显示用于发送攻击的程序日志:
5、 结论