DreamCity

愿你有一天,能与你最重要的人重逢

从噩梦到美梦 —— 遭到流量攻击后与 Azure 工程师的沟通记录

Steven Qiu's Avatar 04/10/2020 日记科技

这篇博文内提到的 Azure 均表示 Microsoft 自营的全球版 Azure,而非世纪互联运营的中国版 Azure。

今年二月的时候,为了方便海外用户,我给 LittleSkin 加上了 Azure 的 CDN。

我知道腾讯的国内 CDN 在海外非常蛋疼(虽然腾讯的海外 CDN 从 2018 年就开始内测,但是到现在都没开放),但是没有想过有一天 LittleSkin 会有海外用户,所以对海外这一块一直不怎么上心。之前其实也收到过两三位海外用户的抱怨,也有过海外优化的尝试,但是因为各种原因一直没有成功。直到二月,一位居住在韩国的朋友再次和我抱怨他经常因为网络原因无法正常使用 LittleSkin,我就想着趁着寒假延长把海外优化做好。

虽然说 Azure 的 CDN 相比腾讯的国内 CDN 来说贵很多,但是考虑到正常情况下海外流量并不大,成本并不算高。部署完成后效果还不错的样子,然后我就不怎么管了。直到三月下旬…

03/23/2020 (Day 1)

我在登录 Azure 控制台查看账单时,突然发现三月的 CDN 的开销居然将近 HK$2K…?

当时我就慌了,毕竟这看起来完全不像是正常用量,而且我完全付不起这账单…

赶紧点开 CDN 控制台查看用量详情,然后看到了:

我滴个乖乖,好家伙,短时间内产生了总共 2.5 TiB 流量,肯定是被打了。

实际上 LittleSkin 从今年二月开始就被打了好多次,去年八月也有几次(什么仇什么怨啊这是…)。虽然这一次没有对业务可用性造成多大的影响,但是造成的经济损失最大,我们完全承担不了。无奈之下,我开了个支持请求,问能不能免除恶意攻击产生的 CDN 用量的费用。虽然之前有过国内公有云服务商对客户受到的攻击造成的用量免单的案例,但是毕竟 Azure 是国际领先的企业级解决方案供应商,专家技术支持也是收费的,我很担心 Azure 不会取消我的这部分费用,一直提心吊胆的。

非常有意思的是,创建支持请求时,当我把紧急程度设置为 A(严重影响)后,首选联系方式就只剩下了电话,而可选的语言只剩下了英语和日语。但是很尴尬的是,虽然我的支持请求的详细信息是使用英文编写的(感谢 @dz_paji 提供的模板),但标题忘记改了,还是中文…

实际上,我最后收到的是中文服务。

大约一个小时后,我接到了 Azure 账务与订阅管理支持工程师 Tina Wu 从台湾打来的电话。在死寂一般的三秒后,我试探性地说了一声“喂”(这三秒内我一直在很紧张地思考我到底应该说“Hello”还是“喂”,毕竟我的英语水平其实并不足以应对这样的沟通),然后听到了电话那头传来了一个带有明显的台湾腔的优美的女声:“喂您好,请问是 Steven 吗?”

在这里必须要点名表扬 Tina,真的太棒了,超级有耐心,电话结束的时候还和我说谢谢,明明要说谢谢的是我才对…

这通电话持续了大约十分钟,在电话里我详细阐述了我遇到的问题:意外的攻击造成了异常的 CDN 用量,进而导致账单金额过高,而我无力支付。Tina 问我是否可以提供相关证据,但是我手上除了理论上的依据(用量相较平时暴增千万倍)之外完全没有这方面的信息…而后 Tina 表示可以免除这部分的费用,但在申请退款之前,需要先将问题提交给相关的技术团队,调查问题发生的原因。在大约十五分钟后的邮件中,Tina 也再次阐述了这一点:

我把我们二月上旬受到的一次 CC 攻击的日志通过邮件发送给了 Tina(虽然没什么用,但是聊胜于无),之后就只能等着了。

03/24/2020 (Day 2)

中午 Tina 通过邮件告诉我,工程师 Jiaming Wang 会协助调查这个问题,他会联系我处理技术相关方面的问题:

15:45 我接到了 Jiaming 从上海打来的电话,再次简单阐述了我遇到的问题,并提供了我能看到的具体的用量信息。Jiaming 表示他会和 Verizon 方面联系(因为当时我们使用的是 Standard Verizon 的 CDN)来进一步确认相关用量,然后再采取进一步操作。

03/25/2020 (Day 3)

中午将近十二点,我接到了 Jiaming 的电话,告诉我从 Verizon 那边得到的信息:两个 IP 不断请求同一个 URL,每个 IP 都请求了两百多万次,基本可以确定是恶意攻击。我问 Jiaming 能不能 ban 掉这两个 IP,并且给出更详细的日志,Jiaming 说他需要询问一下 Verizon:

两个攻击来源 IP 167.179.109.19962.210.252.116 都是 Vultr 的,但是 Vultr 换台机器就能换 IP,所以其实 ban 掉这俩也没有多大用处。

下午一点半左右,我再次接到了 Jiaming 的电话。Jiaming 说 Verizon 那边表示可以帮我在 CDN Endpoint 上添加相关规则来挡掉这两个 IP 的流量。我继续询问能不能提供更详细的访问日志,Jiaming 说需要询问 Verizon。十五分钟后 Jiaming 就给我回电了,说 Verizon 那边不给。我也只好作罢。

我还询问了一下地区筛选中设置的禁止访问的地区产生的流量是否会计入我的用量中,Jiaming 说还是需要询问 Verizon。二十多分钟后,Jiaming 回电告诉我,这部分流量会计入用量中。还给我说明了对于 Standard Microsoft 的 CDN,可以通过创建 WAF 规则来处理这部分的问题。

Jiaming 说他已经将调查结果返回给了相关部门,接下来关于费用的部分还是由 Tina 来联系我解决。因为担心这个周末的省质检考试中我无法接听电话,所以我给 Tina 发了一封邮件,询问时间安排:

事实上我的担心是多余的,因为人家的工作时间根本就不包含周末嘛!

Tina 晚上将近九点的时候回复了我的邮件,表示 Jiaming 有与她联系,但是因为我们使用的 CDN 实际是由 Verizon 提供的服务,退款需要与 Verizon 那边一起作业,可能需要几天时间。她说她次日会找时间给我打电话:

晚上九点给我回邮件…?说好的工作时间是早上九点到下午六点呢…?

03/26/2020 (Day 4)

Tina 把我鸽了…

我一整天都没有接到 Tina 的电话,感觉整个人都不好了。

我在晚上将近十二点的时候给 Tina 发了一封邮件,尝试协商具体的联系时间:

03/27/2020 (Day 5)

Tina 在早上九点多给我打电话,说明相关信息已经上报到相关团队,但是退款的问题需要与 Verizon 那边协商,让我等着。同时还解决了困扰我的 Storage 的问题(Azure 创建 VM 时分配的磁盘的默认大小与免费套餐的不符,导致了额外的支出),相关部分也一并提交退款申请了。在随后的邮件中,Tina 说她希望在下一个账单出账日前解决这个问题:

Tina 真的超级棒,还预祝我周末愉快什么的,虽然说我周末是考试…之后的邮件里也有一些祝福,真的很棒。

04/03/2020 (Day 12)

距离 Tina 上次联系我,已经过了一周时间。我发了封邮件问问 Tina 案件的进展如何,同时告知我将在不久后返校,以后都通过邮件联系,没想到吃了个闭门羹:

好吧,只能等着了。

04/06/2020 (Day 15)

Tina 在中午将近 12 点的时候回复了我的邮件,说明费用的部分还在等待上级的指示,还需要再等待一会儿:

04/09/2020 (Day 18)

下午 Tina 通过邮件告诉我,他们已经为我取消了攻击导致的异常的 CDN 用量的费用,以及之前的误建的磁盘的费用:

三月份的应付的账单金额直接从 HK$2K+ 减少到了 HK$1.11,问题基本解决。

YEAH !!!!

写在最后

这次攻击后,我大概也学到了些什么,比如及时关注资源用量,防止大量意外费用的产生。

与 Azure 的工程师打交道是一种享受。如果可以的话,我还想和 Tina 和 Jiaming 说话。

以上。

This article was last updated on days ago, and the information described in the article may have changed.