安全性監控跳島攻擊:廠商贈品袋的入侵誘惑

Jesper M. Johansson

跳島攻擊 — 透過脆弱的連結滲透網路,然後在該網路內的各個系統間移動 — 這種伎倆由來已久,但花招仍是不斷推陳出新。在當今首重安全性的 IT 環境中,人往往是最薄弱的環節,而心懷不軌的使用者

更是想盡辦法從中獲得好處 (想想網路釣魚和其他形式的社交工程)。當有心人士遇到人性弱點,肯定會對您的網路產生致命的殺傷力。

最讓我拍案叫絕的一個手段就是 Secure Network Technologies 的 Steve Stasiukonis 為客戶進行的滲透實驗。他巧妙地運用人性弱點,在客戶的停車場放幾個 USB 隨身碟,個個藏有特洛伊木馬程式。早上員工抵達停車場時,看到地上有免錢的小工具,個個是喜出望外。他們迫不及待地檢起隨身碟,插入第一台電腦:他們自己的工作站。

有些員工可能有警覺性,知道防人之心不可無,所以並不是每個隨身碟都被撿起來,不過其實只要一名使用者和一個隨身碟,就足以感染系統,提供入侵網路的管道。Stasiukonis 這麼做當然是出於實驗,不過,現實生活中早有罪犯利用這種手法滲透大型公司的網路。

如今 USB 隨身碟到處可見,幾乎每場研討會都有廠商拿它們當作贈品。這些磁碟容量雖小,但只要少少的存放空間就足以接掌整個網路。在此二部曲系列連載中,我將審查這一類的攻擊,並說明有助於緩和風險的方法。在本期的月刊中,我將探討 USB 快閃磁碟到底有什麼作用,以及您要怎麼做來控制它們。在下一期的《TechNet Magazine》裡,我將向您說明如何將攻擊範圍縮小至網路上單一或一小組系統上。

這種攻擊在技術方面的細節其實相當簡單。全都緣起自一個受到感染的 USB 快閃磁碟插入一部電腦中。接下來會發生什麼事,要看該磁碟上的裝載,當然還有使用者有多麼容易受騙而定囉。

開端

講台上有一台無人理睬的膝上型電腦,演講人正忙著在發表簡報之前試著討好聽眾。膝上型電腦本身已經鎖定,但這其實一點也不重要。攻擊者上前到講台徘徊觀望,假裝是在等演講人回來。這些講台的設計都是要將一些像電腦這類不美觀的東西隱藏起來,因此 USB 連接埠跟攻擊者的手都很難看到。一旦 USB 快閃磁碟插入電腦,不消幾秒鐘的時間就展開攻擊。

這種作法當然也有一些明顯的延伸。譬如,以前我每個禮拜到世界各地旅行發表簡報時,幾乎每次演講結束時,都會有幾個人向我要投影片的副本。我的答案向來都是給他們一張名片,要求他們傳電子郵件給我。為什麼當他們個個興高采烈地遞給我 USB 快閃磁碟,我還是決定這麼做呢?因為我知道有 USB Hacksaw 和 Switchblade 這類工具的存在 (如果您不清楚這些工具,不妨到 wiki.hak5.org 查詢一番)。

基本上,這些工具讓幾乎任何人都可以入侵 USB 連接埠沒有設防的人。例如,Switchblade 可以傾印下列內容:

  • 系統資訊
  • 所有的網路服務
  • 接聽的連接埠清單
  • 電腦上各種 Microsoft 產品的所有產品金鑰
  • 本機密碼資料庫
  • 電腦所使用之任何無線網路的密碼
  • 目前登入的使用者存放在電腦上的所有網路密碼
  • Internet Explorer®、Messenger、Firefox 和電子郵件密碼
  • 本機安全性授權 (LSA) 密碼,其中包括純文字形式的所有服務帳戶密碼
  • 已安裝的修補程式清單
  • 最近的瀏覽歷程記錄

所有這些資訊都會被送到快閃磁碟上的一個記錄檔中,而且只需要花大約 45 秒的時間。

Hacksaw 則是稍微改良過的版本,它會在電腦上安裝一個特洛伊木馬程式,來監視所有的 USB 快閃磁碟插入事件。它接著會將後續插入到電腦中的所有快閃磁碟的所有文件以電子郵件傳送給攻擊者。

我目前討論到的工具都是使用 U3 (u3.com),這是一種專門讓使用者將程式隨身攜帶在快閃磁碟上而設計的技術。簡單的說,具 U3 功能的快閃磁碟會虛造自已的身分。它會告訴 OS 它實際上是一個插有快閃磁碟和 CD 的 USB 集線器。Windows Vista 之前的 Windows ® 版本預設會自動執行 CD 上在 autorun.inf 檔案中指定的程式,但不會執行 USB 磁碟上面的程式。具 U3 功能的 USB 快閃磁碟藉由將自己的身分作假,愚弄 OS 自動執行所謂的 U3 常用程式啟動程式。U3 常用程式啟動程式轉而可以啟動程式,提供您功能表,或是進行各種您自己使用電腦時可以做的事。

所有入侵工具的目的,都是要將常用程式啟動程式取代成入侵程式碼。只要快閃磁碟一插入 Windows XP 系統中,入侵工具便會自動執行。在 Windows Vista 上,自動播放的決策流程運作的方式不太一樣。卸除式裝置上其實也會啟用自動執行功能,就跟在 CD 上一樣。這表示當裝置插入時,會發生一連串的動作。在預設的情況下,會出現 [自動播放] 對話方塊,如 [圖 1] 所示。

[圖 1] 當使用者插入含有圖片的卸除式磁碟時,會出現預設的 [自動播放] 對話方塊

[圖 1]** 當使用者插入含有圖片的卸除式磁碟時,會出現預設的 [自動播放] 對話方塊 **

請注意 [圖 1] 中的對話方塊有個 [一律為圖片執行這個動作 (Always do this for pictures)] 的選項。這會設定一個自動播放選項,可以在控制台中設定,如 [圖 2] 所示。

[圖 2] Windows Vista 上的自動播放設定

[圖 2]** Windows Vista 上的自動播放設定 **(按影像可放大)

就「軟體及遊戲」而言,自動播放設定特別有趣。根據定義,它是指卸除式磁碟有個 autorun.inf 檔案指定執行一些程式。[圖 2] 中與「軟體及遊戲」相關的設定是存放在下列登錄機碼中:

Hive:    HKEY_CURRENT_USER
Key:    \Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\
UserChosenExecuteHandlers\AutorunINFLegacyArrival 
Value: (Default)
Data:
MSAutoRun – automatically executes the program specified in the autorun.inf file
   
MSPromptEachTime – prompts the user, using strings specified in the autorun.inf file, if available

因為您不需要是系統管理員就能修改這些設定,所以使用者要怎麼設定它們都可以,包括自動執行在停車場裡面撿到的磁碟上面的各種惡意程式碼。事實上,他們只要在 [自動播放] 對話方塊內勾選適當的方塊就可以這麼做。

管理網路內的自動播放功能

身為系統管理員,管理網路當中的自動播放功能的方法有好幾種。首先,您可以防止使用者啟用卸除式媒體和 CD 上的自動播放功能,方法是修改 NoDriveTypeAutoRun 設定,這個設定控制了啟用自動播放的磁碟類型。Windows XP 的 NoDriveTypeAutoRun 設定是 0x95,也就是會停用不明磁碟類型、網路磁碟和卸除式裝置上的自動播放功能。自 Windows XP SP2 開始,NoDriveTypeAutoRun 設定則預設成 0x91,這會啟用卸除式存放裝置的自動播放功能。使用群組原則的話,[使用者設定]\[系統管理範本]\[Windows 元件]\[自動播放原則] 下有個設定可讓您管理 NoDriveTypeAutoRun 設定。啟用 [關閉自動播放設定並選取 CD-ROM 和卸除式磁碟 (Turn off AutoPlay setting and selecting CD-ROM and Removable Drives)] 將停用這兩種磁碟上的自動播放功能。

不過這將導致使用者看不到 [圖 1] 中的 [自動播放] 對話方塊。事實上,當使用者插入磁碟時,什麼事都不會發生。這種解決方案可能不盡理想,因為它可能會讓不確定如何存取磁碟上必要資訊的使用者不知所措。

您可能會想要控制哪種類型的內容可以自動播放。您在 Windows Vista 上可以這麼做的範圍有限,因為這個 OS 實際上在自動執行軟體方面有兩種控制層級。[圖 3] 中顯示的是群組原則中的另一個控制項,它可讓您使用 autorun.inf 檔案停用軟體的自動播放功能,其餘的 Windows Vista 自動播放行為則保持不變。

[圖 3] 使用群組原則停用 autorun.inf 檔案

[圖 3]** 使用群組原則停用 autorun.inf 檔案 **(按影像可放大)

說到自動播放,它的決策流程就比較複雜一點,用流程表來說明可能比較容易。[圖 4] 描述了在決定是否自動執行卸除式媒體上的檔案時所採用的決策流程。

[圖 4] 自動播放決策流程

[圖 4]** 自動播放決策流程 **(按影像可放大)

其他開端

不用說,這些只是利用 USB 快閃磁碟來侵害電腦的其中一些工具罷了。這種案例可能採用的工具包羅萬象,例如有種工具可以傾印出目前使用者的 Windows NT® 密碼雜湊 (請參閱 microsoft.com/technet/community/columns/secmgmt/sm1005.mspx)。

許多 USB 控制站實際上是直接記憶體存取 (DMA) 裝置,也就是說它們可以略過作業系統,直接讀寫電腦上的記憶體。略過 OS 就等於是略過它所提供的安全性控制 — 表示您現在可以肆無忌憚地存取硬體。換句話說,OS 所實作的裝置控制將完全失效。我還沒看過有任何駭客工具目前是運用這種方法,不過我肯定有人已經用過這種方法。

另一種利用使用者/卸除式裝置組合的入侵方法是直接丟出誘餌。比方說,有多少使用者會按下 [圖 5] 中的對話方塊呢?不一定每個人都會,但可能有很多人會。重點是,要捏造出讓使用者難以抵擋的誘人對話方塊,是件輕而易舉的事。

[圖 5] 有多少使用者會受這所騙?

[圖 5]** 有多少使用者會受這所騙? **

裝置封鎖

群組原則現在有一組原則可以用來控制裝置安裝,這是 Windows Vista 中的全新功能 (見 [圖 6])。如圖所示,如果驅動程式指出新的卸除式裝置是卸除式的,系統管理員便可封鎖它們的安裝。不過,如果驅動程式指明它們不是的話,原則便不會生效。因此,利用自訂驅動程式很容易就可以規避這項原則。

[圖 6] Windows Vista 裝置安裝原則

[圖 6]** Windows Vista 裝置安裝原則 **(按影像可放大)

如需比較細微的控制,系統管理員可以運用原則針對特定的裝置安裝類別採取行動。然而,要這麼做,您可能必須知道要封鎖 (或允許) 的特定裝置類別的 GUID,因此這種方法很難管理。

最低權限真的很重要

暫時把 DMA 的案例擱一邊,我討論到的成功攻擊,以及成功的因應措施,都將視使用電腦的使用者所具的權限而定。如果使用者是標準使用者,那麼入侵所造成的損失其實有限。它仍然會偷取該名使用者的資料,以及該名使用者能夠存取的內容。不過,攻擊的範圍比較不可能大規模影響到網路。

但要是受到入侵的使用者是系統管理員,後果可能不堪設想。在最壞的情況下,若使用者是網域系統管理員,那麼要攻下整個網路簡直是易如反掌。比方說,攻擊者可以從記憶體擷取使用者的密碼雜湊。系統是在登入時將雜湊快取到 LSA 處理序空間內,因此可被用來代表使用者,毫無障礙地存取網路資源。具備系統管理權限的攻擊者可擷取這個雜湊,然後利用它存取任何網路資源。換句話說,如果使用者是網域系統管理員,整個網路就淪陷了。

這把我帶到依存性的話題,目前為止,我所描述的攻擊都是發生在工作站上。我還沒有討論到網路規模的攻擊可能產生的衝擊。在下期專欄中,我將探索依存性的概念,向您說明它們對整個環境有何意義,以及更重要的是,您可以如何強化這些依存性。

Jesper M. Johansson 是負責軟體安全性問題的安全性工程師,也是《TechNet Magazine》的特約編輯之一。他擁有 MIS 博士學位,在安全性領域有 20 年以上的經驗。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.