当前位置: 首页 > news >正文

FireEye:数字面包屑——识别APT***来源的7大线索

近期,FireEye发布了一篇题为《Digital Bread Crumbs: Seven Clues To Identifying Who's Behind Advanced Cyber Attacks》的白皮书,同时发布了中文版。

101455534.png

内容转载如下:

在現今網路威脅的情勢下,找出敵人是任何防禦計畫的關鍵要點。保護資料與智慧財產的關鍵步驟,在於找出誰是 攻擊者、他們的運作方式,以及他們的目的。

所幸如同任何犯罪現場一樣,遭到***的電腦系統都會留下線索。若是先進的網路攻擊,惡意軟體程式碼、網路 釣魚電子郵件、使用的命令與控制(C&C)伺服器,甚至行為,都可能會留下攻擊者犯罪的蛛絲馬跡。正如指紋科學、DNA 和纖維分析已經成為犯罪鑑識時的無價之寶,在研究人員已經知道找尋目標是什麼的情況下,連結先進網路攻擊事件的歷程便有利於找出功力強大的威脅發動者。

這份報告根據FireEye 追蹤將近 1,500 件攻擊活動所組成的範本,描述下列惡意軟體攻擊情況,以及可從中獲知禍首的相關資訊:

  • 鍵盤配置——隱藏在網路釣魚活動背後的是攻擊者鍵盤的相關資訊,而這些資訊會根據語言和地區而有差異。

  • 惡意軟體中繼資料——惡意軟體原始碼包含的技術詳細資料,可能會透露出攻擊者的語言、位置和他與其他犯罪活動的關聯性。

  • 內嵌字型——網路釣魚電子郵件的字型會指出攻擊的源頭。即使該字型通常並不常用於攻擊者的母語中,也是有跡可循。

  • DNS 註冊——攻擊事件中所使用的網域會指出攻擊者的位置。重複登錄的資訊可能會將多個網域連結到同一個犯罪源頭。

  • 語言——通常從惡意軟體最後顯示的內嵌語言,可以看出攻擊者來自哪個國家/地區。而且,有時用逆向工程來追查出現在網路釣魚電子郵件中的常見語言錯誤,就能判斷出撰寫人員的母語。

  • 遠端管理工具設定——熱門的惡意軟體工具內含一組設定選項。這些選項通常是攻擊者在使用該工具時的特定選擇,而正是這點讓研究人員可將不同的攻擊事件連結至同一個威脅發動者。

  • 行為——從方法與攻擊目標等行為模式,可以看出攻擊者的一些手法和動機。 看過這些線索之後,安全專家們即可更輕易找出威脅發動者,使組織日後防禦網路攻擊的能力更為強大。

儘管近幾年來網路攻擊越見高明且更趨頑強,但是仍然不見所謂的完美犯罪。攻擊鏈的各階段:探勘、研製、交 付、漏洞攻擊、安裝、命令與控制,以及對目標展開行動 (通常是滲漏),都可能留下數位足跡。

因為在每個階段中,攻擊者和攻擊目標之間一定會有所接觸。有時這種接觸是直接進行,如網路釣魚電子郵件。有 時則是間接接觸,比方當目標電腦回應攻擊者系統時就會發生接觸。這兩種接觸都是可挖掘更多關於攻擊者資訊 的好機會。若分析正確,這類資訊能協助安全專家們更清楚損害詳情,進而修復遭***的系統,以及預測日後的攻擊。


注意事項:雖然本報告中所介紹的數位鑑識證實可利於 FireEye 研究人員進行研究,但是得到的線索仍常造成誤導 且存在矛盾。分析證據是錯綜複雜而且歷經千辛的過程—這種精巧融合科學與藝術的技術也很難實現「證據確鑿」 的理想。網路罪犯多半是擅長於錯誤引導的專家,所以表面上沒有任何明顯徵兆。因此,FireEye 強烈建議在對攻 擊源頭有任何定論之前,應該權衡多方證據,並且徵詢數位鑑識專家。

1. 鍵盤配置
研究人員可以根據網路釣魚電子郵件標題的「字元集」屬性 (charset),判斷當初某一段惡意軟體在建立時所用的鍵盤配置。大多數的網路釣魚攻擊會使用不屬於特定國家/地區的標準鍵盤配置。因此當非標準型的鍵盤出現時,代表這是一個有利線索。

FireEye 研究人員發現,許多惡意軟體活動都有使用中國大陸所使用中文 (GB2312) 鍵盤的特性。同理,北韓的 KPS9566 字元集便有助於確認攻擊活動是從該地區發出。 這種追蹤攻擊來源的方法並非百分之百準確。理論上,俄羅斯國民可以用北韓鍵盤來偽裝其身分以及動向。

2012年 3月,FireEye研究員Alex Lanstein向西藏人權人士發出電子郵件(見圖1),警告其已成為網路攻擊的目標。攻擊者後來從其中一位攻擊目標手中拿到 Lanstein 的電子郵件複本,用來當作對付其他人權人士的誘餌。不像原來的電子郵件是使用標準西方語系鍵盤 (Windows-1252),誘騙信函的寄送者即是使用中國的 GB2312 鍵盤配置(見圖2)。

圖1

圖 1:傳送給西藏人權人士的誘騙網路 釣魚電子郵件


圖2
圖 2:網路釣魚電子郵件中的字元集編碼 (請參見圖 1)

2. 惡意軟體中繼資料

惡意軟體的可執行檔程式碼通常會參考用以組織原始碼的原始來源目錄。同樣地,用C++ 語言寫的程式會參考其專案名稱。其中的程式碼會透露攻擊者的語言或來源國家/地區,即使程式碼和其他攻擊行動已修改成目標對象的語言,仍可看出端睨。

圖3
圖 3:用粗俗文字辱罵中國防毒軟體製造商北京瑞星的惡意軟體原始碼。螢幕截圖中的不雅文字已經過模糊處理。

圖4
圖 4:經解碼的可執行檔 (反白顯示PDB 參考來源)

圖 4 顯示先前未公開的第二波攻擊的原始碼,在該次攻擊中,可執行檔偽裝成 PNG 檔案。在初始攻擊後,可執行檔即送到端點。這段程式碼中包括指向惡意軟體作者硬碟中、位在「E:\pjts2008\moon\Release\MoonClient2. pdb」的處理序偵錯 (PDB) 檔的參考來源。(PDB 檔案是針對以 Windows .Net framework 語言所撰寫的程式所建立)。此處所指的「MoonClient」檔案是中國駭客集團 APT1 (又稱為 CommentGroup) 所使用 WEBC2 惡意軟體的變形。


3. 內嵌字型
就像前文所介紹的字元集,網路釣魚電子郵件和其他惡意文件中所使用的字型,有時可用來追蹤 APT 攻擊的來源。以 FireEye 研究人員最近發現的 Sanny APT 攻擊為例。雖然誘騙文件是用俄文撰寫來誘騙俄國使用者,但卻使用韓文字型 Batang和KPCheongPong。這些字型的選擇,也與其他的證據共同一致的將來源指向北韓,包括該次攻擊中的作者名字和所使用的C&C伺服器。經過整體推論,該證據對攻擊者的來源提供一個有力的線索。

4. DNS 註冊
在某些案例中,攻擊者會付費登錄網域來規避惡意軟體防禦的偵測作業,如網域黑名單。而這些DNS登錄資訊經常直接指出攻擊者所在的國家/地區。

即使DNS註冊的是假名字和地址,也能找出禍首所在。有些攻擊者會在跨網域重複使用假的聯絡資訊。研究人員可以從該項資訊快速將多起攻擊事件連結到同一名威脅發動者,並將從每起攻擊事件收集到的片段資訊集合起來。

典範案例:即有名的「Sin Digoo 事件」。在 2004 年到 2011 年間,有人利用 Hotmail 電子郵件地址,在好幾個 網域中註冊相同的使用者名稱。該名註冊者登記的實體地址是位在「Sin Digoo, Californa」的一個郵遞信箱,很 明顯拼錯「San Diego」一字。多虧有那些重複的註冊資訊,研究人員才能將個別的惡意軟體攻擊行動連結到更大 規模的先進持續威脅活動。

同樣地,惡意軟體研究人員 Nart Villeneuve 曾使用 DNS 登錄資訊將中國浙江大學連結到 2010 年一起針對香港特 赦組織、記者、人權示威人士的攻擊行動。

FireEye最近使用DNS登錄詳細資料,連結幾個上傳到病毒檢查網站 VirusTotal 的惡意軟體範本。攻擊者似乎已經將這幾個範本上傳,以測試防毒社群是否能偵測出來。

將這個範本上傳的攻擊者掩飾了第一階段的C&C 攻擊。但是到了第二階段,他以在實際基礎架構中執行惡意軟體的手法做為掩護,使用一個明顯位於非真正新德里地址的人所註冊的 secureplanning.net 網域。

然而註冊資訊並非一項準確的指標;功力高強的攻擊者可以製作假聯絡資訊,甩開進行追蹤的研究人員。但是在這起案例中,FireEye研究人員觀察到後來該惡意軟體的更新版本陸續上傳到 VirusTotal 超過 15 次。所有範本都嘗試連結到以該新德里地址註冊的網域,更是暴露攻擊者的行為模式。


5. 語言
通常有許多指標可透露惡意軟體活動所使用的語言皆非攻擊者的母語。有時這些指標甚至可指出攻擊者的來源。 顯而易見的錯字和拼法錯誤是明顯的徵兆。在其他案例中,從更詳細的分析結果可看出攻擊者使用翻譯網站的蛛絲馬跡。瞭解熱門翻譯網站如何處理特定字詞和片語之後,研究人員就能判斷攻擊中所使用網路釣魚電子郵件的原始語言。

以 2011 年震驚一時的 RSA 攻擊為例。據稱有兩個任命於政府的小組***了該公司的網路,盜取 RSA SecurID 產品 的資料。該次攻擊利用不明的 Flash 漏洞,表示攻擊者具備高階的技術能力。但從圖 5可以看出,該網路釣魚電子郵件內容使用很破的英文和拙劣的手法 (雖然最終還是得逞) 誘使收件者開啟附件。這些特徵都指出該攻擊者的母語並非英文。

圖5
圖 5:2011 年 RSA 攻擊事件中所 使用的網路釣魚電子郵件

有時,內嵌在惡意軟體中的語言也有利於找出攻擊者。在圖 6 中,Backdoor.LV 惡意軟體的片段程式碼是利用阿拉伯文名字和語言來「標記」目標對象。

圖6

圖 6:Backdoor.LV 惡意軟體的片段程 式碼。圈選部分經解碼成字串後顯示於 圖 7 中。

圖7

圖 7 經解碼的 Backdoor.LV

出現在圖 11 中的程式碼顯然是來自同一個攻擊者。字元集字串解碼後顯示「400CD510」標籤 (請見圖 8),這次是採用阿拉伯文字母。

圖8

圖 8:另一個與 Fayez 有關的惡意軟體片段。圈選部分經解碼成字串後顯示 於圖 9 中。

圖9

圖 9:採用阿拉伯文字母的 400CD510資料

6. 遠端管理工具設定
遠端管理工具 (RAT) 是攻擊者用來即時控制目標電腦的一種惡意軟體。這類工具支援許多功能,如鍵盤登入、螢幕 擷取、影片擷取、檔案傳輸、系統管理和 command-shell 存取。RAT 可付費購買甚至免費取得,經過完善測試並 具備完整功能,因此深受攻擊者的喜愛。

RAT 似乎使得追蹤更為困難,因為任何人都可以使用,而且不同團體可使用相同的工具。但是每個攻擊者可以根據 工具提供的許多自訂功能來建立專屬的組合設定。從多起使用相同 RAT 設定的攻擊中,可追溯到同一名攻擊者。

比如一個推出達 8 年,稱為 Poison Ivy 的 RAT。此工具最常見的設定選項包括 ID、群組、密碼和 Mutex。 圖 10 顯示 Poison Ivy 連線設定視窗中的 ID 和密碼欄位。
圖10

圖 10:Poison Ivy 連線設定視窗 (ID 和密碼欄位以反白顯示)

這些設定選項可透過Volatility,從彙編後的RAT中擷取。Volatility是一種在記憶體傾印中運作的開放原始碼檔案 記憶體鑑識架構工具。攻擊者會在 Poison Ivy 中設定 ID 和群組欄位,以標記並組成目標對象群組。當多起攻擊出現相同的 ID 或群組名稱 時,研究人員即可推論這些攻擊事件彼此有所關聯。

密碼欄位是 Poison Ivy 通訊加密的關鍵。它的預設值是「admin」,而且通常維持不變。但若經過主動設定,密碼 就會成為一項蛛絲馬跡。它們通常是獨一無二的,而且攻擊者很少在目標性攻擊活動中重複使用。


在軟體中,Mutex是一種程式物件,用來確保一個程式的多重執行緒不會同時使用相同的資源。而在Poison Ivy中,Mutex 是一種判斷該工具是否在受感染的系統上執行的指標,以避免執行超過一個以上的實例。Poison Ivy使用的預設 Mutex 值是 )!VoqA.l4。如在 Poison Ivy中所設定的密碼一樣,任何非預設值通常具備獨一性,因此成為一個有力的指標。

7. 行為
人是習慣的動物。攻擊者像一般人一樣,時間一長都會表現出慣性的行為模式。他們會鎖定相同的目標、使用相同的C&C伺服器,並且將重心擺在相同的產業。這些慣性策略會洩漏攻擊者的手法、目標和動向。這就是之所以要對攻擊者進行側寫的立意所在。這很像罪犯側寫有利於偵探鎖定嫌疑犯,安全專家也可以長期觀察攻擊者,並記錄其行為模式。利用這些資訊,研究人員可依特定集團的習性,找出其犯案風格和手法。

同樣地,攻擊者的犯案工具和手法也有利於側寫。圖 11顯示四種不同手法、不同引誘方式和不同的初步惡意軟體植入。但全部都是鎖定宗教示威人士。而且如標題資訊所示,他們都是從相同的伺服器發出,有些是從 Yahoo!發出。有些是Web電子郵件服務發出,有些是採用指令碼發出。這些證據都指向在同一個集團、使用相同IT基礎架構的多名發動者。

圖11
圖 11:四封網路釣魚電子郵件

結論
上述信件的特性若獨立來看,都無法證據確鑿。但是當多項徵兆都指向同一個攻擊者時,研究人員即可高度推斷出 某攻擊活動背後的指使者。該資訊有助於預測其攻擊手法和動機,讓安全專家更準確地預測未來的攻擊,以及保護已遭鎖定的系統和資料。

當必須處理包含攻擊和修復損害的緊急任務時,判斷攻擊來源看起來好像不是這麼必要。但事實上不然。當遭目標 鎖定的組織知道攻擊者的手法和目標之後,即可以使用該資訊採取下列措施:

  • 立刻轉移資源來支援易受侵入的資料

  • 請求其他協助,無論是動用內部資源或執法單位。

  • 更詳細檢查其他可能已遭攻擊者用於其他攻擊活動的媒介 (之前可能疏忽的媒介)

如能整合上一次在其他地方、由同一個攻擊者發起攻擊活動中所收集到的情報,瞭解攻擊的來源可能更為有利。如可透過專業廠商的客戶群共享經匿名的威脅情報,提供有關策略、通訊協定、連接埠和攻擊者所用回呼頻道等資訊。


相关文章:

  • 通过Keepalived实现Redis Failover自动故障切换功能[实践分享] =转载
  • SQL Agent 与 Analysis Server 使用同一个账号
  • getRequestURI在不同tomcat下的不同结果
  • echarts数据自我定制(三)--实时数据传输,带回放功能
  • Java软件开发
  • HTML DIV+CSS小技巧
  • 恰当微分方程判别法
  • Magento使用php shell 命令更新索引(index)
  • 主板典型故障解决方法
  • PHP-深入学习Smarty
  • 一个诡异的网络问题追踪
  • cocos2d-x---CCLabelTTF加载字体库
  • 为什么rsync能够快速删除400000文件?
  • 全键盘操作Windows
  • Android中的后台邮件发送
  • ----------
  • [nginx文档翻译系列] 控制nginx
  • 【个人向】《HTTP图解》阅后小结
  • java正则表式的使用
  • JS题目及答案整理
  • Mybatis初体验
  • Python学习笔记 字符串拼接
  • Vue 2.3、2.4 知识点小结
  • 线性表及其算法(java实现)
  • 用Canvas画一棵二叉树
  • 中文输入法与React文本输入框的问题与解决方案
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #《AI中文版》V3 第 1 章 概述
  • #宝哥教你#查看jquery绑定的事件函数
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (HAL库版)freeRTOS移植STMF103
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (万字长文)Spring的核心知识尽揽其中
  • .NET Core中的去虚
  • .NET 药厂业务系统 CPU爆高分析
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • @Autowired @Resource @Qualifier的区别
  • @staticmethod和@classmethod的作用与区别
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [20150707]外部表与rowid.txt
  • [20170713] 无法访问SQL Server
  • [20180129]bash显示path环境变量.txt
  • [Android]创建TabBar
  • [BZOJ1008][HNOI2008]越狱
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C/C++] -- 二叉树
  • [C/C++]数据结构 栈和队列()
  • [C++]类和对象【上篇】
  • [codevs 1515]跳 【解题报告】
  • [Eclipse] 详细设置护眼背景色和字体颜色并导出
  • [HeadFrist-HTMLCSS学习笔记][第一章Web语言:开始了解HTML]
  • [Jenkins] Docker 安装Jenkins及迁移流程