IT人談IT-資料系統保安手冊
前言:近期IT 至Hit 話題都算是個人資料外洩事件,天天新鮮。看來很像系統出了問題而引致事件,但總離不開是人為的錯失。不過你有沒有留意,這些問題通常都是在Google中發現,會不會是Google的搜索功能強勁了,可以入侵這些網上系統,令個人資料被Google儲起來?Google 是好人還是壞人?(一個有趣的比喻:「系統」是正版,Google 是專破「正版」的「老翻」)
這些事故,官方的解釋,通常都是說系統有問題並已修復,很小機會說是人為錯失(因為可能會被客戶追究),證監會的事件就另外(因事情攪大,需要有人負責)。普通人聽這些解釋,都覺得可接受,不過我一聽,就非常好笑,很像一個天大的謊話。
先講下證監會的事件,官方說上載有密碼,下載沒有密碼,這位人兄的IT程度真是差得很,這些天大的錯失都可以錯,真的要送去讀書。你不如將你所有銀戶口的密碼寫在 Blog,讓天下間的人分享吧。這些根本與系統無關,就算你的系統有十萬個防火牆,三十層系統加密等等,但將一個已解密的檔案隨意放,有多好的系統也沒有用,完全是個人的知識的問題。送他去讀書吧。
又講講CSL事件,這件事與系統的設計有關了。CSL將一些客戶的資料輸出到 CSV檔,儲存到與系統相同的目錄下,而目錄並沒有保護,可以隨意列出檔案清單(Directory Listing),這樣,在清單一按下 CSV 檔即可下載。完全犯了系統管理兩大錯誤。
一:將資料輸出到伺服器中可被讀取的位置,就算你的系統需要輸出一個暫存檔案,往後作處理,亦應將它輸出到Web Server無法讀取的目錄下,又或者已被保護/不會列出檔案清單的目錄(例如CHMOD 644/加了 index.html 或 .htaccess / .htpasswd 檔案 [Apache伺服器]等),由於輸出的檔案,不是在你的系統程式管理下,即是在無需登入檢查之下,亦可讀取檔案。
二:輸出的檔案應該不可直接讀取,最好亦要經過系統檢查下讀取。例如寫一個 download.asp ,首先檢查是否已經登入,然後利用程式的開啟檔案程式碼,開啟檔案、讀取並輸出檔案下載,千萬不要檢查後就以 HTTP Redirect 指向真正的檔案路徑,否則黑客只要用一些可以讀取HTTP Header 的軟件、軟件防火牆,甚至瀏覽器的History,就可以知道檔案的真正位置。
另外最好有檔案下載時間限制,例如系統輸出的檔案,需要在十分鐘內下載,否則系統就會自動刪除這個檔案。這亦可以確保不會在伺服器上留有備份。
最後看看衛訊電訊的維修系統,系統將數百名用戶維修資料外洩。雖然系統的確是有密碼保護,但用了一些「低 B」的保護,就是用了JavaScript 檢查,即是你將瀏覽器的 JavaScript 關閉,就可略過檢查,繼續瀏覽資料。Google 何會理會JavaScript 呢,這個又是天大的笑話。雖然後來系統已更新了,在 ASP 中加入檢查,但在輸出的版面中,仍然只是有JavaScript檢查,即是現在仍然可以看到該個人資料。
看了這三個個案,都是人為的錯失。錯失一:電腦保安知識差!完全貪方便,就讓Google 有機可乘。錯失二:系統設計失誤。由於現在很多公司都需要電腦化,但負責設計系統的人員經驗不足,亦有些人員很像小學生交功課,草草了事,所以就產生保安漏洞。但其實,你現在使用中的電腦,亦可能有不少漏洞,例如沒有Windows Update,沒有安裝/更新防毒軟件,被安裝了不少偷聽/廣告/廣告軟件等等。不過一天沒有爆發,你就沒有理會吧。
由於電腦的普及,但市民對電腦的保安知識並無普及,有些更可以說是完全不懂,所以就很容讓電腦害死你。雖然政府已經有電腦保安事故協調中心,用作向市民推廣資訊保安的認識,但覺得力度不足到一般的小市民,通常是是在有大型事故後,才會在新聞中看到,但很快就變過眼雲煙。
上文雖然只是提了幾項系統設計問題及改善方法,但其實還有很多很基本的系統設計要點及操守,以下列舉兩三點,看看你又做了多少。
- 在設計自動登入時,不要將用戶密碼以Cookie方式儲在電腦,亦不要以Option的方法即可略過密碼檢查自動登入,例如 autologin=1; 就會自動登入。否則黑客自製一個Cookie 檔案,即可無需密碼就可自動登入。
- 不要直接將密碼直接儲存到資料庫,最好以單向加密方式儲存(即不可還原)。通常用戶都會以同一個密碼,作為多個系統的登入密碼,如果系統以Plain Text 儲存,黑客亦有機會利用這個密碼去登入或推算其他系統的登入密碼。
- 如果系統是需要透過互聯網於其他地點連線,但又只限於某些高層人士,不包括小員工,這樣就要在系統設計上加點功夫。例如設定某些戶口可以透過真 IP 登入,而其他戶口只可以經Internal IP (例:192.168.1.X)登入。又或者將系統仍然放在網內,網外無法連線,而高層人士需要透過VPN連接到系統網內,才可登入。
- 互聯網系統,最好使用SSL 加密方式連線,以確保傳送的資料已被加密;而系統傳送,盡量以 POST 方式傳送,由於用GET方式,網址上會留有填寫的資料,瀏覽器的History 就會留下該資料。
其實還有很多,你有興趣的話,真係找本書看看吧。這些都算是經驗之談吧。
最後,為何會一連數天都有這些問題上報?原因是因為香港人太無聊,走去不停Google 找一下一些人名,你想知你的資料有沒有外洩,在 Google 搜索一下你的姓名試試吧,可能會找到例如畢業錄、抽獎名單、名單等等網站呢。最最後:你還記得這單新聞嗎?![]()

科學, 藝術/人文
回應的RSS
回應(3)
引用通告(3)
(0)
2006年03月23日

