輕松籌韓晉:解構SDL落地的關鍵點

2019-05-20 503680人圍觀 ,發現 9 個不明物體 人物志

前言

很多甲方安全團隊的工作都是從救火開始的,SDL很少會成為企業在進行安全建設時優先考慮的事項?!笆虑安挥昧?、使不上力,事后補漏洞”可能是很多安全團隊的寫照,這種情況背后存在很多的原因,比如沒有實現與DevOps交付模式的有機結合,SDL的門檻對于企業現狀來說難以滿足,SDL的推動跟不上業務模式的發展以及各種各樣的歷史遺留問題導致SDL落地難等等。

要實現SDL在企業內部的良好落地,要求的不僅僅是技術層面的體系化建設能力,面對不同實施對象、粒度粗細要求各異的業務,還需要超越技術層面的思維和協調能力,整個流程中有太多的事情是需要上下一心、橫向對齊。市面上有很多講如何企業SDL落地的書籍和文章,從架構設計到落地推動等等不一而足,講得也比較透徹,但是對于真正從零開始推進SDL的安全負責人或安全團隊而言,往往少了一些真實的案例和能夠參考的抓手。

作為信息安全負責人,韓晉和團隊里的小伙伴一起,從零開始在輕松籌內部推進SDL的落地,期間有一些曲折,也取得了很多成績。本期安全大咖專訪筆者連線韓晉,來解構一下他是如何以業務為導向,安全為基石,有重點、有選擇、有順序地推動SDL在輕松籌的落地。

韓晉其人

韓晉,中國科學院大學信息安全方向在讀博士,現任輕松籌信息安全負責人,領導輕松籌安全團隊從零搭建安全縱深架構,推動SDL在輕松籌的落地。曾擔任Circle中國信息安全負責人、中國金融認證中心信息移動安全負責人、中興通訊安全測試經理。擁有豐富的企業安全建設經驗,是一名全棧安全工程師。

*全文為韓晉本人口述,FreeBuf僅做整理,無任何修飾或故事化,原味呈現最真實的企業安全人心聲。

0×01 抓手

抓住最佳實踐

SDL在國內企業的落地與推動過程中,或多或少都會碰到各種形態的阻力。我的總體思路是以業界的最佳實踐為抓手,并在最佳實踐落地時因地制宜把握好程度、優先級。

所謂最佳實踐(Best Practice),是那些已經在別處產生顯著效果并且能夠適用于此處的優秀實踐,包括已經產生的經驗、教訓、理論、流程、框架、方法論等內容。針對SDL的最佳實踐,韓晉首推的是經過數十年驗證的微軟SDL。

微軟在傳統軟件開發生命周期的基礎上,從安全角度對各階段增加了安全活動,包括培訓、要求、設計、實施、驗證、發布、響應幾種,每種活動下也拆分為各種具體項目,比如在安全設計中,需要涵蓋減小攻擊面、深度防御、最小權限原則、安全默認設置等主題,而在實施過程中,需要涵蓋使用批準的工具、不安全函數、避免溢出和SQL注入等主題,這些指導可以直接在微軟官網下載。

以微軟SDL為代表的業界最佳實踐能夠給與企業安全團隊很有益的指導,但要注意的是,有了最佳實踐指明方向后,企業安全負責人依然需要深入了解業務之后進行梳理:哪些是最佳實踐沒有涵蓋的;哪些是中短期不用上馬的,畢竟是他山之石,不能照搬。企業的業務重點不同,在落地過程中需要把握好程度和各階段的優先級,對于安全的投入也要進行量化并考慮投資回報率。

韓晉在加入輕松籌后,優先解決了有無問題并設立了一些中短期目標,包括WAF、統一登陸系統、全鏈路審計、日志收集及處理、代碼審計、EDR等,這些是未來推進DevSecOps的基礎設施。他強調,考量業務側對安全的需求很關鍵,業務側最關心的安全問題基本直接與利潤掛鉤,所以可以考慮在SDL的落地中適當增加其優先級,解決這些問題對組織來說更能體現安全的價值。同時,在推進過程中肯定會有一些計劃之外的阻力,所以需要進行周期性復盤,微調中短期目標,必要時可進行更換。在達到各個里程碑時,還可以進行宣傳式的總結,讓組織知曉當下階段的工作價值,形成良性循環。

企業的安全負責人要根據公司的現狀先上馬貼合公司規模、現有業務最急需的模塊,比如日志審計系統,有些企業可能連這個都還沒上就急著做流量分析,這樣先后順序就不對。架構設計需要參照最佳實踐指定的方向,基于公司自己的業務邏輯的側重點,有先后地去落實,有時候會需要安全負責人針對最佳實踐的理論定義做一些符合現實的改動。

以輕松籌為例,輕松籌是一家從事公益慈善、大病籌款、公眾健康保障的互聯網公司,數據會包含很多個人隱私信息,比如身份證號、病歷、姓名和手機號等等,因此核心關注點是數據安全。這些數據會在輕松籌數據庫上存在一定程度的中轉,這種情況下,韓晉帶領團隊圍繞著數據建立了相應安全功能機制的模塊。

具體的做法是圍繞著數據的傳遞展開,從東西向到南北向流量、數據流的每一個節點(比如用戶在C端——APP或者微信H5,進行本地數據輸入開始)保護數據的完整性、統一性和可用性,然后數據會通過網絡傳輸到輕松籌的CDN,之后回源并經過WAF和SLB,經過SLB之后再經過中間服務器傳輸到后端的各個子業務。輕松籌的后端服務來處理任務,期間與數據庫交互,還會傳輸到大數據部門進行二次的數據集成和混合計算。

期間數據經過的每一個節點,安全團隊都會采用相應的安全措施來保證數據的安全三要素。所以從數據安全入手來推進SDL落地,是貼合輕松籌業務并取得突破的一個點。用一句話來概括,輕松籌安全團隊圍繞著數據傳輸,以保護用戶個人隱私為核心,來推動SDL安全架構的落地。

采用開源工具

SDL工具是自行研發,還是基于開源或者收費軟件進行二次開發,一者要看開源軟件是否滿足安全需求,二者取決于企業面臨的安全需求是否迫切,哪種方式能迅速帶來效益以解決目前的風險點。除此之外,商業現貨能否在成本覆蓋的情況下滿足需求,以及對工具或平臺的后期期望都是SDL架構設計和軟件開發過程中要考慮的因素。

輕松籌是一家發展中的創業公司,基于開源軟件二次開發是其首選的方式。假如經過通盤考慮之后開源和收費軟件都無法滿足需求,那么必須考慮自行研發了。但就目前而言,自行研發給輕松籌帶來的人員成本很高,只能作為最后的選項。

有時候我們寧愿多花點時間等待開源軟件的發展,密切關注它的下一個版本是否會引入我們所需的功能,然后跟進升級。

在談到輕松籌SDL采用的工具時,韓晉如是說。SDL的推進、落地與企業的規模、市值呈一個直接的正比關系,一般而言投入多少精力、成本和資源就能夠帶來相應的成果。從現狀出發,企業規模越大越會關注SDL整個流程是否完善,但是對于像輕松籌一樣規模還較小的企業來說,如果一開始就投入很多資源來實現SDL全流程推進,這樣的做法并不可取,業務與安全發生了本末倒置,這樣一來安全也得不到發展。

可以說這樣的指導思想是韓晉在實際工作中一以貫之的,其采用的現實策略確實給輕松籌帶來了看得見的便利和成本節約,比如輕松籌采用的開源數據引擎Elasticsearch就是一個很好的例子。在推進SDL的過程中輕松籌部署了Elasticsearch,當時的6.4版本還沒有滿足流程所需的Index生命周期管理功能,員工還在使用腳本處理相關任務,十分不便,時間一長對于人力成本頗有影響。

我們考慮過自行開發一個交互操作友好、具備可視化UI界面的工具。后來發現Elasticsearch從6.6版開始,官方引入了該功能,且具備滿足輕松籌當前所需的特性。當正式版釋出后我們立刻將其整合到現有流程中進行測試,通過后就部署到生產環境中了。

這樣的策略看似被動,實則對于大多數與輕松籌體量和發展階段相似或者更小的企業而言,是符合成本考量的做法。企業在發展中的特定階段和形勢下,安全如果比業務跑得太快,有可能會變成反作用力,導致業務和收入的遲滯,甚至倒退。

0×02 推動和落地

開發與落地的難點

談及SDL開發與落地過程中的難點時,韓晉表示SDL的落地在不同類型的企業中側重點不同,比如金融企業面臨著更高等級的監管要求,極端重視數據安全這一方面等。而輕松籌平臺上有大量資金流動,但與大部分出售產品或服務的互聯網公司不太一樣:

我們主要是通過互聯網化的方式搭建一個正能量的平臺,在開發和運營的過程中大家的熱情很高,這是我們的特點。

在這股巨大熱情的推動下輕松籌發展非???,也導致初期的流程和制度沒有完善,這也是很多同類企業面臨的問題:

1. 上線流程比較直接;

2. 除抗DDoS外無應用層防護;

3. 老舊業務沒有及時下線;

4. 安全基線和代碼審計沒有部署等等。

輕松籌安全體系的建設基本是從零開始的,韓晉舉了兩個實例。

輕松籌的業務依托公有云開展,大量系統在云端,中間隔著公網,這種特點導致安全團隊需要著重關注開發過程中的代碼數據傳輸和訪問的安全風險。對此,安全團隊上線了代碼管理平臺https,增加公網IP白名單,確保只有輕松籌員工有權訪問。這樣引申出一個問題,如果員工想要移動或者異地辦公,怎么辦?那就上線VPN。部署VPN解決方案后發現了一些風險:是不是可以通過訪客網絡訪問代碼平臺及其他系統?因為WI-FI輸入密碼即可進入,是否存在比較明顯的風險讓未授權設備進入內網,訪問系統并進行內網滲透?

這樣的擔憂推動安全團隊實施了統一登陸計劃,建立了接入大多數系統的統一賬號平臺,所有系統賬號的登錄操作全都可以關聯到一個人身上,確保每個鏈接和活動可控可溯源,在減小攻擊面的同時為業務側提供了便利,這也是推進SDL時帶來的利好。

對中小企業,尤其是互聯網和金融領域的企業來說,韓晉認為數據是核心,有利于提升安全的初始地位。未來云技術帶來的安全效率和成本的改善會影響越來越多的企業上云,加速自動化和AI的融入。

另一個實例是內部網絡中威脅情報分析和實體關系。由于歷史原因,輕松籌后端服務在沒有良好規范約束的前提下發展很快,導致服務之間的關系較為復雜,難以梳理,造成了安全部門部署防控策略時沒有清晰的線索,比如不知道要關閉哪些業務端口,向開發團隊咨詢也得不到明確的答案。此外內部網絡的流量關系分析也是關注的安全重點。

基于這兩點,韓晉的安全團隊提出了“兩個環境”的方案:一個辦公網環境,一個公有云環境。辦公網使用流量旁路連接到一臺抓包服務器,然后實時加密同步至Logstash集群再到ES, 公有云將重點服務器流量復制到ES,并使用在所有主機服務器部署Angent采集實體信息發送至ES,同時調用ES API實時查詢威脅情報庫進行威脅查詢并離線存儲,對流量數據進行建模,實體信息進行可視化關系展示。將這套方案投入到業務線運行一段時間后獲得了良好的效果,業務也梳理地比較清晰。

這兩個案例是韓晉在推動SDL開發過程中碰到的典型技術問題。他表示從整體流程看,推動起來比較有挑戰性、成本比較高的還是溝通,這一點也是許多公司安全團隊面臨的挑戰。

推動SDL的落地需要打通業務線的所有部門,獲得他們的支持就顯得尤為重要??陀^上也會占用他們的一部分資源,這點難以避免,也是我們需要逐漸優化的部分。

打通業務線需要高級管理層的支持,但即便支持到位了,在業務急速發展的過程中,要讓開發團隊兼顧去做不在OKR列表中的工作也很考驗技巧。韓晉的方法是確保SDL的落地與開發團隊利益一致,讓兄弟團隊理解安全并不是站在敏捷開發的對立面,在DevOps過程中加入安全能力,能夠形成三角支撐,更好地幫助業務順利上線和開展。在某些安全與開發之間的問題難以調和時,安全團隊可臨時犧牲一些可控的安全措施,確保不會給業務帶來太大阻力,在大方向上穩步推進。

向上教育與平行溝通

SDL屬于典型的體系化建設,從上往下推可以起到事半功倍效果,但是,很多公司高管安全意識的現狀不太樂觀。

有一部分原因與安全部門的向上教育是否有效相關,導致國內企業的高管在信息安全方面大多都是事件驅動的。就當前大環境而言,韓晉認為要實現從高級管理層到安全團隊、研發團隊的全鏈條推進,安全的初始地位很重要。

可以看到有一些公司的安全部門角色比較尷尬,有些團隊把安全問題匯報給運維,有些匯報給風控,相對成熟一些的匯報給類似CTO的管理層人員,在較低的位置做向上教育會帶來很高的成本。

針對這樣的狀況,韓晉的藥方是什么?他認為努力讓高管明白和理解安全工作的內涵以及價值,并且要保持一定的持續性。加入輕松籌后他制定了一系列計劃并進行了實踐,包括:

1. 成立風控管理委員會;

2. 定期做安全意識培訓;

3. 針對熱門安全事件進行分享;

4. 對公司業務的漏洞進行分析講解;

5. 通過友好的安全模型解釋安全現狀及影響等等。

此外,韓晉還實現了安全與運維的統一管理,除開發測試環節基本不產生內耗。不過他強調這一點僅適用于輕松籌,企業的內部環境各異,不一定可復制。

如果高層支持到位了,工作會相對明朗一些。此外,這些舉措對于研發團隊也很適用,能否處理好安全團隊與研發團隊的關系,從推動SDL的全局角度來看至關重要。

推動研發團隊的認可很多方面與做公司高級管理層的工作一樣,從對于安全工作的認識出發,一是讓研發團隊了解安全團隊在做什么,二是讓他們知道這樣做的重要性,從認識上達成一致,解決這一部分阻力之后剩下的基本是技術問題。

在溝通技術問題時,韓晉表示要考慮到研發團隊成員的技術背景與工作強度,可借鑒“PDCA管理循環”的理念,采取較為直接的方式闡述技術問題,節約研發團隊時間。他的經驗是循序漸進,避免步子跨太大產生反效果,比如:

1. 直接向研發團隊說明想要的結果;

2. 闡明過程中的技術問題,并提出自己的思路;

3. 對思路與過程進行討論,對結果有個初步判斷;

4. 達成初步一致后立刻進行實踐。

由于輕松籌的業務務線較多,每個業務線推動的進程狀態也不同,讓韓晉欣慰的是公司高級管理層的有力支持下,有的業務線已經把安全問題納入了考核,并且安全團隊在全部上線流程上可以一票否決。

兩個層面的策略

首先從管理層面看,管理策略直接決定了SDL和研發流程能否勁往一處使。

把安全意識融入到企業文化中是我們追求的目標,在這個過程中我對安全團隊的要求是將“做能力范圍內的事情”擴展到全公司,如果兄弟部門碰到問題且安全團隊有能力解決,不論是否與安全相關都要盡量協助,在這個過程中可以加深相互的理解。在日常的安全宣傳中,我們也會以培訓、海報、不定期的安全測試、信息安全電子漫畫的方式讓大家逐漸明白和理解安全工作,但這些方法需要有足夠的時間才能體現出價值。

在SDL推進過程中韓晉遇到的阻力可大致分為兩種情況:

第一種是流程或機制太簡單或者太繁瑣,這種情況下需要當事團隊間進行溝通,可先以達成簡單目標作為過渡,然后為加強安全措施設定一個期限。

第二種是同事們表達方式太過直接導致在方案上沒有達成一致的情況。這樣的事件要拆開之后具體分析,如果責任劃分上的事情不好區分,韓晉一般會主動承擔,減少矛盾激化,但還是要堅持公平公正公開的原則,抓住以下幾點進行突破:

1. 保持與公司業務目標一致

2. 做好向上教育

3. 跨部門溝通要維持良好狀態

4. 安排好事情優先級

5. SDL過程中的角色分配至各個職能

技術角度來看,輕松籌還在逐步推進DevSecOps的落地,已經實現了多項功能和模塊的自動化,包括白盒代碼審計、各系統操作審計、主機掃描、線上業務狀態監控、云端資產配置等。這些功能實現后客觀上加快了一些上線流程,也能夠讓開發團隊理解安全不會增加太多額外負擔。除了自動化功能外,輕松籌還在黑盒測試上投入了一定的人力資源進行人工測試。

我更愿意將SDL中不同的關注點進行拆分,按需規劃落實,具體哪個環節需要多資源,要根據企業業務規模和對安全的定位。同時,需要有一個具備專業知識和工程能力的人長期跟進,準確評估當前的緊急需要,將整體計劃拆分下發分段完成,否則難以有效落地。針對重要模塊還要提前準備Plan B,防止意外出現。

輕松籌發展速度很快,目前已有員工一千余名,業務和流程方面也在快速形成機制,在SDL的實踐過程中韓晉也是將SDL所包含的內容拆分為可落地、可實現的多個模塊來進行,進一步分解為目標清晰的事項來完成,而不是一開始就從很高的角度來談SDL架構。

SDL在輕松籌的落地過程始終是一步一個腳印,韓晉告訴筆者一些基礎設施的成功建立讓他獲得了很多成就感,比如主要系統納入統一登陸管理之后,SDL覆蓋到的系統都可以進行粒度細化到個人的、從辦公網到生產網絡的全鏈路審計。還有ELK集群搭建配置完畢后,實現了掃描結果、主機、流量、操作審計、威脅情報等各種行為數據的收集,并且構建了實時可視化及報警功能,還能作為機器學習的數據集進行建模分析等等。

SDL建設無法一蹴而就,整個過程中會遇到很多技術問題和取舍,原則是從用戶和公司的利益角度出發,優先處理不可控的技術風險,先做好從0到1,再做從1到100。如果業務上線進程比較著急,來不及完成太多安全檢測,這時可以評估風險暴露之后對用戶和公司的影響,確保在可控范圍內及時響應,并加強安全監控。

0×03 結語

SDL的推進與企業本身的動態變化息息相關,SDL不僅要切合現實順應這些變化,而且要快。就現階段而言,我們有很長的路要走,安全還不能比業務跑得太超前。未來我們會根據企業發展規模和安全資源朝著更細化的方向發展,降低小伙伴對安全的關注成本,最終做到安全意識變成習慣,安全機制無感知的目標。

互聯網公司總是在跟時間競速,跟同行業中的其他競爭對手賽跑,跑得快就能節省出更多時間成本去快速試錯,調整方向沿著正確的軌道發展。這個過程中會有很多坎坷,韓晉也是帶領著團隊一步一步在摸索中前進。

*FreeBuf官方報道,未經許可禁止轉載。

底圖.gif

發表評論

已有 9 條評論

取消
Loading...

特別推薦

推薦關注

填寫個人信息

姓名
電話
郵箱
公司
行業
職位
css.php jizzz