vArmor:云原生容器安全的多場(chǎng)景應(yīng)用實(shí)踐
簡(jiǎn)介
vArmor 是字節(jié)跳動(dòng)開(kāi)源的云原生容器沙箱系統(tǒng),它借助 Linux 的 AppArmor LSM,BPF LSM 和 Seccomp 技術(shù)進(jìn)行容器加固。用戶可以通過(guò) vArmor 的 CRD API 在 Kubernetes 集群中管理安全策略,對(duì)指定工作負(fù)載的容器進(jìn)行加固。vArmor 旨在降低利用現(xiàn)有技術(shù)加固容器的門檻和成本,從而平衡安全風(fēng)險(xiǎn)與防護(hù)成本。
本文將介紹我們推出 vArmor 項(xiàng)目的目的,然后從技術(shù)角度出發(fā)介紹其在不同場(chǎng)景的應(yīng)用。本文將向您展示如何憑借vArmor 的技術(shù)特性來(lái)解決特定問(wèn)題,從而實(shí)現(xiàn)技術(shù)與業(yè)務(wù)目標(biāo),助力企業(yè)構(gòu)建云原生環(huán)境下的安全防線。
為什么推出 vArmor
容器運(yùn)行時(shí)組件和 Kubernetes 早已增加了對(duì) LSM、Seccomp 的支持,其中 Seccomp 在 Kubernetes v1.19 GA,AppArmor LSM 在 Kubernetes v1.30 GA。用戶可以自行編寫和管理 AppArmor、SELinux、Seccomp Profiles,并在工作負(fù)載中配置安全策略對(duì)其進(jìn)行加固。幾乎所有的容器運(yùn)行時(shí)組件都附帶了默認(rèn)的 AppArmor 和 Seccomp 安全策略,但默認(rèn)的 Seccomp 策略需要顯式設(shè)置才會(huì)為容器開(kāi)啟,而默認(rèn)的 AppArmor 策略需要操作系統(tǒng)支持才會(huì)為容器自動(dòng)開(kāi)啟。
充分利用 Linux 系統(tǒng)的安全機(jī)制可以有效加固容器。例如通過(guò) LSM、Seccomp 等技術(shù)對(duì)容器進(jìn)程進(jìn)行強(qiáng)制訪問(wèn)控制,可以減少內(nèi)核攻擊面、增加容器逃逸或橫向移動(dòng)攻擊的難度與成本。它們的基本原理如下圖所示。
然而,編寫和管理安全策略則面臨諸多挑戰(zhàn):
- 容器運(yùn)行時(shí)組件的默認(rèn)安全策略存在局限性,無(wú)法防御某些漏洞、錯(cuò)誤配置風(fēng)險(xiǎn),也不能限制攻擊者在容器內(nèi)的滲透行為。
- 構(gòu)建 AppArmor、Seccomp、SELinux Profile 需要專業(yè)知識(shí)。
- 為復(fù)雜且快速迭代的容器化應(yīng)用制定健壯的安全策略(尤其是 Deny-by-Default 模式的策略)難度較大。
- AppArmor 或 SELinux LSM 依賴操作系統(tǒng)發(fā)行版,存在一定局限性。
- 在 Kubernetes 環(huán)境中,自動(dòng)化管理和應(yīng)用不同的安全策略比較復(fù)雜。
為了解決這些問(wèn)題,vArmor 應(yīng)運(yùn)而生。它提供了多種策略模式、內(nèi)置規(guī)則和配置選項(xiàng),vArmor 會(huì)根據(jù)策略對(duì)象的定義,管理安全策略(AppArmor Profile、BPF Profile、Seccomp Profile)對(duì)不同工作負(fù)載的容器進(jìn)行加固。vArmor 還基于 BPF 和 Audit 技術(shù)實(shí)現(xiàn)了行為建模功能,可以對(duì)不同應(yīng)用進(jìn)行行為采集并生成行為模型,從而輔助構(gòu)建安全策略。
例如,用戶可以按需配置策略對(duì)象,實(shí)現(xiàn)違規(guī)攔截、攔截并告警、只告警不攔截三種效果,并使用內(nèi)置規(guī)則和自定義規(guī)則動(dòng)態(tài)更新策略對(duì)象,從而滿足不同應(yīng)用場(chǎng)景的需要。下面我們將用幾個(gè)實(shí)際應(yīng)用場(chǎng)景來(lái)展示 vArmor 如何助力企業(yè)提升云原生環(huán)境中的容器安全防護(hù)能力。
vArmor 的應(yīng)用場(chǎng)景
01、多租戶隔離
多租戶應(yīng)用的風(fēng)險(xiǎn)
現(xiàn)代 SaaS 應(yīng)用程序大多采用多租戶模式,嚴(yán)重的漏洞及相應(yīng)的利用鏈,極有可能致使惡意用戶得以訪問(wèn)其他租戶的數(shù)據(jù)。隨著大語(yǔ)言模型時(shí)代來(lái)臨,云服務(wù)的使用量還會(huì)進(jìn)一步增長(zhǎng)。因此,構(gòu)建此類服務(wù)的人員更需關(guān)注多租戶隔離風(fēng)險(xiǎn)并采取防范舉措,以降低跨租戶攻擊的風(fēng)險(xiǎn)。
下圖是 Wiz 在 PEACH 框架中描繪的一個(gè)典型跨租戶攻擊序列 [1]:
大量案例表明,跨租戶漏洞、漏洞利用鏈的根因主要包括:
- 用戶接口復(fù)雜度較高,接口中的無(wú)害 bugs、features 加劇風(fēng)險(xiǎn)
- 多租戶共享組件實(shí)現(xiàn)不當(dāng)。
- 多租戶獨(dú)占組件安全邊界實(shí)現(xiàn)不當(dāng)。
針對(duì)這些問(wèn)題,可采取以下緩解措施:
- 減少用戶接口復(fù)雜度
- 將共享組件轉(zhuǎn)變成租戶獨(dú)占組件
- 提升租戶獨(dú)占組件的隔離性
如何選擇加固方案
Wiz 在 PEACH 框架中指出,針對(duì)多租戶應(yīng)用,應(yīng)根據(jù)安全建模結(jié)果,綜合合規(guī)、數(shù)據(jù)敏感度、成本等因素選擇租戶隔離技術(shù)方案。企業(yè)可以通過(guò)選擇不同類型的安全邊界和防御技術(shù),將不可控風(fēng)險(xiǎn)轉(zhuǎn)化為可控成本。
租戶隔離用于彌補(bǔ)由于接口的復(fù)雜性而帶來(lái)的多租戶隔離安全風(fēng)險(xiǎn)。而接口復(fù)雜度則與漏洞出現(xiàn)概率正相關(guān),下表描述了接口復(fù)雜度的簡(jiǎn)單評(píng)估方法 [1]。
因此,對(duì)于復(fù)雜接口(如支持租戶執(zhí)行任意代碼的組件),建議選擇高隔離等級(jí)的安全邊界來(lái)保障租戶數(shù)據(jù)安全,例如基于輕量級(jí)虛擬機(jī)技術(shù)的容器。對(duì)于不復(fù)雜的租戶場(chǎng)景和接口,如文件解析、數(shù)據(jù)解析、網(wǎng)頁(yè)渲染、文件上傳等,可考慮使用 vArmor 等技術(shù)方案進(jìn)行加固。
還需要做什么
由于 runc + vArmor 的隔離等級(jí)不及硬件虛擬化容器(如 Kata Container 等輕量級(jí)虛擬機(jī)容器),因而無(wú)法防御所有容器逃逸漏洞。因此,在使用 vArmor 加固多租戶應(yīng)用時(shí),需假設(shè)高級(jí)攻擊者可能會(huì)利用漏洞逃逸到宿主機(jī)。我們建議您配合以下安全實(shí)踐,來(lái)增加攻擊者逃逸后進(jìn)一步攻擊的難度和成本,并及時(shí)發(fā)現(xiàn)攻擊行為。
- 租戶負(fù)載應(yīng)滿足 Pod Security Standard 的 Baseline 或 Restricted 標(biāo)準(zhǔn) [2],并使用 NetworkPolicy 等技術(shù)實(shí)施網(wǎng)絡(luò)微隔離。
- 制定合理的調(diào)度策略,避免不同租戶負(fù)載調(diào)度到同一個(gè)節(jié)點(diǎn)。
- 不同租戶使用獨(dú)占命名空間,以最小權(quán)限原則授予租戶負(fù)載有限的 Kubernetes RBAC 和 IAM 權(quán)限,避免授予敏感權(quán)限。敏感 RBAC 權(quán)限列表可參考 Palo Alto Networks 發(fā)布的白皮書 [3]。
- 制定合理的調(diào)度策略,將具有敏感 Kubernetes RBAC 和 IAM 權(quán)限的系統(tǒng)組件負(fù)載調(diào)度到專用節(jié)點(diǎn)池,確保租戶負(fù)載所在節(jié)點(diǎn)不存在可被濫用的服務(wù)賬號(hào)和用戶賬號(hào)。
- 系統(tǒng)組件的敏感接口應(yīng)開(kāi)啟身份認(rèn)證和鑒權(quán),避免未授權(quán)漏洞。
- 引入入侵檢測(cè)系統(tǒng),在主機(jī)、Kubernetes 層面進(jìn)行入侵檢測(cè)和防御,及時(shí)發(fā)現(xiàn)并響應(yīng)入侵行為。
02、核心業(yè)務(wù)加固
加固的收益
雖然業(yè)內(nèi)已經(jīng)推出了一些基于硬件虛擬化技術(shù)和用戶態(tài)內(nèi)核的強(qiáng)隔離方案(例如 Kata、gVisor 等),但由于其技術(shù)門檻和成本較高,使得 runc 容器仍將是大部分業(yè)務(wù)場(chǎng)景的主流。用戶在享受 runc 容器帶來(lái)的性能與便捷時(shí),也面臨著諸如容器隔離性較弱的安全問(wèn)題。例如近年來(lái) Linux 內(nèi)核、runc 組件、容器運(yùn)行時(shí)組件的漏洞頻發(fā),每隔一段時(shí)間就會(huì)有新的漏洞可被用于容器逃逸等攻擊;許多企業(yè)在容器化應(yīng)用設(shè)計(jì)、開(kāi)發(fā)、部署時(shí),也易因錯(cuò)誤設(shè)計(jì)和配置引入逃逸風(fēng)險(xiǎn)。
Verizon 發(fā)布的研究報(bào)告 [4] 表明,企業(yè)在補(bǔ)丁可用后平均需 55 天才能解決 50% 的關(guān)鍵漏洞,而影響基礎(chǔ)設(shè)施的漏洞修復(fù)時(shí)間可能更長(zhǎng)。當(dāng)某個(gè)高危漏洞被全量修復(fù)后,可能又有新的漏洞出現(xiàn)并等待修復(fù)。在漏洞修復(fù)期間,企業(yè)往往缺乏除了入侵檢測(cè)以外的防御措施。
使用 vArmor 的理由
vArmor 的以下特性,使其成為加固核心業(yè)務(wù)的選擇:
- 云原生:遵循 Kubernetes Operator 設(shè)計(jì)模式,貼近云原生應(yīng)用開(kāi)發(fā)和運(yùn)維習(xí)慣,從業(yè)務(wù)視角加固容器化應(yīng)用,因此易于理解和上手。
- 靈活性:策略支持多種運(yùn)行模式(例如 AlwaysAllow、RuntimeDefault、EnhanceProtect 模式),可動(dòng)態(tài)切換且無(wú)需重啟工作負(fù)載。支持?jǐn)r截、攔截并告警、僅告警不攔截三種特性,有助于策略調(diào)試和安全監(jiān)控。
- 開(kāi)箱即用:基于字節(jié)跳動(dòng)在容器安全領(lǐng)域的攻防實(shí)踐,提供了一系列內(nèi)置規(guī)則,用戶可按需在策略對(duì)象中選擇使用。vArmor 會(huì)根據(jù)策略對(duì)象的配置,生成和管理 Allow-by-Default 模式的 AppArmor、BPF、Seccomp Profile,降低了對(duì)專業(yè)知識(shí)的要求。
- 易用性:提供了行為建模功能、策略顧問(wèn)工具,從而輔助策略制定,進(jìn)一步降低了使用門檻。
常見(jiàn)用法
vArmor 豐富的特性為安全策略的制定和運(yùn)營(yíng)提供了多樣的選擇,以下是一些常見(jiàn)的使用方式:
- 僅告警不攔截模式(觀察模式):將沙箱策略配置為僅告警不攔截模式,通過(guò)采集告警日志來(lái)分析安全策略對(duì)目標(biāo)應(yīng)用的影響。
spec:
policy:
enforcer: BPF
mode: EnhanceProtect
enhanceProtect:
# AuditViolations determines whether to audit the actions that violate the mandatory access control rules. Any detected violation will be logged to /var/log/varmor/violations.log file in the host.
# It's disabled by default.
auditViolations: true
# AllowViolations determines whether to allow the actions that are against the mandatory access control rules.
# It's disabled by default.
allowViolations: true
- 攔截并告警模式:沙箱策略制定完成后,可調(diào)整為攔截并告警模式運(yùn)行,并持續(xù)采集告警日志。從而實(shí)現(xiàn)對(duì)目標(biāo)工作負(fù)載的強(qiáng)制訪問(wèn)控制,并及時(shí)發(fā)現(xiàn)違規(guī)行為。
xxxxxxxxxx
spec:
policy:
enforcer: BPF
mode: EnhanceProtect
enhanceProtect:
# AuditViolations determines whether to audit the actions that violate the mandatory access control rules. Any detected violation will be logged to /var/log/varmor/violations.log file in the host.
# It's disabled by default.
auditViolations: true
- 高危漏洞應(yīng)對(duì):當(dāng)出現(xiàn)高危漏洞時(shí),您可以基于漏洞類型或利用向量分析對(duì)應(yīng)的緩解方案,并通過(guò)更新策略對(duì)象(添加內(nèi)置規(guī)則、自定義規(guī)則),在漏洞修復(fù)前進(jìn)行防御。
spec:
policy:
enforcer: BPF
mode: EnhanceProtect
enhanceProtect:
# The custom AppArmor rules:
appArmorRawRules:
- rules: |
audit deny /etc/hosts r,
audit deny /etc/shadow r,
- rules: "audit deny /etc/hostname r,"
targets:
- "/bin/bash"
# The custom BPF LSM rules:
bpfRawRules:
processes:
- pattern: "**ping"
permissions:
- exec
network:
egresses:
- ip: fdbd:dc01:ff:307:9329:268d:3a27:2ca7
- ipBlock: 192.168.1.1/24
port: 80
sockets:
- protocols:
- "udp"
# The custom Seccomp rules:
syscallRawRules:
- names:
- fchmodat
action: SCMP_ACT_ERRNO
args:
- index: 2
value: 0x40 # S_IXUSR
valueTwo: 0x40
op: SCMP_CMP_MASKED_EQ
- index: 2
value: 0x8 # S_IXGRP
valueTwo: 0x8
op: SCMP_CMP_MASKED_EQ
- index: 2
value: 1 # S_IXOTH
valueTwo: 1
op: SCMP_CMP_MASKED_EQ
- 策略影響排查:當(dāng)用戶懷疑沙箱策略影響目標(biāo)應(yīng)用正常執(zhí)行時(shí),可將策略模式動(dòng)態(tài)切換為 AlwaysAllow、RuntimeDefault 模式排查(注:已啟動(dòng)容器的 Seccomp Profile 不支持動(dòng)態(tài)更新)。
kubectl patch vcpol $POLICY_NAME --type='json' -p='[{"op": "replace", "path": "/spec/policy/mode", "value":"AlwaysAllow"}]'
- 行為建模模式:使用實(shí)驗(yàn)功能 —— 行為建模模式,對(duì)目標(biāo)應(yīng)用進(jìn)行建模。建模完成后使用策略顧問(wèn)來(lái)生成沙箱策略模版,輔助沙箱策略的制定。
spec:
policy:
enforcer: AppArmorSeccomp
mode: BehaviorModeling
modelingOptions:
# The duration in minutes to modeling
duration: 30
03、特權(quán)容器加固
特權(quán)容器的定義
特權(quán)容器通常指包含 .securityContext.privileged=true 設(shè)置的容器,此類容器被授予全部 capabilities,可訪問(wèn)宿主機(jī)所有設(shè)備和內(nèi)核接口。本文將所有擁有打破隔離性配置的容器稱為 “特權(quán)容器”,包括但不限于 privileged container、sensitive capabilities、sensitive mounts、shared namespaces、sensitive RBAC permissions。
許多企業(yè)因歷史遺留問(wèn)題、系統(tǒng)設(shè)計(jì)需求、安全意識(shí)不足等原因,在生產(chǎn)環(huán)境的業(yè)務(wù)負(fù)載和系統(tǒng)組件中引入了 “特權(quán)容器”。然而,這些容器的風(fēng)險(xiǎn)配置容易被攻擊者利用,從而導(dǎo)致容器逃逸、橫向移動(dòng)等攻擊。例如在 Wiz 披露的 BrokenSesame [5] 漏洞利用鏈中,容器間共享 PID ns、管理容器具有特權(quán)等風(fēng)險(xiǎn)設(shè)計(jì)和錯(cuò)誤配置,就可被攻擊者利用進(jìn)行橫向移動(dòng)和權(quán)限提升攻擊。
降低特權(quán)容器的風(fēng)險(xiǎn)
我們建議企業(yè)優(yōu)先以最小權(quán)限原則評(píng)估并移除導(dǎo)致 “特權(quán)容器” 的風(fēng)險(xiǎn)配置。并在無(wú)法移除時(shí),使用強(qiáng)隔離級(jí)別的安全邊界來(lái)加固容器。
vArmor 可以作為補(bǔ)充,在徹底消除 “特權(quán)容器” 的安全風(fēng)險(xiǎn)前提供一定的加固能力。用戶可利用 vArmor 提供的內(nèi)置規(guī)則和自定義規(guī)則來(lái)限制潛在攻擊者的行為,阻斷已知的攻擊手法,提升攻擊成本和入侵檢測(cè)幾率。vArmor 內(nèi)置了 “容器加固”、“攻擊防護(hù)” 和 “漏洞緩解” 三類規(guī)則,并且還在不斷更新。在 “容器加固” 類規(guī)則中,vArmor 專門為 “特權(quán)容器” 安全風(fēng)險(xiǎn)內(nèi)置了一系列規(guī)則,可用于阻斷一些已知的攻擊手法。
例如,在擁有 CAP_SYS_ADMIN capability 的容器中,通過(guò)改寫宿主機(jī)的 core_pattern 來(lái)逃逸容器是常見(jiàn)的攻擊手法。如下所示,攻擊者可以通過(guò)掛載新的 procfs、重新掛載 procfs、移動(dòng) procfs 掛載點(diǎn)等方式獲取宿主機(jī) core_pattern 文件的寫權(quán)限。
# mount a new procfs
mkdir /tmp/proc
mount -t proc tmpproc /tmp/proc
echo "xxx" > /tmp/proc/sys/kernel/core_pattern
# bind mount a procfs
mount --bind /proc/sys /tmp/proc
mount -o remount,rw /tmp/proc /tmp/proc
echo "xxx" > /tmp/proc/sys/kernel/core_pattern
使用 vArmor 的內(nèi)置規(guī)則disallow-mount-procfs可阻斷此利用向量。
policy:
enforcer: BPF
mode: EnhanceProtect
enhanceProtect:
hardeningRules:
- disallow-mount-procfs
# Privileged is used to identify whether the policy is for the privileged container.
# Default is false.
privileged: true
輔助特權(quán)容器降權(quán)
企業(yè)生產(chǎn)環(huán)境中往往存在許多“特權(quán)容器”,雖然大量研究報(bào)告和案例都闡明過(guò)使用“特權(quán)容器”的危害,但企業(yè)可能仍然難以對(duì)已有的“特權(quán)容器”進(jìn)行降權(quán),也無(wú)法按照最小權(quán)限原則授予新增容器必要的 capabilities。
vArmor 提供了實(shí)驗(yàn)功能 —— 行為建模模式。用戶可以創(chuàng)建此模式的安全策略,并在指定時(shí)間范圍內(nèi)收集和處理目標(biāo)工作負(fù)載的行為。建模結(jié)束后,vArmor 會(huì)生成一個(gè) ArmorProfileModel 對(duì)象,用來(lái)保存目標(biāo)工作負(fù)載的行為模型。當(dāng)行為數(shù)據(jù)較多時(shí),行為數(shù)據(jù)會(huì)被緩存在數(shù)據(jù)卷中,用戶可以通過(guò)對(duì)應(yīng)接口將其導(dǎo)出。
spec:
policy:
enforcer: AppArmorSeccomp
# Switching the mode from BehaviorModeling to others is prohibited, and vice versa.
# You need recraete the policy to switch the mode from BehaviorModeling to DefenseInDepth.
mode: BehaviorModeling
modelingOptions:
# The duration in minutes to modeling
duration: 30
行為數(shù)據(jù)包括目標(biāo)應(yīng)用所需的 capability、執(zhí)行的進(jìn)程、讀寫的文件、調(diào)用的 syscall 等,用戶可以利用這些信息來(lái)輔助降權(quán)。請(qǐng)參考使用說(shuō)明(https://www.varmor.org/zh-cn/docs/main/guides/policies_and_rules/policy_modes/behavior_modeling/#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E)進(jìn)一步了解如何使用 vArmor 的行為建模功能。注:當(dāng)前僅 AppArmor 和 Seccomp enforcer 支持行為建模功能。
兼容性說(shuō)明
vArmor 依托 Linux 系統(tǒng)的安全機(jī)制(AppArmor LSM、BPF LSM、Seccomp)來(lái)實(shí)現(xiàn)容器加固,其中
- AppArmor enforcer 需系統(tǒng)啟用 AppArmor LSM
- BPF enforcer 需 Linux 5.10+ 內(nèi)核版本支持
目前 vArmor 兼容 Kubernetes v1.19+ 版本,支持包括 AWS EKS、Azure AKS、Google GKE、火山引擎 VKE、阿里云 ACK 等主流云廠商的托管 Kubernetes 服務(wù)。其輕量化設(shè)計(jì)具備四大優(yōu)勢(shì):
- 原生級(jí)性能損耗:依托內(nèi)核安全子系統(tǒng),不顯著增加上下文切換和數(shù)據(jù)拷貝開(kāi)銷
- 無(wú)需額外硬件:純軟件實(shí)現(xiàn)
- 無(wú)環(huán)境綁定:不依賴特定操作系統(tǒng)
- 零侵入性:保持集群及容器運(yùn)行時(shí)組件的默認(rèn)配置
總結(jié)
vArmor 針對(duì)當(dāng)前容器安全領(lǐng)域在安全策略編寫與管理方面的難題,提供了有效的解決方案。在多租戶隔離場(chǎng)景下,盡管無(wú)法達(dá)到硬件虛擬化容器的隔離級(jí)別,但通過(guò)配合一系列安全實(shí)踐,可降低跨租戶攻擊風(fēng)險(xiǎn);在核心業(yè)務(wù)加固方面,vArmor 憑借云原生、靈活、開(kāi)箱即用和易用等特性,為企業(yè)在享受 runc 容器性能與便捷的同時(shí),提供了有效的安全防護(hù)手段;對(duì)于特權(quán)容器,vArmor 既能通過(guò)內(nèi)置和自定義規(guī)則加固,阻斷常見(jiàn)攻擊手法,又能利用行為建模功能輔助降權(quán)。
vArmor 以其豐富的特性和靈活的應(yīng)用方式,為容器安全提供了全面且實(shí)用的保障,助力企業(yè)在云原生環(huán)境中平衡安全與業(yè)務(wù)發(fā)展的需求。真誠(chéng)歡迎社區(qū)開(kāi)發(fā)者和企業(yè)加入社區(qū),與我們一起參與項(xiàng)目共建。
引用
- PEACH: A Tenant Isolation Framework for Cloud Applications
原文鏈接:https://www.datocms-assets.com/75231/1671033753-peach_whitepaper_ver1-1.pdf - Kubernetes Privilege Escalation: Excessive Permissions in Popular Platforms
原文鏈接:https://www.paloaltonetworks.com/apps/pan/public/downloadResource?pagePath=/content/pan/en_US/resources/whitepapers/kubernetes-privilege-escalation-excessive-permissions-in-popular-platforms - Pod Security Standards
原文鏈接:https://kubernetes.io/docs/concepts/security/pod-security-standards/ - 2024 Data Breach Investigations Report
原文鏈接:https://www.verizon.com/business/resources/Te3/reports/2024-dbir-data-breach-investigations-report.pdf - #BrokenSesame: Accidental ‘write’ permissions to private registry allowed potential RCE to Alibaba Cloud Database Services
原文鏈接:https://www.wiz.io/blog/brokensesame-accidental-write-permissions-to-private-registry-allowed-potential-r
相關(guān)鏈接
項(xiàng)目地址:https://github.com/bytedance/vArmor
項(xiàng)目官網(wǎng):https://varmor.org