作者:劉醇瑞
在上次討論過瀏覽網站的問題之後,老張似乎更為頻繁的聽聞到網站安全事件。於是他在一週之前,請小劉和小戴準備一個簡短的教育訓練,要求大家在今天下午到會議室一同參加。
Judy隨口跟小戴閒聊:「前陣子我上網搜尋一個負離子吹風機,才驚覺原來現在有這麼多購物網站。不過有些看起來隨隨便便的小網站,即使價格便宜一些,我也不敢嘗試。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「這表示消費者的信賴程度,直接影響購物網站的營運。雖然說購物安全並非贏得信賴的唯一要素,但它卻是一個必備的基礎。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「這方面的議題我們也探討了好幾次,但都是透過使用者的角度。今天把小劉找過來,就是希望能從開發與管理者的角度,讓大家認識網站安全問題。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Judy趕緊起身:「網站開發與管理者?我好像走錯房間了,臣先告退了。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
老張白了Judy一眼:「妳給我乖乖坐下吧,網站安全問題並非只牽涉到第一線的IT人員。像我們這種高度倚賴網站營運的公司,各單位都應該具備相關的概念。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「如果從資訊安全管理的角度來說,當然又會牽涉到資安政策、風險管理及持續營運計畫等問題。不過我剛和小戴討論了一下,我們希望能夠談比較具體的網站安全問題。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「在各種網站安全事件中,除了阻斷攻擊這類手法之外,幾乎全部都與資料有關。這邊所指的資料包含了網站上的檔案、網頁本身,以及後端資料庫中的所有資料。而這些事件大致上可歸納為資料的外洩、誤用以及篡改。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
老張摸摸鬍子:「說到資料外洩,許多事件並非歹徒刻意所為,而是網站方面設計與管理不良所致。等到資料在搜尋引擎上出現,甚至被媒體報導,相關單位才警覺事態嚴重。」

國內知名網站主機代管廠商戰國策,2009年初爆發訂單資料外洩事件。
當時透過Google可以找到4,270筆「訂單詳細資料」網頁

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「一個基本的觀念,避免將不需要的檔案放到網站目錄中。搜尋引擎的能力越來越強,只要有蛛絲馬跡,它們的索引工具(Spider)就能找到,且大部分的文件格式都能夠正確辨識。因此不要認為沒有在網頁上連結就不會被發現,最安全的做法就是移出網站目錄。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
小戴補充:「這讓我想起一個相關的伺服器設定,部分管理員為了方便或是忘了更改,當網站目錄中沒有預設的網頁(如index.html)時,會列出該目錄所有檔案列表,搜尋引擎或外部的使用者便可逐一檢視,而這也是檔案資訊外洩的主因之一。」

國內某高中網站案例,輸入網址便可列出並下載所有檔案,
其中包含使用者密碼資料庫檔案

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Judy皺眉:「該說搜尋引擎太盡責還是太霸道呢,難道不能拒絕它過來索引嗎?」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「確實有個方式,就是在網站根目錄中放置一個Robots.txt檔案,裡面可以要求搜尋引擎不要索引某些目錄。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
小劉強調:「不過這屬於一種約定成俗的機制,部分搜尋引擎並不理會該檔案,此外這個檔案也無法影響使用者瀏覽。因此倘若需要分享資訊給特定人士時,最好的做法還是進行認證與權限控管。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「除了這種作業上的疏失,也有不少問題是源自程式設計的缺陷對吧?往往在設計查詢網頁時,僅考慮到其便利性,卻忽略了潛在的安全問題。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
小戴點頭:「舉例來說,設計一個錄取名單查詢網頁,如果採用身分證字號作為單一查詢條件,有心人士只要透過身分證產生軟體,不斷嘗試不同的身分證字號,就可以瀏覽其中吻合的個人資料。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「我想起一個數年前國外發生的網路銀行事件。如同當時大多數網站一般,他們採用帳號密碼進行認證,如果密碼連續輸入錯誤多次,系統將會鎖定該帳號。沒想到歹徒卻反其道而行,利用一組固定的密碼,不斷嘗試各種帳號名稱,進而規避了系統的鎖定機制。這和小戴所舉的案例都同屬商業邏輯的漏洞。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
老張嘆口氣:「這些資料外洩、逾權的問題就已經夠讓人頭痛了,三不五時還要提防不同動機的駭客入侵。」

國內某網站遭入侵案例,入侵的土耳其駭客團體刻意留下記號,
此類駭客的動機多為意識型態或展現功力為主

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「的確,像是非法變更或建立網頁,或是植入惡意連結,都屬於資料的篡改行為。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「身為網站管理員,應當定期更新與修補相關軟體,特別是伺服器上的作業系統與網站相關程式。此外,許多網站為了快速上線,會套用一些現成的套件、框架或函式庫。這些由第三方所開發的軟體,倘若開發者沒有持續維護,也可能帶來安全性的問題。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「另外錯誤訊息的管理也相當重要,營運中的網站幾乎永遠處於修改狀態,部分設計人員為了方便除錯,會直接在公開網站中顯示相關訊息。攻擊者能夠故意製造一些錯誤行為,並透過畫面中的錯誤訊息取得系統資訊。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Judy忽然眼睛一亮:「那前幾天總統府網站上的惡搞事件呢?話說看到他們跳Sorry Sorry還真有趣~」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「這是屬於一種名為XSS(跨站腳本攻擊)的手法,利用程式瑕疵與特別設計的參數,讓網頁即時插入攻擊者預期的字串。總統府網站的設計存在安全漏洞是無庸置疑的,不過在那個Sorry Sorry的事件中,資料並沒有遭到實質的竄改。」

2009/08/27網路上流傳一則利用總統府網站漏洞的連結,
網友可在新聞稿專區看到總統大跳Sorry Sorry的影片

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
老張 小劉接著說:「要防範這類的問題,關鍵在於輸出入的處理。運用白名單的概念,驗證任何從外部進入網站的資料。例如要求使用者輸入出生年份時,在程式設計上就應該排除數字以外的可能。除此之外必須對資料進行預先編碼處理,以便在進入下一個流程之前,將特定字元轉換為符號,這個過程稱之為脫逸(Escape)。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
「網站攻擊與防禦手法十分多樣,光要詳細介紹一種就會耗去大半天,因此今天談的都是通用的原則,幾乎適用於所有網站的開發與管理,也是相關人員應該具備的基本認知。」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

瀏覽安全須知:

避免將不需要的檔案放到網站目錄中
關閉瀏覽目錄功能 (關閉IIS的「瀏覽目錄」或移除Apache的Options Indexes)
利用Robots.txt檔案,要求搜尋引擎不要索引非公開目錄
謹慎考量商業邏輯問題,運用更多的資源進行測試
定期更新伺服器端的作業系統與網站相關程式
使用第三方所開發的軟體時,需注意其支援與更新
劃分設計與上線網站,並關閉上線網站之錯誤訊息
不信任任何外部資料,妥善進行輸入之驗證及輸出入之脫逸
經濟部中小企業處 主辦 中華民國資訊軟體協會 執行

Copyright © 2008 Information Service Industry Association of R.O.C. All Rights Reserved.
版權所有,禁止侵害,違者必究