快速上手云原生安全平臺 NeuVector

作者簡介
萬紹遠浊闪,CNCF 基金會官方認證 Kubernetes CKA&CKS 工程師,云原生解決方案架構(gòu)師螺戳。對 ceph搁宾、Openstack、Kubernetes倔幼、prometheus 技術(shù)和其他云原生相關(guān)技術(shù)有較深入的研究盖腿。參與設(shè)計并實施過多個金融、保險凤藏、制造業(yè)等多個行業(yè) IaaS 和 PaaS 平臺設(shè)計和應(yīng)用云原生改造指導(dǎo)奸忽。

前 言

NeuVector 是業(yè)界首個端到端的開源容器安全平臺堕伪,唯一為容器化工作負載提供企業(yè)級零信任安全的解決方案揖庄。NeuVector 可以提供實時深入的容器網(wǎng)絡(luò)可視化栗菜、東西向容器網(wǎng)絡(luò)監(jiān)控、主動隔離和保護蹄梢、容器主機安全以及容器內(nèi)部安全疙筹,容器管理平臺無縫集成并且實現(xiàn)應(yīng)用級容器安全的自動化,適用于各種云環(huán)境禁炒、跨云或者本地部署等容器生產(chǎn)環(huán)境而咆。

此前,我們介紹了 NeuVector 的安裝部署幕袱、高可用架構(gòu)設(shè)計和多云安全管理暴备,本篇將演示 NeuVector 的基礎(chǔ)功能,主要包括:

  1. 安全漏洞管理
  2. 合規(guī)性檢查和機密性檢查
  3. 策略管理
  4. 準入控制策略
  5. 動態(tài)安全響應(yīng)
  6. 行為監(jiān)控

項目地址:https://github.com/neuvector/neuvector

本文主要基于 NeuVector 首個開源版 NeuVector:5.0.0-preview.1 進行介紹们豌。

1.安全漏洞管理

NeuVector 集成了 CVE 漏洞庫涯捻,每天自動更新,支持對平臺(Kubernetes)望迎、主機障癌、容器、鏡像倉庫進行安全漏洞掃描辩尊。

配置自動掃描涛浙,當(dāng)平臺漏洞庫有更新,或有新的節(jié)點和容器加入時摄欲,會自動進行掃描轿亮。

針對不同漏洞,有不同的風(fēng)險級別提示胸墙、對應(yīng)的組件版本提示和修復(fù)版本提示哀托。

針對每個漏洞,NeuVector 可以展示對應(yīng)的漏洞發(fā)布時間劳秋、漏洞影響范圍仓手、對應(yīng)的組件影響版本。

對漏洞進行過濾玻淑,檢測是否已經(jīng)修復(fù)嗽冒,以及漏洞等級、發(fā)布時間等补履。

1.1. 配置對接鏡像倉庫漏洞掃描

支持對接多種鏡像倉庫如 docker-registry(harbor)添坊、JFrog Artifactory、Nexus 等箫锤。

以對接 Harbor 為例贬蛙。配置連接方式雨女,填寫連接方式和認證信息,過濾器表示需要掃描的范圍阳准,如掃描 uat 項目下全部鏡像則 uat/*,如果需要掃描整個 Harbor 內(nèi)全部鏡像則 * 氛堕。測試設(shè)置可以驗證編寫的表達式的關(guān)聯(lián)情況。

2.合規(guī)性檢查和機密性檢查

NeuVector 的合規(guī)性審核包括 CIS 基線測試野蝇、自定義檢查讼稚、機密審核以及 PCI、GDPR 和其他法規(guī)的行業(yè)標準模板掃描绕沈。

“類型”表示對應(yīng)的那個基線標準锐想,如 K.4.1.1 對應(yīng) Kubernetes CIS 基線測試,4.1.1 容器對應(yīng)的基線標準為 D 開頭乍狐,鏡像對應(yīng)的基線標準為 I 開頭赠摇。

注:GDPR (General Data Protection Regulation,《通用數(shù)據(jù)保護條例》)為歐盟條例浅蚪。

在合規(guī)性檢查中也會檢查是否存在密文泄漏情況藕帜。

包括如以下密文泄漏情況:

General Private Keys
General detection of credentials including 'apikey', 'api_key', 'password', 'secret', 'passwd' etc.
General passwords in yaml files including 'password', passwd', 'api_token' etc.
General secrets keys in key/value pairs
Putty Private key
Xml Private key
AWS credentials / IAM
Facebook client secret
Facebook endpoint secret
Facebook app secret
Twitter client Id
Twitter secret key
Github secret
Square product Id
Stripe access key
Slack API token
Slack web hooks
LinkedIn client Id
LinkedIn secret key
Google API key
SendGrid API key
Twilio API key
Heroku API key
MailChimp API key
MailGun API key

3.策略管理

NeuVector 通過組的方式對容器和主機進行管理,對組進行合規(guī)性檢查掘鄙、網(wǎng)絡(luò)規(guī)則耘戚、進程和文件訪問規(guī)則、DLP/WAF 的檢測配置操漠。

NeuVector 會自動將當(dāng)前集群主機加入到 nodes 組收津,對于集群內(nèi)容器會自動創(chuàng)建以 nv.開頭的組。

NeuVector 的組支持 3 種模式:學(xué)習(xí)模式浊伙、監(jiān)控模式和保護模式撞秋;各個模式實現(xiàn)作用如下:

  • 學(xué)習(xí)模式
    學(xué)習(xí)和記錄容器、主機間網(wǎng)絡(luò)連接情況和進程執(zhí)行信息嚣鄙。
    自動構(gòu)建網(wǎng)絡(luò)規(guī)則白名單吻贿,保護應(yīng)用網(wǎng)絡(luò)正常行為。
    為每個服務(wù)的容器中運行的進程設(shè)定安全基線哑子,并創(chuàng)建進程配置文件規(guī)則白名單舅列。

  • 監(jiān)控模式
    NeuVector 監(jiān)視容器和主機的網(wǎng)絡(luò)和進程運行情況,遇到非學(xué)習(xí)模式下記錄的行為將在 NeuVector 中進行告警卧蜓。

  • 保護模式
    NeuVector 監(jiān)視容器和主機的網(wǎng)絡(luò)和進程運行情況帐要,遇到非學(xué)習(xí)模式下記錄的行為直接拒絕。

新建的容器業(yè)務(wù)被自動發(fā)現(xiàn)默認為學(xué)習(xí)模式弥奸,也可以通過設(shè)置將默認模式設(shè)置為監(jiān)控模式或保護模式榨惠。

不同組策略沖突情況下,適用的有效模式如下表:

為了保證業(yè)務(wù)的穩(wěn)定運行,當(dāng)出現(xiàn)模式不一致時赠橙,有效模式以限制最小的模式運行耽装。

生產(chǎn)環(huán)境最佳實踐使用路徑可以是:

  • 上新業(yè)務(wù)時,先學(xué)習(xí)模式運行一段時間期揪,進行完整的功能測試和調(diào)用測試掉奄,得到實際運行此業(yè)務(wù)的網(wǎng)絡(luò)連接情況和進程執(zhí)行情況信息。
  • 監(jiān)控模式運行一段時間横侦,看看有沒有額外的特殊情況挥萌,進行判斷绰姻,添加規(guī)則枉侧。
  • 最后全部容器都切換到保護模式,確定最終形態(tài)狂芋。

3.1. 動態(tài)微隔離

使用場景一:POD 間通過網(wǎng)絡(luò)策略互相隔離

在 Kubernetes 平臺中創(chuàng)建四個 Nginx榨馁,名稱和用途如下:
workload_name:test-web1 image:nginx 用途:web 服務(wù)器
workload_name:test-con1 image:nginx 用途:連接客戶端 1
workload_name:test-con2 image:nginx 用途:連接客戶端 2
workload_name:test-con3 image:nginx 用途:連接客戶端 3

創(chuàng)建 workload

kubectl create deployment test-web1 --image=nginx
kubectl expose deployment/test-web1 --port=80 --type=NodePort
kubectl create deployment test-con1 --image=nginx
kubectl create deployment test-con2 --image=nginx
kubectl create deployment test-con3 --image=nginx

此時在 NeuVector 中會自動生成這幾個組:

在 test-con1 中通過 curl 訪問 test-web1

此時可以正常訪問,因為在學(xué)習(xí)模式下 NeuVector 也會自動添加此訪問規(guī)則帜矾。

將 test-web1 和 test-con2 都設(shè)置為監(jiān)控模式

然后在 test-con2 中 curl 訪問 test-web1

此時 test-con2 可以正常訪問 test-web1翼虫,但在 NeuVector 中會生成告警

同時,相應(yīng)地屡萤,在網(wǎng)絡(luò)活動拓撲圖中也可以看見對應(yīng)的連接鏈路變?yōu)榧t色珍剑。

將 test-web1 和 test-con2 都設(shè)置為保護模式,在通過 test-con2 去 curl test-web1

因為 curl 在學(xué)習(xí)模式時沒有使用死陆,也不是 NeuVector 默認允許的可執(zhí)行進程招拙,所以進程直接就無法訪問了。

將 test-con1 設(shè)置為保護模式措译,此時 test-con1 無法訪問外部網(wǎng)絡(luò)别凤。

可以通過自定義添加網(wǎng)絡(luò)規(guī)則方式開通訪問。

在網(wǎng)絡(luò)規(guī)則頁领虹,此處規(guī)則已經(jīng)是在學(xué)習(xí)模式下生成的規(guī)則列表规哪。

添加外部訪問規(guī)則

NeuVector 深度了解應(yīng)用程序行為,并將分析有效負載塌衰,以確定應(yīng)用程序協(xié)議诉稍。協(xié)議包括:HTTP,HTTPS最疆,SSL杯巨,SSH,DNS肚菠,DNCP舔箭,NTP,TFTP,ECHO层扶,RTSP箫章,SIP,MySQL镜会,Redis檬寂,Zookeeper,Cassandra戳表,MongoDB桶至,PostgresSQL,Kafka匾旭,Couchbase镣屹,ActiveMQ,ElasticSearch价涝,RabbitMQ女蜈,Radius,VoltDB色瘩,Consul伪窖,Syslog,Etcd居兆,Spark覆山,Apache,Nginx泥栖,Jetty簇宽,NodeJS,Oracle聊倔,MSSQL 和 GRPC晦毙。

現(xiàn)在 test-con1 的 curl 可以正常訪問 www.baidu.com

總結(jié):
除上述策略外,NeuVector 也內(nèi)置網(wǎng)絡(luò)威脅檢測耙蔑,能夠快速識別常用網(wǎng)絡(luò)攻擊见妒,保護業(yè)務(wù)容器安全運行。

無論保護模式如何甸陌,在“學(xué)習(xí)和監(jiān)視”模式下须揣,NeuVector 將發(fā)出警報,并且可以在“通知>安全事件”中找到這些威脅钱豁。在保護模式下將收到警報和阻止耻卡;還可以根據(jù)威脅檢測創(chuàng)建響應(yīng)規(guī)則。

包含的威脅檢測如下:

SYN flood attack
ICMP flood attack
IP Teardrop attack
TCP split handshake attack
PING death attack
DNS flood DDOS attack
Detect SSH version 1, 2 or 3
Detect SSL TLS v1.0
SSL heartbeed attack
Detect HTTP negative content-length buffer overflow
HTTP smugging attack
HTTP Slowloris DDOS attack
TCP small window attack
DNS buffer overflow attack
Detect MySQL access deny
DNS zone transfer attack
ICMP tunneling attack
DNS null type attack
SQL injection attack
Apache Struts RCE attack
DNS tunneling attack
TCP Small MSS attack
Cipher Overflow attack
Kubernetes man-in-the-middle attack per CVE-2020-8554

3.2. 進程管理

NeuVector 支持對容器和主機內(nèi)進程進行管理牲尺,在學(xué)習(xí)模式下卵酪,運行的進程和命令會自動添加到規(guī)則中幌蚊。

此時在 test-con1 中執(zhí)行 df -h 會發(fā)現(xiàn)報錯 bash: /bin/df: Operation not permitted在 nv.test-con1.default 組中添加 df 進程規(guī)則:

然后再重新執(zhí)行即可。

進程管理也支持對 node 節(jié)點溃卡,可以在 node 組中進行限制溢豆,約束宿主機進程執(zhí)行。如限制執(zhí)行 docker cp 執(zhí)行瘸羡,通過學(xué)習(xí)模式得知是 docker-tar 進程在后端執(zhí)行漩仙,將節(jié)點切換到保護模式,限制 docker-tar 進程即可犹赖。

這些在節(jié)點就無法執(zhí)行 docker cp

4.準入策略控制

NeuVector 支持與 Kubernetes 準入控制(admission-control)功能對接队他,實現(xiàn) UI 配置準入控制規(guī)則,對請求進行攔截峻村,對請求的資源對象進行校驗麸折。

NeuVector 支持多種準入控制策率配置,如鏡像 CVE 漏洞情況限制雀哨、部署特權(quán)模式磕谅、鏡像內(nèi)使用 root 用戶私爷、特定標簽等雾棺。

在策略-準入控制中開啟此功能,注意:需要 Kubernetes 集群提前開啟 admission-control 功能

NeuVector 準入策略控制支持兩種模式:監(jiān)控模式和保護模式衬浑,對應(yīng)的含義和組的模式一樣的捌浩。這里我們直接切換到保護模式,添加策略工秩。

添加完后尸饺,在 Rancher 中部署特權(quán)模式,容器會提示解決助币,策略生效浪听。

5.動態(tài)安全響應(yīng)

NeuVector 事件響應(yīng)機制可以將響應(yīng)規(guī)則設(shè)置為根據(jù)安全事件情況進行動態(tài)響應(yīng),包括以下事件:漏洞掃描結(jié)果眉菱、CIS 基準測試迹栓、準入控制事件等。

響應(yīng)動作包括隔離俭缓、webhook 通知和日志抑制:

  • 隔離模式:對應(yīng)的容器網(wǎng)絡(luò)進出流量將全部被切斷克伊。
  • Webhook 通知:將觸發(fā)信息通過 webhook 方式進行告警。
  • 日志抑制:對觸發(fā)告警信息進行抑制华坦。

6.行為監(jiān)控

以 CVE 漏洞配置為例愿吹,配置包含 CVE 漏洞名稱為 CVE-2020-16156 的容器進入隔離模式。

組名對應(yīng)的是影響范圍惜姐,如果為空犁跪,表示對全部的組都生效,填寫組名可以設(shè)置對特定組生效。

配置策略后坷衍,在集群去 curl nginx 容器撵颊,發(fā)現(xiàn)無法訪問,在 NeuVector 中查看容器狀態(tài)為隔離狀態(tài)惫叛。

刪除策略時倡勇,也可以配置將對應(yīng)隔離狀態(tài)容器解除隔離。

注意:

  • 隔離操作不適用于為主機事件觸發(fā)的規(guī)則嘉涌。
  • 每個規(guī)則可以有多個操作妻熊。

6.1. 網(wǎng)絡(luò)流量可視化

網(wǎng)絡(luò)流量可視化,可以清晰可見容器集群內(nèi)的網(wǎng)絡(luò)連接關(guān)系仑最、當(dāng)前容器連接會話扔役,并且過濾網(wǎng)絡(luò)連接信息,進行圖標展示警医;能夠快速進行網(wǎng)絡(luò)問題定位亿胸。

6.2. POD 流量抓包

針對容器可進行網(wǎng)絡(luò)抓包,讓故障無需進入主機獲取高權(quán)限预皇,就能進行網(wǎng)絡(luò)問題深入排查侈玄。

采集到的數(shù)據(jù)包可直接下載,通過 Wireshark 進行解包分析吟温。

總 結(jié)

本次我們主要講解了 NeuVector 的基礎(chǔ)功能序仙,后續(xù)將深入介紹 DLP 和 WAF 的配置策略和管理使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲁豪,一起剝皮案震驚了整個濱河市潘悼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爬橡,老刑警劉巖治唤,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異糙申,居然都是意外死亡宾添,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門郭宝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辞槐,“玉大人,你說我怎么就攤上這事粘室¢剩” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵衔统,是天一觀的道長鹿榜。 經(jīng)常有香客問我海雪,道長,這世上最難降的妖魔是什么舱殿? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任奥裸,我火速辦了婚禮,結(jié)果婚禮上沪袭,老公的妹妹穿的比我還像新娘湾宙。我一直安慰自己,他們只是感情好冈绊,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布侠鳄。 她就那樣靜靜地躺著,像睡著了一般死宣。 火紅的嫁衣襯著肌膚如雪伟恶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天毅该,我揣著相機與錄音博秫,去河邊找鬼。 笑死眶掌,一個胖子當(dāng)著我的面吹牛挡育,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畏线,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼静盅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寝殴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤明垢,失蹤者是張志新(化名)和其女友劉穎蚣常,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痊银,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡抵蚊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了溯革。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贞绳。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖致稀,靈堂內(nèi)的尸體忽然破棺而出冈闭,到底是詐尸還是另有隱情,我是刑警寧澤抖单,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布萎攒,位于F島的核電站遇八,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏耍休。R本人自食惡果不足惜刃永,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望羊精。 院中可真熱鬧斯够,春花似錦、人聲如沸喧锦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裸违。三九已至掖桦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間供汛,已是汗流浹背枪汪。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怔昨,地道東北人雀久。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像趁舀,于是被迫代替她去往敵國和親赖捌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容