5個步驟實現有效的DevSecOps

banq發表於2018-10-17

幾年來,DevSecOps一直是技術對話中的熱門話題。這個想法並不新鮮。
但改變的是DevSecOps在軟體交付中扮演的角色。當DevSecOps成為一個概念時,它被視為一種使安全性更好的方法,但不一定是健康CI / CD鏈的重要組成部分

今天,DevSecOps不是可選的。如果您想保持現代應用交付安全,那麼這是必須的選項。我們來看看為什麼。

DevSecOps
DevSecOps認為每個人,無論他們的工作角色如何,都要對安全負責。

DevSecOps背後的驅動概念是,你可以而且應該能夠讓開發人員、DevOps工程師或網路工程師(例如)在不犧牲他們正在處理的應用程式或專案的安全性的情況下制定基於安全的決策,並允許快速做出這些決定,以免扼殺生產力。

 那麼,為什麼DevSecOps是必選項?

在許多企業中,DevOps作為一個概念正在被大量使用 - 應用程式開發人員與運營工程師一起被迫在開發、部署和互操作性方面變得敏捷。隨之而來的是對工程師技能交叉的要求,這使得他們不僅需要理解其他團隊的工作,而且在某些情況下還可以替代他們工作。
全棧工程師傾向於成為這種思維模式的一個很好的例子。現代DevOps /全棧工程師需要熟悉的一項關鍵任務就是安全性。

實現DevSecOps
那麼,一般的軟體工程師如何才能獲得DevSecOps所需的安全技能?讓我們來看看。
1.合作
在過去,通常情況下,人們會將自己歸入專業的工作角色,相互之間害怕參與對方角色(因為這是他們不熟悉的事情),或者只是因為公司文化的情況。。
識別安全風險和漏洞需要所有不同元素和人員之間的協作,最終使新產品或服務脫穎而出。同樣,這並不意味著有關人員應該掌握所有這些技能,但瞭解它們是有用的。
這方面的一個例子是運營工程師與開發人員合作,以確定他們的應用程式中的安全漏洞 - 同樣,開發人員與運營工程師密切合作。事實上,隨著開源軟體處於許多業務的最前沿,不僅要了解部署它,還要修補它,如果你發現問題的話。

 2.分享資訊
與協作一樣,在安全性方面,共享資訊至關重要。例如,如果您碰巧了解到新漏洞,那麼請務必與他人共享。保持開放並表現出興趣。這種溝通將使各方能夠在解決問題方面取得進展,並將為所有相關方的學習過程做出貢獻。

 3.主動監控
另一種可以將自己從DevOps工程師轉變為DevSecOps工程師的方法是:在設計任何正在投入生產的監控系統時主動考慮安全性。起初可以像在監視服務中構建檢查一樣簡單,監視系統以獲取重要的安全更新,並提醒員工他們需要進行修補。這也可以使用SIEM來監控應用程式日誌,並在失敗的登入嘗試,基於DoS / DDoS的攻擊模式等方面構建警報儀表板。

 4.安全即程式碼
這將我們帶到了另一個角度:安全即程式碼的概念。如果你正在讀這篇文章,那麼你很可能熟悉Ansible,Puppet和Chef。這些讓你在檔案中定義基礎結構,並形成我們所知的基礎架構程式碼。如果您正在執行上述操作,那麼將知道在許多情況下,很可能必須在程式碼中定義要建立的安全組,併發布你希望的服務暴露。這需要一些網路知識,以及對這種從外部世界開啟“漏洞”到您的應用程式或網路的影響的理解。你還可以使用NMAP等安全工具編寫自動檢查,這些工具將掃描新部署的伺服器以檢視哪些埠處於開啟狀態,並且如果發現不應該開啟的埠如果被暴露,應該會失敗。

 5.使用相關工具集
在考慮安全性時使用相關工具。例如,Twistlock具有連續整合工具,可直接插入現有的CI / CD管道系統(例如Jenkins)。這可以讓您相對輕鬆地設定安全性和合規性的閾值,包括HIPAA,PCI,CIS基準測試,並在構建本身中執行此操作。您可以繼續使用自定義警報設定警報或阻止不安全構建的策略,並指導下一步操作。
與上述類似,利用始終提供最新資訊的API的安全服務遠比堅持在某處建立的任意指南(可能會很快過時)更有效。

結論
DevSecOps的重要性不容小覷。隨著邪惡的個體(人之初性本惡)能更加聰明地發現軟體和硬體中的漏洞,IT專業人員也必須適應不斷變化的環境。我們需要敏捷地採用我們的安全方法,並集體採取行動解決未來的問題。這樣做可以減少我們最終部署的服務的攻擊足跡,並使我們更好地瞭解安全性。

DevSecOps不僅是一種心態變化,而且應該為那些負責人提供正確的工具和指導,以便將安全性放在業務決策的最前沿。DevSecOps工程師提供了巨大的價值,他們可以不斷評估日常工作中的安全性,並在發現問題時採取行動。它還消除了對更廣泛的DevOps團隊中單獨的安全團隊或單一安全工程師的依賴,他們可能無法全面瞭解基礎架構或最近開發的應用程式。最後,為了實現這種思維方式的改變,讓業務的高層決策者參與進來並瞭解DevSecOps的重要性是關鍵。 

相關文章