每一次活动大促带来的迅猛流量,对技术人而言都是一次严峻考验。如果在活动期间遭受黑产恶意DDoS攻击,无疑是雪上加霜。电商的特性是业务常态下通常不会遭受大流量DDoS攻击,且对延迟敏感,因此只需要在活动期间按需使用DDoS防护。本篇文章由专业的安全团队为你分享如何根据 DDoS攻击情况和业务健康状况,实时调整防护策略,保障业务稳定性的同时,节省大量安全防护和运营成本。
如果你的网站或应用程序突然出现大量可疑的访问量,而正常用户不能访问或无法连接服务器,那很有可能是遭遇了DDoS 攻击。DDoS 是互联网黑色产业链中成熟且常见的攻击手段,攻击简单粗暴又有效,溯源困难,犯罪成本低。
一、DDos究竟是如何进行攻击的?
我们通过一个例子可以帮你更形象地理解它:
小王开了一间餐厅,面积不大,最多只能容纳 50 位客人同时就餐。但由于味道好菜量足,每天就餐的客人络绎不绝。火爆的生意引起了这条街上流氓的眼红,他派了 100 多人来小王的店里捣乱。这些人看上去和普通顾客没什么区别,小王和服务员只能正常提供服务,但这些人只是不停地询问菜品和价格,并不点菜,霸占了所有的座位和服务员,使其他客人无法正常就餐,最终导致餐厅倒闭。
这就是典型的 DDoS 攻击模式,它在短时间内发起大量请求,超过系统可处理范围,使目标网络或系统资源耗尽,导致服务暂时中断或停止,正常用户无法访问。
DDoS 全称 Distributed Denial-of-Service,其中 Denial-of-Service 意为拒绝服务,它的目的就是使服务不能访问。Distributed 是分布式,指的是这种攻击不是来自一个源头,有可能来源于成千上万台设备。
随着 IoT 行业发展,物联网设备增多,在线时间长,漏洞更新周期长,成为攻击者漏洞利用的温床,物联网设备逐渐成为 DDoS 攻击的主力军。 据统计,2021年DDoS混合攻击大幅增长,较2020年增长80.8%,2022年DDoS攻击威胁创历年新高,超大规模攻击持续增长已成为常态。
二、DDoS 的主要攻击方式
一般来说,DDoS的表现形式主要有两种:
根据行业权威报告显示,僵尸网络不再局限于单一的 DDoS 攻击手段,而是选择与勒索软件、挖矿木马合作进行攻击,部分则转向分布式爆破攻击,攻击手段的丰富和灵活的切换使得黑灰产能够进一步降低 DDoS 攻击成本,提升攻击效果。
三、DDoS攻击如何防范?
我们虽然无法阻止恶意的攻击者向服务器发送大量不真实的访问数据信息,但可以提前做好准备,提高负载处理的能力。比如可以为带宽扩容,在短时间内为网站急剧扩容,提供几倍或几十倍的带宽,顶住大流量的请求。也可以购买IP 高防服务,只需在 DNS 服务商处,将待保护的域名在 CNAME 解析到京东云为您配置的安全域名上,即可完成接入,有效抵御 SYN Flood、UDP Flood、ICMP Flood 等各种大流量攻击。IP 高防总防护能力达到 TB 级,轻松抵御超大流量攻击。
但某些企业用户业务常态下未遭受大流量DDoS攻击,且对延迟敏感,因此用户希望常态下不使用DDoS防护产品和服务。只在企业大促、展会、产品发布会、新业务上线等重要活动场景,以及企业融资、并购、上市等关乎企业发展的重大事件期间,极易遭受竞争对手和黑产恶意DDoS攻击,需要在活动期间按需使用DDoS防护产品和服务。并由专业的安全团队提供7*24小时安全重保,监控DDoS攻击情况和业务健康状况,实时调整防护策略,保障业务稳定性的同时,也可节省大量安全防护和运营成本。
四、DDoS定制防护服务应势而出
京东云上某电商客户,在大促前期收到威胁情报,活动期间会有大量来自海外的 DDoS 攻击。经过京东云安全团队观察,攻击流量中接近 4 成来自海外,且 CC 攻击较多,由于客户已经接入 IP 高防产品,CC 攻击被有效防护。攻击者发现 CC 攻击未能导致客户源站拒绝服务后,开始尝试四层大流量攻击,攻击峰值超过客户 IP 高防保底带宽,弹性防护生效后开始按天产生费用。
为降低客户 DDoS 防护整体投入,京东云应势推出 DDoS 定制防护服务(Anti-DDoS Premium Service),为此类有活动重保需求的用户提供专业的 DDoS 攻击防护解决方案,根据用户应用场景提供定制化的近源清洗、流量压制、DNS刷新等服务,保障用户业务持续稳定运行。
在上述案例中,京东云安全团队协助客户开启流量压制功能,封禁海外流量,有效降低了攻击流量进入 IP 高防节点,减小客户防护压力,顺利完成客户大促重保防护任务。
京东云安全团队可以提供7*24小时远程支持,实时监控攻击趋势和业务健康状况,保障业务持续稳定运行。 全面分析客户所面临的安全威胁,针对客户重大业务活动提供专属的DDoS防护方案。并根据客户场景定制服务内容,弹性计费,帮助客户节省成本。
五、DDoS定制防护服务架构原理
DDoS 定制防护服务包括近源清洗、流量压制、DNS刷新等服务,可根据具体客户场景提供定制服务:
近源清洗
近源清洗是在运营商侧骨干网络提供大流量的 DDoS 攻击清洗,清洗靠近攻击源,能够有效缓解用户 IP 高防实例和京东云上源站的防护压力,降低被攻击业务进入黑洞的概率。
流量压制
流量压制是在运营商侧骨干网络实现流量封禁,可根据业务实际被攻击的流量地域分布特性,自主选择封禁区域。例如当用户发现 DDoS 攻击中海外流量占比较高,而业务本身并不对海外提供服务,用户可自主选择封禁海外流量,同时也支持用户随时解除封禁。
DNS 刷新
域名系统(Domain Name System,简称 DNS)是整个互联网服务的基础系统之一,负责将人们访问的互联网域名转换为IP地址,这一转换的过程叫做“域名解析”, 所以 DNS 又称“域名解析系统”。
域名系统每个节点都由若干 DNS 服务器组成。这些节点服务器中拥有域名解析配置管理权限的服务器称为权威 DNS 服务器。没有域名解析配置管理权限,但是能同步权威 DNS 服务器数据,利用同步缓存提供解析服务的称为缓存 DNS 服务器。权威 DNS 服务器只拥有部分域名的数据,且互相之间没有直接联系。为能够提供更全面的域名解析服务,产生了递归 DNS 服务器,互联网中的递归 DNS 服务器通常由运营商管理。
DNS 刷新即运营商递归 DNS 服务器发起的和权威 DNS 服务器同步过程,同步过程秒级生效,保障用户业务接入和切换流畅。
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我有一大串格式化数据(例如JSON),我想使用Psychinruby同时保留格式转储到YAML。基本上,我希望JSON使用literalstyle出现在YAML中:---json:|{"page":1,"results":["item","another"],"total_pages":0}但是,当我使用YAML.dump时,它不使用文字样式。我得到这样的东西:---json:!"{\n\"page\":1,\n\"results\":[\n\"item\",\"another\"\n],\n\"total_pages\":0\n}\n"我如何告诉Psych以想要的样式转储标量?解