攻擊樹(Attack trees)是表示資產或是目標在哪些情形下會受到攻擊的概念圖。攻擊樹可以用在許多不同的應用中。在資訊科技的領域中,會用攻擊樹來描述電腦系統中的威脅英語Threat (computer),以及可能達成該威脅的攻擊方式。不過攻擊樹的用途不限於傳統資訊系統的分析。在國防及太空科技上,也會使用攻擊樹來分析防篡改電子系統可能會受到的威脅(例如軍用飛機上的航空電子裝置)[1]。攻擊樹越來越常應用在電腦控制系統的分析上(尤其是有關電子輸電系統上)[2]。也會用攻擊樹來展示對於實體系統可能有的威脅。

電腦病毒的攻擊樹。此處假設的是類似Windows NT的系統,不是所有用戶都有完整系統存取的權限。所有的子節點之間的邏輯關係都是OR

有關攻擊樹早期的敘述,有些是出自布魯斯·施奈爾發表的論文及文章中,他當時是Counterpane Internet Security英語Counterpane Internet Security技術長[3]。施奈爾顯然有參與攻擊樹概念的形成,也有宣傳推廣此一概念。不過,根據攻擊樹最早期的已發表論文[4],在初期發展時,美國國家安全域可能也有參與。

攻擊樹很類似威脅樹(threat trees),但不完全相同。Edward Amoroso在1994年曾討論過威脅樹[5]

基礎

攻擊樹是多層的樹狀圖,包括一個根,很多葉子,以及子節點。從下往上層看,在子節點成立時,父節點才會成立。若根節點也成立時,表示已攻擊成功。每一個節點的成立只和其直接子節點有關。

一個節點也可能是其他節點的子節點,此時,就代表要發動攻擊,在邏輯上需要有多重的步驟。例如,考慮教室一台鎖在講台上的電腦,若要偷竊該台電腦,可能要將鎖剪斷,或是鎖打開的情形下偷竊。鎖打開的情形可能是因為用其他鎖匙開鎖,或是取得鎖匙,取得鎖匙的方式可能是威脅鎖匙持有人、賄賂鑰匙持有人,或是直接從存放處(例如在滑鼠墊下)偷拿。因此可以畫出四層的攻擊樹,其中一個路徑是(賄賂鑰匙持有人、取得鎖匙、開鎖、偷竊電腦)。

攻擊樹和已發展的故障樹[6]形式有關。故障樹的方法論,在父節點因為子節點而符合條件時,會用布林運算式來處理各個閘的成立條件。若計算各節點的先驗概率英語A priori probability,可以用貝葉斯定理計算概率較高節點的概率。不過在實務上,準確的概率估計可能無法取得,也有可能要蒐集資料的成本太高。有關有攻擊者的電腦安全而言,事件的概率分析可能不是獨立的,也不是均勻分佈的,因此不適用貝葉斯分析。

由於故障樹分析中使用的貝葉斯分析不一定適用應用在攻擊樹上,分析者會用其他的技術來分析特定攻擊者會用的攻擊方式[7][8]。其中可能包括比較攻擊者的能力(時間、金屬、技巧、裝置)以及特定攻擊需要的資源需求。若某個攻擊方式接近(甚至超過)攻擊者的能力,比較不會被攻擊者採用,比較容易採用的是便宜又容易的攻擊。攻擊到什麼程度才滿足攻擊目的,也會影響攻擊者的選擇。若某一個攻擊方式在攻擊者的能力範圍內,又可以滿足目的,就比較容易被採用。

檢驗

若是在處理特定的攻擊時,攻擊樹可能會變的大而複雜。完整的攻擊樹會包括上百個到上千個不同路徑,這些路徑都可以完成攻擊。這樣的攻擊樹在確認有哪些威脅,以及如何處理上相當有用。

攻擊樹可以用來定義資訊保障策略。不過重要的是要考慮到實施資訊保障策略後,攻擊樹是否也要對應的調整。例如防護電腦病毒的一種方式是拒絕系統管理者層次的存取(這類存取可以改變已安裝程式及現有系統目錄),而不是使用軟件套件管理系統。後者會在攻擊樹中增加因軟件套件管理系統的設計問題或是漏洞利用而遭攻擊的風險。

最有效可以減輕攻擊樹中的威脅的方式,是在最接近「樹根」的位置減輕。此作法在理論上合理,但在實務上,減輕單一威脅往往需要以影響系統部機能正常運作為其代價。例如病毒感染Microsoft Windows系統的威脅可以用一般用戶帳號(非管理者帳號)以及NTFS來代替FAT檔案系統,讓一般用戶無法修改作業系統,即可有相當改善。使用此方式就讓用戶無法用病毒傳染作業系統,但是,若用戶需要用到管理相關的功能,此作業需要用戶進行切換,因此在運作上又產生不必要的程式,並且在攻擊樹上增加了其他的威脅。而且,用戶沒有管理者權限時,病毒仍然可以感染用戶的檔案以及檔案。

相關條目

參考資料

  1. ^ U.S. Department of Defense, "Defense Acquisition Guidebook", Section 8.5.3.3
  2. ^ Chee-Wooi Ten, Chen-Ching Liu, Manimaran Govindarasu, Vulnerability Assessment of Cybersecurity for SCADA Systems Using Attack Trees, Archived copy (PDF). [2012-04-04]. (原始內容 (PDF)存檔於2010-06-30). 
  3. ^ Schneier, Bruce. Attack Trees. Dr Dobb's Journal, v.24, n.12. December 1999 [2007-08-16]. (原始內容存檔於6 August 2007). 
  4. ^ Chris Salter, O. Sami Saydjari, Bruce Schneier, Jim Wallner, Toward a Secure System Engineering Methodology, Archived copy (PDF). [2012-04-04]. (原始內容 (PDF)存檔於2011-06-23). 
  5. ^ Amoroso, Edward. Fundamentals of Computer Security. Upper Saddle River: Prentice Hall. 1994. ISBN 0-13-108929-3. 
  6. ^ Fault Tree Handbook with Aerospace Applications (PDF). [2019-02-26]. (原始內容 (PDF)存檔於2016-12-28). 
  7. ^ Donald L Buckshaw, Gregory S Parnell, Willard L Ulkenholz, Donald L Parks, James M Wallner, O. Sami Saydjari, Mission Oriented Design Analysis of Critical Information Systems, Military Operations Research V10, N2, 2005, [1][永久失效連結]
  8. ^ Terrance R Ingoldsby, Amenaza Technologies Limited, Attack Tree-based Threat Risk Analysis, A vendor white paper, Archived copy (PDF). [2012-04-09]. (原始內容存檔 (PDF)於2016-03-04).