王鵬輝 金曉飛 唐磊 王克昌 鄭子辰 馬牧野
(1.中國建筑一局(集團)有限公司;2.深信服科技股份有限公司;3.住房和城鄉(xiāng)建設部信息中心)
隨著建筑行業(yè)信息系統(tǒng)建設的有序推進,智能建造逐步成為建筑行業(yè)轉型升級的重要抓手,建筑行業(yè)系統(tǒng)的高度互聯(lián)大大增加了網(wǎng)絡安全風險。習近平總書記強調(diào),“網(wǎng)絡安全和信息化是一體之兩翼、驅動之雙輪,必須統(tǒng)一謀劃、統(tǒng)一部署、統(tǒng)一推進、統(tǒng)一實施”。目前,智能建造系統(tǒng)使用大量物聯(lián)網(wǎng)設備、傳感器和視頻監(jiān)控等設備去獲取實時數(shù)據(jù),達到對建造過程的可視化管理,進而推進項目設計、施工和運維各個階段的智能應用。但是通過態(tài)勢感知平臺的日常運營監(jiān)測,發(fā)現(xiàn)有大量的攻擊者對各業(yè)務系統(tǒng)進行無差別的網(wǎng)絡攻擊探測。其中,云函數(shù)攻擊就是近年來廣受攻擊者青睞的一種攻擊技術,由于云函數(shù)的IP 地址是隨機分配,導致無法對攻擊進行有效的攔截與防護。本文通過分析建筑行業(yè)智能建造系統(tǒng)的特點,提出了一種基于零信任模型構建的云函數(shù)攻擊防御體系,以保障各智能建造系統(tǒng)的安全平穩(wěn)運行。
BIM 技術的應用、云技術平臺應用、大數(shù)據(jù)應用、物聯(lián)網(wǎng)應用是信息化建設的發(fā)展趨勢,這些技術的應用使得項目管理逐步透明化、規(guī)范化和標準化。但是,建筑行業(yè)面臨的信息安全風險也急劇增高,主要體現(xiàn)在以下四個方面:
一直以來,建筑技術在信息化程度的投入和關注不高,在早期建筑自動化的通信標準中缺少基礎的安全加密、認證和保護方面的設計,能看出行業(yè)對網(wǎng)絡安全方面的關注微乎其微。使用未加密的協(xié)議進行通信,為攻擊者進行流量嗅探和篡改敏感信息提供了機會。由于建筑行業(yè)項目交付產(chǎn)物周期長,仍然有大量傳統(tǒng)的建筑自動化系統(tǒng)(Building Automation System,BAS)在提供服務,這類系統(tǒng)和設備大多使用默認的用戶名密碼,充滿了安全漏洞和配置問題。攻擊者也更容易利用這類系統(tǒng)的歷史漏洞進行攻擊,進而影響B(tài)AS 功能的可用性,尤其是影響水、電、通風、電梯以及火警和滅火系統(tǒng)等可能引起人身安全問題的關鍵BAS 功能。
隨著云平臺和物聯(lián)網(wǎng)等技術在智能建造項目中的應用,智能化建筑系統(tǒng)需要部署大量的傳感器和計算機,設備之間涉及到大量的網(wǎng)絡連接、數(shù)據(jù)傳輸和存儲。與傳統(tǒng)建筑行業(yè)內(nèi)網(wǎng)運行的信息化系統(tǒng)不同,智能化建筑系統(tǒng)還普遍開放在互聯(lián)網(wǎng),方便設備互連互通的同時也導致了極高的互聯(lián)網(wǎng)暴露面風險。目前智能化設備普遍缺乏安全性,容易受到網(wǎng)絡攻擊,進而導致敏感數(shù)據(jù)泄露的安全風險,對用戶個人隱私和財產(chǎn)安全構成威脅。
建筑行業(yè)在智能化轉型的過程中,廣泛推進新技術的運用,越來越多的企業(yè)數(shù)據(jù)被以電子形式使用、共享和保存。但是,加快信息系統(tǒng)建設的同時卻缺少全面、系統(tǒng)性的網(wǎng)絡安全頂層設計,沒有建立完善的網(wǎng)絡安全管理體系,設立的安全體系和安全控制措施不能充分有效地發(fā)揮效能。管理人員和技術人員又缺乏必要的專業(yè)知識,不能及時發(fā)現(xiàn)系統(tǒng)的安全隱患和風險,對網(wǎng)絡安全應急事件不能作出積極、有序和有效的反應。
近年來,人工智能技術的迅猛發(fā)展給各個領域都帶來了前所未有的變革和進步,GPT 的出現(xiàn)更是引發(fā)人工智能大模型應用熱潮。但AI 技術不僅可用于維護網(wǎng)絡安全,還可能為有心之人用以AI 網(wǎng)絡攻擊,互聯(lián)網(wǎng)惡意攻擊者也開始利用這項技術快速構建攻擊工具,對互聯(lián)網(wǎng)資產(chǎn)進行批量攻擊。而且,攻擊者正在濫用云服務和策略,以充分利用云原生環(huán)境的復雜性,使用源混淆、云函數(shù)等使它們更難被跟蹤,防守方基于IoC 的防御效果大打折扣。
基于以上安全風險,有必要對攻擊者常用的安全技術進行分析,發(fā)現(xiàn)潛在的攻擊行為,以提高網(wǎng)絡安全防御能力,保護業(yè)務系統(tǒng)的安全性。
云函數(shù)是Serverless(無服務器計算)目前應用最廣泛的一種計算服務產(chǎn)品,提供FaaS(Function as a Service)能力。云函數(shù)是一段運行在云端的、輕量的、無關聯(lián)的、并且可重用的代碼,無需管理服務器,只需編寫和上傳代碼,即可獲得對應的數(shù)據(jù)結果。使用云函數(shù)可以使企業(yè)和開發(fā)者不需要擔心服務器或底層運維設施,可以更專注代碼和業(yè)務本身,也可以使代碼進一步解耦,增加其重用性。
云函數(shù)具有按需執(zhí)行、靈活擴展、多語言支持等特點,其無狀態(tài)性保證了高可用,同時減少了基礎設施管理的工作負擔,適用于各種獨立、短時、事件驅動的任務,為現(xiàn)代應用程序提供了高效、彈性的開發(fā)方式。
(1)按需執(zhí)行
云函數(shù)在需要時才會啟動,執(zhí)行特定的代碼邏輯,然后立即停止。這可以節(jié)省資源并降低成本。
(2)靈活擴展
云函數(shù)可以根據(jù)需求動態(tài)擴展,處理大量并發(fā)請求,然后在負載下降時自動縮減。
(3)多語言支持
云函數(shù)服務通常支持多種編程語言,如JavaScript、Python、Java、Node.js、Go 等,讓開發(fā)者可以使用熟悉的語言來編寫代碼。
(4)多服務出口
云函數(shù)運行在云服務商數(shù)據(jù)中心依托于云服務商的多互聯(lián)網(wǎng)出口及CDN 服務對外提供API 調(diào)用,天然實現(xiàn)服務端IP 隱藏及服務加速的功能。
與任何新技術一樣,Serverless 應用讓開發(fā)更加便利和高效,但其安全性也是在事后才被考慮到。云服務商只負責云的安全性,而不是云函數(shù)的安全性,云函數(shù)的操作缺乏有效的監(jiān)管與追蹤,為企圖濫用的攻擊者提供了更多的機會。目前,濫用云函數(shù)作為攻擊前置的攻擊方式是攻擊者常用的隱藏自身的有效手段,其主要原因有兩點:一是云函數(shù)作為一種Serverless 的服務,會有一個API 網(wǎng)關觸發(fā)器配合進行使用,該網(wǎng)關提供了一個云服務商備案過的特定域名,具備高可信度的同時又具備IP 不唯一的特點;二是云函數(shù)支持多種語言環(huán)境,可直接進行工具部署,大大縮短了準備時間。攻擊者利用云函數(shù)通過HTTP 代理、SOCKS5 代理等方式建立代理池,借助云函數(shù)多出口的特性,在掃描探測階段繞過WAF、態(tài)勢感知等設備的監(jiān)測,防止大量的掃描探測攻擊被封禁。除此之外,攻擊者在突破邊界利用免殺CS 木馬上線的時候,通過云函數(shù)來轉發(fā)HTTP/HTTPS 請求達到隱藏C2 上線的效果,為防止被溯源,利用云函數(shù)隱藏連接Webshell 的本機IP 地址,為了達到更隱秘的目的,可以對Webshell 流量進行加密以逃避流量分析和威脅情報的檢測。以下為利用云函數(shù)常見的攻擊方式:
攻擊者通過HTTP 代理客戶端掛上代理發(fā)送數(shù)據(jù)包,HTTP 代理服務器攔截數(shù)據(jù)包,提取 HTTP 報文相關信息,然后將報文以某種形式POST 到云函數(shù)HTTP 代理服務端進行解析,云函數(shù)HTTP 代理服務端根據(jù)解析到的信息對攻擊目標發(fā)起請求,最終將結果一層一層返回。由于攻擊者使用云函數(shù)代理通過了CDN 網(wǎng)絡,目標服務器僅可以看到CDN服務商的域名發(fā)起了攻擊行為,且每次攻擊的IP 地址都會發(fā)生變化。
正常SOCKS5 代理請求的流程為服務端監(jiān)聽來自客戶端的請求,當客戶端發(fā)起一個新的連接,服務端生成一個socket A,并從數(shù)據(jù)包中解析出目標服務器的地址和端口,在本地對目標發(fā)起一個socket B,同步兩個socket 的IO 操作。
socket 可對外發(fā)起連接,云函數(shù)能對外發(fā)包,因此攻擊者可以將云函數(shù)當作中間人,一側對云函數(shù)發(fā)起連接,另一側對目標服務器發(fā)起連接。從目標服務器側看是云服務商的IP 地址在建立SOCKS5 連接,達到隱藏攻擊者真實IP 的目的。
通過云函數(shù)的方法攻擊者可以隱藏連接Webshell 的本機IP 地址,從而防止溯源,為了達到更加隱秘的目的,可以對Webshell 流量進行加解密來逃逸流量檢測,通過流量加密與云服務商域名白名單的方式可以完美的逃避檢測。
攻擊者使用云服務商云函數(shù)配置Webshell 轉發(fā)器,配置成功后得到Webshell 完整的URL 連接,通過Webshell 攻擊工具配置Webshell 客戶端,客戶端配置成功后通過CDN/云函數(shù)等隱藏IP 的代理技術將Webshell 上傳到目標服務器。最后,通過Webshell 攻擊工具發(fā)起連接,在目標服務器側看到訪問地址均為云服務IP 地址。
攻擊者通過云函數(shù)上傳代理掃描服務端到云函數(shù),得到完整的服務端URL,在本地通過Client 使用URL 配置代理服務,然后通過網(wǎng)絡掃描工具發(fā)起掃描探測,在目標服務器側看到掃描探測的源地址為云服務商IP,且每次掃描的IP 地址均不相同。
利用云函數(shù)隱匿C2 的原理也很簡單,其實攻擊者相當于在云服務商開啟了一個代理服務,攻擊者將C2 木馬的所有流量通過云服務商進行轉發(fā),而云服務商通常有很多出口IP,會隨機使用這些IP,達到了隱匿自身真實IP 的目的。
零信任的概念最早由John Kindervag 提出,其核心思想是默認情況下,企業(yè)內(nèi)外部的任何人、事和物均不可信,應在授權前對任何試圖接入網(wǎng)絡和訪問網(wǎng)絡資源的人、事和物進行驗證。從而確保身份可信、設備可信、應用可信和鏈路可信。
云函數(shù)攻擊技術幾乎可應用于網(wǎng)絡攻擊的任何環(huán)節(jié),基于三重零信任模型的防護策略,從終端安全、鏈路安全、訪問控制安全三個關鍵維度入手,構建立體防御矩陣,以應對不斷演進的云函數(shù)攻擊所造成的網(wǎng)絡安全威脅。
(1)終端安全
攻擊者使用云函數(shù)攻擊是為了保持對內(nèi)網(wǎng)權限的穩(wěn)定控制,通常會采取構建隱藏賬號或植入惡意后門等手段,實現(xiàn)其攻擊入侵的持續(xù)和隱匿性。傳統(tǒng)的防病毒軟件主要基于特征庫進行攻擊比對,判定是否為惡意軟件,在最早期,病毒種類數(shù)量少,殺毒軟件防病毒是哈希惡意文件獲得MD5值,屬于一對一對比,改動文件名都會導致MD5 值的變化,隨著病毒種類增多,MD5 略顯乏力,后來安全人員發(fā)現(xiàn)某些病毒有同樣的特征,所以反病毒發(fā)展到了特征值匹配階段,目前各安全廠商也在維護自己的病毒特征庫,但實際上特征值更像是MD5 的升級版,無非是從一對一升級成了一對多個。但近年來病毒變種呈指數(shù)級增長,維護特征庫更新特征庫這種被動防御方式效果甚微,所以反病毒進入了啟發(fā)式監(jiān)測,即總結病毒入侵主機后的一系列共性行為為惡意行為(此行為特征與HIDS 不同,HIDS 的入侵檢測更多是指真實攻擊者入侵主機后可能在系統(tǒng)層面做的惡意行為,比如可疑命令、異常登錄、反彈shell、上傳webshell 等,而啟發(fā)式檢測只是總結了一些惡意文件執(zhí)行后的共同行為),當針對性、持續(xù)性的APT 攻擊增多,勒索病毒泛濫,被動的防御建設已經(jīng)無法阻止病毒的滲入,為了彌補傳統(tǒng)防病毒的不足,就誕生了新的技術EDR。
通過在終端部署EDR,優(yōu)化當前主機側的訪問關系,實現(xiàn)東西向的安全訪問控制,根據(jù)業(yè)務系統(tǒng)設置主機不同的角色,如:WEB、數(shù)據(jù)庫、FTP、負載均衡、消息隊列等。根據(jù)不同的角色,設置基于角色+端口(或安全組)的訪問策略設置,嚴格限制角色間的訪問關系,部署主機監(jiān)控軟件,對應本機的進程變更,命令執(zhí)行,權限提升等敏感操作,一旦出現(xiàn)越權行為的情況,即刻進行日志上報和告警通知,必要時終止違規(guī)行為。通過EDR 的微隔離能力與高級威脅檢測能力有效檢測云函數(shù)攻擊,并遏制威脅擴散。
(2)鏈路安全
傳統(tǒng)鏈路安全主要通過在關鍵的區(qū)域邊界部署IPS、WAF、防火墻等設備實現(xiàn)基于鏈路的訪問控制及威脅檢測。隨著攻防對抗技術的不斷升級,攻擊者往往會利用云函數(shù)攻擊、加密等手段實現(xiàn)隱藏自身IP 及通信流量加密的方式繞過防護類設備檢測。
當攻擊者利用云函數(shù)發(fā)起惡意攻擊請求時,攻擊流量將由云服務商提供的IP 池發(fā)起,源IP 會隨時發(fā)生變化。為有效應對云函數(shù)攻擊IP 的多變性,在邊界流量維度通過全流量檢測分析及XFF 解析,匹配云函數(shù)指紋白名單,并結合威脅情報黑名單,及時聯(lián)動阻斷手段,有效阻斷基于云函數(shù)攻擊所產(chǎn)生的惡意流量請求,實現(xiàn)對云函數(shù)攻擊流量的零信任防護。
(3)訪問控制安全
傳統(tǒng)的訪問控制安全主要通過邊界類的防火墻、業(yè)務賬戶密碼實現(xiàn)從網(wǎng)絡到業(yè)務的訪問安全控制。這種靜態(tài)授權的訪問方式在網(wǎng)絡攻防日益嚴峻的當下,以難以保障業(yè)務的安全。通過零信任的方式構建基于賬戶、設備、業(yè)務三維一體的訪問控制邏輯,要求必須可信的設備通過可信的賬戶訪問授權的業(yè)務。同時,在訪問過程中不斷進行訪問環(huán)境和狀態(tài)的監(jiān)測,當出現(xiàn)異常時,即刻切斷業(yè)務訪問。
實現(xiàn)基于零信任的訪問控制,首先,零信任要求所有賬號必須使用強密碼策略,禁止使用弱密碼,設置密碼有效周期,賬號定期修改密碼。其次,對于閑置的賬號進行鎖定,開啟賬號行為分析,對于賬號使用非授信終端、異常地點、異常時間登錄時觸發(fā)短信增強認證。通過零信任代理終端訪問業(yè)務系統(tǒng),實現(xiàn)業(yè)務隱身,并在業(yè)務系統(tǒng)邊界防火墻設置訪問策略,僅零信任可訪問業(yè)務系統(tǒng),保障業(yè)務系統(tǒng)安全。
隨著云上業(yè)務的不斷發(fā)展,利用云函數(shù)的攻擊也越來越多樣化,雖然云函數(shù)攻擊具有多出口、無需服務器承載、難溯源等優(yōu)勢,但云函數(shù)的利用也有相應的缺點,如依賴云服務商,云函數(shù)的主動權掌握在云服務商的手上,當下云函數(shù)主流還是用Node.js 寫,云服務商對Java 云函數(shù)的支持普遍還不是那么好;調(diào)試的復雜性,由于函數(shù)的執(zhí)行是在云提供商的環(huán)境中進行的,本地調(diào)試和跟蹤函數(shù)會更加復雜;成本不可控,按需計費有助于降低成本,但對于某些高負載或長時間運行的工作負載,可能會導致不可控的費用增加。
此外,云函數(shù)域名具有典型的主域名特征,統(tǒng)一收集各提供商的云函數(shù)相關主域名信息,進行如下處置:
(1)業(yè)務不涉及相關云函數(shù)使用的,按照最小化原則,建議在統(tǒng)一出口網(wǎng)關,過濾相關域名的請求,阻斷C2 通信。
(2)在檢測類設備中,將相關域名特征,定義為流量監(jiān)測設備的告警特征,可第一時間發(fā)現(xiàn)存在相關通信的可疑主機。
(3)具備全流量留存能力的單位,可以針對云函數(shù)主域名,在DNS 流量中進行全文檢索,定位可疑主機。
此外,利用云函數(shù)的攻擊也是有跡可循,通過分析通信的流量特征進行判斷,如果攻擊者要利用stage,則在服務器上會有一個下載動作,下載的過程中會訪問/bootstrap-2.min.js (配置文件特征),同時返回包有很大一串加密數(shù)據(jù),在配置文件中云函數(shù)的host 是類似于service-173y3w0zxxxxxxxxxx.sh.apigw.tencentcs.com 這樣的格式,若業(yè)務部門沒有相關的業(yè)務,可以直接封禁該域名。同時,在云函數(shù)的請求頭中也會有相關的特征,如:
Request-Id:請求的id
X-Api-FuncName:函數(shù)名
X-Api-AppId:對應賬號
X-Api-ServiceId:服務id
X-Api-HttpHost:APP ID 賬號ID+云函數(shù)域名
X-Api-Status:200 返回值
X-Api-UpstreamStatus:200 返回值
抓取攻擊者連接數(shù)據(jù)包,通過流量回放方式,重復回放連接數(shù)據(jù)包,造成虛假上線,欺騙服務器,使攻擊者認為有更多的用戶上線,從而使服務器資源過載或崩潰,可以利用這種方式來癱瘓目標系統(tǒng),阻止攻擊者竊取敏感信息或進行其他惡意活動。
通過容器技術來構建一個虛擬環(huán)境,內(nèi)置反向釣魚木馬程序,攻擊者進入虛擬環(huán)境后,反向釣魚木馬會自動啟動并與攻擊者的設備建立連接,大量上線遠控客戶端。一旦連接建立,攻擊者的設備就會成為遠程控制客戶端,而容器中的惡意程序則會獲取攻擊者的敏感信息或執(zhí)行其他惡意操作。這種方式可以誘捕攻擊者,使其暴露自己的身份和行為,從而為安全團隊追蹤和應對提供線索。
云函數(shù)隱藏攻擊者IP 和CDN 很像,但都有同一個弱點,就是訪問是需要計費的,云服務商通常會根據(jù)使用量或者請求次數(shù)來計費,而攻擊者可能會使用腳本或自動化工具進行攻擊,導致請求次數(shù)大量增加,從而增加了計費成本,基于此使用腳本將攻擊者云服務的費用耗光,導致無法進行攻擊。另外,云服務商通常會有一些安全措施來防止濫用和異常行為,例如限制請求頻率、IP 封禁、驗證碼等,可以防止攻擊者通過大量請求來消耗資源和費用。
采集攻擊者使用云服務商的云函數(shù)服務的相關證據(jù),主要是host 名X-Api-FuncName X-Api-AppId 這些帶有明顯云函數(shù)特征的證據(jù),說明該攻擊者正在使用云函數(shù)進行惡意攻擊,舉證請求云服務商對其暫時封禁。
在我單位以往日常網(wǎng)絡安全運營中,經(jīng)常監(jiān)測到多個有確切攻擊特征的事件,但是發(fā)現(xiàn)與該攻擊IP 相關的事件信息卻幾乎沒有,可以初步判斷攻擊者使用云函數(shù)進行批量掃描。進一步對系統(tǒng)訪問日志進行排查,發(fā)現(xiàn)存在大量不同IP 的訪問日志,個別訪問路徑之間又有關聯(lián),來源IP 全是云服務器的動態(tài)IP,基本確認是云函數(shù)攻擊。根據(jù)以往業(yè)務實際,結合本文研究成果,我單位逐步構建針對云函數(shù)攻擊的三重防護體系,經(jīng)過一年的網(wǎng)絡安全運營優(yōu)化,全年成功精準識別并阻斷了30 余次云函數(shù)攻擊的惡意行為,凸顯了該防護體系的防護效果。
基于零信任防御體系是一個全方位的網(wǎng)絡安全策略,通過綜合利用強化身份驗證、動態(tài)訪問控制和多因素認證等手段,確保每一次訪問都得到充分的驗證和授權。這種策略可以顯著降低網(wǎng)絡遭受未經(jīng)授權訪問和潛在威脅的風險,可有效防止攻擊者利用云函數(shù)發(fā)起的攻擊行為,進而保障系統(tǒng)的安全平穩(wěn)運行。