新型APT攻擊方法分析
鑒于APT攻擊的對象和目的可能存在差異,不同的APT攻擊所采用的技術和方法也存在較大的不同;而且隨著 APT 攻防的升級,新的攻擊技術和方法也會不斷涌現。根據對大量APT攻擊事件的跟蹤和分析,我們發現:雖然 APT 攻擊具有明顯的定制化特征,但是一般來說,所使用技術和方法的差異主要出現在“突破防線”和“完成任務”兩個階段。本文首先枚舉影響較大或者具有顯著特征的 APT 事件,然后歸納出若干我們認為應該引起業界重點關注的新攻擊技術和方法。
一般來說,攻擊者突破防線的常用技術包括:水坑+網站掛馬,魚叉式釣魚郵件+客戶端漏洞利用、網站掛馬+URL 社工、服務端漏洞利用等。
(1) 水坑+網站掛馬 攻擊者收集潛在受害者經常訪問的網站(水坑),并尋找這些網站中存在漏洞(攻擊者自己發現漏洞或通過黑市購買漏洞);通過存儲型 XSS漏洞在這些網站上植入惡意代碼;等待潛在受害者使用包含漏洞的 Web 客戶端(例如 IE 瀏覽器)訪問植入了惡意代碼的網頁。
(2) 魚叉式釣魚郵件+客戶端漏洞利用 根據潛在受害者的行業和愛好,攻擊者直接向受害者發送其可能感興趣的電子郵件(電子郵件社工),這些電子郵件會包含植入了惡意代碼的附件;一旦潛在受害者使用關聯的客戶端工具(包含漏洞)打開了惡意附件,則攻擊者就可以利用客戶端漏洞輕易突破防線。
(3) 網站掛馬+URL 社工 攻擊者首先在包含存儲型 XSS 漏洞的某些知名網站上植入惡意代碼;然后將包含惡意代碼的 URL 通過即時通訊/電子郵件等方式發送給潛在受害者(URL 社工);一旦潛在受害者使用包含漏洞的 Web 客戶端(例如IE 瀏覽器)打開包含惡意代碼的 URL,則攻擊者就可以利用客戶端漏洞輕易突破防線。
(4) 服務端漏洞利用 攻擊者利用目標網絡所提供的服務中存在的 SQL 注入、遠程溢出等漏洞,直接進入目標網絡。鑒于目前網絡上已經或正在部署大量的安全防護設備,服務端漏洞利用的難度越來越大,因此這種直接的方式會逐漸減少。
從近幾年的 APT 攻擊事件上來看,上述技術仍能很好地工作,因此攻擊者并不急于采用大量更新奇的攻擊技術,而更多的是在這些技術的使用策略和方法上下功夫。目前,能夠看到的新攻擊策略和方法主要有以下幾個方面:
(1) 單漏洞多水坑 攻擊者使用一個漏洞攻占一個網站后,并不急于立即使用該網站發起攻擊,而是在攻占多個網站后,集中地發起對多個目標的攻擊。攻擊者采用這種策略可能有兩方面原因:一是攻擊者為了提高漏洞的利用效率,減少開銷;
另一個可能是不同的攻擊者之間交換漏洞信息,增加可用漏洞儲備。
(2) 更激進的魚叉式釣魚 攻擊者不僅發送魚叉式釣魚郵件,而且緊接著會使用電話等途徑對潛在的受害者實施進一步的社工。
(3) 供應鏈攻擊 生產力的發展促進社會分工的細化,當前極少有一個組織或者行業能做到完全不依賴于外部環境。雖然最終目標的防護可能非常堅固,但是卻不能保證其供應鏈上的每一個合作伙伴都能達到同樣的標準。
完成任務
根據任務的性質不同,完成任務所使用的技術之間必定存在較大的差異。一般來說,信息竊取任務中使用的主要技術可能包括:網絡竊聽(通過網絡嗅探截獲網絡上傳輸的賬戶登錄信息)、擊鍵記錄(通過文件過濾驅動竊取用戶輸入的賬戶登錄信息)、信息過濾(掃描受害主機磁盤,尋找具有特定擴展名或者內容的文件)等;而破壞性任務中使用的主要技術表現為對 PLC 設備的物理攻擊。
目前,雖然信息竊取任務占據絕對的主流,但是絕不能排除破壞性任務增多的可能性。相反,作為信息竊取的一個合乎邏輯的擴展,修改或破壞數據,甚至造成物理基礎設施或設備損壞的攻擊在未來幾年可能會急劇增多。
從最近幾年被公開報道的 APT 攻擊事件上來看,攻擊者在完成其 APT 攻擊任務中已經采用的新技術主要有以下幾個方面:
(1) 屏幕記錄 某些特定的敏感信息可能不方便使用簡單的文檔方式記錄,例如發現受害主機中特定進程或者窗口激活情況的信息(這些信息能夠為特定資產識別和進一步攻擊提供幫助),可以通過創建一系列用戶屏幕快照實現收集。
(2) 交互式操作 攻擊者更多地使用交互式工具,而不是完全自動化的工具,來實施信息過濾,確保更隱蔽同時更精確的外科手術式信息竊取。
(3) 加密通信 通過加密網絡協議建立與 C&C 服務器之間的加密連接,躲避常規的基于特征簽名的安全機制。
(4) 匿名網絡 通過 Tor 等匿名網絡(該網絡使用一種稱為洋蔥路由的技術實現匿名機制),隱藏 C&C 服務器的位置,增加追查的難度。更多細節,參考 Icefog[IF]等。
(5) 聲波通信 使用受害主機上附帶的麥克風設備記錄周圍環境中的聲波(除了 Stuxnet 中使用可移動存儲實現擺渡攻擊外,通過聲卡或其它計算機自帶物理設備實現擺渡攻擊很可能也已經出現了)。
(6) 清除痕跡 某些特定的 APT 攻擊會使用附加的模塊執行精心設計的清除痕跡子任務,例如徹底擦除(基本上無法恢復)攻擊存在的蛛絲馬跡(包括徹底清除擦寫模塊自身存在的證據),或者大規模惡意擦寫受害主機上的文件。