首頁 > 企業動態 > 公司新聞 > 攻防|“兵器譜”之二:它在網絡空間裏,堅守着最後一道防線

攻防|“兵器譜”之二:它在網絡空間裏,堅守着最後一道防線

釋出日期:2021-03-28 作者:奇安信

分享到:

網絡安全的保衞者們要隨時做好準備,同入侵者在每一台服務器甚至每一個進程裏展開“巷戰”,並將他們徹底消滅。——題記

兵敗莫斯科城下後,德國人把眼光放在了蘇聯的中南部地區。

作為連接中南部地區的重要樞紐,斯大林格勒一旦被德軍控制,蘇聯不僅僅將損失大量的作戰部隊,還將損失大量的糧食、石油、礦產、軍工廠以及國際援助,從而失去對德作戰的戰爭潛力。

説斯大林格勒是最後一道防線絕不為過。

慘烈的斯大林格勒保衞戰

1942年7月17日,德軍攜優勢地空火力逼近斯大林格勒,蘇德雙方在斯大林格勒接近地展開了激烈的交戰,二戰歷史上規模最大、傷亡最慘烈的戰役——斯大林格勒保衞戰正式打響。

為了增強守軍鬥志,斯大林發佈了第227號命令,嚴厲要求蘇聯紅軍部隊“絕對不許後退一步!”

遺憾的是,在會戰初期,蘇聯方面似乎並沒做好準備。德軍迅速突破了其外圍防線,攻入斯大林格勒城內。

慘烈的巷戰開始了。

在佔領市中心後,德軍的推進只能用米來衡量,德第6集團軍的一位叫漢斯·德爾的軍官在《進軍斯大林格勒》一書中寫到:“敵我雙方為爭奪每一座房屋、車間、水塔、鐵路路基,甚至為爭奪一堵牆、一個地下室和每一堆瓦礫都展開了激烈的戰鬥。”

1943年2月2日,歷時近200天的斯大林格勒戰役以德軍的失敗而告終。自此軸心國集團元氣大傷,再也無力在歐洲東線戰場發動大規模攻勢,並逐漸走向滅亡。

據統計,在會戰最激烈的階段,雙方投入兵力超過二百萬,坦克兩千輛,飛機兩千三百多架,火炮兩萬五千門。

絕不可迷信邊界防禦

讓人沒想到的是,在二戰結束後的幾十年間,原本是美國軍方為了計算這些武器彈道軌跡而定製的計算機,取得飛速發展,使其成為了互聯網的重要終端載體,網絡空間悄然誕生。

而在最近的十年裏,雲計算、移動互聯網和物聯網技術的應用,讓網絡空間的外延不斷擴大。

網絡空間的利益紛爭,讓同樣烈度的戰役也時常在網絡空間上演。

斯大林格勒保衞戰給人們的第一條啓示就是不能過度迷信邊界防禦。

邊界防禦重要嗎?毫無疑問,它是網絡安全防禦的第一道防線。否則德國人絕不會在蘇德戰爭初期的幾個月內,閃擊到莫斯科城下;在希特勒下達“藍色行動”的作戰命令後,德軍也不至於很快就打穿了斯大林格勒的外圍防線。

但過度依賴是有問題的。

面對攻守及其不平衡的局面,攻擊者利用強大的情報蒐集能力,找出目標防守的薄弱點,從而輕而易舉的攻破目標的外圍防線。在內網中如入無人之境,直面網絡空間裏的“斯大林格勒”——服務器,存儲重要數據、核心代碼或者運行着核心應用的地方。

從去年的攻防演習來看,攻擊方也不磨嘰,上來就祭出殺手鐧武器——0day漏洞。這就如同攻擊方拿到了目標的“佈防圖”,任你邊界佈防再嚴密,他們也能一擊命中薄弱環節。

果不其然,演習的第一天,就有一眾目標被0day攻擊打穿。

物理斷網聽起來夠安全了吧。2017年5月12日,“永恆之藍”勒索病毒以迅雷不及掩耳之勢穿透網絡安全邊界,安全工程師們不得不在每一台中招的機器上,與勒索病毒展開“貼身肉搏”。

值得注意的是,隔離網的中招情況,要比普通家用電腦嚴重的多。

在付出數百萬台機器中招和不計其數的經濟損失後,安全工程師們才暫時遏制住了“永恆之藍”傳播的勢頭。

做好打“巷戰”的準備

既然不能迷信邊界防禦,防守方就要時刻做好和入侵者“打巷戰”的準備,逐台服務器展開爭奪。

做好準備首先就是要知己,這也是斯大林格勒戰役中的第二點啓示。

事實上,在戰役之初,朱可夫元帥並不夠了解自己的部隊,以至於抵達前線後才發現他們處於“缺糧少彈”的狀態。

就網絡安全防禦而言,CIO或者CISO們也可能沒有掌握自己單位服務器情況的全貌,例如有多少台服務器,各台服務器上都裝什麼版本的操作系統和應用軟件,存儲了哪些數據,更不要説軟硬件配置是否正確、都有哪些漏洞、漏洞是否已經安裝補丁了。

在這種情況下,防守方很難組織起有效的抵抗。攻擊者在突破網絡邊界後,就可以任選一台防守薄弱的服務器下手,並以此為據點,向其他服務器橫向滲透。

那把自己服務器的這點事情梳理清楚容易嗎?説難那肯定難。

在雲計算出現以前,大家多用的是物理服務器,簡而言之就是一台性能極強的電腦。那麼大一台機器擺在那裏,想搞不清楚都難。現在不一樣了,在雲計算模式下,一台物理機可以生成很多台虛擬服務器或者雲服務器,創建他們只需要用户在控制枱點幾下,前後也就不過一分鐘時間,這讓管理難度加大了許多。

並且,雲服務器看不見也摸不着,這讓管理員十分頭疼,經常會發現莫名其妙多了幾台服務器,也不知道是誰創建的,上面跑着什麼應用,用的還是123456這種弱口令

不過,這件事情説容易也容易,和大象放進冰箱一樣總共也就三步:放一雙眼睛——盯着他們——記下來。

那麼問題來了,這雙眼睛從何而來?簡單,交給研發就好了。一行行代碼背後噼裏啪啦的鍵盤聲,工程師們卻掏出了一把鎖,叫做雲鎖,全稱是奇安信雲鎖服務器安全管理系統。

顧名思義,這就是給服務器上鎖的一款產品,看就要把服務器給看得清清楚楚。

雲鎖能深度洞察,包括都有哪些服務器,登錄口令是不是弱口令,上面裝了什麼操作系統、跑着什麼應用,開放了哪些端口,都有什麼樣的漏洞,這些漏洞是不是都有補丁,補丁是不是都安裝了等等這些情況,凡是能被黑客利用的弱點,雲鎖都要看到,並把他們記在“小本本”上,不安全的地方就給出整改建議,沒打補丁的地方給打上補丁。

這個過程,業界習慣叫做“資配漏補”,也就是“資產、配置、漏洞和補丁。”

但服務器並不是靜止不動的,上面有有網絡在連接、有應用在運行、還有數據在傳輸,因此在看的基礎上,雲鎖還能把看到的行為學習下來,也記在一個“小本本”上,形成用户行為畫像,這個“小本本”就是大家口中的白名單。

凡是不在白名單上的,都可以認為是可疑的。

這有什麼用呢?一台服務器上面運行的程序、經常訪問的IP地址基本上是固定的,就那麼幾類,如果突然運行了一個從來沒見過的應用,或者訪問了從來沒訪問的IP地址,那就可能出問題了,就需要後續進行研判是否中招。

比如你知道你的一個朋友從來不喝酒,但有一天晚上他喝的酩酊大醉,那他沒準就遇到了什麼不如意的事情。

戰鬥在每一間房屋、每一片瓦

斯大林格勒戰役還有第三個啓示。

受到極寒天氣影響,德國人在進攻莫斯科的時候遇到了嚴重的補給困難,機械化部隊難以發揮作用,士氣也非常低落。儘管蘇聯在莫斯科城下挫敗了德國人的進攻,但依然沒有扭轉敵強我弱的局面。

因此,面對德國人向斯大林格勒發起的夏季攻勢,想要複製莫斯科的勝利,把德軍攔在城下是非常困難的,打巷戰幾乎無法避免。

巷戰是慘烈的,但防守方在面對優勢敵軍時,很多時候卻不得不如此。

就像不能迷信邊界防禦一樣,做好了戰前準備,就以為服務器安全可以高枕無憂。要能夠在服務器內部的每一個角落,隨時同攻擊行為展開“巷戰”。

尤其是在攻防演習這種“戰時狀態”,面對攻擊方高頻度的攻擊行為和變幻莫測的攻擊技巧,單純的“資配漏補”很難奏效,必須要利用技術手段與攻擊方做持續對抗。

巷戰有一個明顯的特點:未知性,你不知道敵軍會從哪一片牆後面突然跑出來給你一槍。想要佔據主動權,實時掌握敵軍視野,並適時發起局部進攻非常重要。喜歡玩遊戲的人都知道,不管是FPS、RPG還是MOBA類遊戲,擁有“全圖視野”是多麼爽。

雲鎖另外一個強大的功能,就是通過佈滿服務器內部的“眼睛”,幫防守方開全圖視野。業界習慣把這雙“眼睛”叫做“探針”。

雲鎖的探針有四種。

第一種是IN-APP WAF探針。它的工作原理和普通WAF類似,部署在Web應用上,監控所有進入Web應用的流量。一旦發現“壞人”混跡在正常流量中,即可發出告警。它的優勢在於,雲鎖對於加密流量(可以理解為偽裝後的壞人)檢測能力更強。

第二種RASP探針。RASP中文全稱是應用運行時自我保護,其目的在於讓應用程序擁有自我免疫和防禦的能力。它主要的主要能力是hook網絡流量,細粒度的監控應用腳本的行為及函數調用上下文信息(程序員都懂的),及時發現惡意代碼和漏洞利用行為。

説點大白話。假如雲鎖發現躲在牆後的敵人舉槍向你瞄準,他就會通知你危險並及時躲避;假如雲鎖發現敵方通信兵和長官通話,它會通知你敵方通信兵可能正在彙報你方部署情況,要及時幹掉他。也就是雲鎖從敵方肢體語言(在IT環境中就是機器語言)中發現危險信號,為你下一步反制行動提供參考。

第三種是內核加固探針。內核到底是什麼?簡單來説就是底層環境,也就是操作系統、內存這些東西。攻擊者在服務器內每發起一次攻擊行為,就會在內核上留下一些痕跡(當然攻擊者也可以清除痕跡),就像敵人每走一步就會在地上留下腳印,每開一槍就會留下彈殼一樣。雲鎖的內核加固探針就是在系統層,通過觀察這些“痕跡”來進行黑客行為畫像,監控攻擊者的攻擊行為。

同時,這個內核加固探針還能起到為內核加固的作用,增強操作系統自身對抗黑客攻擊和惡意代碼的能力,限制漏洞利用後的下一步行為。不然攻擊者不知道從什麼地方“打個地道”跑到我後面,豈不是滿盤皆輸?

第四種是Webshell動態檢測探針。針對Web服務器有一種非常常見的攻擊類型叫Webshell攻擊,它是一種後門文件,攻擊者將其上傳到服務器後,就通過運行它獲取控制服務器的權限。但通常而言,Webshell文件並不會在自己腦門上寫着壞人倆字,相反還會進行各種偽裝、加密,防守者可能直到被拿站了才恍然大悟。

那怎麼辦?還記得《亮劍》里老李讓國民黨暫七師師長常乃超跑那五公里嗎?當時常乃超被俘後混在普通俘虜中,最後因為跑不動五公里露餡了。沒有那五公里,就沒有後來南京軍事學院的常教員。沒有常教員的潤色,老李的畢業論文可能也沒有那麼氣壯山河。

話説回來。雲鎖也會進行全盤掃描,把包括Webshell在內的腳本文件扔到沙箱裏“跑五公里”,一旦發現非法行為就標記出來,並把檢測結果同步給WAF和RASP探針,下次再發現一樣的腳本文件,直接幹掉就行了。

打贏服務器保衞戰

然而在過去的十數年間,服務器的形態發生了翻天覆地的變化,作為機構承載關鍵業務和敏感數據的核心平台,任何一個小小的缺陷都會被攻擊者抓住並無限放大。無論你的補丁打的再怎麼好、口令設置的再怎麼複雜,面對0day、內存馬、社工滲透這種形態的攻擊時,都顯得力不從心。

當然,發現攻擊從來不是一件容易的事情。有統計數據顯示,針對服務器的攻擊平均在99天內不會被發現,超過53%的受害者是在外部通知後才知道被攻擊的。與攻擊駐留時間相對應的是防禦發現時間,防守者平均需要170天才能檢測到一個高級威脅。

好在,雲鎖並不是一個人作戰。在服務器的外圍,奇安信天眼能夠在流量側,清晰洞察“敵軍的動向”。

持續的檢測與對抗,才能打贏網絡空間裏的“斯大林格勒保衞戰”。