雲原生安全端上能力建設

wzhvictor發表於2023-03-10

背景

雲原生技術在各大公司的落地如火如荼,研發模式和基礎設施都發生了很大的變化,新的 Kubernetes 和容器技術正逐步取代傳統的物理機和虛擬機器。在雲原生架構的演變過程中我們發現也帶來了一些新的風險和挑戰,包括容器網路安全、容器逃逸、映象安全等多個方面。
為保障業務上雲安全,一方面是要分析解決新的安全風險,另一方面需要加快相應的安全基礎建設。本文將介紹針對一些已知的風險點,如何使用 HIDS 來保障雲原生環境的安全。

容器威脅來源

  1. Linux 核心提權:收集對寫 exploit 有幫助的資訊,比如核心版本及安全漏洞,然後透過觸發該漏洞去執行特權程式碼,使得低許可權使用者提升到 root 使用者許可權,最終控制整個系統。
  2. 容器逃逸:透過突破 Namespace 的限制,將高許可權的 Namespace 賦到 exploit 程式的 task_struct 中,這往往是由於 Docker 安全漏洞或配置不當導致的。
  3. Docker 其他 CVE:比如透過惡意映象利用 Docker runc 在使用檔案系統描述符時存在的漏洞。

    攻擊過程:
    docker run 啟動了被惡意修改的映象
    宿主機 runc 被替換為惡意程式
    宿主機執行 docker run/exec 命令是觸發執行惡意程式
  4. 特權容器或 Capability 許可權過大:配置不當導致容器內的程式實現 Linux 系統許可權提升。

檢測手段

基線檢測

用於檢測部分非預期環境。
雲原生重點關注 Kubernetes 和 docker 的安全漏洞以及錯誤配置兩方面,原理就是檢查軟體版本是否被爆出過 CVE 漏洞,並檢測配置檔案內的配置項是否有風險,包含風險的檢查項及時讓業務或運維知曉並修復。
雲原生相關檢查項:

雲原生安全問題.png

除此之外,還會檢查容器及宿主機內其他的軟體配置(Redis、MySQL、Tomcat 等)、弱口令、等保基線等。

入侵檢測

用於檢測部分非預期邏輯。

入侵檢測的第一步就是採集足夠詳細的資料

其中包括:

  1. 檔案的建立、讀寫、link、重新命名等操作;
  2. 網路的連線、bind 等狀態;
  3. 程式關於 execve、setsid、prctl、ptrace、call_usermode 的呼叫;
  4. 登入日誌、SSH 日誌;
  5. 系統已安裝元件,RPM、PYPI 包等;
  6. crontab、port 詳細資訊。

image.png

關於程式監控的方案主要有以下幾種:

方案Docker 相容性開發難度資料準確性資料系統侵入性
connector定製 Docker一般存在核心拿到的 pid,在 /proc/ 下丟失的情況
Audit定製 Docker一般同 connector弱,但依賴 Auditd
EBPF定製 Docker中等精確中等,依賴核心版本 3.18 以上
Hook(kernel module)定製精確

Hook 的方案,對系統侵入性太高了,尤其是這種最底層做 Hook syscall 的做法,如果測試不充分將可能導致災難級的故障,主機大面積癱瘓。
綜合穩定性考慮,HIDS 程式建立監控採用 cn_proc 的方案,相比較 Audit,對系統無侵入。但這種方式存在核心拿到的 pid,在 /proc/ 下丟失的情況,因為很多程式啟動後就立刻消失了,去讀取 /proc/ 時就存在找不到的可能,但為了系統穩定性,可以犧牲一些資料的準確性。

透過 Netlink Connector 在使用者態即可獲得核心提供的資訊:

image.png

檔案監控的主要邏輯:
docker inspect 命令透過 container id 找到對應的容器目錄,透過對映目錄獲取 docker 內檔案並進行監控。

image.png

Docker 容器檔案系統:

image.png

監控網路連線:
Docker 內網路隔離是透過 Network Namespace 來實現的,每個 Network Namespace 都有獨立的網路裝置、IP 地址、路由表、/proc/net/ 目錄。
先獲取所有 docker init1 程式在宿主機的 pid,然後透過 /proc/pid/net 獲取 docker 網路連線資訊。

image.png

識別威脅的下一步就是透過策略發現

透過內建的規則引擎對上報資料關聯分類,並判斷黑、灰行為,支援動態白名單,將檢測結果寫入 ES 中。

image.png

此處僅做科普,策略包括但不限於:

  • 比如子程式執行異常命令(訪問登錄檔、新增使用者、刪除高危目錄等);
  • 網路外連未知 IP,需要透過 IP 匹配威脅情報;
  • 比對檔案 MD5 和病毒特徵庫,發現 rootkit 等;
  • 透過 tcpdump 發現網路代理攻擊;
  • ……

未來展望

結合 ATT&CK 框架,從行為的視角來看待攻擊者和防禦措施,構建容器化應用安全體系,透過模擬紅藍對抗,評估企業目前的安全能力,對提升企業安全防護能力是很好的參考。

image.png

相關文章