搜尋此網誌

2010年6月27日 星期日

[從電影看資安] 丟垃圾也是一門學問 - 我的意外老公

在電影 我的意外老公 中,男主角的未婚妻因為 Callin 到女主角的電台進行愛情諮詢而選擇毀婚。男主角在心懷不滿之下,透過房東兒子的協助,修改女主角的結婚記錄,讓男主角與女主角成了合法夫妻。女主角結婚在即,也因此這項毫無緣由的婚姻記錄可說是打亂了她的一切計畫。就在兩人協調的過程中,男、女主角不自主的產生情愫,甚至女主角後來更決定同樣來個大逃婚。就在一切看似美好的時刻,女主角無意間在垃圾桶內發現男主角之前對她進行調查時所列印的網頁資料,惹得女主角勃然大怒並因此負氣決定回到未婚夫的身邊。

房東的兒子很喜歡上網找八卦。vlcsnap-2010-06-28-12h59m12s58

男主角相當瞧不起在江湖上人稱愛情博士的女主角。 vlcsnap-2010-06-28-12h59m25s104

男主角對螢幕上的資料很好奇。 vlcsnap-2010-06-28-13h00m09s27

沒想到房東的兒子不只常閒晃看八卦,也是駭客一名。 vlcsnap-2010-06-28-13h00m17s107

連結婚記錄也可以修改。vlcsnap-2010-06-28-13h01m47s171

這下不但省了結婚典禮的費用,更不用親自跑一趟戶政事務所辦理登記。 vlcsnap-2010-06-28-13h02m00s129

電影中的男女冤家總是會不知不覺地看對眼。vlcsnap-2010-06-28-14h17m04s107

女主角終於受不了內心的煎熬,冒著大雨前來與男主角相會。vlcsnap-2010-06-28-13h05m18s51

後面的劇情請自己想像…vlcsnap-2010-06-28-13h05m25s144

沉浸在愛情中的女主角想要展現賢慧的一面,沒想到砸鍋了。vlcsnap-2010-06-28-14h32m25s97

男主角怎麼樣也想不到會被一個烤焦的煎餅給壞事了。vlcsnap-2010-06-28-13h03m23s202

老娘看看這是碗糕。vlcsnap-2010-06-28-13h03m38s78

女主角越看面目越猙獰。vlcsnap-2010-06-28-13h03m49s192

壓垮女主角的最後一根稻草,她的結婚訊息。vlcsnap-2010-06-28-13h04m12s88

挖掘他人的隱私,就算是親密愛人也免不了要大暴走,男主角瞬間從天堂掉進無邊的地獄。vlcsnap-2010-06-28-13h04m36s138  

在電影中,女主角雖然不是駭客 (房東的兒子才是),但是在無心之下仍舊在垃圾桶中發現了男主角不可告人的祕密。事實上,從垃圾桶中找尋”寶物”雖然不是一件很有技術性的動作,但是卻是一項存在已久的技巧,甚至還有自己的專業術語,稱之為 Dumpster Diving。根據 80 年代以高超社交工程 (Social Engineering) 手法著稱的駭客 Kevin Mitnick 所言,透過 Dumpster Diving 可以發現很多寶貴的資料,是他很喜歡使用的方法之一。Dumpster Diving 本身正屬於社交工程的手法之一,但是所獲得的資訊卻可以同時用來進行一般性的攻擊 (例如取得系統的帳號/密碼) 或是社交手法的攻擊 (例如取得 IT 部門主管的姓名)。

這幾年資料外洩的問題受到很大的重視,尤其在新版個人資料保護法通過後,更讓個人隱私資料的保護成為眾多廠商不得不參與的議題。通常對於資料防護的問題,比較好的解決方案會從資訊生命週期 (Information Life Cycle) 的角度出發。而大多資訊生命週期管理 (ILM, Information Lifecycle Management) 的產品雖然是以此概念為基礎所發展的產品,但是光用 ILM 就想完整解決資料外洩的問題,倒也是不切實際的想法,畢竟 ILM 原先的出發點就不是以安全為主。所以後來有將 DLP 與 ILP (Information Lifecycle Protection) 整合的概念與產品,很可惜的是這樣的產品依舊不是萬能。

不管是 DLP 或 ILP,技術性的解決方案對於防護資料外洩有兩個比較嚴重的不足之處。其一是所有的資料不一定以數位的形式存在於資訊系統當中。正式 (例如公司的表單) 或非正式 (例如員工個人的備忘錄) 的書面資料、甚至在人的腦袋中,都有可能記載著極為機密的資料。另外一個不足之處就是當資料不再需要時,如何將資料安全地加以銷毀 (Disposal) 通常是 DLP/ILP 所欠缺的考量,甚至是無法有效處理的部份。這兩個不足之處,其實都需要搭配非技術性的控制措施 (通常是管理性的控制措施) 才有可能克服。

此外,市面上還有不少針對安全資料刪除 (Secure Data Disposal) 的產品,強調可以使用各種方便且安全的方式刪除資料。然而這類產品功能再如何強大,終究還是以處理數位形式的資料為主,也因此這類產品與 DLP/ILP 同樣面臨無法處理非數位形式資料的窘境。延伸來看,所有的產品最終只能從技術面來解決問題,然而很多資訊安全的問題卻不是光靠技術性的控制措施就可以加以解決。這是不管您在選擇什麼類型或品牌的產品時,都必須隨時隨地提醒自己注意的盲點。否則,下次就不是在垃圾桶中發現幾張不堪的網頁,而很有可能是滿街飛的處方箋,甚至是在飲水間出現存有客戶關係管理系統 (CRM) 資料庫帳號與密碼的小紙條了。

 

相關連結:

2010年6月22日 星期二

[教戰守則] 雲端安全聯盟 (Cloud Security Alliance) 安全指導原則

CSA-Logo2 雖然有關雲端安全的議題跟雲端運算本身一樣持續發燒,也有越來越多的廠商推出相關的服務/產品,但是不可否認安全議題依舊是導入雲端運算的主要瓶頸之一。對此,Gartner 預期企業初期在私有雲 (Private Cloud) 的投資會大於公開雲 (Public Cloud),主要原因就在於企業對於私有雲依舊擁有足夠的掌控權,可以減少與其他人共用平台所產生的額外風險。儘管如此,私有雲畢竟與原先的 IT 架構有所差別,因此在安全的考量上也有其特別之處。如果一味的將私有雲與原先的 IT 架構一視同仁,那麼產生的風險將是無法估算的。

為了因應雲端運算的安全議題,雲端安全聯盟 (CSA, Cloud Security Alliance) 發表了安全指導原則 (Security Guidance),期望給所有相關人士一些可行的參考方向。目前最新的安全指導原則是在 2009 年年底所公布,版本號碼為 2.1。在這份文件中,將雲端安全分為兩大領域,分別為治理 (Governance) 與維運 (Operation),其下各有 5 個與 7 個分類,共計 12 個分類:

  • 治理 (Governance)
    • 治理與企業風險管理 (Governance and Enterprise Risk Management)
    • 法律與電子資料搜尋 (Legal and Electronic Discovery)
    • 法規遵守與稽核 (Compliance and Audit)
    • 資訊生命週期管理 (Information Lifecycle Management)
    • 可攜性與互通性 (Portability and Interoperability)
  • 維運 (Operation)
    • 傳統上的安全、業務持續與災難復原 (Traditional Security, Business Continuity, and Disaster Recovery)
    • 資料中心維運 (Data Center Operations)
    • 事件處理、通知與回復 (Incident Response, Notification, and Remediation)
    • 應用程式安全 (Application Security)
    • 加密與金鑰管理 (Encryption and Key Management)
    • 身份與存取管理 (Identity and Access Management)
    • 虛擬化 (Virtualization)

每個分類除了概述可能產生的問題外,更以條列式的方式列出建議的控制措施,好讓使用者有一定的遵循依據。必須特別注意的是,儘管文件中並沒有針對不同的雲端運算架構 (也就是 IaaS、PaaS 與 SaaS) 做出不同的分類,但是在建議控制措施上面卻可能因為架構不同而有所區別。畢竟雖然同為雲端運算,但是三者的本質與可控制的層級完全不同,因此即使在面對相同的安全需求時也會有全然不同的做法。舉例來說,在應用程式安全中有一項建議是在 IaaS 的架構下,可信任的虛擬機器影像檔 (trusted virtual machine images) 是一個很重要的關鍵。然而這個建議在 PaaS 與 SaaS 架構下就顯得多於了。

原始文件有 76 頁,在此我就不一一贅述,留待給有需要的讀者自行參考。

 

相關連結:

2010年6月20日 星期日

[工具介紹] Web 應用程式安全掃描新工具 - Skipfish

Google 於今年 (2010 年) 3 月中推出了一個自行開發的 Web 應用程式安全掃描工具,稱之為 Skipfish。Skipfish 與其他 Google 的工具有所不同,並不是直接透過瀏覽器加以操作,而是必須自行下載並編譯才可以執行。為了效能的考量,Skipfish 以 C 語言開發,同時支援 Linux、FreeBSD、MacOS X 與 Windows (必須安裝 cygwin) 的環境。

這類工具中比較著名的包含 open source (GPL) 的工具 Nikto,此外也有許多付費的工具可供選擇,而 Skipfish 則提供了另一個免費的選擇。不過根據 Skipfish 的說明,Skipfish 與其他工具並不是相互重疊的選項,而是補足其他工具不足之處,所以對於其他工具已經實現的功能在 Skipfish 中是缺席的。舉例來說,Skipfish 並沒有採用已知弱點資料庫的方式來找出一些已公布的安全漏洞。

如果你熟悉 *nix 下的編譯過程,編譯 Skipfish 並不會是一件困難的工作,唯一需要特別注意的是所需的函式庫是否已經完整安裝,其中尤其是 libidn 這個函式庫 (在 Fedora 的環境下,所需安裝的 RPM 套件名稱為 libidn-devel-*)。編譯成功之後會出現一個名為 skipfish 的執行檔,但是在開始使用 Skipfish 進行掃描前,還需要額外進行一個動作,那就是從 dictionaries 目錄下的四個 wl 檔案中挑選一個並將它複製到與 skipfish 執行檔同一層的目錄,檔名則為 skipfish.wl。準備好之後,就可以透過

./skipfish –o output_dir url

這個指令開始進行掃描。其中 output_dir 表示放置掃描結果的目錄名稱,而 url 則是掃描的起始網頁。如果有需要,skipfish 命令列也可支援輸入多個 url,如此一來 skipfish 就會一一加以掃描。skipfish 支援相當多的命令列參數,多是用來控制掃描的行為,詳細的說明就請有需要的讀者們自行參考了。

在 Skipfish 的線上說明文件中明確列出 Skipfish 所能檢查出的安全問題,在這裡我就不一一贅述了。使用 Skipfish 進行掃描時,(在預設情形下) 必須花費相當多的時間才能完成,而且在解讀報告時需要有相當的功力才有辦法知道問題所在。因為雖然 Skipfish 會列出問題點完整的 HTTP 請求與回應,但是對於問題本身並沒有進一步的解釋,同時對於建議的解決方案也是付之厥如,因此一般使用者來說在使用上確實是相當的不便。

我以 skipfish 的預設參數掃瞄一個僅安裝 wordpress 這個套件的網站,總共花了數個多小時才掃描完畢。這是在本機進行掃描的情況下,如果透過網路進行遠端的掃描,時間將會更久。掃描結果會以網頁的形式儲存於執行時所指定的目錄,因此不需要特定的工具就可以研讀結果。

頁面一開始顯示摘要資訊,包含掃描所花費的時間以及各類問題的總數等。skipfish 001

點開可以看到各個問題的詳細資訊,包含網址、 HTTP 請求與回應。skipfish 002

以這樣的速度,在大部分的情況下是不能順利運作的。好在 Skipfish 提供了許多參數可以控制掃描的行為,所以這次我在網站中加入一個具有 XSS (Cross-site Scripting) 漏洞的 PHP 程式碼,並利用 –LVJ 的參數進行掃描。雖然掃描的時間有所減少,但是仍舊需要一段不算短的時間才能完成。因此我改用 dictionaries/extensions-only.wl 當作 skipfish.wl,再次進行掃描時僅花費不到一分鐘就可以完成。

利用 –LVJ 的參數,並採用 dictionaries/extensions-only.wl,可以將掃描時間縮短到一分鐘之內。skipfish 003

Skipfish 找出 XSS 的安全漏洞。 skipfish 004

Skipfish 目前在使用上並不是那麼友善,不過這似乎是這類工具很難避免的問題。有興趣的讀者可以花點時間研究看看,不過切記千萬不要對沒有取得授權的網站進行掃描,以免衍生法律上的問題。此外,即使是用 Skipfish 來掃描已經獲得授權的網站時也必須多加小心,因為在預設的情況下 Skipfish 會對網站做大量的存取,可能會因此造成網站因為負擔過重而影響原有的服務。

 

相關連結:

2010年6月15日 星期二

[從電影看資安] 異地備援 - 阿凡達

阿凡達》的故事敘述在未來世界中,人類為取得另一星球的資源,開啟阿凡達計畫,以人類與納美人的DNA混血,培養出身高近3米高的阿凡達,以利在潘朵拉星球生存並採礦。男主角傑克因為鑾生兄弟去世,因而被選上成為其兄弟的阿凡達”駕駛”。傑克本身原為因受傷而不良於行的軍人,因此不但一開始被阿凡達計畫主持人所不屑,軍方甚至要他成為內應,透漏更多有關納美人的內線消息。然而在一次的偶然機會中,參與阿凡達計畫的科學家發現了傑克的內應身分。但是礙於傑克是最接近納美人的阿凡達,所以計畫主持人當機立斷,前往一個隱密山區的基地繼續進行後續的計畫,以避免傑克與軍方的接觸。

男主角是神奇的傑克,一個不良於行的軍人。vlcsnap-2010-06-13-22h57m58s69

另一個阿凡達計畫的成員。vlcsnap-2010-06-13-23h01m19s12

原為其兄弟的阿凡達,其兄弟死後因 DNA 一致而順利接收成為新的駕駛。  vlcsnap-2010-06-13-23h02m34s31

計畫主持人看到傑克就忍不住抱怨起金主與軍方。vlcsnap-2010-06-13-23h03m33s57

軍方希望傑克成為臥底,條件就是可以幫他把腳醫好。 vlcsnap-2010-06-13-23h04m07s153

金主只想要盡快取得埋在納美人居住地之下的礦產。   vlcsnap-2010-06-13-23h08m20s169

為了錢,殺納美人也是可以的。vlcsnap-2010-06-13-23h07m37s206

傑克解釋納美人最重要區域的構造。 vlcsnap-2010-06-13-23h10m55s158

看這穿著就知道他屬於科學家的陣營,不小心知道了傑克的秘密。vlcsnap-2010-06-13-23h11m41s115

傑克一回到計畫實驗室就發現大家都在打包,準備閃人了。 vlcsnap-2010-06-13-23h11m59s44

主持人講的雖然有些含蓄,但是大家都是聰明人,心照不宣就夠了。 vlcsnap-2010-06-13-23h12m15s168

沒想到這個計畫的預算真不少,還有另外一個實驗室。vlcsnap-2010-06-13-23h12m58s127

這個移動式的實驗室坐落在一群漂浮的山脈中。vlcsnap-2010-06-13-23h14m39s97

黑漆漆的實驗室。  vlcsnap-2010-06-13-23h15m23s44

不只傑克很神奇,連計畫主持人也可以邊抽菸邊把整個實驗室在一瞬間加以啟動。 vlcsnap-2010-06-13-23h15m52s79

 

異地備援一詞,相信對大多數人來說都是耳熟能詳,但是對於異地備援的認知,卻可能是眾說紛紜。這幾年業務持續計畫 (BCP, Business Continuity Plan) 與災難復原計畫 (DRP, Disaster Recovery Plan) 受到企業的重視,而異地備援在 BCP/DRP 中扮演者極為重要的角色。

在 CISSP 的領域裡,將 Offside backup 分為 Hot site、Warm site 與 Cold site 與 Mobile site 四種主要的類型。除了 Mobile site 具備移動性外,其他三種類型依序分別代表了三種不同與主要站台的相似程度。其中 Hot site 的完整度最高,因此在一旦有需要的時候,可以在最短的時間內加以運轉,而 Cold site 則需要最長的時間才能開始運作。想當然爾,Hot site 的成本在這三種類型當中是最高的,而 Cold site 則是最低。通常決定使用哪種類型是根據所謂的 RTO (Recovery Time Objective,也可以稱之為 MTD, Maximum Tolerable Downtime) 而定,就是當發生災難時維運中斷的可忍受時間。

在影片中的行動主機,屬於 Mobile site 的一種形式。Mobile site 與其他三種類型最大的不同之處就是具備了可移動性,例如以連結貨櫃的形式加以移動。嚴格來說,Mobile site 根據完整度的高低也可能屬於 Hot site、Warm site 或 Cold site 的一種,因此在分類上面並不是互相排擠的。例如在影片中計劃住持人在一瞬間就開啟了行動實驗室的電源,而且整個團隊馬上就可以繼續進行阿凡達的實驗,看起來就是屬於 Hot site 的類型。

除了 RTO 一詞,在異地備援方案當中還有另外一個同樣重要的名詞,那就是 RPO (Recovery Point Objective),指的是當災難發生時可以允許損失的資料時間長短。例如當 RPO 設定為 5 分鐘的情況下,假設 11:00:00 發生災難,那麼10:55:00 前的資料可以確保正確無誤,至於 10:55:01 到 11:00:00 之間的資料則無法加以保證。 換句話說,RPO 與備份策略息息相關,而 RTO 則是與 Offsite 的類型有關。理想上這兩個數值越小越好,但是數值越小就表是成本越大,因此通常是根據業務衝擊分析 (BIA, Business Impact Analysis) 的結果來決定這兩個數值的合理數據。

或許對於不少人 (廠商) 而言,異地備援指的是分開兩地存放並且即時 (也不可能真的即時,至少還是需要一些轉換時間,此外還有 RPO 要考量) 運轉提供服務的類型。姑且不論這種把 RTO 與 RPO 都當作小到不存在的說詞是否正確,這種型式也僅僅只是異地備援的一種可能性,而且是最理想 (也最貴) 的一種方式。由於各個廠商對於異地備援的定義不見得相同,所以在評估時應該根據實際的 BIA 結果,然後再對照廠商提供的解決方案,方能找到最適合自己的形式。

2010年6月13日 星期日

[工具介紹] 線上備份不洩密 – Dropbox+TrueCrypt (Part 3)

接下來我同樣透過實際的操作來測試 Dropbox 備份與同步的功能。

首先我在剛剛掛載的磁碟機內新增一個檔案,檔案名稱為”不可告人的秘密”。301

檔案儲存完畢後,選擇 “Dismount” 將磁碟機卸載。302

卸載完成。 303

連上 Dropbox 的網站,利用之前註冊的帳號/密碼登入。304

登入後可以看到跟之前已安裝 Dropbox 的電腦內相同的目錄結構,包含我用來放置 truecrypt 可攜版的目錄。 305

點進 truecrypt 目錄後,除了可以看到原先 truecrypt 可攜版的檔案外,也包含我用來建立加密磁碟的檔案 – My Secrets。但是目錄下並沒有任何有關磁碟內容的資訊 (如檔案”不可告人的秘密”)。306

透過 Events 內的事件,我可以確認剛剛對加密磁碟所做的動作,已經正確的同步到 Dropbox 的系統內。如果不確定是否已經同步完成,可以回到原先安裝 Dropbox 的電腦內察看同步情況。 307

接下來我們在另外一台電腦安裝 Dropbox,安裝過程中請勿重新註冊帳號,而是直接使用原先的帳號/密碼登入即可。安裝完後需要一些同步的時間,等到 dropbox icon 顯示 “All files up to date” 時則表示已經同步完成。311

點選 truecrypt 目錄內的 TrueCrypt.exe,並將 My Secrets 掛載上。308

掛載時需要輸入之前我們所設定的密碼。 309

之後可以正確的讀取原先的檔案及內容。 310

因為 Dropbox 與 TrueCrypt 兩個軟體都提供跨平台的支援,因此透過 Dropbox 與 TrueCrypt 的結合,我們可以達到安全且跨平台的遠端同步/備份需求。 這樣的安全機制,提供了高強度的加密效果,因此只要保護好加解密所使用的密碼,將可以讓線上備份的資料維持著相當好的隱密性。再加上 Dropbox 提供檔案版本回復的功能,因此就算模擬磁碟用的檔案損毀也不至於資料全無。更重要的是,這是完全免費的。使用上唯一困惱之處,就是用來模擬磁碟的檔案不能太大,否則將會因為同步時間過久而無法有效地使用。如果這個問題確實造成使用上的困擾,可以選擇加密單一檔案或目錄的工具。不過在使用上需要特別注意的是加密動作是否為自動化,以避免因為一時疏忽而將未加密的重要檔案上傳至 Dropbox 了。

相關連結:

[工具介紹] 線上備份不洩密 – Dropbox+TrueCrypt (Part 2)

接下來我要介紹有關 TrueCrypt 的安裝與基本使用。TrueCrypt 的功能相當多,我會用到的是利用一個加密過的檔案掛載成磁碟機的方式,如此一來任何放置於這個磁碟機內的檔案就等於自動加密了。此外,TrueCrypt 雖然預設是英文的介面,但是可以自行中文化,這部分我在此掠過不談,有需要的讀者請參考最後的相關連結或是多多利用搜尋引擎了。

進入 TrueCrypt 的網站,前往下載區。101

下載 TrueCrypt 安裝程式。 102

執行安裝程式。103

接受版權的宣告。104

選取第二個選項,利用可攜式 (Portable) 版本執行 TrueCrypt。這樣的使用方式在多台電腦上進行檔案同步時會比較方便。105

選擇將解開的檔案放置到 Dropbox 同步目錄下 (預設是我的文件下的 Dropbox) 的某個新增子目錄 (我取名為 truecrypt)。 106

解開完畢。107

到 Dropbox 的同步目錄下會看到存放可攜版 TrueCrypt 的子目錄,而且呈現已經同步化的狀態。109

目錄內的 TrueCrypt.exe 就是主要的執行程式。108

執行 TrueCrypt.exe,選擇建立一個新的磁區 (Volume)。 201

選擇第一個選項,利用單一檔案來模擬磁區。202

使用一般的檔案。203

選擇檔案的路徑與名稱。基本上只要將這個檔案放置在 Dropbox 的同步目錄 (或任何子目錄) 內即可。204

我選擇存放在 truecrypt 這個子目錄內。請記得不要選取一個已經存在的檔案,否則原始檔案的內容將會被清除掉。205

檔案選擇完畢後進行下一個步驟。206

設定加密與雜湊值的演算法,直接使用預設值即可。207

選擇檔案的大小,這個大小就是之後磁區的儲存空間。為了避免 Dropbox 同步時間過長的問題,這個檔案最好不要設定的太大。因為對作業系統來說,虛擬磁碟機內任何資料異動就等於這個檔案的異動,因此需要進行整個檔案的同步。 208

設定密碼,請選擇一個良好的密碼,否則再好的加密演算法也是無法保護重要資料。除了使用密碼外,也可以透過 keyfile 的方式進行加解密。209

如果選擇的密碼不夠好會跳出警告訊息。 210

設定好後進行下一步。211

格式化磁區,這個動作只是針對檔案進行初始化,而不是真正格式化檔案所在的磁區。212

檔案初始化完畢。213

磁區建立完畢。215

回到新增的畫面,你可以繼續建立其他的磁區,或選擇 “Cancel” 回到 TrueCrypt 的主畫面。 216

我們可以在 truecrypt 這個目錄下看到我們剛剛新增的 (模擬磁區) 檔案,此時檔案尚未完全同步。同步所需的時間跟檔案大小以及網路頻寬有關,透過 dropbox 的小圖示可以看到預計的同步剩餘時間。217

同步完成。218

選擇一個閒置的磁碟機代號 (例如 Y),並選擇我們剛剛建立的檔案,執行 “Mount” 進行掛載的動作。 220

掛載時需要提供當初所設定的密碼。如果建立時使用 keyfile 的方式,此時就要選取適當的 keyfile 檔案。 221

掛載成功,系統多了一個虛擬的磁碟機。 222

至此我們已經成功地安裝完成 Dropbox 與 TrueCrypt 兩個工具,並建立起一個加密用的磁碟機,而存放在這個磁碟機內的資料將會自動進行線上備份。在下一篇的文章中,我同樣採用實際的操作方式展示如何達到多台電腦間的同步。

About