Hello folks! 今天我們介紹一款開源容器平臺(tái)安全掃描工具 -Kubescape。作為第一個(gè)用于測(cè)試 Kubernetes 集群是否遵循 NSA-CISA 和 MITREATT&CK 等多個(gè)框架安全部署規(guī)范的開源工具,Kubescape 在整容器編排生態(tài)中具有舉足輕重的意義。在這篇文章中,我們將解析什么是 Kubernetes 加固以及如何基于 Kubescape 工具進(jìn)行 Kubernetes 生態(tài)體系加固。
Kubernetes加固概述
隨著云原生理念的不斷普及、生態(tài)體系的不斷完善,越來越多的企業(yè)開始邁入云化之路,無論是基于何種緣由。然而,在實(shí)施過程中,我們中的大多數(shù)人只考慮到如何將現(xiàn)有的業(yè)務(wù)系統(tǒng)平滑遷移至 Kubernetes 平臺(tái),其中有多少人考慮過 Kubernetes 集群的安全性?
(資料圖片)
根據(jù) RedHat報(bào)道,“人為錯(cuò)誤” 是 Kubernetes 安全事故的主要原因。事實(shí)上,94% 的受訪者承認(rèn)他們?cè)谶^去一年中經(jīng)歷過 Kubernetes 和容器環(huán)境安全事件。更糟糕的是,超過一半(55%)的受訪者在過去一年中由于安全問題最終推遲了 Kubernetes 應(yīng)用程序生產(chǎn)開發(fā)。因此,如果我們盡可能想建設(shè)一個(gè)最好的系統(tǒng),至少在人為錯(cuò)誤層面要有所改變。
同樣,針對(duì)基礎(chǔ)設(shè)施安全,我們可能會(huì)在托管環(huán)境中實(shí)施很多限制,但這還還遠(yuǎn)遠(yuǎn)不夠,因?yàn)槿绻嬖谌魏稳藶殄e(cuò)誤或任何惡意軟件/軟件包或我們跳過的其他可能原因,大多數(shù)這些可能會(huì)受到損害初始設(shè)置時(shí)間。因?yàn)椋拖裎覀冋谶w移到 Kubernetes 一樣,黑客也可以開始針對(duì) Kubernetes 環(huán)境進(jìn)行數(shù)據(jù)竊取、拒絕服務(wù)或加密貨幣挖掘等。
因此,如果我們計(jì)劃將 Kubernetes 作為我們將來的業(yè)務(wù)支撐平臺(tái)的未來,那么我們有責(zé)任保護(hù) Kubernetes 集群,為此我們應(yīng)該實(shí)施加強(qiáng) Kubernetes 安全性的技術(shù)。
那么,什么是Kubernetes 加固呢?通常我們可以這樣理解:Kubernetes 加固主要為保護(hù) Kubernetes 系統(tǒng)而采取的一系列安全執(zhí)行措施,從而不被外界影響。一些通用性的安全建議如下:
1、盡可能掃描 Container 和 Pod 以查找漏洞或配置錯(cuò)誤
2、以盡可能少的權(quán)限運(yùn)行Container和 Pod
3、使用網(wǎng)絡(luò)分離來控制危害可能造成的損害程度
4、使用防火墻技術(shù)來限制不必要的網(wǎng)絡(luò)連接,并采用加密機(jī)制
5、使用強(qiáng)身份驗(yàn)證和授權(quán)來限制用戶和管理員訪問以及限制攻擊面
6、捕獲和監(jiān)控審計(jì)日志,以便管理員可以收到潛在惡意活動(dòng)的警報(bào)
7、定期審查所有 Kubernetes 設(shè)置并基于漏洞掃描來確保平臺(tái)處于安全狀態(tài)以及進(jìn)行必要的安全補(bǔ)丁措施。
基于如上所述的通用性建議在某些場(chǎng)景中可能對(duì)我們的業(yè)務(wù)運(yùn)行有所幫助。例如,我們都知道我們不應(yīng)該以 root 用戶身份運(yùn)行應(yīng)用程序,但我們可以看到,許多 Kubernetes 容器服務(wù)仍以 root 用戶身份運(yùn)行,并且應(yīng)用程序亦是如此,即便它們不需要特權(quán)執(zhí)行。即使有警告,開發(fā)人員也會(huì)構(gòu)建以 root 身份執(zhí)行的容器應(yīng)用程序。為什么?因?yàn)檫@很容易。同時(shí)它也很危險(xiǎn)。
當(dāng)然,即使是 Kubernetes 也有其自身的安全問題。因此,我們所能做的便是基于當(dāng)前的業(yè)務(wù)現(xiàn)狀,遵守網(wǎng)絡(luò)安全技術(shù)報(bào)告中的建議,以確保應(yīng)用程序的安全,并通過補(bǔ)丁、升級(jí)和更新等相關(guān)措施使得系統(tǒng)保持最新狀態(tài),以降低風(fēng)險(xiǎn)。
Kubescape 概述
作為一個(gè) K8s 開源工具,Kubescape 能夠提供 Kubernetes 單一管理平臺(tái),包括風(fēng)險(xiǎn)分析、安全合規(guī)、RBAC 可視化工具和圖像漏洞掃描。Kubescape 工具能夠掃描 K8s 集群、YAML 文件和 HELM 圖表,根據(jù)多個(gè)框架(如NSA-CISA、MITRE ATT & CK?)檢測(cè)錯(cuò)誤配置、軟件漏洞和早期 RBAC(基于角色的訪問控制)違規(guī) CI/CD 管道,即時(shí)計(jì)算風(fēng)險(xiǎn)評(píng)分并顯示隨時(shí)間變化的風(fēng)險(xiǎn)趨勢(shì)。
基于其易用的 CLI 界面、靈活的輸出格式和自動(dòng)掃描功能,Kubescape已成為開發(fā)人員中增長最快的 Kubernetes 工具之一,為 Kubernetes 用戶和管理員節(jié)省了寶貴的時(shí)間、精力和資源。Kubescape 與其他 DevOps 工具本地集成,包括 Jenkins、CircleCI、Github 工作流、Prometheus 和 Slack,并支持多云 K8s 部署,如 EKS、GKE 和 AKS。
總而言之,Kubescape 能夠基于非根容器、特權(quán)容器、主機(jī)網(wǎng)絡(luò)訪問、匿名請(qǐng)求等多方面屬性進(jìn)Kubernetes 集群環(huán)境的健康掃描,檢測(cè)錯(cuò)誤配置和軟件漏洞,即時(shí)計(jì)算風(fēng)險(xiǎn)評(píng)分并顯示風(fēng)險(xiǎn)隨時(shí)間變化的趨勢(shì)。掃描結(jié)果以命令行表格或 JSON 格式顯示,顯示可能被利用的不同錯(cuò)誤配置區(qū)域,從而幫助工程師評(píng)估 Kubernetes 環(huán)境的安全狀況。
基于上述所述,Kubescape 功能特性主要體現(xiàn)在4 個(gè)層面:Kubernetes 配置掃描、Kubernetes 容器漏洞掃描、Kubernetes RBAC 簡(jiǎn)化以及在 CI/CD 工作流中運(yùn)行等。具體內(nèi)容可參考如下思維導(dǎo)圖:
Kubescape基本原理
Kubescape 基于 OPA 引擎 和 ARMO 的框架機(jī)制。它從 API Server 檢索 Kubernetes 對(duì)象,并通過運(yùn)行一組由 ARMO 開發(fā)的 RegoSnippets片段規(guī)則來對(duì)所流經(jīng)的對(duì)象信息進(jìn)行掃描。默認(rèn)情況下,掃描輸出結(jié)果以“控制臺(tái)模型”的方式進(jìn)行打印展示,但也可以以 JSON 或 Junit 格式檢索它們以進(jìn)行進(jìn)一步處理。
Kubescape工作原理如下所示:
基于上述架構(gòu)圖所述,OPA 作為一個(gè)通用策略引擎,可在我們所構(gòu)建的 Kubernetes 集群中實(shí)施策略編排?;?OPA ,我們可以計(jì)算出:用戶 X 是否能夠可以對(duì)資源 Z 做 Y 操作?應(yīng)該允許查看哪些記錄?等。
而作為一種規(guī)則,Rego 是 OPA 開發(fā)的一種聲明性策略語言。基于此,Kubescape 從 API Server 中檢索有關(guān) K8s 對(duì)象的信息,然后使用 OPA 對(duì)其進(jìn)行掃描。
Kubescape 基于控件模型,在生態(tài)系統(tǒng)中,NSA/MITRE/ArmoBest/DevOpsBest指南被分解成小的策略集(可稱之為控制)。每個(gè)控件都有自己的一組規(guī)則,用于掃描集群或管道。
關(guān)于ARMO 的ArmoBest 框架,當(dāng)發(fā)現(xiàn)最新漏洞時(shí),ARMO 會(huì)不斷升級(jí)此框架。每當(dāng)行業(yè)中發(fā)生任何最新的安全漏洞,Armo 都會(huì)嘗試盡快對(duì)其庫進(jìn)行更新。
Kubescape安裝部署
關(guān)于Kubescape 工具的安裝較為簡(jiǎn)單,Kubescape 支持在 Windows、macOS 以及Linux 等平臺(tái)上部署使用。
在部署Kubescape 工具之前,我們需要部署一個(gè)Kubernetes Cluster 并使其處于運(yùn)行狀態(tài)。如下所示:
[leonli@Leon kubescape ] % kubectl get po -A -o wideNAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESkube-system coredns-64897985d-v9jcf 1/1 Running 0 2d17h 172.17.0.2 k8s-cluster ……kubernetes-dashboard dashboard-metrics-scraper-58549894f-ns2ld 1/1 Running 0 2d17h 172.17.0.11 k8s-cluster ……monitoring prometheus-k8s-0 2/2 Running 0 2d17h 172.17.0.9 k8s-cluster monitoring prometheus-operator-6dc9f66cb7-h7mrp 2/2 Running 0 2d17h 172.17.0.7 k8s-cluster traefik-v2 traefik-767667c75c-kwjn4 1/1 Running 0 2d13h 172.17.0.12 k8s-cluster
我這里以 Linux、macOS 操作系統(tǒng)為例,簡(jiǎn)要介紹一下Kubescape安裝部署過程,具體如下。
Linux安裝 Kubescape
這里主要基于GitHub下載的 Kubescape CLI 二進(jìn)制文件進(jìn)行安裝,部署,當(dāng)然,也可通過命令行一次性安裝,具體操作如下:
[leonli@Leon kubescape ] % wget https://github.com/kubescape/kubescape/releases/download/v2.0.176/kubescape-macos-latest
拉取到本地后,然后進(jìn)行執(zhí)行即可,具體暫不在本文中贅述。
macOS安裝 Kubescape
基于macOS安裝 Kubescape 也有多種不同的方式,其簡(jiǎn)要的安裝步驟主要分為如下 2 步:
1、添加 Kubescape GitHub 存儲(chǔ)庫:
[leonli@Leon kubescape ] % brew tap kubescape/tap
2、執(zhí)行Kubescape 安裝
[leonli@Leonkubescape] %brewinstallkubescape-cli[leonli@Leonkubescape]%kubescapeversionYour current version is: v2.0.176
此時(shí),可借助 -h 命令標(biāo)志來獲取有關(guān)某個(gè)命令的額外信息,如下所示:
[leonli@Leonkubescape]%kubescape-hKubescape is a tool for testing Kubernetes security posture. Docs: https://hub.armosec.io/docsUsage: kubescape [command]Examples: # Scan command kubescape scan --submit # List supported frameworks kubescape list frameworks # Download artifacts (air-gapped environment support) kubescape download artifacts # View cached configurations kubescape config viewAvailable Commands: completion Generate autocompletion script config Handle cached configurations delete Delete configurations in Kubescape SaaS version download Download control,framework,artifacts,controls-inputs,exceptions help Help about any command list List frameworks/controls will list the supported frameworks and controls scan Scan the current running cluster or yaml files submit Submit an object to the Kubescape SaaS version update Update your version version Get current versionFlags: --cache-dir string Cache directory [$KS_CACHE_DIR] (default "/Users/leonli/.kubescape") --disable-color Disable Color output for logging --enable-color Force enable Color output for logging -h, --help help for kubescape -l, --logger string Logger level. Supported: debug/info/success/warning/error/fatal [$KS_LOGGER] (default "info")Use "kubescape [command] --help" for more information about a command.
Kubescape實(shí)踐
Kubescape scan命令掃描集群中可用每個(gè) Kubernetes 對(duì)象和集群上安裝的 Helm Charts。它具有以下標(biāo)志:
1、--submit:此標(biāo)志將掃描結(jié)果發(fā)送到 Armo 管理門戶
2、--enable-host-scan:此標(biāo)志部署了ARMOK K8s主機(jī)傳感器 DaemonSet,該DaemonSet 從主機(jī)收集有關(guān)集群的有價(jià)值且無限的信息
3、--verbose:此標(biāo)志顯示掃描的所有資源
例如,現(xiàn)在我們掃描下所部署的 K8s Cluster,操作命令如下所示:
[leonli@Leonkubescape]%kubescapescan--submit--enable-host-scan--format-versionv2--verbose[info] Kubescape scanner starting[info] Installing host scanner……[success]Donescanning.Cluster:k8s-cluster^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^################################################################################ApiVersion: Kind: ServiceAccountName: prometheus-k8sNamespace: monitoringControls: 14 (Failed: 1, Excluded: 0)+----------+--------------------------------+------------------------------------+-----------------------+| SEVERITY | CONTROL NAME | DOCS | ASSISTANT REMEDIATION |+----------+--------------------------------+------------------------------------+-----------------------+| Medium | Access container service | https://hub.armosec.io/docs/c-0053 | || | account | | |+----------+--------------------------------+------------------------------------+-----------------------+……ApiVersion: v1Kind: ServiceAccountName: defaultNamespace: traefik-v2Controls: 4 (Failed: 3, Excluded: 0)+----------+--------------------------------+---------------------------------------+------------------------------------+| SEVERITY | CONTROL NAME | DOCS | ASSISTANT REMEDIATION |+----------+--------------------------------+---------------------------------------+------------------------------------+| Medium | Automatic mapping of service | https://hub.armosec.io/docs/c-0034 | automountServiceAccountToken=false || | account | | |+ +--------------------------------+---------------------------------------+ +| | Ensure that Service Account | https://hub.armosec.io/docs/cis-5-1-6 | || | Tokens are only mounted where | | || | necessary | | |+ +--------------------------------+---------------------------------------+ +| | Ensure that default service | https://hub.armosec.io/docs/cis-5-1-5 | || | accounts are not actively used | | |+----------+--------------------------------+---------------------------------------+------------------------------------+
如上掃描命令將輸出集群中每個(gè)對(duì)象的所有安全分析。由于提供了 “--submit” 提交參數(shù)選項(xiàng),結(jié)果將會(huì)推送到 Armosec 門戶。因此,可以通過登錄 Dashboard 查看詳細(xì)信息,如下所示:
基于上述所展示,在 Dashboard 頁面,我們可以看到當(dāng)前 Kubernetes 集群所承載的所有資源的健康狀態(tài)。除此之外,我們還可以基于RBAC 可視化檢查誰有權(quán)訪問哪些資源以及做了什么操作等。例如,如果我們想檢查誰可以執(zhí)行到一個(gè) Pod 中,那么我們可以基于它運(yùn)行一個(gè)查詢,Kubescape 會(huì)以一種很好的可視化方式向顯示結(jié)果。我們還可以觀測(cè)哪些用戶可以訪問 Kubernetes 儀表板等。
掃描結(jié)果分析
我們以Namespace: monitoring 的prometheus-adapter 為例,針對(duì)其對(duì)象的風(fēng)險(xiǎn)分析,具體如下所示:
################################################################################ApiVersion: apps/v1Kind: DeploymentName: prometheus-adapterNamespace: monitoringControls: 35 (Failed: 12, Excluded: 0)+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| SEVERITY | CONTROL NAME | DOCS | ASSISTANT REMEDIATION |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| High | Apply Security Context to Your | https://hub.armosec.io/docs/cis-5-7-3 | spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem=true || | Pods and Containers | | spec.template.spec.containers[0].securityContext.runAsNonRoot=true || | | | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false || | | | spec.template.spec.containers[0].securityContext.capabilities.drop=NET_RAW || | | | spec.template.spec.containers[0].securityContext.seLinuxOptions=YOUR_VALUE || | | | spec.template.spec.containers[0].securityContext.seccompProfile=YOUR_VALUE |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| Medium | Allow privilege escalation | https://hub.armosec.io/docs/c-0016 | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false |+ +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| | …… | | spec.template.spec.containers[0].securityContext.seLinuxOptions=YOUR_VALUE || | | | spec.template.spec.containers[0].securityContext.capabilities.drop[0]=YOUR_VALUE |+ +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| | Non-root containers | https://hub.armosec.io/docs/c-0013 | spec.template.spec.containers[0].securityContext.runAsNonRoot=true || | | | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| Low | Immutable container filesystem | https://hub.armosec.io/docs/c-0017 | spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem=true |+ +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| | Label usage for resources | https://hub.armosec.io/docs/c-0076 | metadata.labels=YOUR_VALUE || | | | spec.template.metadata.labels=YOUR_VALUE |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+
我們可以看到,prometheus-adapter 掃描共涉及 35 個(gè)控件,其結(jié)果威脅高、中及低都有涉及,依據(jù)Kubescape 給出的建議進(jìn)行優(yōu)先級(jí)修復(fù)。
基于Kubescape 風(fēng)險(xiǎn)分析具有以下字段:
# 威脅嚴(yán)重性:該字段衡量威脅的嚴(yán)重程度。威脅分為三個(gè)級(jí)別,即:高、中和低。
# 控件名稱:此字段說明正在分析的組件或方面的名稱。
# 文檔:此字段包含將您重定向到包含有關(guān)掃描期間檢測(cè)到的風(fēng)險(xiǎn)和威脅信息的頁面的鏈接。
# Assistant remediation:此字段包含可以對(duì) YAML 文件或集群進(jìn)行的更改以消除威脅。
被標(biāo)記為“嚴(yán)重”/“高”的漏洞,通?;趯?shí)際的業(yè)務(wù)場(chǎng)景建議需要立即修復(fù)。在修復(fù)過程中可參考文檔和協(xié)助修復(fù)列中的信息來幫助我們修復(fù)檢測(cè)到的漏洞。
常用掃描技巧
1、指定 Yaml文件掃描
基于不同的場(chǎng)景需求,面對(duì)較多的文件時(shí),我們可能需要會(huì)針對(duì)性的進(jìn)行文件掃描,從而減少不必要的數(shù)據(jù)輸出。使用 Kubescape 不僅僅針對(duì)容器集群的全局性掃描,而且也可以掃描單個(gè)文件,具體命令如下所示:
[leonli@Leonkubescape]%kubescapescanprometheusAdapter-deployment.yaml
2、文件導(dǎo)出
通常,如果使用 “--verbose” 參數(shù)標(biāo)志,它可能會(huì)顯示更多的行,終端可能會(huì)清除最上面的行,或者CI 構(gòu)建日志可能看起來很難全部閱讀。為了排序,我們可以將結(jié)果輸出為 PDF 格式,這樣你就可以清楚地閱讀它或 CI/CD 過程的一部分,你可以存儲(chǔ)在一些公共區(qū)域,如 Artifactory Repo 以供安全審查。
可以通過添加 ”--format pdf--output filename.pdf“ 掃描命令來實(shí)現(xiàn)掃描結(jié)果存檔于 PDF 格式文件中,如下所示,它支持所有掃描命令。
[leonli@Leonkubescape]%kubescapescan--formatpdf--outputkubescape_results.pdf
基于上述命令行操作,掃描結(jié)果以 .pdf 格式文件將保存在當(dāng)前集群目錄或掃描集群時(shí)當(dāng)前使用的目錄中。
3、Git repository 掃描
除上述所述之外,Kubescape 甚至支持從 Git 存儲(chǔ)庫掃描清單,可以使用以下命令掃描存儲(chǔ)庫,這將克隆存儲(chǔ)庫并掃描清單并提交結(jié)果。
[leonli@Leonkubescape] %kubescapescanhttps://github.com/foxutech/kubernetes
針對(duì)“威脅”的可觀測(cè)性是安全分析中的一個(gè)關(guān)鍵組成部分,因?yàn)樗鼤?huì)讓我們時(shí)刻保持警惕并告知Kubernetes集群中可能被黑客利用的所有風(fēng)險(xiǎn)資源。因此,進(jìn)行實(shí)時(shí)的容器集群和 YAML 文件掃描是啟動(dòng)安全審計(jì)會(huì)話的最佳方式。
因此處內(nèi)容涉及面較廣,由于時(shí)間關(guān)系,本文解析到此為止,希望對(duì)大家有用。關(guān)于Kubescape更多需要了解的信息,歡迎大家交流、關(guān)注!
Adiós!
關(guān)鍵詞: 漏洞掃描 網(wǎng)絡(luò)安全 Kubernetes
參與評(píng)論
- 一文搞懂基于 Kubescape 進(jìn)行 Kubernetes 安全加固2023-02-10
- 快資訊:澳洲ANCAP新標(biāo)含金量幾何長城槍獲2023-02-10
- 每日熱聞!建設(shè)銀行怎么查公積金2023-02-10
- 【全球獨(dú)家】女生什么禮物都接就是不理我2023-02-10
- 全球新消息丨民國上海遭淪陷時(shí)間2023-02-10
- 當(dāng)前資訊!端午節(jié)送女生什么禮物,最想收到的2023-02-10
- 中秋節(jié)放假2021安排時(shí)間表 共放假幾天2023-02-10
- 【獨(dú)家】燕塘乳業(yè): 關(guān)于召開2023年第一次2023-02-09
- 測(cè)試你遇直男癌指數(shù)2023-02-09
- “終身難忘,銘記在心!”一封感謝信,道盡2023-02-09
- 環(huán)球快資訊:潘粵明董潔瘋傳復(fù)合,男方女友2023-02-09
- 全球時(shí)訊:南京新街口傷人案嫌犯已被刑拘 2023-02-09
- 普華永道:全球奢侈品市場(chǎng)正穩(wěn)步復(fù)蘇 20252023-02-09
- 【環(huán)球時(shí)快訊】白銀TD陡然回落白銀協(xié)會(huì)看漲2023-02-09
- 熱訊:住戶貸款是什么意思2023-02-09
- 環(huán)球熱文:過60歲后,如果還沒這4種病,說2023-02-09
- 創(chuàng)業(yè)板股最新股東戶數(shù)降幅排行榜2023-02-09
- 世界熱資訊!長安期貨原油早評(píng):上行動(dòng)力不2023-02-09
- 當(dāng)前視訊!下載速度慢怎么辦 可以按照以下2023-02-09
- 天天關(guān)注:注會(huì)CPA哪科最難?各科合格率多2023-02-09
- 焦點(diǎn)熱議:花火系列小說經(jīng)典語錄2023-02-09
- 今亮點(diǎn)!你的子宮內(nèi)膜炎,從何而來?這4個(gè)2023-02-09
- 環(huán)球時(shí)訊:2月8日基金凈值:交銀信用添利債2023-02-09
- 有關(guān)書籍的名人名言2023-02-09
- 全球微頭條丨老人吃鮮桂圓嗆入氣管危在旦夕2023-02-08
- 【天天聚看點(diǎn)】自住型商品房申請(qǐng)條件資格2023-02-08
- 天天微頭條丨政協(xié)委員分組協(xié)商討論政府工作2023-02-08
- 【快播報(bào)】中期唐篩什么時(shí)候做最好呢_中期2023-02-08
- 最早抵達(dá)土耳其重災(zāi)區(qū)的中國裝備力量:中聯(lián)2023-02-08
- 范瑋琪到不了歌詞2023-02-08