Tuesday, May 17, 2022

[Offensive Security] eBPF、K8S與Offensive Security相關議題之研究

 資安議題已經是越來越火熱的項目,本篇主要目的是進行eBPF、K8S與Offensive Security相關議題之研究,以便於掌握目前之發展狀況。


Bad BPF: 
https://github.com/pathtofile/bad-bpf

A collection of malicious eBPF programs that make use of eBPF's ability to read and write user data in between the usermode program and the kernel.

有一篇文章: EBPF恶意利用及防御  就在測試 Bad BPF提供的恶意利用的範例,但最後有提到 eBPF的惡意利用雖然有點明顯,其實受限制頗多(因為使用BCC來實作),且存在適配的問題。這些都是有待解決的。


用eBPF製作的Rootkit: 

https://github.com/Gui774ume/ebpfkit
這篇文章: Linux中基於eBPF的惡意利用與檢測機制 ,值得深入一讀。

攻擊範例:

透過ebpfkit, 被入侵者的80 port 被轉發到 22 port, 原本的web service正常, 但攻擊者可由80 port 連 sshd

攻擊Demo影片:https://v.qq.com/txp/iframe/player.html?vid=x3324tskmwm


Rootkit介紹: 

這篇文章:【Rootkit系列研究】Rootkit檢測技術發展現狀 清楚介紹了當前主流的 Rootkit 防禦技術以及一些非常規 Rootkit 的可實施檢測方案。


        

使用 eBPF 逃逸容器技术分析与实践:
https://paper.seebug.org/1750/

逃逸分析

特性/功能要求
bpf系統調用擁有CAP_SYS_ADMIN;內核 5.8 開始擁有 CAP_SYS_ADMIN 或 CAP_BPF
非特權 bpf - “套接字過濾器”,如kernel.unprivileged_bpf_disabled為0或擁有上述權限
perf_event_open 系統調用擁有CAP_SYS_ADMIN;內核 5.8 開始擁有 CAP_SYS_ADMIN 或 CAP_PERFMON
探針需要使用tracefs;kernel 4.17後啟用perf_event_open創建
跟踪點需要使用tracefs
raw_tracepoint內核4.17後通過bpf調用BPF_RAW_TRACEPOINT_OPEN智能

    • bpf_probe_read:安全地從空間內核讀取數據
    • bpf_probe_write_user:嘗試以一種安全的方式向用戶空間寫數據
    • bpf_override_return:用於error injection修改kprobe監控的函數返回值
    • 讀取內核空間裡的敏感信息,或者掛鉤關鍵系統調用的返回點,獲取其他進程空間裡的敏感信息
    • 其他高級權限裡,注入shellcode或者改變的數據進程執行路徑執行自己的命令
    • 其他相似的方法...

展示使用eBPF,需要一些權限和裝載偽文件系統,以下eBPF kprobe、tracepoint的條件:

eBPF 作為附加內核的特定應用,在不會掛起的應用程序中,在不會掛起的內容中,又是可以容納的名稱,並且可以在掛起名稱的範圍內,同時掛載所有內容,並且在掛起時也保持不變。外的進程。

這些Linux內核為Linux內核提供了某個固定的函數,函數被稱為BPF-HELPERS,它們的eBPF程序提供了一定的幫助器來查看不同的內核功能,可以使用man bpf-helpers不同的幫助器類型來調用eBPF程序。不同,關於追查的幫手裡換來以下幾個:

這些程序提供了整個讀寫程序上的各種幫助程序用戶態空間的功能,同時提供了加載內核空間或B區的讀取數據能力攻擊者,同時提供了向內核空間進行讀取的能力,有多種提升容器的逃逸權限:

注意是eBPF無法改變系統調用時需要的參數,但是可以改變用戶態進入進程進程裡的內存數據。


雲原生之Kubernetes 安全
https://paper.seebug.org/1803/

隨著越來越多企業踏上上雲的步伐,在攻防演練中常常碰到雲相關的場景,例如:公有云、私有云、混合雲、虛擬化集群等。以往滲透路徑是「外網突破-> 提權-> 權限維持-> 信息收集-> 橫向移動-> 循環收集信息」,直到獲得重要目標系統。但隨著業務上雲以及虛擬化技術的引入改變了這種格局,也打開了新的入侵路徑,例如:

● 通過虛擬機攻擊雲管理平台,利用管理平台控制所有機器。

● 通過容器進行逃逸,從而控制宿主機以及橫向滲透到K8s Master節點控制所有容器。

● 利用 KVM-QEMU/執行逃逸獲取宿主機,進入物理網絡橫向移動控制雲平台。

目前互聯網上針對雲原生場景下的攻擊手法大都零零散散,僅有少部分廠商發布過相關矩陣技術,但都沒有過多的細節展示,本文基於微軟發布的 Kubernetes 威脅矩陣進行擴展,將深入介紹相關的具體攻擊方法。


 




No comments: