確保Docker安全的10大方法

     網絡安全事件會嚴重損害組織的聲譽,使其在市場競爭中處於不利地位,受到處罰,並給最終用戶帶來不必要的法律問題。根據 IBM 的報告,每次數據泄露的平均成本爲 392 萬美元。企業在提供安全方面面臨的最大挑戰是缺乏安全工具和實踐方面的技能和培訓 缺乏可見性和漏洞, 持續監控安全現狀 在 PaloAlto Networks 最近發佈的《雲安全現狀報告》調查中發現,94% 的企業使用一個或多個雲平臺,約 45% 的計算使用容器或 CaaS。容器的主導地位在不斷增強,因此安全威脅也在不斷增加。

在這些報告中,被確認爲威脅的首要問題是:

  • 數據暴露和惡意軟件
  • 應用程序漏洞
  • 身份驗證薄弱或失效
  • 配置錯誤
  • 訪問權限不正確或權限過大
  • 內部威脅
  • 憑證泄漏
  • 端點不安全

在本文中,我們將介紹一些容器安全最佳實踐,我們可以遵循和實施這些實踐來降低容器化工作負載的安全風險。

確保應用程序容器安全的 10 大安全最佳實踐


1. 從可信存儲庫中獲取源基礎鏡像
     當我們創建容器鏡像時,通常會依賴於從流行的私有或公共註冊中心獲取的種子鏡像。請注意,在鏡像生產的供應鏈中,有人可能會滲透並投放惡意代碼,從而爲攻擊者打開方便之門。僅舉一例,2018 年,一些黑客通過攻擊英國航空公司的軟件供應鏈,用惡意 javascript 代碼攻擊了該公司的網絡應用程序。早在幾年前,Docker 就在 Docker Hub 上發現了一些在鏡像中安裝了 Cryptominers 的鏡像

image

下面是一些提示:

創建容器鏡像時,請使用來自知名可信發佈者的加固基礎鏡像源。
選擇那些經常發佈最新安全修復和補丁的鏡像。
使用經過簽名和標記的鏡像,並在拉取過程中驗證鏡像的真實性,以阻止中間人攻擊。

2. 安裝經過驗證的軟件包
     基礎鏡像的來源必須是可信來源,出於同樣的原因,安裝在基礎鏡像上的軟件包也必須是經過驗證的可信來源。

3. 儘量減少鏡像中的攻擊面
     所說的攻擊面是指安裝在鏡像中的軟件包和庫的數量。根據常識,如果對象數量較少,出現漏洞的機率也會降低。在滿足應用程序運行要求的情況下,儘量減小鏡像的大小。最好在一個應用程序容器中只安裝一個應用程序。

刪除不必要的工具和軟件,如軟件包管理器(如 yum、apt)、網絡工具和客戶端、鏡像中的 shell、netcat(可用於創建反向 shell)。
使用多階段 Dockerfile 從生產鏡像中移除軟件構建組件。
不要在容器中暴露不必要的網絡端口、套接字或運行不需要的服務(如 SSH 守護進程),以減少威脅。
與完整的操作系統映像相比,選擇高山映像或從頭開始映像或容器優化操作系統作爲基礎映像。

4.不要在鏡像中暴露密鑰

    所有密鑰都不應放在鏡像和 Dockerfile 中。包括 SSL 證書、密碼、令牌、API 密鑰等在內的祕密應保存在外部,並應通過容器編排引擎或外部密鑰管理器安全掛載。Hashicorp Vault、AWS Secrets Manager 等雲提供的祕密管理服務、Kubernetes 密鑰、Docker 密鑰管理、CyberArk 等工具可以改善安全態勢。

5.使用安全的私人/公共Registries

   通常,企業都有自己的基本Image,其中包含專有軟件和庫,但不想公開發布。確保Image託管在安全可信的註冊中心,以防止未經授權的訪問。使用具有可信根 CA 的 TLS 證書,並實施強大的身份驗證以防止 MITM 攻擊。

6.不要使用特權或root用戶在容器中運行應用程序

    這是容器化工作負載中最常見的錯誤配置。考慮到最小權限原則,請創建一個應用程序用戶,並使用它在容器內運行應用程序進程。爲什麼不是 root 用戶?原因是在容器中運行的進程與在主機操作系統上運行的進程類似,只是它有額外的元數據來標識它是容器的一部分。有了容器中根用戶的 UID 和 GID,就可以訪問和修改主機上根用戶寫入的文件。

    注意--如果在 Dockerfile 中沒有定義任何 USER,通常意味着容器將以root用戶運行。

7.在 CI/CD 中實施鏡像漏洞掃描

    在爲容器構建和交付設計 CI/CD 時,應包含一個鏡像掃描解決方案來識別漏洞(CVE),並且在沒有補救措施的情況下不要部署可利用的鏡像。可以使用 Clair、Synk、Anchore、AquaSec、Twistlock 等工具。一些容器註冊機構(如 AWS ECR、Quay.io)配備了掃描解決方案,請務必使用。

image

8.啓用 AppArmor 等內核安全配置文件

    AppArmor 是一個 Linux 安全模塊,用於保護操作系統及其應用程序免受安全威脅。Docker 提供了一個默認配置文件,允許程序訪問有限的資源,如網絡訪問、內核功能、文件權限等。它減少了潛在的攻擊面,提供了很好的深度防禦。

9.安全的集中和遠程日誌記錄

     通常情況下,容器會將所有內容記錄在 STDOUT 上,這些日誌一旦終止就會丟失。我們還需要確保該日誌系統的安全性,確保日誌中的數據不會泄露。

10.部署運行時安全監控

     即使部署了基於存儲庫數據的漏洞掃描解決方案,並採取了所有必要的預防措施,仍有可能受害。必須持續監控和記錄應用程序行爲,以防止和檢測惡意活動。

"網絡安全沒有銀彈解決方案,分層防禦是唯一可行的防禦方法"。- ICIT 研究

通過實施上述最佳實踐,你可以讓攻擊者更難找到利用你的系統的方法。我們指出了一些可用於審計和保護容器安全的工具和參考資料。

用於安全控制的開源工具


      爲了簡化安全控制的採用,我建議使用一些開源和商業產品來發現當前狀態,建議:

Docker-bench-security: Docker 本身的官方工具,用於根據行業標準基準 Docker 的 CIS 基準審覈容器工作負載。
用於 Dockerfile 的
Hadolint Linter: 使用該工具對 Docker 文件進行靜態代碼分析。它有助於實施最佳實踐。它可以與流行的代碼編輯器和集成管道集成。
Clair Clair 是一款流行的應用容器靜態漏洞掃描工具。它定期從各種漏洞數據庫中獲取元數據。可供選擇的工具有 Anchore、Synk 和 Trivy
OWASP Cheatsheet: OWASP 是一個開放社區,在安全專家中頗受歡迎。這份小抄是一個很好的起點。
容器 OpenSCAP: 安全內容自動化協議(SCAP)是一個多用途規範框架,支持自動配置、漏洞和補丁檢查、技術控制合規活動和安全測量。它執行 NIST 標準。
Sysdig Falco: Falco 可用於實現運行時安全。它使用高效的 eBPF 來攔截調用和流量,以便進行實時監控和取證。隨着黑客的不斷髮展,新的漏洞不斷被發現。



今天先到這兒,希望對雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 項目管理, 產品管管,團隊建設 有參考作用 , 您可能感興趣的文章:
領導人怎樣帶領好團隊
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
視頻直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下消息隊列架構
互聯網高效研發團隊管理演進之一
消息系統架構設計演進
互聯網電商搜索架構演化之一
企業信息化與軟件工程的迷思
企業項目化管理介紹
軟件項目成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
項目管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
互聯網數據庫架構設計思路
IT基礎架構規劃方案一(網絡系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變

如有想了解更多軟件設計與架構, 系統IT,企業信息化, 團隊管理 資訊,請關注我的微信訂閱號:

MegadotnetMicroMsg_thumb1_thumb1_thu[2]

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 該文章也同時發佈在我的獨立博客中-Petter Liu Blog。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章