阿里雲建躍:WAF,一場驚心動魄的搜捕
作者:淺黑科技 史中
蒙恬北築長城,卻匈奴七百餘里。
守衛家園的人,永遠把自己寫成一首詩。
陵谷滄桑,如今太平盛世。邊關寧息商旅往來,曾經的金戈鐵馬退隱成一道道海關閘口。而在這一道道閘口旁,坐著那些火眼金睛的邊檢警察。
去過米國的同學都會記得,邊檢警察用各種腦洞問題來盤問你,就是為了確保你沒有扯謊。雖然我們大多數都是祖傳「良民」,但這種經歷還是多少讓人有點小緊張。
在賽博世界裡,每一個網站就像是一個國度,同樣有人負責負責把守海關閘機,這就是 WAF。
GIF/692K
從科學角度講,什麼是 WAF 呢?
WAF 的中文表示是:網站應用防禦系統,這也許是互聯網中最早的防禦系統。它可以通過規則來判斷一個請求究竟是「好」還是「壞」。從最早的軟體,到硬體盒子,到雲WAF,十幾年的歷史中,無數網站依靠這種自動化的識別方式,抵禦了大量惡意入侵。
在上海雲棲大會上,我見到了阿里雲 WAF 的掌舵人建躍。我得知阿里雲WAF最近在大中華地區銷量達到了第一位,而本身全中國有37%的網站服務坐落在阿里雲上。根據數據推算,阿里雲WAF充當了數百萬網站的「門神」,從這一點上來看,建躍還頗有點像當代的蒙恬。
建躍
(一)WAF 和美國海關
縱然每個美國邊境警察都配了一雙全高清高分辨鈦合金火眼,但是美國境內依然會有非法移民。顯然,他們中的很大一部分就是從邊境警察眼皮底下溜進美國的。這不得不說是一種尷尬。
WAF 同樣面臨這種尷尬。「來的都是客,全憑嘴一張。」遇到「演技派」的壞人,防火牆系統有時確實會放過。難怪很多安全專家所說,「WAF生來就是被繞過的」。
建躍覺得,WAF 顯然不是萬能的。但如果沒有它,就會出大問題。
首先,當有 0Day 漏洞來襲的時候,WAF真的是有用。0Day漏洞的爆發往往猝不及防,而且在爆出之後幾小時之內,各路黑客就會在全網發起海嘯一樣的攻擊。因為你在後台不可能如此快速地修復漏洞,必須在前面豎起一道高強,在第一時間擋住利用這個0Day進攻的大潮。
其次,對於普通的 web 攻擊,一個好的WAF可以抵擋其中的95%-99%。這種情況下,WAF的作用並不是杜絕黑客的攻擊,而是大大提高攻擊者的成本。他必須不斷「改進」攻擊技術,提高攻擊花費,才有可能騙過WAF。直到有一天,黑客攻破一個網站需要付出的努力和成本接近甚至大過收益,他自然就會放棄。
最後,即使有漏過的惡意請求,WAF 也可以根據不完整的判斷,提示用戶此處有風險。一旦引起管理員的注意,黑客攻破網站的成本就會陡然增加。
他說。
回到美國海關的比喻。縱然邊檢警察經常把打黑工的外國人放進自己的領土,但從全局來看,他們遣返的「風險人士」顯然更多。如果沒有他們的第一道防線,恐怕美國早已被各路移民佔領,移民局連遣返都遣返不過來。
(二)演算法大神:不錯殺,不放過
2014年,建躍接手WAF,要把原本用於阿里雲內部安全的能力商業化,簡單來說就是做成產品賣出去。
事實上,早在2012年,阿里雲各路安全產品的商業化就已經開始,只不過,WAF產品成型的過程幾經坎坷,連基本的構架都三次改易。
換句話說,阿里雲爆炸式增長,其實也超越了建躍和同事們的預期。他們猛然發現,如果和雲計算緊密結合,其實可以把 WAF 做得更「炸裂」。於是直到2016年阿里雲WAF才和世人見面。
這麼炸裂的阿里雲 WAF,究竟有神馬過人之處呢?
建躍如數家珍:
傳統的 web,只有基於正則的規則匹配。簡單說來,有一個0Day漏洞爆發,只需要寫一條規則,幹掉利用這個漏洞的代碼,就成功了。
但是阿里雲 WAF 卻需要更多的數據,這些數據根據不同網站的業務而不同。
他舉了一個例子:
如果有一個電商網站,正常商品的價格都在100-1000塊浮動。突然有一天有一個商品變成了「元」,那麼很可能這個數據就是被人為偽造的。
如果一個商品所有人都沒有訪問過,只有幾個特定的 IP 訪問,那麼這也很可能是被刻意製造的「假象」。
有了這些數據,接下來聚光燈就照到了阿里雲安全的演算法工程師們身上,他們需要打開腦洞,設計出一套套演算法。
簡單來說,符合一些數據特徵的請求,會被演算法工程師標記為「黑」,於是這類請求就會在下次被拒絕,或者重點關注。每套演算法都像一個海關通道,每個請求就像一個人。從一頭進入,被認為是「良民」的請求自動放行,有問題的直接扣住。
(三)污點罪人和全網追捕
不要看一個人說什麼,而要看他做過什麼。
女孩們用來判斷男友是否靠譜的金科玉律,同樣適用於判斷危險的互聯網請求。
每個請求背後都可以追溯到一些發起人的特徵,例如:
IP 歸屬地
URL 中的特殊參數
UA 裡面的特殊標記
POST 的內容
發起請求的設備(設備指紋)
總之,如果請求的發起人有過「前科」,那麼根據WAF的演算法,很可能將他以後的請求直接拒之門外。
這大概就像在地鐵口盤查群眾的警察叔叔使用的公民信息系統,輕輕一掃,你之前抄作業,欺負女同學的前科就赫然在列了。
舉個例子,如果一個 IP 被認定做了非法的行為,那麼所有受阿里雲WAF保護的童鞋,都會免遭它的「二次傷害」。
建躍說。
這大概就像對於一個通緝犯的全網追捕,只要在警察叔叔的布控體系下,在哪裡露面都會遭到無情的拘捕。
除此之外,還有一種場景。
電影里的老刑警,通過觀察一個人的行為舉止,就可以八九不離十地判斷他心裡究竟有沒有鬼。在賽博世界,這個規則同樣適用。
好的 WAF 規則就像一個「老刑警」。如果某個IP或者設備表現異常,就會被識別出來,例如,一個IP訪問了某個金融網站。這本是無可厚非的行為。但是如果查看歷史數據發現,這個IP只訪問金融網站,那麼這就絕對不是一個正常的用戶行為。
再財迷的人,也不可能每天只刷自己的銀行賬戶吧。。。
這樣的賬戶同樣會被列入異常名單,有演算法會對它進一步篩查。
建躍舉了一個不久前他剛剛經歷的案子:
某航空公司,深受黃牛困擾,每次系統放出折扣機票,就會被瞬間搶光,但是仔細調查發現,搶票的人並不是真正的用戶,而是黃牛黨。他們囤積機票,高價賣出。一旦有人確定購買,他們就利用自動化程序在航空公司網站上進行退票,在同一瞬間再為真正的乘機人重新購票。以迅雷不及掩耳之勢完成機票倒手。
在這個黑產中,我們沒有辦法用傳統的方法來揪出黃牛,因為他們的請求頻率很低,就像正常用戶一樣,每小時甚至每天才發送一個請求。但是我們依然可以通過行為模式來判斷其中大多數的刷票 IP,例如他們登錄網站以後,並不會隨便逛,而是直搗黃龍,直接購票,而且沒有絲毫比對,猶豫。通過這種演算法,我們定義出一批黃牛黨,然後在接下來的一個小時的周期內對他們的IP實行封禁。
如果一小時以後,這些 IP 的行為還是異常,就會重新進入「小黑屋」,如此往複。
用這種方式,航空公司的惡意黃牛流量被攔截了86%,雖然這個數據距離完美還有很長的路要走,但是每多攔截1%的惡意流量,就能為航空公司節省無數的費用。
(四)正邪對決一秒間
建躍說,目前阿里雲 WAF 能做到的是,每隔一小時就基於最新的數據升級一次演算法。相比之下,傳統的「盒子」WAF,最多每周或者每月進行一次規則更新,就顯得相形見絀。
作為阿里雲 WAF 的掌舵人,建躍抓緊一切機會向我安利雲WAF的好處。說到底,雲WAF的好處可以總結為:「天下武功,唯快不破。」
因為 WAF 在雲上,所以實際上沒有「部署」的過程,只有「接入」的過程,所以無論伺服器是否在雲上,在哪家雲上,伺服器體量有多大,伺服器是否快速增減,都不會對WAF的部署速度產生影響。
同樣因為 WAF 在雲上,所以背後有足夠強大的數據和計算力。一旦生成新的規則,就可以瞬間對用戶的數據進行重新計算。
無數好萊塢大片告訴我們,正邪較量,往往決勝於一秒間。
在網路那一端,不是小綿羊,而是心狠手辣陰險狡詐的黑產和黑客。每晚一秒封堵,他們就可能刷多一百張票。每晚一個小時攔截,他們就可能多竊取幾千條用戶信息。
這不是好萊塢大片,這是殘酷的現實。
說到這裡,建躍想起了另一個事情:
有一家保險公司,經歷了從傳統IDC機房遷移到雲的過程。在剛開始接入時,他們對跑在雲上的防護系統還是不放心,於是決定先用觀察模式。也就是說,只報警,不攔截。
他們用了大概兩個小時去驗證,果然可以攔截以前沒有發現的入侵行為,而且似乎沒有對正常業務造成影響。同樣我們也會介紹,我們上線任何一條規則都會通過歷史數據去驗證規則的誤殺情況,確保沒有問題,再灰度上線。看到我們比較靠譜,對方決定經過簡單的灰度測試之後,全面部署。
(五)碼農和雕塑家
WAF 所做的一切,其實就是描述一個正常的人。
我們通過一條條規則,逐漸框定出他的樣貌,然後不斷地微調,精準。
建躍說。
這大概就像一個雕塑家的追求。刻刀冰冷,卻能修飾出動人的臉龐。
我曾經是一個隨遇而安的人。很少決定自己想要做什麼。就連當年選擇計算機專業,都是學計算機的表哥推薦的。但只要把任務交給我,我就會盡全力把它做到極致。也許正因如此,他們才把 WAF 交給我吧。
對於競爭激烈的安全市場,尤其是軍閥混戰的 WAF 市場,能拿到如今的市場份額,稱得上建躍口中的「極致」。
不過看起來他絲毫沒有功成名就的姿勢,每天憂慮的還是怎麼提高 WAF 的能力和用戶體驗,一副苦逼臉。
採訪臨近結束時,建躍對我說:
原來,我可能像很多人一樣庸常隨性。在阿里雲的六年時間,肖力、刺和雲舒他們深深影響了我,現在我很明確地知道,自己想要什麼。
我越來越篤定,人的一生如果有機會做一件意義非凡的事情,才算是不虛此行。
互聯網正在重新塑造所有人的生活方式。在這個浪潮中,無數嚴重的安全問題暴露出來。仔細看來,站在這個位置的人,恰好是我。如果我付出努力,付出更多努力,也許有機會推動整個中國互聯網的安全發展。
這對我來說,是一種幸運。


※《網路安全法》和我的企業有這些關係!
※市場排名第一的WAF,四大黑科技是怎樣煉成的?
TAG:阿里雲安全 |