
這幾年資料外洩的問題越來越受到大家的矚目,再加上新版個資法的通過,讓防止資料外洩不再只是口號,更是必須去認真面對的課題。不管是企業或是個人,重要資料的外洩都不是令人所樂見的。現在有很多機制可以利用加密的方式來保護資料,如此一來即使資料不幸遺失 (不管是無意或是有意的),由於對方無法進行解密的動作,所以也無法窺視到資料本身的內容。這些機制包含硬碟/隨身碟本身進行整體資料的加密,作業系統進行的資料加密及各式各樣的第三方加密工具 (例如我之前分享過的 TrueCrypt)。雖然 TrueCrypt 功能強大,但是對於處理單一檔案的加解密,TrueCrypt 其實就並不適合了。 檔案的分享還是目前很常見的應用,不管是透過 Email、FTP、還是網站的形式,傳統上我們會將想要分享的所有檔案加入到一個壓縮檔中,這樣不但可以減少檔案的大小,還可以簡化分享的工作。這樣的作業方式雖然很簡單,但是也很容易造成資料的外洩。為了避免此一問題的發生,其實我們只要利用壓縮軟體的加密功能,就可以大幅減少資料外洩的可能性。以下我就以免費的壓縮工具 7-zip 為例,說明如何利用加密的功能安全地傳遞壓縮檔。 假設我們有一個存有密碼的檔案想要傳遞給朋友,我們當然不希望任何人都可以看到這個檔案的內容。 利用滑鼠右鍵選取 7-Zip –> Add to archive。 (如果你還沒安裝 7-Zip,請至這裡
<>下載並安裝)
cyrilwang 發表在 痞客邦 留言(0) 人氣(9,064)

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 urlcyrilwang 發表在 痞客邦 留言(0) 人氣(3,968)

接下來我同樣透過實際的操作來測試 Dropbox 備份與同步的功能。 首先我在剛剛掛載的磁碟機內新增一個檔案,檔案名稱為”不可告人的秘密”。 檔案儲存完畢後,選擇 “Dismount” 將磁碟機卸載。 卸載完成。
cyrilwang 發表在 痞客邦 留言(0) 人氣(479)

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

這一兩年雲端運算一辭夯到不行,而其中大家最為熟悉的雲端服務可能莫過於 Gmail。除了 Gmail 外,另外一種跟一般使用者比較貼近的雲端服務就是線上備份。從以前的免費線上分享空間,到後來變成重要檔案的備份,甚至是兩者之間的結合,都可以算是雲端運算的大眾化商品。但是就像是所有的雲端服務一般 (或是網際網路的服務),安全依舊是令人不得不堤防的議題。針對線上分享的應用,雖然也有安全的疑慮 (不然怎麼會有這麼多無X的破解圖片),但是到了線上備份的應用後,因為備份的資料其隱密性與重要性通常更高,因此如何避免資料被其他人竊取就是一個更為重要的課題。要保護資料不被其他人所窺視,最基本的作法就是透過加密。如果線上備份的不是原始資料,而是加密過後的資料,那麼即使資料日後不小心流露出去,有心份子還是無法得知原始的內容。當然,這個條件要達成,除了要慎選加密的演算法之外,另外就是要慎選一個良好的加密密碼 (或是保護好加密用的金鑰檔案 keyfile)。
在接下來的三篇文章中,我將會利用實際的操作來展示如何利用 Dropbox 與 TrueCrypt 這兩個工具打造出一個安全且跨平台的線上備份/同步機制。首先我先介紹 Dropbox 的安裝。Dropbox 除了提供線上備份的空間外,更包含了在多台電腦之間進行同步以及檔案版本回復等功能。
連到 Dropbox 的網站,下載 Dropbox 用戶端程式。
執行安裝程式。
cyrilwang 發表在 痞客邦 留言(0) 人氣(299)
上次我提到如何避免自己成為釣魚攻擊受害者的建議方案中,在技術方面的方案除了定期更新瀏覽器外,還有一個建議就是採用具備防護能力的瀏覽器。嚴格來說,目前市面上各大主流瀏覽器幾乎都已經內建惡意網站警示的功能。但是因為各家使用的技術不盡相同,所以效果也會有很大的差異。根據 NSS Labs 於去年所推出的一份報告顯示,IE 8 在這方面擁有最佳的效果,而 Firefox 3 也有相差不遠的成績。 但是我們通常不會因為哪個瀏覽器的安全防護較佳而使用該瀏覽器,而是依據自己平常的操作習慣。此外,甚至可能會 (必須) 同時混用多種瀏覽器,因此光靠瀏覽器本身的防護能力將可能產生防護能力不足的問題。 除了瀏覽器本身之外,現在很多所謂端點防護的軟體 (可以想成是防毒軟體的進化版) 也具備相同的功能。但是並不是所有的端點防護軟體都已經整合這樣的能力,尤其是對使用一些免費軟體的使用者而言,這類功能通常是付之厥如的。因此我今天要跟各位分享一個免費的小工具,它'可以與各個瀏覽器整合,即時提供網站是否安全的警示訊息,它就是 LinkScanner。 安裝步驟: 前往
http://linkscanner.avg.com/ ,點選 “Download FREE now!”。

點選右下角的 “Download”。

執行程式時出現安全性警告訊息,按下 ”執行(R)” 的按鈕。

LinkScanner 並不支援中文介面,因此直接選取 “Next >” 的按鈕。

勾選 “I have read the license agreement” 的選項後按下 “Accept” 按鈕。

直接按下 “Next >” 的按鈕。

依據自己的需求決定是否安裝 Toolbar,安裝與否都不影響阻擋惡意網站的功能。

安裝完畢,按下 “OK” 的按鈕。

自動進行更新的作業。

更新完畢。請自行決定是否提供匿名資訊以供 LinkScanner 改善效能。
cyrilwang 發表在 痞客邦 留言(0) 人氣(184)

最近 Facebook 火紅的程度,不但在網路界引起關注,連一般使用者與政府官員都不得不加以談論一番。其中最主要的助力來自於一款叫做開心農場的遊戲。嚴格說來,開心農場只是眾多農場遊戲中的一支,而且既不是原創也不是最好玩的一支。或許是因為中文化的關係,所以在台灣成了最受歡迎的 Facebook 遊戲之一。不過也因為不少人玩得過火,再加上”偷菜”這種不道德的行為,所以引發了公私部門的反彈。因此有人因為”偷菜”而寫悔過書,更有人因為”偷菜”而偷了飯碗。不論上層的理由為何,限制上班時偷閒並種種菜,對許多基層員工來說可是天大的罪惡,今天我要介紹一個很簡單的辦法,可以突破一般的限制方法。 首先我們看在一般的情況下,我們連到 Facebook 開心農場時,瀏覽器會使用 http://apps.faceboo.com/farmgame_tw/ 這個網址,這也是一般工具用來加以判斷或限制的依據。我們只要讓這個網址加以隱藏,就可以讓很多阻擋工具失效。使用的方法很簡單,只要透過一種叫做 Anonymous Proxy 的工具就可以隱藏你真正要進行連結的網址。
一般情形下連結開心農場所使用的網址
cyrilwang 發表在 痞客邦 留言(1) 人氣(257)
前面我們介紹過 PMD 與 FindBugs 這兩個用來檢視 Java 程式碼 (Source Code 或是 ByteCode) 是否有問題產生的工具,這次我要介紹的兩個工具則是著重在檢測註解本身 (JavaDoc) 是否符合要求。為什麼會有這樣的需求?或許長久以來對於程式註解要包含哪些東西以及要如何撰寫沒有統一的共識,但是對於良好註解的重要性我想幾乎沒有人會加以反駁。良好的註解至少包含兩個重點,一致的格式與清楚且有意義的內容。清楚且有意義的內容有些抽象,但是一致的格式卻是可以明確的加以定義,所以我們訂定的寫作規範通常也會包含註解的格式。只是規定訂定下去以後,是否所有開發人員都會確實遵守又是另外一回事。在Code Review的時候一併檢驗?Code Review應該是用來找尋必須人工檢驗的問題,對於符合格式這種可以自動化的工作,用人工來做可是吃力不討好。透過使用 DoctorJ 或 JCSC,我們可以把格式確認的工作交由程式自動化執行,除了快速方便外,更可以避免開發人員因為抱持心存僥倖的心態而沒有撰寫合乎規範的註解。 DoctorJ 與 JCSC 在使用上都相當簡單,主要是透過命令列的形式。JCSC 另外提供了一個 GUI 的工具可供修改檢測的規則,而 DoctorJ 則沒有辦法修改檢測規則。但是 DoctorJ 可以一次檢測目錄下所有的程式檔,而 JCSC 則一次僅能檢測一個程式檔。嚴格說來,這兩個工具在使用的方便性都嫌不足,而且兩個工具也已經沒有再更新,不過這似乎是使用社群開發軟體常會遇到的問題。也因此要不要使用這些軟體,只能自己先好好做個評估了。 DoctorJ
下載軟體。 解開下載的軟體。 打開 Microsoft Windows 的命令列模式。 在解開的目錄下,執行
ant install 指令進行安裝的動作。沒有安裝 ant 的系統需先進行 ant 的安裝。

雖然最後出現錯誤訊息,但是那僅是要將 jar 檔案複製時使用了 *nix 的路徑表示法,所以造成在 Microsoft Windows 無法執行。我們直接找到產生的 jar 檔案就可以了,該檔案為 share\doctorj\doctorj.jar。 使用 doctorj 很簡單,只要透過
java –jar doctorj.jar filename|path 就可以進行檢測。 不過因為 doctorj 會將結果顯示於畫面上,所以我們可以透過轉向機制將結果儲存於檔案中。
檢測單一的檔案
檢測整個目錄
使用文字編輯器打開儲存檢測結果的檔案。

cyrilwang 發表在 痞客邦 留言(0) 人氣(602)

前言 FindBugs 同樣是用來檢測 Java 程式的工具,其檢測的對象是 Byte Code (class 或是 jar 檔)。儘管如此,FindBugs 依舊是屬於靜態分析的方式。FindBugs 如其名,主要是利用 Bug Patterns 的概念,找尋出程式中有問題 (Bugs) 的程式碼 。在其官方的網站中提到 Bug Patterns 的產生可能有下列因素: 程式語言本身不容易使用的功能 (Difficult language features) 被誤用的 API (Misunderstood API methods) 當程式碼在維護時,不變的條件被誤解了 (Misunderstood invariants when code is modified during maintenance) 其他常見的錯誤,例如打錯字、或是使用了錯誤的布林運算元 (Garden varieity mistakes: typos, use of the wrong boolean operator)
cyrilwang 發表在 痞客邦 留言(0) 人氣(7,556)

前言 PMD 是來執行 Java 程式檢測的工具,檢測的對象是原始程式碼。雖然 PMD 看起來像是一個縮寫字,但是作者表示當初採用這個字純粹只是因為這幾個單字念起來很順口。根據網站上面的介紹, PMD 可以找出下列問題: 疑似的臭蟲 (possible bugs),例如空的 try/catch/finally/switch 描述句。 無法執行的程式碼 (dead code),例如未使用的 local 變數、參數、或是 private 函數。 不良的程式碼 (suboptimal code),例如效率不良的使用 String/StringBuffer 過於複雜的語法 (overcomplicated expressions),例如不必要的 if 描述句,可以用 while 迴圈取代的 for 迴圈。 重複的程式碼 (duplicated code),剪貼的程式碼表示臭蟲也被複製了。
cyrilwang 發表在 痞客邦 留言(3) 人氣(8,130)