https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/
https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/

觀點

關閉Autorun大解析

2009 / 03 / 06
林佳明
關閉Autorun大解析
現在很多企業資料的外洩都是經由「可攜式儲存設備的入侵」。即透過USB拇指碟或硬碟來進行入侵,較知名的惡意攻擊為USB Worm。

員工A:「長官!長官!請趕緊打開報紙,您昨天和外國廠商私人密會的會議紀錄
全都被我們的競爭對手給紕漏了!」
副總裁:「怎麼會這樣?我們的會議記錄不是沒有透過網路(電子郵件)傳輸的
嗎?而且編寫會議紀錄的電腦是實體隔離的主機,根本不能和網際網路連線的怎麼會被攔截的?」
員工A:「長官,我們猜測是不是傳真機或是印表機被入侵,所以在印表或傳真的
同時也外洩一份給對手了呢?畢竟這兩樣備都曾經被利用來進行惡意行為!」(註)
副總裁:「好!那以後我們的機密資料全都使用人工來傳送!這樣就不用再怕被對
手給攔截了吧!」

利用USB Worm攻擊可攜式儲存媒介成為資料外洩管道
也許您對這樣的故事覺得似曾相似。公司機密資料外洩類似的事件總是層出不
窮,可是在沒有查明外洩原因之前,人們就會開始胡亂的猜測甚至是推論出荒謬的結論,可是卻對於後續的安全防護卻是一點幫助也沒有。故事中企業對於印表機與傳真機的懷疑雖然不無道理,但是技術門檻都有點難度。印表機要被暗藏晶片,如果沒有製造現在很多企業資料的外洩都是經由「可攜式儲存設備的入侵」。即透過USB拇指碟或硬碟來進行入侵,較知名的惡意攻擊為USB Worm。
微軟在Windows環境中提供了Autorun(自動執行)的功能,在使用者放入光碟、插入 外接式儲存裝置或連線網路磁碟時,會執行autorun.inf裡所定義的執行動作。對於電腦的初學者來說,這是一項非常方便的功能。因為當使用者拿到光碟的時候不再需要去猜測應該執行那個執行檔才能執行遊戲或安裝應用程式。在沒有這項功能的時代,使用者拿到一張光碟後在沒有閱讀說明書的狀況下,要先使用檔案總管或者是dir指令檢視裡面有哪些執行檔/?批次檔。然後猜測哪個檔案才是安裝程式或是執行用的主程式。使用者當然還是有些準則可以使用,像是一般要安裝應用程式的時候可能的選擇有install.exe、setup.exe或make.exe等,這類代表安裝的檔名。可是有些廠商就是不喜歡使用這類常用的檔名,或者是某些應用套件是一大堆應用程
式的整合,跟目錄下就存放著一大堆xxsetup.exe的執行檔,讓使用者感到混淆。
然而,這項自動執行的功能卻也讓一些不懷好意的人有了可趁之機,藉由這項「自動」執行的特性來執行惡意程式。最出名的例子就是Sony BMG在2005年的時候被踢爆會在所生產的CD唱片中放入特定程式,只要是使用Windows作業系統的電腦來播放這些「正版」唱片,電腦就會被安裝用以偵測是否正在播放合法音樂的rootkit。以及近期被發現Maxtor 行動硬碟中內含有木馬程式的事件。
因應這類事件,有人提出國內應該制定產品品質檢測的機關或法條來確保產品的安全。可是這對使用者來說是緩不濟急的,最快的方法就是將自動執行這項功能給關閉。

微軟網站上的解法只停止磁片插入電腦的AutoRun
既然自動執行是Windows獨有的功能,那麼要找出將其關閉最快的解決方法就是到官方網站上搜尋官方文件。節錄文件中的文字如表1。
其他各種網站的建議解法也都不外乎是套用以上的2項設定。可是微軟的作業系統總是會在令人意外的地方發生狀況,如果僅設定以上的登錄值,自動執行功能僅是被「不完全」關閉。問題就發生在文件中的這一句話:「如果將啟用自動執行功能的
磁片插入電腦,自動執行功能將不再生效!」以上的設定只會停止「磁片插入電腦」時的自動執行功能。可是自動執行並不是只有在插入裝置/光碟片時才會被觸發,當使用者使用桌面上「我的電腦」圖示來開啟光碟或USB裝置時自動執行功能一樣會被觸發!
讀者可以使用以下的步驟來測試自己的作業系統是否真的已經正確的關閉自動執行功能:
. 在可攜式U S B 姆指碟/ 隨身碟中建立名為
「autorun.inf」的檔案。
. 編輯autorun.inf檔案的內容,輸入
 [AutoRun]
 Open=notepad.exe
 Shell\Open\command=notepad.exe
 shell\explore\command=notepad.exe
. 移除隨身碟,再次將隨身碟插入主機中。
. 點選桌面上「我的電腦」圖示再點選「卸除式磁碟」 (USB隨身碟)。
如果電腦會跑出「記事本」程式就代表自動執行功能並未完全被關閉。

停用Shell Hardware Detection服務只停止USB隨身碟的AutoRun
Windows作業系統都是依靠著登錄機碼與服務在運作著,既然設定登錄機碼只能「半」關閉自動執行功能,那麼向服務下手是否就可以完全停止自動執行功能了呢?筆者同事開始著手測試,最後發現將“Shell Hardware Detection”這個服務(Windows XP以上作業系統才有的服務)給關閉就可以將自動執行功能給「2/3」關閉。為什麼是關閉2/3呢?因為
停用此一服務只能停用USB隨身碟的自動執行功能,對於USB外接式硬碟以及網路磁碟都沒有作用,依然會有遭受入侵的風險。
那麼為何我們還是要介紹這一個不完全的關閉方式呢?因為如果您是只用USB隨身碟的使用者,那麼就可以在插入他人或未知是否安全的隨身碟之前
先將這項服務停止,避免被USB Worm給感染。而服務的停止與啟用會比以下所介紹其他的關閉自動執行功能方式來得方便。關閉的方式是:
. 使用滑鼠右鍵點選桌面上「我的電腦」圖示,選
擇「管理」。
. 在「電腦管理」介面選擇「服務及應用程式」中的服務。
. 使用滑鼠左鍵兩次點擊“ S h e l l H a r d w a r e Detection”服務。
. 按下服務狀態下的「停止」即可停止服務;點選 「啟動」即可啟動服務。
由於筆者的筆記型電腦必須時常裝卸他人的隨身碟,所以筆者是直接將該服務的啟動類型設定為「已停用」,長期停用該服務避免臨時忘了停用服
務而遭受入侵。

台灣微軟的建議
以上的2個方法都不能完全的停止自動執行,那麼使用者就只能放棄任由人來入侵嗎?當然不是,最後經過筆者公司與台灣微軟的諮詢,台灣微軟提供了2項解決方案來預防入侵者透過自動執行功能來攻擊。

將「我的電腦」藏起來

將桌面上「我的電腦」圖示隱藏起來,強迫使用者只能使用檔案總管來開啟隨身碟,如此可以降低使用者無意中執行autorun.inf的風險。執行步驟:
. 於「開始/執? 行」中執行gpedit.msc。
. 到「使用者設定/系? 統管理範本/桌? 面」 點選從桌面上移除「我的電腦」圖示,按右鍵內容選取「已啟用」,選取確定後離開。

拒絕權限 
設定HKEY_CURRENT_USER\Software\microsoft\ Windows\CurrentVersion\ Explorer\MountPoints2 機碼 之everyone權限,USB仍可以正常使用,但不會再
執行autorun.inf檔。執行步驟:
. 下載Windows Resource Kit Tools - SubInACL.exe 工具。下載網址:http://www.microsoft.com/ downloads/details.aspx?FamilyID=E8BA3E56-D8FE-
4A91-93CF-ED6985E3927B&displaylang=en
. 使用SubInACL工具於命令列模式下執行以下指令 SubInACL /subkeyreg HKEY_CURRENT_USER\ Software\Microsoft\Windows\CurrentVersion\Explorer\ MountPoints2 /deny=everyone=f
將桌面上「我的電腦」圖示隱藏起來只是權宜之計,還是必須搭配設定上述方法一的登錄機碼才能避免放入裝置時的自動執行。而MountPoints2登錄機碼則是負責儲存磁碟詮釋資料(drive metadata)的地方,autorun.inf也是在此處被執行,設定此登錄機碼任何人都不得存取將可讓autorun.inf無法被執行。

簡簡單單的拒絕權限
上述將MountPoints2登錄機碼設定為任何人都不得存取是目前最有效的解決方案,可是如果在實體隔離的主機是無法上網抓取SubInACL.exe工具的。如果將非實體隔離電腦上的SubInACL.exe工具透過隨身碟複製到實體隔離的電腦上,又會擔心隨身碟可能早就遭受感染危害到實體隔離電腦。因此我們在這裡介紹直接使用設定拒絕權限的方法:
. 在「執行」中輸入regedit指令。
. 在登錄編輯程式中找到以下登錄機碼:HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\MountPoints2
. 在 MountPoint2登錄機碼上按右鍵選「使用權限」。
. 點選「新增」按鈕,並輸入「everyone」後選擇 「確定」。
. 在MountPoints2權限畫面點選Everyone,將完全控制拒絕的勾勾選上。
. 按下確定離開(請不用理會警告)。
這樣就已經設定任何人都不得存取MountPoint2 這個登錄機碼。如果要取消拒絕權限繼續使用自動執行功能,只要在MountPoints2權限畫面將Everyone
群組給移除就可以了。
所以如果企業忽略了關閉自動執行功能的防護措施,就很有可能會如同一開始作為例子的公司發生以下的狀況。公司秘書在家裡將iPod插入電腦更新歌曲,此時電腦中的惡意程式也偷偷的將自己寫 入iPod以及autorun.inf中。然後秘書又將自己的iPod 帶到公司接上實體隔離電腦進行充電,iPod中的惡意程式被自動執行功能給觸發竊取機密資料到iPod 中。秘書回到家再次把iPod插入電腦,機密資料被惡意程式存放在硬碟中,企業的競爭對手結果透過Foxy這類P2P的分享軟體意外的搜尋到對手公司的機密資料。
註:美國在波灣戰爭前,將藏有木馬程式的印表機賣往伊拉
克;台灣犯罪集團在2004年被查獲,在其所販售的OKI傳真機
設定自動轉發附件功能盜取傳真文件。