我們是一家創業公司,像很多團隊一樣,雖然不大但是有激情和有夢想,用理想驅動行動。團隊成員也不是很多,大概10來個,基本都在20~25歲之間。創業之初,我們抓住了移動互聯網的尾巴,在海外市場做卡牌類型的游戲,自己發行加上跟其他公司進行聯合運營,獲得了還算滿意的成績。今年開始決定發力國內的棋牌市場,剛開始還算比較順利,經過半年研發,上線運營僅2個月,就積累了上千DAU。一切都在朝好的方向發展,小伙伴們都在忙著潛心研究用戶需求,規劃著未來,一切看起來都有條不紊地進行著。期間甚至還有上市公司向我們拋出橄欖枝,頓時讓小伙伴們覺得信心倍增。可是,那個時候的我們還不曾想到,接下來的日子會是如此之灰暗和慘淡。
夢想變成夢魘
那是一個平淡無奇而又注定不平凡的下午,1點剛過,運營同學開始發力線上推廣,而大家都在等著業務增長的到來。之前已經有很多次這樣的期待,大家順理成章的認為,這次的期待也能得到應有的回應??墒?,大家盼來的卻是一場噩夢的開始。
當天下午,一條短信打破了辦公室的平靜,“【阿里云】尊敬的xxx:你的IP:x.x.x.x受到的攻擊流量,已超過云盾DDoS基礎防護的帶寬峰值,服務器的所有訪問已被屏蔽??”。緊接著就是客服群收到井噴一樣的投訴,反饋游戲無法登錄,再后來肯定就是玩家對游戲的無盡失望,以及我們對自己深深的責備。此時此刻,我們是蒙的,我們甚至不知道發生了什么,也不知道這條簡單而普通的通知短信背后是如此慘痛的代價。
我們當中有一名小伙伴馬上提出,我們不會是被人攻擊了吧?聽到“攻擊”,大家的神經一下子繃緊起來,想想之前業務運營的順風順水是不是太僥幸了?如今現實殘酷地擺在眼前,我機械地打開阿里云首頁,一條DDoS攻擊報警赫然在列,點開一看451Gbps,瞬間頭皮發麻后脊背一涼。還是邊上的小伙伴喚醒了已經失神的我,“看看阿里云的安全防護吧,以前參加他們云棲大會的時候有聽說過云盾,應該會有產品可以防護的。”從一大堆產品目錄中找到云盾,看到有DDoS高防和游戲盾兩款比較match的產品。既然我們是游戲,就順理成章地打開了游戲盾開始看。通過文檔了解到,它的定位是解決T級別的DDoS攻擊并且可以做到無上限的防護,也就是所謂的“無限抗”。其實當時這個我們是心里打鼓的(事實證明這個擔心是多余的),因為在確認是攻擊問題后,小伙伴們已經分頭開始尋找解決方案,找到的結果不是價格貴得離譜,就是防護原理和效果說不清楚,我們只能看著問題干著急。抱著試試看的心里,我們提交了一份工單。試探性地想了解一下防護過程。時間一分一秒的過去,雖然當時等待的時間僅有2分半鐘,但是對于當時的我來說,好像是過了一整年,除了自己的心跳和呼吸聲,什么也聽不到。事實證明,大廠就是大廠,在處理這些問題上比我們淡定很多,手段和方法也很多。針對我們的攻擊事件類型,阿里云的安全專家也向我們推薦了游戲盾,主要是攻擊峰值較大,攻擊者后續應該有后手,不排除峰值越來越高。另外除了暴力型的DDoS攻擊外,阿里云的安全專家也提醒我們注意CC攻擊風險(后來事實證明,該來的還是會來,躲也躲不掉)。既然定了方案,那么接下來就開始進入緊張的技術對接。
忐忑不安的發布
對接過程還算比較順利,從開通服務到拿到SDK開始對接,流程都比較順利。這里也不得不吹一下我們的開發小哥,技術就是杠杠滴,看了一下文檔經過和阿里云專家的簡單溝通,大概用了2小時就完成了現有業務的SDK集成。正當我們覺得勝利在望,準備發布版本的時候,阿里云的專家緊急叫停。當時我們是拒絕的,心想難道產品有貓膩?不會坑我們的吧!原來他們一看我們要發布,趕緊把我們抓回來,他們有一套標準上線前的測試方案,來驗證游戲盾的效果以及穩定性,防止接入后效果不符合預期。也非常感謝這次測試,發現了我們程序中兩處很難復現又找不到原因的BUG。多次模擬攻擊測試和穩定性測試,又抓出幾個小BUG,在攻擊防御功能符合預期后,評估了那幾個BUG對業務影響不大,我們決定快速上線,優先保證業務。
終于,在中斷6個小時以后,我們的業務再次“上線”。
天枰開始傾斜,勝利最終屬于我們
發布大約1小時后,被攻擊的短信告警再次響起。這一次,不止是一個IP地址被攻擊,短信連續報警,瞬間我們覺得天塌了,已經不敢看短信了。心想,完蛋了,徹底失敗了。但是與之前反應不同的是,僅有幾個人在客服群里嚷嚷游戲掉線了,而大部分玩家都非常平靜。然后嚷嚷游戲掉線的用戶突然又說正常了,可能是自己網絡問題。雖然此時的報警短信一直在炸,但是玩家似乎沒有受到很大影響。這個是比較神奇的,更加神奇的是,我們打開游戲盾控制臺的時候,發現可用的資源被黑客干掉了一小部分,但是我們的玩家在線絲毫沒受到影響。我們當時其實是不相信的,反復確認數據,反復查詢我們自己的數據庫,結果告訴我們,攻擊似乎和我們是絕緣的。難道短信告警是假的?
黑客發動大流量攻擊,節點進入黑洞,但是業務沒有影響
正在我們感慨這個黑科技討論它的技術原理的時候,阿里云的專家在群里貼了一個信息再次震撼到我們了,他們已經找到了黑客用來探測和攻擊的設備,并且提供了黑客在我們游戲內注冊的賬號ID。原來,這個才是他們真正的秘密武器。在接下來的攻防對抗中,游戲盾就好像開掛了一樣,牢牢地鎖死了攻擊者,把攻擊者和正常業務徹底地分開了。
游戲盾幫我們定位到的黑客信息以及詳細調用記錄(已經提交警方)
在震驚和忐忑中,我經歷了人生中最難熬的8小時。接下來發生的任何事情,我都已經不覺得驚奇和惶恐了。晚上9點左右,業務正在攀登高峰,告警短信又開始炸了。與之前不同的是,這一次不是流量屏蔽,而是流量清洗的告警,我們已經在游戲盾控制臺看到好幾十萬的攔截信息。此時阿里云專家給出了緣由,原來這是一起針對我們的CC攻擊。簡單的說,黑客利用手中的肉雞把自己偽裝成為我們的玩家,向我們的服務器發起瘋狂的網絡訪問。因為之前討論中已經有預案了,因此這次攻擊并沒有對我們造成實質影響。除了攔截數的不斷走高,我心里開始慌慌打鼓,業務并沒有受到任何的影響,真的像他們說的一樣,游戲盾可以100%的解決CC攻擊問題!守著業務呆呆的等到凌晨3點,我噩夢中雪崩式的坍塌問題始終沒有出現,業務在攻擊中始終保持平穩運營。
CC攻擊相關日志,業務沒有任何影響
后記
第二天一早(其實當晚也基本沒怎么睡),早早地來到公司對昨天的問題進行復盤。除了接入游戲盾之前的6小時玩家不可用之外,其他時段業務還是挺穩地。仔細回想起來,攻擊問題我們之前一直抱著僥幸心理沒做啥預案,心想著這些東西不一定會碰到。但實際情況就是,怕什么來什么。該考慮的,該布局的還是要提前做準備。
作為運維來說,用少量的代價,寧可備著不用也比出了問題干瞪眼來得好。利用游戲盾提供的攻擊者信息,我們也將證據進行固定并交給警方進行報案,當然這是后面的另外一個故事了。
后來的后來
在之后的幾天里,也正像阿里云安全專家估計的一樣,每個業務爬坡期、業務高峰期,黑客都會利用各種手段、各種攻擊方式對我們展開地毯式狂轟濫炸。短信一直在響,群里報警不斷,但是業務非常平穩。經歷了3天因為不斷的聽到短信聲而導致“精神緊張神經衰弱”后,我總結出一個規律,只要短信告警不連續響超過1分鐘,那就不用看。短信響了7天后,基本上就消停了。
這次經歷讓我感受頗豐,此時此刻我甚至有一些“感激”攻擊我們黑客,讓我們接觸到游戲盾這款防護產品,如果沒有使用游戲盾的話,就算黑客不是每天攻擊,按照500G傳統的IDC高防費用來算,可以直接拖垮我們,所有的努力都付諸東流。當然,作為運維Leader的我也在反思,這么好用的產品擺在阿里云上,為什么這么久了我完全不知道。當然,從甩鍋的邏輯上看,游戲盾你太低調了。從防護效果上看,我還是要給游戲盾點個贊,再給阿里云打個CALL!廢話了一大堆,就說這么多。