閱讀804 返回首頁    go 京東網上商城


阿裏雲建躍:WAF,一場驚心動魄的搜捕

蒙恬北築長城,卻匈奴七百餘裏。

守衛家園的人,永遠把自己寫成一首詩。

陵穀滄桑,如今太平盛世。邊關寧息商旅往來,曾經的金戈鐵馬退隱成一道道海關閘口。而在這一道道閘口旁,坐著那些火眼金睛的邊檢警察。

去過米國的同學都會記得,邊檢警察用各種腦洞問題來盤問你,就是為了確保你沒有扯謊。雖然我們大多數都是祖傳“良民”,但這種經曆還是多少讓人有點小緊張。

在賽博世界裏,每一個網站就像是一個國度,同樣有人負責負責把守海關閘機,這就是 WAF。

1

從科學角度講,什麼是 WAF 呢?

WAF 的中文表示是:網站應用防禦係統,這也許是互聯網中最早的防禦係統。它可以通過規則來判斷一個請求究竟是“好”還是“壞”。從最早的軟件,到硬件盒子,到雲 WAF,十幾年的曆史中,無數網站依靠這種自動化的識別方式,抵禦了大量惡意入侵。

在上海雲棲大會上,我見到了阿裏雲 WAF 的掌舵人建躍。我得知阿裏雲 WAF 最近在大中華地區銷量達到了第一位,而本身全中國有37%的網站服務坐落在阿裏雲上。根據數據推算,阿裏雲 WAF 充當了數百萬網站的“門神”,從這一點上來看,建躍還頗有點像當代的蒙恬。

image
建躍


縱然每個美國邊境警察都配了一雙全高清高分辨鈦合金火眼,但是美國境內依然會有非法移民。顯然,他們中的很大一部分就是從邊境警察眼皮底下熘進美國的。這不得不說是一種尷尬。


image


WAF 同樣麵臨這種尷尬。“來的都是客,全憑嘴一張。”遇到“演技派”的壞人,防火牆係統有時確實會放過。難怪很多安全專家所說,“WAF 生來就是被繞過的”。
建躍覺得,WAF 顯然不是萬能的。但如果沒有它,就會出大問題。

首先,當有 0Day 漏洞來襲的時候,WAF 真的是有用。0Day 漏洞的爆發往往猝不及防,而且在爆出之後幾小時之內,各路黑客就會在全網發起海嘯一樣的攻擊。因為你在後台不可能如此快速地修複漏洞,必須在前麵豎起一道高強,在第一時間擋住利用這個 0Day 進攻的大潮。

其次,對於普通的 web 攻擊,一個好的 WAF 可以抵擋其中的 95%-99%。這種情況下,WAF 的作用並不是杜絕黑客的攻擊,而是大大提高攻擊者的成本。他必須不斷“改進”攻擊技術,提高攻擊花費,才有可能騙過 WAF。直到有一天,黑客攻破一個網站需要付出的努力和成本接近甚至大過收益,他自然就會放棄。

最後,即使有漏過的惡意請求,WAF 也可以根據不完整的判斷,提示用戶此處有風險。一旦引起管理員的注意,黑客攻破網站的成本就會陡然增加。

他說。

回到美國海關的比喻。縱然邊檢警察經常把打黑工的外國人放進自己的領土,但從全局來看,他們遣返的“風險人士”顯然更多。如果沒有他們的第一道防線,恐怕美國早已被各路移民占領,移民局連遣返都遣返不過來。


2014年,建躍接手 WAF,要把原本用於阿裏雲內部安全的能力商業化,簡單來說就是做成產品賣出去。

事實上,早在2012年,阿裏雲各路安全產品的商業化就已經開始,隻不過,WAF 產品成型的過程幾經坎坷,連基本的構架都三次改易。

換句話說,阿裏雲爆炸式增長,其實也超越了建躍和同事們的預期。他們勐然發現,如果和雲計算緊密結合,其實可以把 WAF 做得更“炸裂”。於是直到2016年阿裏雲 WAF 才和世人見麵。

image


這麼炸裂的阿裏雲 WAF,究竟有神馬過人之處呢?

建躍如數家珍:

傳統的 web,隻有基於正則的規則匹配。簡單說來,有一個 0Day 漏洞爆發,隻需要寫一條規則,幹掉利用這個漏洞的代碼,就成功了。
但是阿裏雲 WAF 卻需要更多的數據,這些數據根據不同網站的業務而不同。

他舉了一個例子:

如果有一個電商網站,正常商品的價格都在100-1000塊浮動。突然有一天有一個商品變成了“0元”,那麼很可能這個數據就是被人為偽造的。

如果一個商品所有人都沒有訪問過,隻有幾個特定的 IP 訪問,那麼這也很可能是被刻意製造的“假象”。

有了這些數據,接下來聚光燈就照到了阿裏雲安全的算法工程師們身上,他們需要打開腦洞,設計出一套套算法。

簡單來說,符合一些數據特征的請求,會被算法工程師標記為“黑”,於是這類請求就會在下次被拒絕,或者重點關注。每套算法都像一個海關通道,每個請求就像一個人。從一頭進入,被認為是“良民”的請求自動放行,有問題的直接扣住。

image


不要看一個人說什麼,而要看他做過什麼。

女孩們用來判斷男友是否靠譜的金科玉律,同樣適用於判斷危險的互聯網請求。

每個請求背後都可以追溯到一些發起人的特征,例如:

IP 歸屬地
URL 中的特殊參數
UA 裏麵的特殊標記
POST 的內容
發起請求的設備(設備指紋)

總之,如果請求的發起人有過“前科”,那麼根據 WAF 的算法,很可能將他以後的請求直接拒之門外。

這大概就像在地鐵口盤查群眾的警察叔叔使用的公民信息係統,輕輕一掃,你之前抄作業,欺負女同學的前科就赫然在列了。

舉個例子,如果一個 IP 被認定做了非法的行為,那麼所有受阿裏雲 WAF 保護的童鞋,都會免遭它的“二次傷害”。

建躍說。

image


這大概就像對於一個通緝犯的全網追捕,隻要在警察叔叔的布控體係下,在哪裏露麵都會遭到無情的拘捕。

除此之外,還有一種場景。

電影裏的老刑警,通過觀察一個人的行為舉止,就可以八九不離十地判斷他心裏究竟有沒有鬼。在賽博世界,這個規則同樣適用。

好的 WAF 規則就像一個“老刑警”。如果某個 IP 或者設備表現異常,就會被識別出來,例如,一個 IP訪問了某個金融網站。這本是無可厚非的行為。但是如果查看曆史數據發現,這個 IP 隻訪問金融網站,那麼這就絕對不是一個正常的用戶行為。

再財迷的人,也不可能每天隻刷自己的銀行賬戶吧。。。

這樣的賬戶同樣會被列入異常名單,有算法會對它進一步篩查。

建躍舉了一個不久前他剛剛經曆的案子:

某航空公司,深受黃牛困擾,每次係統放出折扣機票,就會被瞬間搶光,但是仔細調查發現,搶票的人並不是真正的用戶,而是黃牛黨。他們囤積機票,高價賣出。一旦有人確定購買,他們就利用自動化程序在航空公司網站上進行退票,在同一瞬間再為真正的乘機人重新購票。以迅雷不及掩耳之勢完成機票倒手。

在這個黑產中,我們沒有辦法用傳統的方法來揪出黃牛,因為他們的請求頻率很低,就像正常用戶一樣,每小時甚至每天才發送一個請求。但是我們依然可以通過行為模式來判斷其中大多數的刷票 IP,例如他們登錄網站以後,並不會隨便逛,而是直搗黃龍,直接購票,而且沒有絲毫比對,猶豫。通過這種算法,我們定義出一批黃牛黨,然後在接下來的一個小時的周期內對他們的 IP 實行封禁。

如果一小時以後,這些 IP 的行為還是異常,就會重新進入“小黑屋”,如此往複。

用這種方式,航空公司的惡意黃牛流量被攔截了86%,雖然這個數據距離完美還有很長的路要走,但是每多攔截1%的惡意流量,就能為航空公司節省無數的費用。


建躍說,目前阿裏雲 WAF 能做到的是,每隔一小時就基於最新的數據升級一次算法。相比之下,傳統的“盒子” WAF,最多每周或者每月進行一次規則更新,就顯得相形見絀。
作為阿裏雲 WAF 的掌舵人,建躍抓緊一切機會向我安利雲 WAF 的好處。說到底,雲 WAF 的好處可以總結為:“天下武功,唯快不破。”

image


因為 WAF 在雲上,所以實際上沒有“部署”的過程,隻有“接入”的過程,所以無論服務器是否在雲上,在哪家雲上,服務器體量有多大,服務器是否快速增減,都不會對 WAF 的部署速度產生影響。

同樣因為 WAF 在雲上,所以背後有足夠強大的數據和計算力。一旦生成新的規則,就可以瞬間對用戶的數據進行重新計算。

無數好萊塢大片告訴我們,正邪較量,往往決勝於一秒間。

在網絡那一端,不是小綿羊,而是心狠手辣陰險狡詐的黑產和黑客。每晚一秒封堵,他們就可能刷多一百張票。每晚一個小時攔截,他們就可能多竊取幾千條用戶信息。

這不是好萊塢大片,這是殘酷的現實。


image


說到這裏,建躍想起了另一個事情:

有一家保險公司,經曆了從傳統 IDC 機房遷移到雲的過程。在剛開始接入時,他們對跑在雲上的防護係統還是不放心,於是決定先用觀察模式。也就是說,隻報警,不攔截。

他們用了大概兩個小時去驗證,果然可以攔截以前沒有發現的入侵行為,而且似乎沒有對正常業務造成影響。同樣我們也會介紹,我們上線任何一條規則都會通過曆史數據去驗證規則的誤殺情況,確保沒有問題,再灰度上線。看到我們比較靠譜,對方決定經過簡單的灰度測試之後,全麵部署。


WAF 所做的一切,其實就是描述一個正常的人。
我們通過一條條規則,逐漸框定出他的樣貌,然後不斷地微調,精準。

建躍說。

這大概就像一個雕塑家的追求。刻刀冰冷,卻能修飾出動人的臉龐。

image

我曾經是一個隨遇而安的人。很少決定自己想要做什麼。就連當年選擇計算機專業,都是學計算機的表哥推薦的。但隻要把任務交給我,我就會盡全力把它做到極致。也許正因如此,他們才把 WAF 交給我吧。

對於競爭激烈的安全市場,尤其是軍閥混戰的 WAF 市場,能拿到如今的市場份額,稱得上建躍口中的“極致”。

不過看起來他絲毫沒有功成名就的姿勢,每天憂慮的還是怎麼提高 WAF 的能力和用戶體驗,一副苦逼臉。

采訪臨近結束時,建躍對我說:

原來,我可能像很多人一樣庸常隨性。在阿裏雲的六年時間,肖力、刺和雲舒他們深深影響了我,現在我很明確地知道,自己想要什麼。

我越來越篤定,人的一生如果有機會做一件意義非凡的事情,才算是不虛此行。

互聯網正在重新塑造所有人的生活方式。在這個浪潮中,無數嚴重的安全問題暴露出來。仔細看來,站在這個位置的人,恰好是我。如果我付出努力,付出更多努力,也許有機會推動整個中國互聯網的安全發展。

這對我來說,是一種幸運。

原文鏈接

最後更新:2017-06-26 15:32:38

  上一篇:go  《數據結構與抽象:Java語言描述(原書第4版)》一P.5 重用類
  下一篇:go  《數據結構與抽象:Java語言描述(原書第4版)》一P.4.3 統一建模語言