2011-11-13

為什麼 autorun 是一張可怕的空白支票?

TODO: 還沒時間寫,如果網友有興趣,歡迎在回應欄先給個清晰的答案,造福人群,功德無量。

後記 2012-02-22(這其實是本文,但實在是拖太久了,所以還是稱為「後記」。)

這裡所謂的「空白支票」概念裡,最關鍵的就是授權的問題,也就是既授權又無法控管所授權之內容,其內容任人隨意填寫,其結果則由授權人負責,任何身敗名裂的不良後果當然不難想像。

「Autorun」,可說是微軟公司的「獨家」。先不管其初衷、其初始的作法以及後續作業系統版本的各種應變作法,Microsoft 公司所創造出來這個「便利」,導致其使用者在無知的情況下,將自己私密的電子計算機及其裡面的所有數據,毫無保留地,不當授權給任何外來程式碼。

曾幾何時 "this company" 有負責任地大聲警告過他的所有使用者說,
autorun 在本質上可以是一種毫無保留的授權?
而且授權的範圍跟我們所比擬的「空白支票」完全一樣,是任人隨意填寫的。所以,如本文標題所述,它當然可怕。而且,實務上也已經證實,像這樣的「創舉」不知道已經浪費掉地球上所有這家公司的主動或被動追隨者多少人年(請參見文後的連結及再連結,看都看不完)。事實上,也不需要那麼實證地去觀察這些使用者將會碰到多少遠超過於其所帶來「便利」的麻煩,光是由 autorun 的定義來看,其功能就已經註定將為這個「作業系統」帶來多少災難,因為它已經違反了資訊安全規則第 0 條。

儘管如此,"autorun" 這個概念,自始就蘊含於這個「作業系統」的創造精神裡。由這個精神出發,"autorun" 的誕生終究是無法避免的。所以,終極的問題並不在 autorun 本身,而在於這個「作業系統」的設計哲學。是什麼樣的設計哲學呢?一言以蔽之,就是「您只要點一下滑鼠,世界上所有美好的事情就會自動地呈現在您眼前」。那麼錯誤在哪裡呢?很簡單!這種東西並不存在。不只是因為現代(2012)的電子計算機科技還處於一個尷尬的階段,而且更是因為它永遠也不會存在。這一點,只要好好地坐下來,就可以想得通,不需要我們再去論證。那麼它是騙人的?對!它就像我們所看過最卑鄙的不實廣告一樣,雖然他們並沒有真的這樣講,可是他們所傳達給使用者的,在在都是這樣的訊息。

那怎麼辦呢?有太多的使用者正在使用這個「作業系統」,也並非總是出於自由意志,在這一點上我們無力改變,而所可以做的事情,就是闡明它的本質,並指出一些對於每一個微軟使用者最關鍵的須知。我們無意加諸無辜的使用者更多的負擔,像是去修改 register、安裝額外的軟體、分辨 autoplay 與 autorun 不同的行為等,關於這些,都可以循著文後的連結找到你所需要的細節。在這裡,我們只提出一點,那就是
切記!你每一次親手點下滑鼠上的任何一個鍵,就等於是一次授權,就相當於一次親筆簽名,也很可能相當於一張空白支票,只不過並不是每次都剛好有人拿去填寫、兌現。當然就更不用說,親手輸入一堆字,然後按下 [Enter] 鍵。無論是點下滑鼠還是按下 [Enter] 鍵,你都必須了解,這是一個授權的行為。對方,無論是什麼程式、問的是哪些問題,你都必須心裡有數。因為你的這個舉動會授與它們跟你相同的權限(permissions),去做所有你自己可以做的事情。換句話說,你必須知道,支票上填寫了什麼,也必須知道支票是給了誰。
那麼是給了誰呢?這當然包括所有可能出現的病毒以及任何惡意的程式碼。在計算機安全及資訊安全上,所需要注意的事情實在太多,也很複雜。而我們在這裡所點出的,是一件被認為無傷大雅的滑鼠點擊行為,因為這個行為被 "this company" 過度濫用。為了讓各位更容易記得住,
擊滑鼠」=「頭同意」
所以,我還要不厭其煩地再問一次,你到底點頭同意了什麼事情?你向誰點了頭?

後記 2015-07-29

事隔將近四年,在 2015-07-27 美國時間早上,Zimperium zLabs 發現了幾乎所有安卓作業系統的智慧型手機都存在的嚴重安全漏洞。[13] [14] [15] [16] [17]

簡而言之就是,如果有人向你發送一封簡訊(SMS),你的手機會自動由它的連結下載多媒體檔案到你的手機上,如果這些多媒體檔案懷有惡意,當你「開啟」(open)檔案的時候,隱藏在裡面的惡意程式碼就有機會得到控制權,大顯身手。惡意的程式碼如果是個「大內高手」,它還可能取得手機的 root 權限,意思就是說,它甚至於可以做你自己都不能做的所有事情。

問題出在哪裡?我已經用紅色字標出來了,就是將近四年前寫這篇短文的原意。聽說 Google 會採取行動,但是等到這些 fixes 到你的手機上,可能還要一段時間。雖然至今尚未聽說因為這個安全漏洞造成什麼損害,但是每一個人都可以自行做一些預防措施。

首先,就要把我們標紅色的字「自動」排除掉,因為「自動」通常是系統的預設。做法是:
  1. 到「訊息 / Messaging」。
  2. 按 menu 圖示,進入「設定 / Settings」。
  3. 找到「多媒體訊息 (MMS) 設定 / Multimedia message (MMS) settings」區塊。
  4. 找到「自動擷取 / Auto-retrieve (Automatically retrieve messages)」這個選項,取消打勾。
  5. 最好再把「多媒體訊息提醒(當模式變更為多媒體訊息時提醒)/ MMS alert (Alert when mode changes to MMS)」這個選項打勾。
以上是根據我的 Sumsung S3 做的。視手機的廠牌而定,以上的文字不見得一模一樣,但應該大同小異。有疑問可以參考 [14] 到 [17],也可以自行搜索其他中文網頁。

這麼做了之後,所有的「多媒體訊息」(MMS)就不會背著你無聲無息地、自動地,把影音檔下載到你的手機。但是你還是有機會點頭同意、或是主動去點閱簡訊(SMS)裡所連結的 多媒體影音 (MMS),這個時候,就必須由你自己判斷,發送這個訊息的人(Sender)是否熟識、可靠,或是他的手機是否可能被駭,遭人利用,傳送惡意程式碼。

後記 2016-04-01

提醒大家注意,Android 手機上的軟體亂象愈來愈嚴重,各種非法廣告愈來愈猖狂。你會看到螢幕上突然出現一個窗子,告訴你你的手機已經感染病毒。這時要切記,一般說來,這個才是病毒!可別在這個窗子上按下任何一個鍵,無論是 [ok],還是 [取消],都不可以!因為這就是本文一直嘗試解說的空白授權。為什麼說這是非法?因為它們用不實的敘述,引誘使用者點擊,進而造成使用者授權它們進行並未表列於合約書上的軟體行為,這是詐術。合約書?那個窗子所表列的事項就是合約,你的點擊就是親筆簽名

那怎麼辦?先試試看能不能回上一頁。如果它們阻斷你回上一頁的機會,試試看 [Home] 那個鍵,回到你手機的常用首頁。不行的話,如果出現廣告的網站是個大站,他們通常不敢太囂張,就只好再試試看點擊打 [x] 的符號,這種廣告常見於各大報的網路新聞,通常是個一般性質的廣告。但是如果廣告出現在色情網站或來源不明的網站,最安全的處置還是關機重開。

最惡毒的就是不經詢問,逕自在你的手機裡安裝軟體,這是明顯違法。有閒有錢的話,應該逕行提告,說不定有機會得到一筆可觀的和解金,還有助於台灣法界改善殘缺且佇足不前的相關法令。如果在手機上的下載資料來裡(常常是 Downloads/),看到來源不明的 .apk 檔案,就應該直接刪除,不要去點它、不要去啟動它!比較沒有經驗的使用者會問,要刪除它的話不是要去點它嗎?是啊,這就是為什麼一開始我要寫這篇文章痛罵微軟啊!「指涉」一個檔案本來就應該有別於「開啟一個檔案並授權執行」,所以你的行動應該要是指涉這個檔案,而採取刪除的行動。至於細節,超乎本文範圍,無須贅述,請剛入門的使用者各自努力,多多熟悉自己手機的作業系統與環境。

哎∼,我還是要擔心剛才寫的 ".apk" 大家能不能看得到,因為,哎∼,Microsoft 造成了一種文化,也感染了 Android,不得不遷就這種文化,使得絕大部分檔案瀏覽程式都預設為,哎∼,隱藏副檔名!哎∼,就請大家各自努力,多多了解跟自己最親密的手機吧。對不起,我不熟悉 iPhone 的狀況。


External Links

[1] AUTORUN.INF 語法, 2008-02-29
     http://dan-de-li-on.blogspot.com/2008/02/autoruninf.html

[2] Autorun.inf 簡介, 2009-08-29
     http://edisonshih.pixnet.net/blog/post/27755651-autorun.inf-%E7%B0%A1%E4%BB%8B

[3] 請問如何自動執行usb手指裹面的程式, 2008-01-24
     http://forum.icst.org.tw/phpbb/viewtopic.php?t=14336

[4] 有關隨身碟 autorun.inf 觀念釐清問題, 2008-01-24
     http://forum.icst.org.tw/phpbb/viewtopic.php?t=14339

[5] Microsoft, USB Storage - FAQ for Driver and Hardware Developers, Updated: October 28, 2010
     http://msdn.microsoft.com/en-us/windows/hardware/gg487419.aspx
Q. What must I do to trigger AutoRun on my USB storage device?
The AutoRun capabilities are restricted to CD-ROM drives and fixed disk drives. If you need to make a USB storage device perform AutoRun, the device must not be marked as a removable media device and the device must contain an Autorun.inf file and a startup application.
The removable media device setting is a flag contained within the SCSI Inquiry Data response to the SCSI Inquiry command. Bit 7 of byte 1 (indexed from 0) is the Removable Media Bit (RMB). An RMB set to zero indicates that the device is not a removable media device. An RMB of one indicates that the device is a removable media device. Drivers obtain this information by using the StorageDeviceProperty request.
For more information about the SCSI Inquiry command, see http://www.t10.org .
For more information about StorageDeviceProperty, see the STORAGE_DEVICE_DESCRIPTOR storage structure in the WDK documentation at http://msdn.microsoft.com/en-gb/library/ff566971(VS.85).aspx.
For more information on Autorun.inf files see "Creating an AutoRun-Enabled Application" at http://msdn2.microsoft.com/en-us/library/aa969330.aspx.
[6] Microsoft, Creating an AutoRun-Enabled Application
     http://msdn.microsoft.com/en-us/library/aa969330.aspx

[7] NOWnews 今日新聞網, 網路追追追/隨身碟防毒密技:按住Shift不放?, 2008-11-07
     http://www.nownews.com/2008/11/07/91-2361263.htm

[8] Microsoft, Conficker Worm: Help Protect Windows from Conficker, 2009-04-10
     http://technet.microsoft.com/en-us/security/dd452420.aspx

[9] Microsoft, What's the difference between AutoPlay and autorun?
     http://windows.microsoft.com/en-US/windows-vista/Whats-the-difference-between-AutoPlay-and-autorun

[10] Microsoft, Set up Windows to automatically play CDs and DVDs
      http://windows.microsoft.com/en-US/windows-vista/Set-up-Windows-to-automatically-play-CDs-and-DVDs

[11] Microsoft, AutoPlay: frequently asked questions
      http://windows.microsoft.com/en-US/windows-vista/AutoPlay-frequently-asked-questions

[12] Jon Larimer, Beyond Autorun: Exploiting vulnerabilities with removable storage,
     IBM X-Force Advancde R&D, 2010
     https://media.blackhat.com/bh-dc-11/Larimer/BlackHat_DC_2011_Larimer_Vulnerabiliters%20w-removeable%20storage-Slides.pdf

[13] 史上最糟系統漏洞被發現 影響95%安卓手機, ETtoday, 2015-07-29
     http://www.ettoday.net/news/20150729/541928.htm#ixzz3hFJlFONP
東森新聞記者陳慧蓁、詹珝榕/綜合報導

使用安卓系統(Android)手機的用戶要注意了,行動資訊安全公司辛培力安(Zimperium)發現,安卓智慧手機作業系統有安全漏洞,只要駭客寄一條影音簡訊,就能駭進手機。這個安全漏洞無法防範,只能等手機廠商發送更新。用Android 2.2以上版本(Android 2.2到Android 5.1版)的手機,也就是過去5年來新推出的安卓手機,都有這個漏洞,估計9.5億手機用戶受影響。

講電話、收簡訊,現代人人手一支智慧型手機,但要當心,手機可能讓你全都露。美國資安公司辛培力安發現的問題,在於Android裡面稱為「怯場」(Stagefright)的多媒體自動播放設計,原本是讓手機收到影音時會立刻預先處理,讓用戶一點就開,沒想到駭客加以利用,不論是透過Google Hangouts,或是基本的簡訊App,只要手機一收到惡意簡訊就被駭了。

CNN記者指出,「駭客只要知道你的手機號碼,傳一封文字簡訊附一張照片,你不需要打開或點擊連結,駭客就可以接管你的手機。」最可怕的是,他們可以接管你的手機照相機。CNN記者就在不知情下,被迫示範手機被駭的情況,資安達人示範,「我現在進入SD卡了,就是你所有的記憶體位置,還有你的圖片庫。」

更可怕的是,駭客可以在發完簡訊駭入後,再刪掉訊息,受害者根本渾然不覺。基本上,Android 2.2以上版本的手機都有這個漏洞,估計多達9.5億支手機受影響,怎麼辦?CNN記者說,「如果你接獲更新通知,就照辦吧!」安卓手機用戶須留意是否收到手機廠商的更新通知,才能避免被駭。

目前還沒有任何一樁因此受駭案例,而辛培力安已與谷歌(Google)合作,開發針對此安全漏洞的修補程式,但可能要耗時數月之後,用戶才能使用到這個修補程式,因此提醒安卓用戶積極更新手機軟體,做好保護。
Android Stagefright vulnerability leaves handsets at risk
CNET, 2015-07-27
http://www.youtube.com/watch?v=Rvjgk9kUCsc

[14] Kellex, Pretty Serious Stagefright Security Flaw Found on Android,
     Probably Affects Your Phone, DroidLife, 2015-07-27
     http://www.droid-life.com/2015/07/27/stagefright-android-mms-flaw-scary-as-f/

[15] Jacob Long, Vast Majority Of Android Devices Are Vulnerable To 'Stagefright' Exploit That Can Be Executed Via Text Message, According To Researchers,
     Android Police, 2015-07-27
     http://www.androidpolice.com/2015/07/27/vast-majority-of-android-devices-are-vulnerable-to-stagefright-exploit-that-can-be-executed-via-text-message-according-to-researchers/

[16] Paul Ducklin, The "Stagefright" hole in Android - what you need to know,
     naked security, 2015-07-28
     https://nakedsecurity.sophos.com/2015/07/28/the-stagefright-hole-in-android-what-you-need-to-know/

[17] Greg Baugues, How to Protect Your Android Phone From the Stagefright Bug,
     twillio blog, 2015-07-27
     https://www.twilio.com/blog/2015/07/how-to-protect-your-android-device-from-stagefright-exploit.html

沒有留言:

張貼留言