目前在大多數行業后加入者的眼中“二進制”和“腳本”流派廣為人知,雖然他們是安全行業的主力軍,但除了微觀對抗之外安全是一個很大的工程,比如企業安全管理,我把他們歸入安全行里的第三流派-CSOs,加了s跟scriptkids一樣表示他們是一個群體,這個群體從生態鏈的頂端鏈接著絕大多數從業者和安全廠商。
企業安全是不是發現漏洞然后修漏洞,再設置一下防火墻之類的?
假如你的公司只有一個產品,只有2臺服務器,只有3個程序員寫代碼,我認為這個說法不能算錯。不過在絕大多數情況下,企業安全遠不止于此。滲透性測試和對抗能不能算企業安全?在一個過于紙上談兵的企業我覺得這是不錯的切入點,不過局部對抗發生于企業安全的各個場景中,他只能算是縮影,不是全貌。企業安全是什么對傳統乙方安全公司,對新興的業務安全公司移動安全公司,對甲方的互聯網公司,對甲方的傳統公司,對咨詢顧問,對漏洞研究者,對活躍于各大SRC上的白帽子們的詮釋肯定都不一樣。
先說一下我自己的經歷,以便了解我是從什么角度來看待這一問題的,學生時代跟現在的很多白帽子一樣玩玩滲透,玩玩二進制,在過去那個叫幻影(Ph4nt0m)的組織里,大學畢業后即進了綠盟做安全服務和咨詢,這是乙方中離甲方安全最近的職能,接受了綠盟對傳統安全體系和方法論教育,有些10年前的東西放到今天都還會覺得很高大上,現在的安全行業里除了顯得有些空洞的安全標準的傳承,要么就是很淺的木桶理論之類的外延的理解,尤其在遇到互聯網崛起時,攻防受追捧,有些東西因為沒有收到金錢的認可很多人就直接把這一部分東西給扔了或自我否定了,其實有些思想跟技術表現形式一點關系都沒有,放到今天仍然是很實用的技能。
在綠盟最大的便利并不是下班路上隨便都能找到能聊exploit技術的大牛,而是視野:從金字塔視角看到安全的整體解決方案,囊括組織、管理和技術3方面的東西,覆蓋全行業全價值鏈過程的技術方案,算上第三方的話幾乎涵蓋市面上所有的安全產品和解決方案。有人看到這些會問這不是傳統安全那一套嗎?我說且不急,聽我慢慢講,而且我可以劇透的說之后幾十篇都是圍繞互聯網企業安全的,并不打算在傳統安全上花很多篇幅,只是需要區分一下企業安全實際的狀況和某些廠商為了兜售自己的產品而宣揚的概念是有所不同的,大多數廠商都會避開自己的弱項而在市場活動及軟文上專注的強調自己擅長的概念。
離開綠盟后我去了甲方,一家大型網游公司,08年那時將近萬臺的物理服務器分布于30多個IDC的規模似乎比當時搜狐全站的IDC規模還要大一些,跟現在一樣那時候也是社會上的公司普遍缺少安全負責人的時代,我也有幸組建了一支屬于自己的安全團隊,成為當時少數的安全總監之一,團隊的這些人現在遍布互聯網行業的半壁江山,且都是安全部門獨當一面的骨干。在這段時間我身體力行了從乙方到甲方視角的過渡,從零開始建立安全體系,真正把乙方玩的東西在一家甲方公司落地了,我的方法思路過程跟某些互聯網公司不太一樣,因為那時候BAT的安全人員大多是畢業后直接去的甲方,一開始就做甲方安全,而我是從乙方到甲方,所以實踐上更多了參考了乙方的方法論,除了攻防之外多線并行,直接建立較完整的安全體系,在遇到上海的網游業被騰訊包抄整體沉淪的時候,我也失去了繼續深挖甲方安全建設的興趣。
之后我去做了一家webgame公司的技術負責人,社會俗名CTO,由安全轉向全線技術管理,說實話在這段時間里我并不是特別重視安全,一方面跟自己是安全出身有關,另一方面這確實是屁股決定腦袋的事情,不是安全不重要,而是有很多事情比安全更重要。安全這個事情說白了就是當你有100w的時候拿出2w買個保險箱裝它們你覺得值,但你只有2w的時候要拿出8k買保險箱大多數人都會囊中羞澀。這也是我在知乎上回答的那個問題,為什么做安全一定要去大公司的原因之一。我竊以為很多公司的CEO、CTO的對安全重視,翻譯過來應該是:被黑是一件很負面的事情,所以想找個人籌建團隊打包了,只要不出事他們就不會太想起這事,但不是心理真的認為安全非常重要,也不會當成是一種競爭力,這句話并不是在映射過去,而是當下國內那么多對企業安全負責人的招聘在我看來也就是那么回事。
之后我去數字公司經歷了短暫的時光,再次以乙方的身份拜訪了企業級客戶,很偶然的發現大多數乙方的顧問或工程師其實都沒有真正做過企業安全管理的經驗,雖不能把這些直接等價于紙上談兵,不過確實是乙方的軟肋,在競爭性的銷售活動中,三下五除二就“把別人說沒了”。在甲方企業高層的眼中,攻防這檔子事可以等價于我花點錢讓安全公司派幾個工程師給我做滲透測試然后修漏洞,不像大型互聯網公司那樣上升為系統化和工程化的日常性活動。
離開數字公司后我到了全球化的公司-菊花長從事產品線安全,第一個項目是云計算,產品線安全屬于甲方安全又跟很多甲方安全不太一樣,他比傳統意義上的甲方安全介入的更深,覆蓋率更高的SDLC,直接導向產品設計的源頭,對絕大多數甲方而言你也許在用OS的Dep&ASLR,也許在用各種容器,但你很少會自己去發明輪子,你也許會自己造一個WAF這樣的工具,但你可能很少會像微軟那樣要自己去搞一個EMET這種涉及安全機制層面的東西,但在產品線安全里,這一切都會更進一步,不只是像互聯網公司那樣關注入侵檢測、漏洞掃描等而是從設計和威脅建模的角度去看整體和細節的安全。這又拓展了我從R&D的視角看待以及分析安全問題的眼界。
至此,我既不屬于腳本二進制,我也不屬于乙方咨詢顧問派,也不單純屬于甲方CSO,而是站在一個較全面客觀中立的立場,我不會說某些方式屬于紙上談兵,也不會把攻防捧的至高無上,我認為這些都屬于偏激的話。
好了,切入第一篇的正題,企業安全是什么?
我認為它可以概括為:從廣義的信息安全或狹義的網絡安全出發,根據企業自身所處的產業地位、IT總投入能力、商業模式和業務需求為目標,而建立的安全解決方案以及為保證方案實踐的有效性而進行的一系列系統化,工程化的日常安全活動的集合。怎么感覺有點咬文嚼字?好吧,這里面的每一個項都會決定你的安全整體方案式什么,哪怕同是中國互聯網TOP10中的公司其安全需求也完全不一樣。
有人也許會覺得CSO干的活有點虛,但凡偏管理都是紙上談兵。我不直接回答這個問題,我只舉一個例子。大多數身在這個行業的人都知道社工庫遍地都是,入侵者甚至站在了大數據的維度,國內的數據庫絕大多數除了password字段加鹽值存儲,其余信息都是明文保存。而在歐美等地隱私保護是有明確的法律規定的,映射到數據持久化這個細節,就是需要滿足一定強度以上的加密算法加密存儲,CSO就是需要制定這些策略的人,你難道說這些都是形而上學無用的安全措施么?在互聯網公司,安全負責人是會較多的介入到日常的技術性活動中的,但隨著組織規模的擴大和官僚程度的加深,CSO不再可能表現的像白帽子一樣專注于攻防對抗的細節也是一個無法回避的現實問題。是不是一定要說出諸如CSRF時IE和其他瀏覽器的區別這樣的問題才算是合格的CSO,我覺得這個看具體場景,對于國內排名TOP5以后的互聯網公司我覺得這個需求算合理范疇,但對于規模非常龐大的公司而言,這個需求顯然太苛刻了,比如我所在公司,CSO屬于法務類職位而不是技術類職位。
不想當將軍的士兵不是好士兵,雖然有技術路線,不過我估計這個行業里至少有一半以上人想過要當CSO,但是CSO這個職業又跟某些大牛們表達的不完全一致,所以下面的篇幅會繼續寫,至少在技術層面,CSO不會只停留在微觀對抗,而是會關注系統性建設更多一點。
從我在綠盟所受的安全教育來看大致分為以下幾方面:
1. 網絡安全:基礎、狹義但核心的部分,以計算機(PC、服務器、小型機、BYOD……)和網絡為主體的網絡安全,主要聚焦在純技術層面
2. 平臺和業務安全:跟所在行業和主營業務相關的安全管理,例如反欺詐,不是純技術層面的內容,是對基礎安全的拓展,目的性比較強,屬于特定領域的安全,不算廣義安全。
3. 廣義的信息安全:以IT兩個字為核心,包括廣義上的“Information”載體:計算機數據庫意外還有包括紙質文檔、機要,市場戰略規劃等經營管理信息、客戶隱私、內部郵件、會議內容、運營數據、第三方的權益信息等但凡你想得到的都在其中,加上泛“Technology”的大安全體系
4. IT風險管理、IT審計&內控:對于中大規模的海外上市公司而言,有諸如SOX-404這樣的合規性需求,財務之外就是IT,其中所要求的在流程和技術方面的約束性條款跟信息安全管理重疊,屬于外圍和相關領域,而信息安全管理本身從屬于IT風險管理,是CIO視角下的一個子領域
5. 業務持續性管理:BCM(Business Continuity Management)不屬于以上任何范疇、但又跟每一塊都有交集,如果你覺得3和4有點虛,那么BCM絕對是面向實操的領域。最近前有網易、中有支付寶、后又攜程,因為各種各樣的原因業務中斷,損失巨大都屬于BCM的范疇。有人會問這跟安全有什么關系?安全是影響業務中斷的很大一部分可能因素,例如DDOS,入侵導致必須關閉服務自檢,數據丟失隱私泄露等。又會有人問這些歸入安全管理即可,為什么要跟BCM扯上關系,做安全的人可以不管這些嗎?答案自然是可以不管,就好像說“我是個java程序員,JVM、dalvik(ART)運行原理不知道又有什么關系,完全不影響我寫代碼!” 事實上BCM提供了另一種更高維度,更完整的視角來看待業務中斷的問題,對于安全事件,他的方法論也比單純的ISMS更具有可操作性,對業務團隊更有親和力,因為你知道任何以安全團隊自我為中心的安全建設都難以落地,最終都不會做的很好
6. 安全品牌營銷、渠道維護:CSO有時候要做一些務虛的事情,例如為品牌的安全形象出席一些市場宣介,presentation。籠統一點講現在SRC的活動基本也屬于這一類。
7. CXO們的其他需求:俗稱打雜。這里你不要理解為讓安全團隊去攻擊一下競爭對手的企業這樣負面向的事情,而是有很多公司需要做,但運維開發都不干,干不了或者不適合干的事情,安全團隊能力強大時可以承包下來的部分,事實上我的職業生涯里就做了不少這樣的事情。
基礎的網絡安全是絕大多數在甲方的安全團隊能cover的事情,不管你的安全團隊能力如何,在公司里有無影響力,這個是必須要做的因為這是把你招過來的初衷。再往后的發展,是否止于此則看各人的想法,對于沉醉攻防技術的人其實不需要往后發展了這些足夠了,但如果你的安全團隊富有活力和想法,即便你想止于此他們也不干,把部門做大做強是這些人的愿望,只有這樣才能給安全團隊更大的空間,因為這點跟乙方是不一樣的:對于乙方而言你可以在某個單點領域上無限深挖,而不會遇到天花板,因為你始終是在滿足主營業務的需求,即使你成為骨灰級的專家公司也會對你在某方面創新有所期待而給你持續發展的可能性,但是在甲方,安全不是主營業務,歸根結底是一個保值型的后臺職能,不是一個能創造收益的前臺職能,他是一個成本中心而非盈利中心,他的成本的大小跟業務規模以及公司盈利能力相關,公司發展時他的budget和headcount會發展,業務停滯時安全做的再好也不會追加投入,因為無此必要。反面的例子也有:做的不好反而追加投入的,那是一種政治技巧而非現實需要。
如果你在乙方的研究部,無論你的漏洞挖掘技能多牛逼,公司都不會跳出來說“你已經超出我們需求了,你還是去更NB的公司吧”(通常情況)。但是在甲方,假設是在一個國內排名大約TOP5-TOP10的互聯網公司,養一個漏洞挖掘的大牛也會覺得很奇怪,他是在給公司創造價值還是在自娛自樂是會受到質疑的,CSO也會被質疑是否花了大價錢挖來的人不是出于業務需要而是用于擴大自己團隊在業內影響力這種務虛的事。假如公司到了google這種級別,有一大堆產品,儲備大牛則是順利成章的,業務上顯然是有這種需求的,不過還是要看產出是否對主營業務有幫助,工作成果不能轉化為主營業務競爭力的嘗試性活動在公司有錢的時候無所謂,在公司收緊腰帶時則其存在價值會受到質疑。
以狹義的安全垂直拓展去發展甲方安全團隊的思路本質上是個不可控的想法,籌碼不在CSO手中,甚至不在CTO手中,而是看主營業務的晴雨表,也就是我以前微博上說的,甲方安全是要看“臉”的,這個臉還不是指跨部門溝通合作,而是在最原始的需求出發點上受限于他們。因此有想法的安全團隊在(1)做的比較成熟時會轉向(2),(2)是一個很大的領域,發展的好安全團隊的規模會x2,x3,并且在企業價值鏈中的地位會逐漸前移,成為運營性質的職能,結合BCM真正成為一個和運維、開發并駕齊驅的大職能。
BCM在很多人眼里就是DR(災難恢復),DR其實只是BCM中的一個點,屬于下層分支。不過這對技術領域的人而言是最直觀的部分,DR在互聯網公司里由基礎架構部門或運維主導,不過對于強勢的甲方安全團隊其實也是能參與其中一部分的,我之前也主導過這些,當然也是受到了綠盟的教育以及我的“前輩們”的啟發。有興趣的可以看一下BS25999
廣義的信息安全,比較直觀的映射就是ISO2700x系列,行業里的絕大多數人都知道ISO27001和BS7799.不展開了,對真正有安全基礎的人而言都是很簡單的東西。在企業里能否做到廣義的安全,主要看安全負責人和安全團隊在公司里影響力,對上沒有影響力,沒有詮釋利害關系和游水的能力自然也就做不到這些,另一方面,狹義安全主要對接運維開發等技術面公司同僚,但是廣義安全會對接整個公司的各個部門,對于溝通面的挑戰來說又上了一個新的臺階,似乎在我看來這主要取決于安全的領隊人物自己擁有什么樣的知識結構以及他的推動能力如何。
對于(4),如果你所在的組織有這方面的需求,安全職能自然也會參與其中,是否刻意去發展他則看自己需求,對我朋友中某些做過IT治理和風險咨詢的人相信是有能力一并吃下的,如果是技術派我就不建議你去搞了。
(6)屬于水到渠成的事情,到了那一步你自然需要考慮,就算你不想公司也會讓你去,就像我現在明明做技術活,卻也不知道為啥會跟這一類事情掛上鉤。
(7)有人看時自動過濾了,不過安全負責人自身是否有瓶頸,能否在企業里發展起來跟這條有很大關系,甚至有很多從(1)發展到(2)(3)的人都需要借助(7)這個渠道,點到為止不多說了。。。
對于互聯網公司,我建議做1、2、5;對于傳統行業,我建議做:1、3、4、5。
在互聯網行業安全包括哪些內容,我覺得可以概括為: 信息安全管理(設計流程、整體策略等),這部分工作約占總量的10%,比較整體,跨度大,但工作量不多。
基礎架構與網絡安全:IDC、生產網絡的各種鏈路和設備、服務器、大量的服務端程序和中間件,數據庫等,偏運維側,跟漏洞掃描,打補丁,ACL,安全配置,網絡和主機入侵檢測等這些事情相關性比較大,約占不到30%的工作量。
應用與交付安全:對各BG,事業部,業務線自研的產品進行應用層面的安全評估,代碼審計,滲透測試,代碼框架的安全功能,應用層的防火墻,應用層的入侵檢測等,屬于有點“繁瑣”的工程,“撇不掉、理還亂”,大部分甲方團隊都沒有足夠的人力去應付產品線交付的數量龐大的代碼,沒有能力去實踐完整的SDL,這部分是當下比較有挑戰的安全業務,整體比重30%+,還在持續增長中。
業務安全:上面提到的(2),包括賬號安全、交易風控、征信、反價格爬蟲,反作弊反bot程序、反欺詐、反釣魚、反垃圾信息、輿情監控(內容信息安全)、防游戲外掛、打擊黑色產業鏈、安全情報等,是在“吃飽飯”之后“思淫欲”的進階需求,在基礎安全問題解決之后,越來越受到重視的領域。整體約占30%左右的工作量,有的甚至大過50%。這里也已經紛紛出現乙方的創業型公司試圖解決這些痛點。
對整體介紹的部分在前面的篇幅講的比較多,主要目的是希望“視野”部分不縮水,這些概念在后面篇幅都不打算再展開了,如果你遲遲沒看到技術篇,很正常,這只是一個開頭而已。下一篇談談互聯網企業安全管理和傳統行業安全管理的區別。
總體來看,傳統安全偏重管理,“三分技術,七分管理”,互聯網行業偏重技術,我認為應該倒過來。其實這種說法也是不準確的,到底什么算技術,什么算管理,這些都沒有明確的定義,安全領域大部分所謂管理不過是組織技術性的活動而已,充其量叫技術管理,如果你較真這些理論那你就掉坑里了。
先說一下傳統安全和互聯網安全的建設需求上的差異:
傳統安全:
IT資產相對固定 業務變更不頻繁 網絡邊界比較固定 IDC規模不會很大甚至沒有 使用基于傳統的資產威脅脆弱性的風險管理方法論加上購買和部署商業安全產品(解決方案)通常可以搞定。 互聯網安全生態,對于大型互聯網而言,需要應對:
海量IDC和海量數據 完全的分布式架構 應對業務的頻繁發布和變更 同時架構層面關注:
高性能 高可用性 擴展性 TCO(ROI) 在規模不大的互聯網公司,傳統的風險管理方法論是可以沿用的,但在大型互聯網公司傳統的方法論可能會失效,因為你可能連基礎架構上跑什么業務都搞不清,你想理清所有的系統接口間的調用關系以及數據流去檢視設計風險以及設置細粒度的訪問控制就是件不現實的事情,產品線極多時業內沒有任何一個團隊敢說自己有能力支持全產品線,對于高速發展的業務,當你理清了你想要的說不定架構又發生變化了,只有對占公司整體營收比較主要的以及培育性質的戰略級的核心業務才有必要去深入調研并隨之update,其他的還是要依靠自動化手段。
從安全建設上來看,傳統安全建設:
在邊界部署硬件防火墻、IPS/IDS、WAF、商業掃描器,堡壘機、在服務器上安裝防病毒軟件,集成各種設備、終端的安全日志建設SOC,當然購買的安全硬件設備可能遠不止這些。在管理手段上比較重視ISMS(信息安全管理體系)的建設,重視制度流程、重視審計、有些行業也必須“等保合規”。
其實這里還有一個很大的區別就是,互聯網有生產網絡和辦公網絡的概念,即便最近Google聲稱取消內網也是針對辦公網絡而非生產網絡,互聯網行業的大部分安全建設都圍繞生產網絡,而辦公網絡的安全通常只占整體的較小比重。但是對于某些傳統公司,他可能完全沒有生產網絡而只有辦公網絡,他的網絡安全也就變成了辦公網絡的網絡安全。但我推測隨著社會互聯網+進程的加速,很多傳統的公司也會有自己的生產網絡,最終都變成和互聯網公司一樣的形態。所以對于那些在給傳統企業客戶提供咨詢和解決方案的乙方的同學,如果你們不學習互聯網安全,也會被淘汰。
互聯網的生產網絡的解決方案基本上都是以攻防為驅動的,怕被黑、怕拖庫、怕被劫持就是安全建設的最直接的驅動力,互聯網公司基本不太會考慮等保、合規這種形而上的需求,只從最實際的角度出發,這一點是比傳統行業更務實的地方。最近也遇到一個例子,說要在服務器上裝防病毒軟件,一看就知道是傳統行業來的思路,不是沒有真正做過互聯網企業安全就是沒被業務線挑戰過,在大型互聯網,光是性能損耗、運維成本和軟件成本這幾條就能分分鐘把這種需求干掉,更不用進入對于服務器防護這種更實際的話題了。很多標準說到底都是各廠商參與編寫,博弈并達成妥協,有利于自己產品銷售的代言白皮書,并不是完全站在建設性的角度的,作為乙方賣賣無腦客戶賺點錢自然無可厚非,但在真正的甲方做企業安全生搬硬套是會受到質疑并逐漸失去影響力的。
對于超過一定規模的大型互聯網公司,其IT建設開始進入自己發明輪子的時代,安全解決方案開始局部或進入全部自研的時代,例如不會購買硬件防火墻,而是用服務器+Netfilter的方式自建,不會部署硬件IDS/IPS,而是用其他方式來解決這個問題。其實不難理解,規模小的時候買臺硬件防火墻放在最前面,省事。但是規模大了我去買1000臺硬防放在IDC機房?光¥就受不了啊。其次,基于CAP理論和Map-reduce衍生的一系列互聯網架構,本質上都具有“無限”水平擴展能力,而傳統的硬件盒子式的解決方案其設計大多源于對過去體系架構的理解,基本不具備擴展能力,完全不能適應大規模的互聯網架構,總體上屬于相對封閉的單點式防護。在這種情況下甲方安全團隊自己動手去打造完全圍繞自身業務的解決方案也就成了必然趨勢。
自研或對開源軟件進行二次開發+無限水平擴展的軟件架構+構建于普通中低端硬件之上(PC服務器甚至是白牌)+大數據機器學習的方式是目前大型互聯網公司用來應對業務的持續性增長的主流安全解決方案。是否真的到了機器學習階段這個有點難說,但是安全進入大數據時代則是很稀松平常的事了。
對辦公網絡和雇員信息安全管理而言,互聯網公司的文化比較open,一般不太會維持激進的安全政策,這點也是跟傳統行業差別比較大的地方
下一篇繼續介紹不同規模企業下的安全管理
微博 http://weibo.com/ayaz3ro 知乎主頁 http://www.zhihu.com/people/zhao-yan-68/ 個人站點 http://www.ayazero.com