容器(container)可以最佳化開發者體驗。利用容器建構應用程式讓開發者可以在任何電腦硬體、基礎架構或雲端環境內順利運行應用程式。作業系統和底層基礎架構差異性所可能帶來的問題也會在容器運行時消除。但就跟任何其他技術一樣,使用容器可能存在著取捨。如果沒有好好思考容器基礎架構的複雜性,可能會產生嚴重的安全風險。容器可能的威脅存在於開發流程的各個階段。
[延伸閱讀:檢查容器環境可能的威脅]
為了將建構容器的風險降到最低,開發者可以遵循以下六個步驟:
1.保護容器主機
容器應該託管在專用的系統上。移除容器運作時用不到的服務可以減少整體的受攻擊面。
加入監視工具來提供主機健康狀態的能見度。
- 使用強大的安全控制(如趨勢科技Deep Security所提供的)來防護容器主機系統。如果這些系統擁有良好的防護,則可以保證運行容器工作負載時系統的完整性。
- 容器應該託管在專用的系統上。移除容器運作時用不到的服務可以減少整體的受攻擊面。
- 加入監視工具來提供主機健康狀態的能見度。
2.保護網路環境。
- 利用入侵防禦系統(IPS)和網頁過濾等安全機制來監控南北向及進出網際網路的流量,可以阻止攻擊並過濾惡意內容。
- 監控容器間流量並部署IPS。內部流量監控對你的防禦來說很重要,因為已經進入內部網路的攻擊者可以快速地進行橫向移動以擴大攻擊範圍。
3.保護你的管理機制。
- 妥善保護和監控容器註冊資料庫。
- Kubernetes安裝必須要完全掌控。並且利用Pod和網路策略等功能來強制實行組織的安全性和開發標準。
- 使用趨勢科技Deep Security Smart Check這類安全工具在容器加入註冊資料庫前先加以掃描並驗證設定。這可以確保只有符合團隊開發和安全標準的容器可以部署。
4.建立在安全的基礎上。
- 檢視並注意專案團隊應用程式的相依關係。當部分軟體被修補時,需要將變動整合進應用程式以降低風險。
- 使用趨勢科技Deep Security Smart Check這樣的容器映像檔掃描工具來確保容器沒有出現惡意軟體或已知漏洞,也沒有機敏資料暴露。也可以用客製化入侵指標(IoC)進行掃描。
- 通過容器映像檔掃描工具,可以在進一步開發或部署到生產環境前降低風險。
5.防護你的建構流程。
- 開發者電腦必須安裝強大的安全軟體,像是趨勢科技Apex One所提供的那樣。這可以防止惡意軟體、連到惡意網站或其他安全問題和容器威脅。
- 必須實施徹底且一致的存取控制。保護流程完整性的關鍵是確保只有授權使用者可以存取程式碼資料庫,整合分支以及將新版本推送到生產環境。
- 運行上述工具的伺服器也必須是安全的。使用趨勢科技Deep Security這樣的安全軟體可以用最少的運作成本提供強大的防護能力,幫助你的團隊實現安全性目標及標準。
6.保護你的應用程式。
- 程式碼必須遵循最佳實作以提高品質。畢竟簡單的錯誤或糟糕的設計可能會導致許多安全漏洞。投入時間和精力來確保程式碼品質可以帶來安全紅利。
- 使用運行時期自我保護機制來協助解決安全漏洞及某幾行程式碼所造成的問題。這樣有助用根本原因分析,並且達到更好的安全性結果。
保護你的應用程式。
- 程式碼必須遵循最佳實作以提高品質。畢竟簡單的錯誤或糟糕的設計可能會導致許多安全漏洞。投入時間和精力來確保程式碼品質可以帶來安全紅利。
- 使用運行時期自我保護機制來協助解決安全漏洞及某幾行程式碼所造成的問題。這樣有助用根本原因分析,並且達到更好的安全性結果。
關於容器防護的最後一句話
使用容器技術可以提高開發流程速度和效率,同時保持了整體的一致性。但最近開始出現了針對容器的威脅,所以必須加以妥善保護以防止可能的風險。幸運的是,儘管開發者需要考慮開發流程和支援基礎架構的各層面,但以上步驟能夠有效地幫助保護容器。
有關容器安全防護因素和挑戰的深入討論,請參考趨勢科技白皮書「詳述容器安全防護的六個步驟」。