天天看點

企業軟體安全開發建設

  目前國内據我所知企業軟體安全開發建設大緻分為3類,一類走SDL路線,起源于微軟,一類走DevSecOps,起源于Gartner 研究公司的分析師 David Cearley,“它是糅合了開發、安全及營運理念以建立解決方案的全新方法”。第三類無拘無束,走企業自己的路,SDL内容和DevSecOps内容都借鑒也都不走尋常路(基本還是原始管理方式加前兩者的改進)。我這裡介紹的參考了SDL和DevSevOps内容。

下圖是DevSecOps的常見模型,

企業軟體安全開發建設

​ 研究DevSecOps需要先了解DevOps是幹啥的,DevOps(Development和Operations的組合詞)是一種重視“軟體開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟體傳遞”和“架構變更”的流程,來使得建構、測試、釋出軟體能夠更加地快捷、頻繁和可靠(引自維基百科)。說人話就是DevOps是讓企業開發自己的軟體更有産出,

企業軟體安全開發建設
企業軟體安全開發建設

​ 但是Sec也是就是安全部分仍然相對獨立在項目流程外,DevSecOps就是解決安全融入項目品質提高的過程。為什麼要這麼搞也很好了解——省錢,就目前曆史教科書上對王朝統治者搞了啥動作大部分的解釋都可以收束為——維護王朝統治,企業搞一切動作都要有個收益問題,之前安全部門不能和群衆們打成一片就會影響效率,降低收益。

企業軟體安全開發建設

​ 這裡經常提到的一個概念就是安全左移,什麼是安全左移呢?結合下圖對DevSecOps和SDL進行對比圖示來介紹:

企業軟體安全開發建設

​ 這裡是完整的兩個流程對比,從實踐上講SDL對發揮人的作用更對,DevSecOps對工具的作用更重視,但是兩者都是把安全的關注點放到了項目的最初部分,也就是說傳統廠商對我自己釋出一個軟體是不是安全如何确定?入場标準檢測也就是對應市場入場标準,市場讓我進去了,能賣了,能賺錢了,安全就到位了。市場審查查到我哪裡不安全,達不到标準就打回來——查問題,各部門全家上陣改問題。時間和錢都得花很多。再之後,廠商學乖了,把入場标準搞一份,在出場的時候就搞安全審查,這樣我自己企業内部溝通總比被有關部門查出來再改容易。安全就從進入市場标準左移到了企業内部出廠标準。出場标準之後,還是有問題——如上圖場景二,自己内部安全審查回報給研發和測試也花時間和銀子啊——核心問題就被注意到了:代碼品質不行啊,十行代碼十五個洞,給企業内外安全測試人員當内鬼呢?是以安全還得左移——讓研發把代碼品質提上去,産出可信的産品提供給市場。這裡給推薦任正非老闆的一個企業内部信可以去看下。安全左移到開發之後通過繼續的探索——有些問題不是我代碼有問題,是架構的問題,設計的憨批操作導緻了這種安全漏洞,這裡給大家推薦婦科聖手TK的一個演講"代碼未寫,漏洞已出"。左移就移到項目架構設計部分來解決。

​ 總結下,安全建設企業要搞,為啥要搞?賺錢不搞不行!為啥搞SDL和DevSecOps,通過搞SDL和DevSecOps能節省成本提高整體賺錢能力。商業就是要搞錢,花錢是為了賺更多錢!資本永不眠~

扯了挺多,下面介紹,甲方怎麼搞企業軟體安全建設的一些參考,主要涉及各流程的一些開源工具,道術法,SDL和DevSecOps更多算術一層面,具體搞起來還是看——法,具體做法。下面介紹的不必全搞,也沒總結全,按實際需求進行采納。希望對關注這個領域的師傅們有所幫助。

Plan

安全知識庫搭建

文檔借鑒:OWASP NIST CAPEC

Security-Portal(安全知識管理)

知識庫産物:

安全威脅庫

Cigital ARA

MS Treat Modeling

安全編碼規範

Confluence

安全需求&安全設計庫

Jira

供應商評估

VSAQ

安全需求

來源:法律法規 行業監管 公司内部要求 業界安全實踐

方法:OWASP ASVS checklist

Create

标準化與加強

CIS Benchmark

CI自動內建工具

Jenkins

威脅模組化

過程:

​ 1·識别資産

​ 2·訪談架構設計開發人員 了解應用程式架構 應用程式分解 繪制資料流圖(信任邊界劃分 關鍵點)

​ 3· 威脅分析 風險評估

​ 4·制定緩解措施 威脅優先級排序

​ 工具:微軟系列 Threat Modeling Tool Threat Dragon(OWASP) ThreatModeler(自動化 輕量)

​ 模組化方法:STRIDE (仿冒、篡改、抵賴、資訊洩露、拒絕服務、特權提升)

源代碼安全掃描

​ IDE安全插件(IAST 互動式源碼安全掃描)

​ Java Find Security Bugs

​ SAST源代碼安全掃描 (靜态)

​ Sonarqube 指令行 開發根據建議改 安全調優掃描規則

​ DAST 動态 黑盒安全測試(FUZZ)

​ Web ZAP (OWASP)

​ IBM APPScan

​ AWVS

​ Mantra (OWASP)

​ SCA開源元件安全掃描

​ Dependency-check(OWASP 依據NVD) Black-Duck-Hub

​ 容器安全掃描

​ clair(支援和鏡像倉庫內建 harbor) Nessus-for-Docker

​ 主機安全掃描&配置基線加強安全掃描

​ Tenable-Nessus

​ 專向掃描工具

​ BurpSuite Pro

​ SQLMap

​ Metasploit

​ Infection Monkey

​ 自動化滲透測試工具集

Verify

MAST 移動引用安全測試

MOBSF(Android ios)提供API接口

安全加強 (安全配置基線)

CIS Benchmarks 基線配置腳本化

漏洞跟蹤管理

DefectDojo(OWASP) 支援API接口自動化內建

RASP 運作時應用自我保護

OpenRASP 百度 開源 識别運作時應用異常

Monitoring&Analytics

應用資産風險感覺&漏洞聚合平台

Kibana 可視化資源管理 研發品質可視化

ThreadFix

代碼品質管理平台

SonarQube

威脅監控

ELK 開源

logstash日志統一管理

Zeek【Bro】 suricata 流量管理

ET 開源規則 清洗

ES 庫

Kibana 可視化示範

Preproduction

主機環境驗證測試

Tennable Nessus

資料庫安全掃描

APPDetective

Release

安全風險評估記錄

Jira/Confluence

制品庫

Jfrog/Nexus

漏洞修複計劃

Jira

FW開通

ITSM tool

資産管理平台

us

資料庫安全掃描

APPDetective

Release

安全風險評估記錄

Jira/Confluence

制品庫

Jfrog/Nexus

漏洞修複計劃

Jira

FW開通

ITSM tool

資産管理平台

以上是内容基本是對概念做了簡單映射到工具的總結,每一個工具落地是否對企業口味因人而異。

繼續閱讀