堡壘機哲學史

一、緣起:堡壘機從哪里來? ——無風不起浪,從需求中來

2005年,中國,我在某互聯網公司的安全部門,面臨3個問題。
?

1. 運維部門的需求

那時候,數據中心的運維管理人員的技術水平還處于“社會主義初級階段“,經常會出現一些低級的誤操作,導致網站突然無法正常訪問,解決問題基本靠在人堆里吼一聲”誰TM干的”。痛苦在于,誤操作而導致的運維事故極大的降低了網站的可用性,而可用性(俗稱幾個9)又是運維部門永恒不變的關鍵考核指標。運維部門深知,誤操作問題的出現是無法杜絕的。那么,何時出現?看風險概率。而風險概率=運維部門人數 * 服務器規模 * 業務復雜度。由于不能保證沒有誤操作,所以只能在出現誤操作事故后,快速定位問題,快速恢復網站可用,也算是“曲線救國”。運維部門由此產生了一個需求:有沒有一種技術手段在出現誤操作后,第一時間知道是誰做的,怎么做的?

2. 安全部門的需求

我們發現,“壞人”在連續跳轉登錄多臺服務器的過程中,會隱匿他最初的身份。那么,有沒有一種技術手段能解決:不管“他”連續跳轉多少次,身份如何變化,都能知道他就是最初的那個“他”呢”?

3. 風控部門的需求

當時公司準備去美國納斯達克上市,面臨薩班斯(SOX)法案的合規要求,審計事務所普華永道有一份針對數據中心的問題檢查列表,雖然我們都應答滿足,但卻缺少一種有效的技術手段去應對賬號、密碼、操作等方面的審計要求。
三個部門尚未被解決的3個問題,對我來說是個巨大挑戰,因為還年輕,因為無知者無畏,又因為無理由自信,我踏上了求解之路。
當時存在三個層面5種技術解決辦法:
I. 系統層面:在服務器上解決,國外運維廠商的最愛
實現:每臺服務器上安裝Agent + 獨立的Agent Server
優點:可以文本解析并且實現指令控制,國外大廠都有這樣的產品
缺點:
– 買不起:當時1個Agent要1萬元人民幣
– 怕麻煩:不同操作系統需要不同Agent適配,幾千臺服務器N多個Linux操作系統,同時升級很困難
– 搞不定:系統管理員堅決反對安裝Agent,擔心會影響系統穩定性
II. 系統層面:在服務器的系統日志里實現,系統管理員的最愛
實現:過濾+收集日志里的信息
優點:實現簡單
缺點:
– 看不懂:日志根本就不是給普通人看的,是給系統開發人員看的
– 看不到:如果一個用戶連續三次跳轉和改變身份,日志無法關聯
– 看不真:用戶登錄系統后很容易篡改系統日志
III. 系統層面:服務器上解決,修改登錄腳本,系統管理員的最愛
實現:修改登錄過程中的profile 文件
優點:實現簡單,系統管理員就可以搞定
缺點:
– 修改過的腳本文件很容易被用戶改回去
– 升級維護腳本很麻煩
– 沒法關聯分析用戶在多臺設備跳轉的日志
IV. 網絡層面:在網絡中解決,網絡安全廠商的最愛
實現:在交換機上通過流量鏡像實現流量捕獲+協議解析
優點:可以文本提取不加密協議(telnet/ftp等)的輸入輸出內容
缺點:
– 大流量的情況下流量捕獲會丟包,丟包意味著無法完整解析
– 加密傳輸是大趨勢(比如SSH、Https),加密后的協議難解析
– 協議會持續升級,不停去解析協議是一場永無止境的噩夢
V. 終端層面:在終端上解決,終端管理廠商的最愛
實現:在桌面PC/筆記本上安裝Agent
優點:可以錄屏
缺點:
– 終端更多時候是為了日常辦公,很難在終端上區分出哪些是運維操作
– 操作數據沒辦法文本化,簡單的錄屏對查找問題來說價值不大
每種技術解法都有邊界和優缺點,上述5個技術方案都沒能徹底解決問題,這讓我陷入沉思:
問題牛X到了無解么? ——不可能
已知的技術解法太爛? ——有可能
等著我發明新解法么? ——可能是
雖說人類一思考,上帝就發笑,但依然阻止不了我的思考,我堅信一定有一種將時間、空間、技術三者匹配的最優解(此處省略痛苦摸索的過程約20000字),最終的技術解法如下:

二、性空:堡壘機到哪里去? ——從需求中來,到需求中去

獨樂樂,不如眾樂樂。能夠為更多用戶解決從未被解決過的問題,不是一件很開心的事么?我離職去創業了。
客戶做安全項目的3個驅動力,按照重要程度依次排序:
來自行業標準合規性驅動——那時候,等級保護條例還未發布;
來自行業內安全事件驅動——那時候,也沒出過轟動的大事件;
來自用戶自身的需求驅動——沒有選擇,只剩下這個了!
在那個年代,只能找高端大氣要求高的大客戶,因為一般的客戶根本就沒有需求。
堡壘機的發展史完全就是高端客戶的需求推動史,高端客戶的特點就是有錢,愛思考,愛提需求,而且是源源不斷地提:
客戶說:我們不是只有Linux系統,還有各種Unix系統哦?
——我們開始兼容各種訪問AIX/HP-UX/Solaris/SUSE/AS400的操作;
客戶說:我們除了Unix/Linux系統,還有很多Windows系統哦?
——我們開始兼容各種訪問Windows的圖形操作;
客戶說:我們有很多是通過瀏覽器進行的操作哦?
——我們開始兼容各種瀏覽器的操作審計;
客戶說:我們有很多通過客戶端工具進行的操作哦?
——我們開始兼容各種C/S的操作審計;
客戶說:我們還有各種網絡設備哦?
——我們開始兼容各種網絡設備的操作審計……
兼容性的問題解決好以后,還沒喘口氣,客戶說:你們不能只做審計啊,還要加強控制。
——我們開始著手實現權限控制:動態授權、登錄復核、雙人復核、操作黑白名單 ……
和誰在一起,真的很重要。我們就像海綿一樣,從各個行業頂尖客戶中吸取獨特的思路,融入到產品中去:
全國性股份制銀行客戶讓我們學會了如何提高風險管控;
頭部互聯網客戶讓我們學會了什么才是領先的技術;
世界五百強客戶讓我們學會了如何做好項目管理;
……
黑夜給了我黑色的眼睛,我卻用它尋找光明;
客戶給了我難搞的問題,我卻用它尋找謎底。
高端客戶打磨了我們高端的能力,和他們在一起,根本不缺高質量的需求和高標準的要求,一路相伴,如履薄冰。

三、無我:堡壘機是什么?——近朱者赤,始終和運維在一起

人類并不偏愛風險,運維也是如此,運維偏愛效率,但是風險始終如影隨形,好比硬幣的正反面,風險和效率需要一個完美的平衡,堡壘機就是平衡效率的風險工具。
安全永遠是業務的一個屬性,國家安全是國家業務的屬性,網絡安全是網絡業務的屬性,運維安全是運維業務的屬性,而對運維這個業務的深刻理解決定了堡壘機是什么。
什么是運維?簡潔的理解,運維= 運行 + 維護:
– 運行(發現問題):通過監控這種手段發現問題,實時監控數據中心各層(應用、中間件、數據庫、操作系統、硬件、機房)的當前運行狀態是不是正常穩定,核心訴求是快速定位問題,并且能夠自動找到是什么原因引起的,俗稱“根因分析”,這也是當下各種智能運維(AIOps)產品要解決的核心問題;
– 維護(解決問題): 監控并不解決問題,解決問題是通過“操作”這個動作,把不正常的狀態恢復到正常狀態,在解決問題的過程中往往會帶來新問題,運行沒有風險,維護才有風險,運維人員的高權限導致各種誤操作、違規操作風險都是在這里出現,這就是2005年,堡壘機開始的地方。
世上本沒有運維安全,直到堡壘機的出現,它開啟了運維安全這個全新領域。
曾有某客戶這樣評價堡壘機:他買過很多安全產品,但是,他認為堡壘機是這10年里,唯一可以媲美防火墻的產品,真正幫他們解決了實際問題。
此話聽得我淚流滿面,作為產品的設計者,還有什么比得到客戶的肯定更讓人感動的呢?
2005年,我的預言是:
一、未來,中國所有的數據中心里都會用到堡壘機;
二、但是,不一定都是用齊治的。
今天這個預言已經實現,看到有這么多的廠商在不遺余力地用各種方法推廣自家的堡壘機產品,作為堡壘機的發明者,我很欣慰。競爭讓產品充滿活力和想象力,如果這些競爭能從無序到有序,從低質到高質,那就更好了。
子在川上曰,逝者如斯夫。
這十多年,我從未關注過所謂的對手,是因為我們是這個領域的創造者和領跑者。追隨者喜歡東張西望和左顧右盼,領跑者從不回頭看看身后會有多少跟隨者,而是堅定地把目光聚焦于前方。
如今,客戶的聲音依稀在耳邊回響:
你們為什么只做堡壘機呢?
你們除了做堡壘機,還能做什么呢?
俱往矣,數風流人物,還看今朝。
聚焦下一個十年里,數據中心客戶面臨著更大的問題,尋找時代的技術最優解,是今天我們的挑戰。創造出下一個通用性的解決方案,讓更多客戶使用,解決未被滿足的需求,依然是齊治不變的追求!
———————

2條評論 on "堡壘機哲學史"


  1. 從需求中來,到需求中去
    和誰在一起,真的很重要。高端客戶打磨了我們高端的能力,和他們在一起,根本不缺高質量的需求和高標準的要求,一路相伴,如履薄冰。

    很贊!

發表評論