天天看點

2020-08-27OPPO網際網路DevSecOps實踐

OPPO網際網路DevSecOps實踐

OPPO子午網際網路安全實驗室 沈海濤

一、前言

伴随着移動網際網路技術的高速發展,如何保障産品的安全與隐私合規成為了一個嚴峻的挑戰。尤其是在産品複雜度高、更新疊代快的現狀下,如何應對挑戰,已經成為了企業發展必須要慎重考慮的問題。以OPPO為例,OPPO僅ColorOS全球月活使用者數就達到了3.7億+。産品形态覆寫 Web APP、Android APP、 iOS APP、快應用、SDK、IoT等,日變更1000+次。本文将以OPPO安全應對行業挑戰所作出的實踐為例,重點介紹OPPO網際網路DevSecOps實踐,更準确的說是從傳統SDL到DevSecOps轉型的實踐。

不能免俗,先放概覽。

2020-08-27OPPO網際網路DevSecOps實踐

本文将從以下幾個方面展開:安全活動融入研發流程、安全防護平台建設、安全文化建設、外部合作以及持續精進。

二、安全活動融入研發流程

安全與隐私合規是企業存續發展的基石之一。基于DevSecOps的原則,安全活動需要貫穿研發流程的每一個環節,使安全與隐私合規成為各團隊的共同責任。在現有的研發流程中,子午實驗室開發了安全與隐私評測系統,并将安全活動融入到研發流程的不同階段中,覆寫業務的大版本及涉及到安全與隐私重大變更的小版本。

1.制定流程規則

首先要解決的是融入研發流程的規則問題,以及如何進行卡點管控。我們一般會将産品的生命周期分為産品需求、架構設計、編碼實作、測試、釋出、營運等幾個階段。

在DevSecOps實施初期或者安全團隊組建的初期,想要覆寫産品的全部生命周期是很困難的,這個階段需要解決面的問題,抓大放小,是以會選取一些關鍵的節點進行管控。

我們選取了三個強流程進行卡點:産品需求階段進行隐私合規評審,産品釋出前進行安全測試&隐私合規測試,這樣基本上保障了産品的安全與隐私的基線要求。如下圖所示:

2020-08-27OPPO網際網路DevSecOps實踐

之是以選取隐私合規評審作為強流程卡點是由于業務形态所緻,OPPO是一家全球化的公司,産品和服務覆寫全球幾十個國家和地區,面臨巨大的隐私合規挑戰,比如歐盟區域的 GDPR等。

隐私合規評審可以在産品設計需求階段就滿足合規要求,避免上線前檢測不合規造成的業務返工及大量的改造成本。同時我們還在上線前進行了安全測試和隐私合規測試來強卡點,業務必須滿足安全與隐私品質标準才能夠上線。

另外在流程規則中要考慮介入的深度和範圍。深度越深,範圍越大意味着安全的工作量越大,業務的感覺越強烈,對業務效率的影響也會越大。目前我們的政策是,安全流程強制覆寫新業務或者老業務的大版本,其他的版本由業務架構師根據我們的指引(checklist)進行自評,由業務自行判定是否走安全流程,這樣既保證了能夠消除大部分風險,又兼顧了業務效率。

2.IT系統支撐

流程有了,接下來就是要保障流程能夠順利落地執行,靠人來跟進無論是在覆寫度上,還是效率上都是不靠譜的,于是我們建構了 DevSecOps 的 IT 支撐系統,即将安全流程融入到 CI/CD 系統中。

2020-08-27OPPO網際網路DevSecOps實踐

如下圖所示,我們将安全活動融入到CI/CD流水線中,以後端流水線為例,在建構階段會進行源代碼安全掃描,在部署測試內建階段會進行後端動态安全掃描(IAST),上線之前會進行安全評測,包括安全測試和隐私合規測試。而且這個流水線是可編輯和配置的,後續可以按需加入更多的自動化掃描或者其他安全活動。

2020-08-27OPPO網際網路DevSecOps實踐

同時,開發進入CI系統時候,會自動檢測目前的開發是否進行過需求評審,如果沒有的話會進行提示。在安全測試和隐私合規測試階段會檢測是否進行過需求評審,如果沒有的話則無法提測。

2020-08-27OPPO網際網路DevSecOps實踐

我們開展的需求評審可以認為是輕量級的威脅模組化,通過詳盡的引導式提示做到業務自助式操作,極大減輕了安全的溝通工作量。

2020-08-27OPPO網際網路DevSecOps實踐

而評審系統裡面的檢查項是抽取了《安全&隐私标準規範》中的部分重點内容,主要的标準規範如下:

2020-08-27OPPO網際網路DevSecOps實踐

3.自動化能力建構

在DevSecOps 中純粹靠堆人力是很難适應DevOps的快節奏的,自動化能力建構是必經之路。子午實驗室在以下幾方面建構了自動化能力,大部分自動化能力已經融入到了CI/CD流程中:

靜态源代碼掃描(SAST)

後端動态自動安全測試(IAST)

開源元件黑名單檢測(SCA)

安卓APP靜态安全與隐私合規掃描

安卓APP動态安全與隐私掃描

安卓SDK特征掃描

… …

靜态源代碼掃描(SAST):檢測能力覆寫主流的開發語言,目前支援商業與自研的多個掃描引擎,并支援增量掃描,後續會支援IDE插件形式掃描。

2020-08-27OPPO網際網路DevSecOps實踐

後端動态自動安全測試(IAST):覆寫OPPO主流的後端開發語言,融入測試階段,在做功能測試的同時完成安全掃描,極大提升了效率。

2020-08-27OPPO網際網路DevSecOps實踐

開源元件黑名單檢測(SCA):融入到CI系統的建構流程,黑名單由子午的安全攻防人員維護,業務代碼建構階段如果命中規則需要修複之後才能夠成功建構。

2020-08-27OPPO網際網路DevSecOps實踐

安卓APP靜态安全與隐私合規掃描系統:能夠同時進行安全漏洞掃描、安全編碼規範及隐私合規檢測的掃描。目前主要提供給安全及隐私測試人員使用,後續會考慮推廣給研發及測試人員使用或者融入到CI/CD中。

2020-08-27OPPO網際網路DevSecOps實踐

安卓APP動态安全與隐私掃描:主要覆寫靜态檢測無法無蓋的場景,比如提前聯網、檢測加強應用的行為等,目前處于内測階段。

安卓SDK特征掃描:會掃描APP中使用到的SDK名稱、版本、允許上線區域、曆史漏洞等資訊,目前處于内測階段,後續會融入到研發流程中。

三、基礎安全防護産品及服務

在業務的生命周期中,是離不開基礎安全防護的,我們在主機層、網絡層、應用層等提供了多元度的安全檢測、防護産品和服務,保障OPPO的基礎安全。

主機層:主機入侵檢測(哨兵)、态勢感覺(谛聽);

網絡層:安全網關(雲盾)、流量檢測系統(鷹眼)、動态防火牆、DDoS防護系統(金堤);

應用層:秘鑰管理服務、業務風控(天禦)、驗證碼服務、安全元件(OSK)。

2020-08-27OPPO網際網路DevSecOps實踐

四、安全文化建設

DevSecOps 中需要明确,安全與隐私不再單獨是安全團隊的責任,而應該是産品、開發、安全、運維等協同合作共同負責,以期達到“上線前安全賦能業務,上線後業務支援安全”的局面,為此我們做了以下的工作:

1.成立了公司級的安全與隐私委員會,将業務部門的負責人納入其中,在組織制度上保障安全與隐私政策的推動實施。

2.建立了安全與隐私合規代表制度,安全與隐私合規代表由業務部門專人擔任,確定安全與隐私要求在部門落地。

3.将安全與隐私寫入網際網路産品觀—“發自内心的尊重使用者的隐私與安全,而不僅僅是因為法律的限制”。

4.常态化的教育訓練賦能。一方面,對主管層開展“安全與隐私合規應知應會”教育訓練。另一方面,定期開展安全與隐私知識宣導。通過教育訓練、内部發文等形式開展安全與隐私知識教育訓練。

五、外部合作

安全是一項體系化工作,,我們積極保持與業界的聯系,引入業界先進安全能力,同時也希望能夠為安全界做一些貢獻:

1.成立了 OPPO安全應急響應中心(OSRC) ,并與多個漏洞送出平台合作,與全球安全研究者一起守護OPPO使用者的安全。

2.積極與高校和業界安全廠商合作,通過聯合實驗室、項目合作、産學研等方式在部分重點技術領域上進行攻關與合作。

3.積極參與安全與隐私領域權威認證,檢驗成果。目前已經通過TrustArc、eprivacy、ISO/IEC 27018:2014、ISO/IEC 29151:2017、ISO/IEC 27001:2013、CSA Star、泰爾資訊安全五級認證、等保三級、ISO/IEC 27701:2019等9個認證。同時我們還通過其他測評機構來評估DevSecOps的成熟度,以便改進。

4.在安全研究過程中,提報安卓系統、Netty、RocketMQ、Chrome、Safari、等多個安全問題,并獲得廠商公開緻謝及CVE。

5.參與 DIMVA 、ISC 等多個安全會議并做分享,開展多次校園行安全分享交流活動。

六、持續精進

目前,OPPO網際網路已經初步建立起了 DevSecOps 體系,但還處于起步階段,還有很多工作需要做。

1.自動化能力更加完善

自動化能力主要展現在安全與隐私問題消除率和業務效率影響兩個方面。問題消除率越高,業務效率影響越小我們認為自動化的能力越強。

可以從以下幾個方面入手:持續優化檢測方法和規則,降低誤報率和漏報率;自動化能力要覆寫關鍵的流程;持續優化自動化的使用者體驗。

持續關注業界技術動态,及時覆寫新的漏洞模型,引入新的檢測技術或方法,覆寫更多的産品形态;

持續營運自動化工具,在業務使用過程中優化檢測規則;

逐漸将 Docker 安全掃描作為強流程管控,覆寫安全基線掃描;

提早暴露安全風險,将安全掃描內建到IDE開發環境中,将安全掃描工具使用賦能給開發及測試,甚至将安全與隐私測試融入到功能測試中。

2.基礎設施即安全,預設安全原則

打造安全的基礎設施,并采取預設安全配置的原則,讓業務隻關心業務層面的安全與隐私。

保障基礎開發架構的安全;

将安全庫內建到開發架構中,并預設配置;

提供預設安全的鏡像、作業系統、中間件;

提供預設安全的通用元件,比如封裝WebView安全元件;

将安全檢測及監控能力融入到基礎設施中。

3.持續開展安全文化建設

持續打造業務、安全、運維協同開展安全與隐私合規工作的文化氛圍:

安全團隊持續關注業界安全與隐私技術及趨勢,消化吸收,轉化為内部能力;

持續将安全與隐私合規能力賦能給産品、開發、測試及運維人員;

逐漸将安全與隐私合規測試人工流程轉化為自動化流程;

将大部分的安全與隐私檢測項工具化,并推廣給開發和測試人員使用;

通過“安全藍軍”來覆寫自動化工具無法覆寫的部分。

最終形成安全團隊承擔咨詢、洞察、藍軍、能力輸出等角色,業務、測試及運維等通過安全的持續賦能,達到主動保障業務安全與隐私,,形成“上線前安全賦能業務,上線後業務支援安全”的局面,建立一個良性循環。

回顧OPPO安全在 DevSecOps 實踐過程中所遇到的挑戰,可以再次肯定,安全不是某一部門的責任,更不是在開發後期引入就可以解決問題的。在 DevSecOps 體系架構下,安全防護需要貫穿業務整個生命周期的每一個環節。

面對萬物互融的浪潮,雲計算、大資料及人工智能等核心技術的發展,在帶動科技發展的同時,必将給安全帶來極大的挑戰,如何保證業務高效、穩定、安全的發展,将是我們需要共同思考及長期實踐的問題。

OPPO安全将秉持對使用者高度負責的态度,在安全與隐私的道路上持續耕耘,成為有擔當的安全團隊。

繼續閱讀