顯示具有 Security 標籤的文章。 顯示所有文章
顯示具有 Security 標籤的文章。 顯示所有文章

2014年8月1日 星期五

Home, hacked home

  本週(7/12)經濟學人網站上有一篇關於物聯網安全的文章,標題是「Home, hacked home」,該文主要是針對目前方興未艾的物聯網風潮,提出尚末被廠商所重視的物聯網安全性問題以及可能發生的潛藏性風險,若有興趣的話可以看看原文:http://www.economist.com/news/special-report/21606420-perils-connected-devices-home-hacked-home,我在本文介紹了該文的一些重點,並加入一些額外的資訊和觀點。

實際案例:網路攝影機

    文章首先介紹一個案例,這是去年四月在美國Ohio州所發生的真實事件,一個父親發現他用來監看二歲女兒的web camera竟然傳來陌生男人的叫聲「醒來啊,寶貝!」,他立刻趕去女兒房間查看,那台可自動旋轉的web camera在發覺有人靠近後,鏡頭立刻轉向他身上,並且發出一連串不堪入耳的怒駡聲。
    查閱了相關的報導,案例中這台web camera是屬於還蠻常見的家居無線網路攝影機,多用於監看嬰兒和老人的動態,由一家專門製作監視攝影機的Foscam公司所開發販售,這台攝影機具備自動的聯網功能,內建網頁伺服器及影像壓縮串流播放,可透過網頁登入方式來接受控制並傳送目前的影音畫面,駭客唯一可入侵的方式便是破解網頁密碼,但是Foscam寫在firmware的使用者帳號管理系統被發現有個弱點,當你在登入畫面上不輸入任何的字串而連續不斷的按壓Submit按鈕,就可以取得觀看影音畫面以及執行CGI指令的權限,此外,一些相關的論壇及討論區也指出,只要一些電腦發起簡單的阻斷式攻擊(denial of service attacks)就可以讓它內建的伺服器癱瘓。事後雖然Foscam緊急釋出了更新firmware的程式,並採取了一些必要的作法來提醒及呼籲使用者進行升級動作,但根據安全專家的指出,後續追蹤記錄的46,000台foscam當中,只有約6,000台升級了更新程式,一般民眾完全不曉得或疏於防範此類的安全問題,由此可見當大量生產並廣泛使用的物品發生了安全性問題之後,要讓使用者自行去升級作防範的動作有多麼困難。Foscam homepage

物聯網正方興未艾

    現今網路的發達讓我們的生活變得更加的便利,例如智慧型汽車可以在開車時替我們收信並閱讀信件內容,智慧型冰箱會留意耗電的情況妥善的替我們保存並且管理食物的種類和數量,遠距醫療器材讓醫生不用在現場也能進行診斷及開刀,智慧型電視會注意我們的收視習慣並自動搜集相關節目資訊,而在網路發達的國家如南韓,每個城市都急於讓轄內的各項基礎設施都能連網路,以便提供方便的服務並且更有效率的運作。
  在為數眾多只具備單純網路功能的物品連上Internet並開始傳遞資料之後,上述的安全問題可能會愈來愈常見且頻繁發生,依據網設備公司Cisco的報告指出,從現在開始的未來十年期間,將會有500億個連網功能的物品接上網路,其中有相當比例是屬於居家的消費性用品,從3C用品的相機到交通工具類的汽車、廚房的電冰箱到客廳的電視等等;這些產品雖具備網路的功能,但廠商和民眾都忽略了聯網之後的安全性問題,使得這些附加了網路功能的產品在設計上幾乎或沒有資安方面的防護機制,使得這些產品就像初入叢林的兔子,在危機四伏的網路世界中成了駭客眼中的肥羊。http://cdn.static-economist.com/sites/default/files/imagecache/original-size/images/print-edition/20140712_SRC179.png


物聯網的資安問題

    專家們對此萬物皆聯網所帶來可能的危機莫不感到憂心並提出警告,有一個以促進公眾對於新興資安威脅認知為宗旨的團體「I Am The Cavalry」,其轄下的資安專家Joshua Corman指出,其實物聯網的安全議題並不完全等同於我們一般認知的資安問題,「如果你的PC被駭客攻擊了,的確會產生一些困擾和麻煩,但如果對象是汽車,那麼可能你會連性命都沒了。」
    這目前聽來可能有些危言聳聽,但是資安專家們已經實驗過並示範目前一些汽車系統對於駭客的攻擊其實是束手無策的;目前高科技的汽車都是一些微電腦加上各式操控開關的混合物,尤其在輪胎、引擎、煞車等等重要的系統上更是常見,Chris Valasek 和 Mathew Solnik這兩位專家便已作過測試,示範了駭客要取得這些系統的控制權並且接管你的汽車是有可能的。
他們進行了包含了讓行駛中的方向盤突然轉向另一側、引擎在無預警的情況下被關閉等等實驗,這些實測招來了很多汽車製造商的注意,由於目前不同廠牌之間的汽車控制系統並沒有統一規格的設計,所以針對不同車型有不同的破解方法,而且破解的步驟過程相當複雜,必須先針對汽車硬體部份做過更動及修改才能成功駭入,由此看來,或至少在目前而言,我們還不用太擔心自己的汽車會被駭客攻擊,但是科技發展一日千里,誰能保證未來駭客無法潛入您的汽車電腦?
其實就在今年不久前,新加坡有兩個研究員Miller和Valasek就展示了一個跟手機一樣大小的汽車駭客工具,這個叫做「CAN Hacking Tools (CHT)」的工具,總共零件花費不到$25美元,它號稱能輕易取得汽車的控制系統,從窗戶、大燈到油門以及煞車系統等等都能在它的掌握之下,目前該工具是利用Bluetooth進行網路傳輸,但Miller和Valasek宣稱他們正在研發使用GSM方式,可以從好幾公里外就能控制汽車;如果您有興趣的話,可以在這個網頁上看到相關的新聞http://www.forbes.com/sites/andygreenberg/2013/07/24/hackers-reveal-nasty-new-car-attacks-with-me-behind-the-wheel-video/
我們來看看這個汽車駭客工具CAN Hacking Tools所用到的零件:
  1. Arduino mini pro. (MCU)  x1
  2. S19241/MC33290 (ISO-9141 level converter)   x1
  3. LM7805 (Voltage regulator)   x1
  4. i2C 20x4 LCD   x1
  5. Push button+resistors  x4
  6. RJ-45 Female connector   x1
  7. OBD2 connector   x1
  8. 1mt Cat 5/6e Ethernet cable   x1
  9. SD card Breakout board + 2GB SD   x1
  10. Plastic case   x1
http://blogs-images.forbes.com/andygreenberg/files/2014/02/Screen-Shot-2014-02-05-at-7.35.52-PM2-e1391650802638.png
這個駭客工具使用了Arduino這塊便宜的I/O介面控制開發板作為主要的平台,一個電壓轉換器將12V降為Arduino需要的5V電壓,此外還有SD卡讀取槽以及小型的LCD螢幕,搭配Arduino版子上的藍芽模組,使用者可以透過手機或其它的手持裝置來進行近距離的無線控制,在使用時,必須要將該板子與汽車的CAN-bus(Controller Area Network 控制器區域網路)作實體的接觸,板子會透過網路使用CAN-bus的通訊協定K-line與汽車進行溝通並嘗試入侵,因此它其實並沒有我們想像中的那麼強大,這個駭客工具不能隔空對汽車進行入侵的動作,必須先將它的板子與汽車的控制系統連結才行。
除此之外,一些連線到網路的醫療設備也存在安全的顧慮,Jay Radcliffe,一個負責資安的研究員,剛好他自己本身也是糖尿病患者,他發現這些由電腦控制的胰島素幫浦機器存在一些漏洞,讓駭客可以透過無線網路遠端控制胰島素的劑量,他也透過實作並證明這件事的可能性(如左圖,Jay Radcliffe正在示範如何侵入胰島素幫浦並且關閉系統),Jay Radcliffe在最近的文章中,也發出警告說,目前的醫藥科技對於物聯網帶來的安全威脅簡直是脆弱不堪,毫無防範能力。Researcher Jay Radcliffe demonstrates how he can remotely disable his insulin pump.
一些資安專家同意Jay Radcliffe的看法,在他們眼中,一些連網醫療器材設備漏洞的破解方式超級簡單,一位任職於Qualys(為一家專業的企業資安漏洞軟體公司)的資安專家Billy Rios,他和同事就發現了為數眾多的醫療設備存在後門(back doors)的漏洞,這個漏洞的產生大部份是來自於技術人員用來升級系統的預設密碼被駭客利用作為後門來取得破解系統,系統被破解後駭客就可以暗中調整X光機的放射劑量,但是在螢幕上卻還是顯示正常的劑量值。

只知道連網的設備是智慧還是愚蠢?

其實不止汽車或醫療等複雜的設備,就連我們生活週遭的簡單物品,例如燈泡和門鎖也都透過簡單的網路模組連上了網路,問題就在於這些設備構造及設計相當簡單,對於數位攻擊和電腦病毒的防護能力相當薄弱,,而且製造這類家居日常用品的廠商多屬於微利多銷的中小型企業,並無太多資安防護相關的資源與預算投資,而且,若他們沒有與專業的資安公司合作,本身的能力也不足以設計出足夠符合安全性的聯網產品,還有一點最重要的,由於這類的產品都是批量生產,在天生就無防護能力的疑慮下,大量製造又無能力進行事後的升級與修補的後果,便可能讓物聯網世界的資安問題愈滾愈大。
就在上個月(六月份)美國的資安公司TrapX Security就發現有一種惡意程式稱為「Zonbie Zero」暗藏在一家中國廠商生產的掌上型條碼掃瞄器中,它藉由預先載入的Windows Embedded XP系統夾帶「Zonbie Zero」惡意程式,雖然這款機器號稱有資安的認證,但其實只是跟惡意程式一起擺著好看的,一旦機器啟動並偵測到無線網路之後,會藉機偷錄文件再回傳到位於中國本土的伺服器,並且在進入企業的網路後開始搜尋內網中所有名稱帶有”finance”字串的主機,以竊取相關的財務、客戶、售價、出貨等等資料,而這還只是該惡意程式的第一波行動,接下來,該惡意程式還會進行第二波攻擊,它連回位於中國的主機(報告中稱為command-and-control server),下載更多的後門及病毒,並且嘗試在企業內部把已經受到控制的主機也設定為command-and-control server,以逐步的跨大其影響範圍,而這一切禍患的源頭,只是因為用了一台具有聯網功能的掌上型條碼掃瞄器而引起(此相關報導可見:http://www.pcworld.com/article/2453100/malware-hidden-in-chinese-inventory-scanners-targeted-logistics-shipping-firms.html)。
另一個案例是2014年初美國Team Cymru(一家資安公司)發現分佈在全球約30萬台左右的家用無線路由器,包含了D-Link, Micronet, Tenda, TP-Link等品牌,曾經被來自巴西的駭客入侵並竊取了大量的銀行帳號;駭客是利用一種稱為跨站請求偽造的漏洞(cross-site request forgery簡稱為CSRF),方法是先透過區域網路內部的一台PC經由網路下載了惡意的Javascript程式碼,並更改了路由器的DNS設定,往後任何透過該路由器的設備皆會取得不正確的DNS資訊,例如當使用者要連上網路銀行時,他連上的並不是正確的網路銀行位址,而是經過假造的、導向駭客所另外架設、專用用以竊取銀行的帳號密碼的主機,其步驟方式如下:

  1. 使用者在不知情的情況下,誤上了惡意的網站並執行了有病毒的Javascript程式碼,該程式碼具有修改路由器DNS的能力。http://cdn.arstechnica.net/wp-content/uploads/2014/03/csrf-router-attack.jpg
  2. 路由器會回覆經過假造的DNS給所有經由該路由器的DNS詢問封包,相關設備收到DNS回覆後並以此IP資訊連上假冒的網站。
  3. 該站台可能為假冒的網站銀行或各種需要登入的網頁,使用者在不知情的情況下便輸入了自已的帳號密碼,並傳送到駭客的資料庫中。
除了上述的兩個已為人知的例子,現在還有很多的家電設備在附加了微型的處理器後便號稱智慧化並開始出現在民眾的家中,它們在網路上相互連結並交換資訊,有些還會透過一種稱為家庭自動化的系統來集中控制與管理所有的智慧型家電,這種透過集中化管理的環境若有任何的漏洞與缺失反而會造成更大的安全問題;今年一月便有一家稱為「Proofpoint」的資安公司宣稱他們發現大量的家用路由器、智慧型電視和冰箱被駭客控制用來發送大量的垃圾郵件,如果只是這樣還好,但如果是意欲縱火的駭客控制了瓦斯爐會如何呢?前述的那位資安專長說他還另外更發現了數萬個企業的線上供熱、空調以及通風控制系統藏有缺陷,很容易讓駭客發現並攻擊。

Broadcom的BCM20737 SoC

針對物聯網安全性的需求,也有廠商看到了此類的商機,像是Broadcom便在今年5/21推出一款型號為BCM20737 的WICED(嵌入式無線網路連結裝置)Smart 系統單晶片(SoC),該晶片具有Bluetooth功能,支援RSA加解密以及Apple的iBeacon技術,只要將把該晶片整合在原有的手機、平板、健康健身設備以及穿戴式設備上,就能讓原本對於資安威脅毫無招架能力的產品揺身一變立即百毒不侵而且不影響原本的功能和運作方式。
http://img.technews.tw/wp-content/uploads/2014/05/50005_PR_Chip_Images_BCM20737-624x624.jpg
Broadcom BCM20737 主要功能:(此部份內容摘自Computex 2014新聞網站)
  • 高電源轉換效率-AC 轉 DC 的效率高達 88%
  • 高效能-比傳統 USB 與壁式充電器更快的充電速度,最高可達 7.5W
  • 支援 Boost 模式-減少 50% 的充電電壓
  • 自動選擇充電標準,支援標準或是單一模式作業
  • 可與 NFC 共存-提供高品質的 NFC 效能
  • 製造靈活性-可用於智慧型手機主機板或電池蓋上
  • 不占 PCB 空間-在單一標準元件的空間中提供多重標準的支援
  • 低成本-低物料成本。除了 WICED Smart 晶片外,無須其他外部主動元件   
Broadcom BCM20737的重要特色:(此部份內容摘自Computex 2014新聞網站)
  • 加密、解密、憑證簽章、驗證與各種可加強隱私的演算法
  • 支援 iBeacon 技術
  • 支援 A4WP Rezence 無線充電
  • 內建可直接與 NFC 標籤連線的軟體
  • 可支援高達八個同步作業的主從連線
  • 透過 Bluetooth Smart 晶片支援音效功能,讓玩具、遙控器等裝置具備語音功能
  • 高整合度的 ARM Cortex M3 應用處理器,可降低解決方案體積與成本
  • 卓越的接收敏感度,讓藍牙周邊設備獲得最大的距離與覆蓋率
  • 內建多頻道類比數位轉換器 (ADC),可測量感測器輸入與電池電力等狀態
  • 在晶片上提供內建許多 Profile 的堆疊,省去使用外部堆疊的需要
  • 支援通用非同步收發器 (UART)、序列周邊介面 (SPI) 與博通序列控制介面,可與外接的非揮發性記憶體、周邊整合晶片與感測器通訊

最後

目前所謂的資訊安全專家,他們所宣稱的物聯網安全威脅言論在部份人士耳裏可能會覺得過於危言聳聽,例如在我們的實際生活中,至少截至目前為止,還沒有真正發生過汽車因受到駭客控制而在路上突然停車,或者有任何的醫療設備因駭客入侵而失去控制等等造成你我的人身安全直接受到威脅的情況,因此這些資安專家所宣稱另人驚恐的言論及進行的各種誇大測試,很有可能是為了其背後所屬的相關資安咨詢設備、服務等等公司龐大的利益所考量的商業行為。
不過我們還是必須承認,雖然現在的網路交易已經相當發達普遍,但是還是有很多人出於安全考量而拒絕在網路上消費,或許他們可能過於謹慎小心,但這些人的存在就證明了安全的使用環境是一個產業運作發展是否良好的重要指標與基礎,既然物聯網號稱以打造一個智慧的生活環境為號召,那麼我們在開發相關的產品時,也應將其安全性放置於首位,將它們設計成真正是具有「智慧」的物聯網產品,而非僅止是「聯網」的物品,這樣消費者能夠放心的使用它們並交託給它們相關的任務,物聯網產業才能真正興旺。

2014年4月16日 星期三

HeartBleed

http://o.aolcdn.com/hss/storage/midas/9e9126401a8067322599f1e3a2f36e59/200018786/018.jpg
    最近在資安業界沸沸揚揚的一個話題,就是全球普遍使用的OpenSSL加密技術,出現了一個重大的人為疏忽;這個被命名為「HeartBleed」的漏洞,原本是一個很單純的程式思慮不週錯誤,在二年前由一位德國軟體開發工程師Robin Seggelmann針對openSSL所作的一系列功能更新中被上傳,而隨後openSSL的例行檢查人員也沒有注意到這個問題,因此該bug就隨著更新版本而散發出去了;依據「時代」以及「Time」等雜誌報導統計,全球預估有近三分之二的網站伺服器都有使用OpenSSL協議,因此「HeartBleed」影響範圍之大,被外媒形容為「最危險的網路安全漏洞」。

關於SSL

SSL是Secure Socket Layer的縮寫,最早由Netscape公司所提出,可在Internet上提供兩個端點之間的加密性傳輸,目前已廣泛的應用在HTTP連線上,例如,當我們以「https://」方式連上網站,如果瀏覽器的右下角或網址列旁有一個鑰匙,即代表該網站有支援SSL。


SSL不僅使用於網站的加密,也大量應用於各項網路服務中,例如企業界常用的VPN傳輸的加密(SSL VPN),以及各項應用程式、手機APP網路傳輸的加密等等;而這次的主角openSSL屬於開放原始碼的SSL套件,不單是各種Linux版本的預設安裝套件,也廣泛應用於不同的商業、或非商業性質的軟體及服務中,因此,當消息傳出時,各家大型的網路業者及知名的IT巨頭們都列名其中,成了受害者之一。

影響與修復

    據瞭解,受影響的版本是2012年三月所發行的1.01版,最近剛剛於2014/4/7 release的1.0.1g版本看來則是針對該bug予以修復,所以不受影響;但1.01版至今已經兩年多了,累積已有眾多的服務與Linux版本皆是使用該版本,看來影響的範圍的確不容小覰。

    幸好這次的問題,只要透過升級openSSL或安裝hotfix便可解決,且截至目前尚未有正式的災情傳出,因此受影響網站及伺服器皆很快於短時間內便可修復或升級(註一及註二),但最大的問題在於,從漏洞產生至今已兩年了,這段時間會不會有駭客已透過該漏洞竊取了眾多的機密資訊?美國政府是不是如謡傳般早已利用該漏洞進行長期的監控工作?另外根據報導指出,知情人士表示 NSA(U.S. National Security Agency) 早在兩年前就已經知道此漏洞,並且利用這個漏洞竊取許多網站的機敏資料?這些個人及組織機密資訊的外流,恐怕是後續最另人擔心的問題所在。
   

凌陽創新的伺服器有沒有受影響?

    令人慶幸的,平時病毒與駭客們的最愛「微軟」系統這次置身事外暫無影響(影響列表請參考註三),這是由於IIS使用的是SSPI (Security Support Provider Interface)而非SSL,微軟利用這個API來進行跟openSSL類似的相關認證動作;創新對外的網站與服務,大部份架設於微軟系統的主機(Webmail、VPN、DNS、WEB server、eOrder等),其它的Linux主機,則不使用SSL服務(例如HAVP、SQUID等)。

    而除了微軟,蘋果的系統Mac OS與iOS同樣也沒有受到影響,因為最新版的Mac OS系統使用的仍是0.9.8版本openSSL,而iOS則根本沒有openSSL;但所謂的沒有影響指的僅僅是提供服務的主機這端,對於系統業者來說,他們大可宣稱他們的系統是安全的,但對於使用者來說,由於曾經或目前正在使用的服務來自不同的廠商與系統,因此,對於消費者來說,無法保證目前存放於網路的資料是絕對安全的。

「HeartBleed」這個漏洞是如何造成的?

    這個造成全球恐慌的漏洞是如何造成的呢?它是如何讓個人資訊透過這個漏洞洩漏出去的?Eric Limer在他的個人網站(http://gizmodo.com/how-heartbleed-works-the-code-behind-the-internets-se-1561341209)上作了詳細而且清楚的解釋,顯示出這麼一小段人為的疏忽所造成的漏洞,有多麼容易讓有心人士竊取資料,雖然目前並無證顯示有駭客曾利用此漏洞發動攻擊,但若非openSSL自行主動地公告,否則Yahoo、Google、Flickr以及Imgur等等知名的網路公司,兩年多來一直曝露在脆弱的資安環境下可能還不自知,眾多的資安團隊形同虛設。
但幸運的是,openSSL這個開源的程式碼,就公開的攤在陽光下讓我們去檢視,無所遁藏,我們可以深入的瞭解這個問題是如何的發生,如何的被修復,也值得我們去探討與省思:免費的開源程式,最引以為傲的就是它面向每位開發者,所有的程式碼開放給任何人下載檢視,理應是最安全的,但就是在這樣眾目睽睽的情況下,兩年多的時間,甚至於是有經驗的程式專家,都沒有人注意到這段程式碼的問題。



關於SSL heartbeat的程式碼問題

當兩台主機準備好要進行加密的溝通之前,會先開始一個稱為「心跳heartbeat」的動作以確認雙方有持續的保持連線,這個動作,也是這個漏洞的源頭,所謂「HeartBleed」名稱的由來。
兩台主機定時的傳送接收並回覆給對方資訊,以確認彼此都還存活而沒有斷線,這就是heartbeat動作;現在假設client端(你的PC)傳送了一個heartbeat位元到server端(假設是銀行主機),理應銀行主機會立即的回應heartbeat(在SSL為回傳client所傳送的內容),這是一個很自然的確認過程,就好像一個舊式的錄音帶有兩個齒輪的轉軸,兩個不是一起運轉,就是同時停止,若發生了一個轉軸卡住了,另一個也會無法動彈。
這制式的過程,每日都會發生在全球數百萬計的主機上,但就是下面這麼一段簡單的程式碼,把它給搞砸了:
    memcpy(bp, pl, payload);


說明:
    memcpy是一個拷貝資料的指令,它需要傳入三個參數:bp、pl、 payload

    bp:要拷貝資料的目的地,所在的最後一個記憶體位址
    pl:要拷貝的資料的記憶體區段
    payload:數字,定義所要拷貝資料的大小

    程式設計師在程式中操控記憶體以執行資料的拷貝,要顧慮到相當多的因素,其中一項是「空的記憶體」;在上述三個變數中,bp是拷貝的資料所要放置的目的地位址,而在這個定義好的記憶體區段內,並不是空的,而是一直都有資料被放置其間,但他們可以被其它新的資料覆蓋、取出、再覆蓋,所以電腦(或者程式設計師)會將要使用的記憶體區段視為空的可使用的。

    現在,理想的情況下,memcpy指令從pl取出了資料並依據payload指定的資料大小,放到指定的記憶體區段bp,資料放過去之後,原先該區段下payload大小的舊資料便會被新資料給覆蓋取代,沒有意外的話,所指定記憶體區段下的舊資料會被新資料覆蓋,並持續進行這個步驟。

    但,如果payload這個值在說謊,或者說,給了一個錯誤的payload值,會發生什麼情況?假設現在payload的值定義pl有64KB大小,但實際上pl的內容卻是空的,memcpy指令還是會依據payload的值騰出64KB的記憶體空間給pl,但實際上卻因pl內容是空的不會有任何資料被覆蓋,造成64K區段的舊資料還留在原處,這段原本要被覆蓋的資料內容,有可能是無用的垃圾訊息,也有可能是銀行帳號、密碼等,但無論如何,這段程式碼發生了原先沒有想到的狀況:原先的舊資料沒有如意料中的被覆蓋。

    例如下方是主機所回傳的內容,這些訊息就位於原本該被新內容覆蓋的區域,但主機卻誤信payload的長度而回傳。
https://pbs.twimg.com/media/BksqeV-IEAAl4i2.png

    如果還不是瞭解上述的程序,Eric Limer另外用了一個有趣的例子來說明這個意外的狀況:
    假設你有很多的相片,你打算去隔壁商店買一個盒子將它們裝進去,但是那家商店的夥計有個特點,他很笨,而且不會算數。
    現在你帶著100張相片走進這家店,將相片放在櫃檯上並且說:「我有100張相片!」,顧店的夥計看了看,說:「我這邊剛好有可以放100張相片的盒子」,他彎下腰來從下方取出了一個盒子,「就是這個,以前有人把這個裝100張相片的盒子放在這裏,但是現在沒有人會需要這個盒子了。」
    說完,夥計從盒子裏取出了一張相片,燒掉它,然後把你的一張相片放進去,繼續著一直重複作這個動作,直到將你所有的100張相片都放進去為止,最後盒子裏放滿了你的相片,而舊的相片都已經燒掉了,這個盒子裏面都是屬於你的相片。
    但是,如果將時光倒回去,你跟夥計說「我有100張相片!」,但你卻在桌上只放了一張相片,那個不會算數的夥計依然取出了一個100張相片的盒子,從裏面取出一張相片,燒掉,然後放入一張你的相片,但是就這麼一張,因為桌上沒有任何相片了;夥計相信你的話盡責的完成了他的工作,而你也帶著99張不屬於你的相片回家,可能的話,你也可以跟他說你有100相片,但卻沒有給他任何相片,而那個愚笨的夥計會直接把裝了別人的100張相片盒子給你。
    將場景推回實際的Heartbleed中,那些需要燒掉的相片就是記憶體區段中需被覆蓋的資料,可能是其它人的email address、password、帳號等等;主機所回應的64KB記憶體區段可能是隨機的,因此你每次得到的資料可能不同、或是某個片段的資料,但是,你可以重複的進行這樣的行為,以拼湊出有用的資料,只要你像例子中持續的向夥計要盒子一般,持續的向主機送出heartbeat資訊,一次又一次就可以了。

我們學到了什麼?

    目前openSSL已修復了該段程式碼,就是要在執行拷貝動作之前,先檢查heartbeat傳送的資訊,是否為空資料,若有值,則再檢查資料的數量是否與宣稱的相符合,通過後才執行指令。
    其實這種程式錯誤相當的普遍,我們經常聽見的「buffer overflow bug」就是這類的情況;一個有經驗的程式設計師都應先驗証對方所提供的資料是否有誤,從基本的資料長度檢查到資料的內容,都些是必要不能省略的基本步驟。
    這次事件,也給予了認為Linux比Windwos安全的人們一個震撼教育,雖然這次是在尚未發生嚴重災害前即由官方立即公開並修復,但沒有人能夠擔保下次會不會有相同的情況發生,還能不能夠這麼幸運尚未成重大災情!開源程式碼是否依然安全的議題,也開始在眾多使用開源的網民與企業間投下陰影,開源碼組織所依賴的「peer-reviewed」(同儕檢視)方式是否能防止疏忽或任何有意的程式漏洞,還是需要另外成立一個主動的驗證機制?我們真的需要感謝這次的HeartBleed事件,它讓問題突顯出來並等待我們去正視改進。


註一:網站
Qualys 分析
官方回應「心在淌血」處理進度











.
Google
通過
已修正,但建議使用者變更密碼
.
Facebook
通過
已修正,但建議使用者變更密碼
.
YouTube
通過
已修正,但建議使用者變更密碼
.
Yahoo!
通過
已修正,但建議使用者變更密碼
.
Amazon
通過
已修正,但建議使用者變更密碼
.
Wikipedia
通過
已修正,但建議使用者變更密碼
.
LinkedIn
通過
未受影響
.
eBay
通過
未受影響
.
Twitter
通過
未受影響
.
Craigslist
通過
尚未回應
.
Bing
通過
已修正,但建議使用者變更密碼
.
Pinterest
通過
已修正,但建議使用者變更密碼
.
Blogspot
通過
已修正,但建議使用者變更密碼
.
CNN
仍須注意
尚未回應
.
Live
通過
未受影響
.
PayPal
通過
未受影響
.
Instagram
通過
已修正,但建議使用者變更密碼
.
Tumblr
通過
已修正,但建議使用者變更密碼
.
通過
已修正,但建議使用者變更密碼
.
Wordpress
通過
尚未回應
.
Imgur
通過
尚未回應
.
Huffington Post
仍須注意
尚未回應
.
Reddit
通過
已修正,但建議使用者變更密碼
.
MSN
通過
未受影響
.
Netflix
通過
已修正,但建議使用者變更密碼
.
仍須注意
尚未回應
.
IMDb
仍須注意
尚未回應
.
Yelp
通過
已修正,但建議使用者變更密碼
.
Apple
通過
未受影響
.
AOL
通過
未受影響
.
Microsoft
通過
未受影響
.
NYTimes
通過
尚未回應
.
Bank of America
通過
未受影響
.
Ask
仍須注意
尚未回應
.
Fox News
通過
未受影響
.
Chase
通過
未受影響
.
GoDaddy
通過
已修正,但建議使用者變更密碼
.
About
通過
未受影響
.
BuzzFeed
通過
尚未回應
.
Zillow
通過
未受影響
.
Wells Fargo
通過
未受影響
.
Etsy
通過
已修正,但建議使用者變更密碼
.
XVideos
仍須注意
尚未回應
.
Walmart
通過
未受影響
.
CNET
通過
未受影響
.
Pandora
通過
未受影響
.
xHamster
通過
尚未回應
.
PornHub
通過
尚未回應
.
Comcast
通過
尚未回應
.
Stack Overflow
通過
尚未回應
.
Salesforce
通過
未受影響
.
Daily Mail
仍須注意
尚未回應
.
Vimeo
通過
已修正,但建議使用者變更密碼
.
Conduit
通過
尚未回應
.
Flickr
通過
已修正,但建議使用者變更密碼
.
Zedo
無數據
未受影響
.
Forbes
仍須注意
尚未回應
.
LiveJasmin
仍須注意
尚未回應
.
USPS
通過
尚未回應
.
Indeed
通過
尚未回應
.
Hulu
通過
未受影響
.
Answers
通過
未受影響
.
HootSuite
通過
未受影響
.
Amazon Web Services
通過
尚未回應
.
Adobe
通過
尚未回應
.
Blogger
通過
已修正,但建議使用者變更密碼
.
Dropbox
通過
已修正,但建議使用者變更密碼
.
無數據
未受影響
.
AWeber
通過
未受影響
.
UPS
通過
未受影響
.
Intuit
通過
尚未回應
.
NBC News
通過
尚未回應
.
USA Today
通過
尚未回應
.
Outbrain
通過
已修正,但建議使用者變更密碼
.
The Pirate Bay
通過
尚未回應
.
The Wall Street Journal
通過
尚未回應
.
Bleacher Report
通過
尚未回應
.
Constant Contact
通過
尚未回應
.
Wikia
通過
尚未回應
.
CBSSports
通過
未受影響
.
Publishers Clearing House
通過
尚未回應
.
通過
已修正,但建議使用者變更密碼
.
Groupon
通過
未受影響
.
Best Buy
通過
尚未回應
.
Feedbin
通過
已修正,但建議使用者變更密碼
.
Pinboard
通過
已修正,但建議使用者變更密碼
.
GetPocket
通過
已修正,但建議使用者變更密碼
.
IFTTT
通過
已修正,但建議使用者變更密碼
.
PayScale
通過
未受影響





註二:受影響的Linux版本
   Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4
   Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11
   CentOS 6.5, OpenSSL 1.0.1e-15
   Fedora 18, OpenSSL 1.0.1e-4
   OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) and 5.4 (OpenSSL 1.0.1c 10 May 2012)
   FreeBSD 10.0 - OpenSSL 1.0.1e 11 Feb 2013
   NetBSD 5.0.2 (OpenSSL 1.0.1e)
   OpenSUSE 12.2 (OpenSSL 1.0.1c)









註三:影響廠商(資料來源:http://digital.sina.com.hk/news/-7-1509431/1.html

1、行業巨頭
- 蘋果:無影響,iOS、Mac OS X都沒事。
- 亞馬遜:無影響。
- Google:受影響,有補丁,需更改密碼。
——Google說不用改密碼,但仍然建議這麼做。
- 微軟:無影響。
- 雅虎:受影響,有補丁,需更改密碼。

2、社交網絡
- Facebook:受否影響不清楚,但會有補丁,需要改密碼。
- Instagram:受影響,有補丁,需更改密碼。
- LinkedIn:無影響。
- Pinterest:受影響,有補丁,需更改密碼。
- Tumblr:受影響,有補丁,需更改密碼。
- Twitter:受否影響不清楚,但會有補丁,是否需要改密碼不清楚。

3、電子郵件
- Gmail:受影響,有補丁,需更改密碼。
- AOL:無影響。
- Hotmail/Outlook:無影響。
- Yahoo Mail:受影響,有補丁,需更改密碼。

4、網絡購物
- 亞馬遜:無影響。
- 亞馬遜網絡服務:受影響,有補丁,需更改密碼。
- eBay:無影響。
- Etsy:受影響(一小部分),有補丁,需更改密碼。
- GoDaddy:受影響,有補丁,需更改密碼。
- Groupon:無影響。
- Nordstrom:無影響。
- PayPal:無影響。
- Target:無影響。
- 沃爾瑪:無影響。

5、影音遊戲
- Flickr:受影響,有補丁,需更改密碼。
- Hulu:無影響。
- Mincraft:受影響,有補丁,需更改密碼。
- Netflix:受影響,有補丁,需更改密碼。
- SoundCloud:受影響,有補丁,需更改密碼。
- YouTube:受影響,有補丁,需更改密碼。

6、金融服務
- 美國運通:無影響。
- 美國銀行:無影響。
- 巴克萊:無影響。
- 第一資本:無影響。
- 美國大通:無影響。
- 花旗銀行:無影響。
- 億創理財:無影響。
- 富達國際投資:無影響。
- PNC:無影響。
- 嘉信理財:無影響。
- 史考特證券:無影響。
- TD Ameritrade:無影響。
- 道明銀行:無影響。
- T. Rowe Price:無影響。
- 美國合眾銀行:無影響。
- Vanguard:無影響。
- 富國銀行:無影響。

7、其他
- Box:受影響,有補丁,需更改密碼。
- Dropbox:受影響,有補丁,需更改密碼。
- Evernote:無影響。
- GitHub:受影響,有補丁,需更改密碼。
- IFTTT:受影響,有補丁,需更改密碼。
- OKcupid:受影響,有補丁,需更改密碼。
- Spark Networks:無影響。
- SpiderOak:無影響。
- 維基百科:受影響,有補丁,需更改密碼。
- Wordpress:不詳。
- Wunderlist:受影響,有補丁,需更改密碼。

8、密碼管理
- 1Password:無影響。
- Dashlane:受影響,有補丁,需更改密碼。
    - LastPass:無影響。



註四:參考資料