https://ad.doubleclick.net/ddm/trackclk/N1114924.376585INFORMATIONSECURI/B26202047.309881952;dc_trk_aid=502706469;dc_trk_cid=155369661;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;ltd=
https://ad.doubleclick.net/ddm/trackclk/N1114924.376585INFORMATIONSECURI/B26202047.309881952;dc_trk_aid=502706469;dc_trk_cid=155369661;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;ltd=

觀點

淺談 BBS 資料的安全性

2007 / 10 / 08
XDite
淺談 BBS 資料的安全性

常見誤解
因為缺乏深入的知識,以及 WEB 的普遍化,一般使用者對 BBS 與盜資料常有幾個誤解:

1. 盜資料就是「偷盜」 == 偷走就不見了。(錯的)

所以管理者常會用資料沒有不見作為安撫使用者災情不嚴重的藉口,事實上這是錯的。真正的 盜資料 ==「偷偷拷貝一份」。如果沒有 LOG,你偷打開同學的拷同學的 A 片會被抓到嗎?答案是不會。除非你忘記關機或是不小心把拷貝A片到隨身硬碟做錯變成剪下A片,同學發現 A 片不見了才會被逮。入侵電腦偷盜行為也是一樣,除非在偷盜資料過程留下線索(丟進來的後門與留下的 LOG 忘記清,結果被巡察到),否則很少人知道管的服務曾經被入侵過。(這次事件報案的深藍論壇,也是站長例行巡察 LOG 後發現有人入侵,所以才能報案逮人)。

所以去年無名小站的與駭客拉鋸激戰十幾分鐘,和被盜十三筆資料那是唬人的,會相信這番說詞的是丁丁。

2. BBS 系統裡面四處都有 LOG。(這句話也是錯的)

如果 BBS 沒有自行重寫過的話,通常是只有 登入 / 打錯密碼的 LOG,還有 新增資料的 LOG ( POST 文章、丟水球、寫信、修改使用者資料、修改文章)。至於 讀取 以及 刪除的 LOG 是付之闕如。(就像 PTT 上次發生 人人變站長 事件,當時誰資料又被誰誰偷看,無從考證起;如果文章被大 D 刪除,也是再也撈不回來)。


你所不知道的事
另外,其實也有幾個大眾不太知道的事實。筆者在上一段講的 LOG 僅僅是指 BBS 上的 LOG,而 BBS 系統只是跑在這個 Unix 上的一支程式。再者,BBS 裡的檔案絕大多數是明文文字檔,因此站長直接從 Unix 上做的任何讀取、變更、刪除的動作都絕對不會有紀錄,如此各位讀者應該知道各項資料(跳過 BBS 系統後)在能進入 Unix 的管理者前,其實都沒有保密性可言,有心想看就看。

可以看/刪除的資料包括:
●註冊真實資料
●隱版文章
●個人信件
●個人水球記錄
我為什麼要提上面這一段呢?因為,另外據刑事局這次所發的新聞稿,當中提到一段:「(二)另經本局檢視該硬碟發現存有異常檔案「hixxxAll」及「pxx.PASSWD」,其中hixxxAll檔案內容為中○電信公司之電子郵件用戶帳號及密碼等資料(共2百多萬筆,若遭不法利用可窺視民眾之電子郵件,嚴重危害民眾隱私。)另pxx.PASSWD檔案內容為著名網路社群批○○實業坊(pxx.cc)之會員帳號、密碼、電子郵件、會員姓名及地址等資料(共數十萬筆),研判係駭客入侵網站所竊取。」

先不論.PASSWD檔是什麼以及涵蓋什麼,光被拿到.PASSWD就意味著也許 shell 可能已被拿下(大概的意思是可變超級管理者)。 shell 被拿下,自然什麼都可看,什麼都可拿。


入侵、破解手法揭密
再論,如果我是駭客的話(再強調一次筆者並不是駭客,只是曾經對 BBS 系統非常熟悉,而且 BBS 的程式碼是 opensource 的,大家可自行抓回去研究原理),除了 .PASSWD 不會放過外,還會再拿一樣東西,就是 register.log。

register.log 是什麼呢?簡單的說,就是所有使用者的註冊資料。大多數 BBS 對於註冊資料的作法,便是將資料存在 register.log,每增加一個使用者,便在檔尾附加進去(append),時間久了,裡面就是一大串肉粽。通常向警察報案 BBS 有人誹謗你,警察行文給 BBS,大多數也是調 LOGIN 記錄與 register.log。

鏡頭再拉回.PASSWD檔,這是什麼呢?這是存個人密碼的檔。雖是 binary 檔,但也非不可解析。先用 hexdump,再參考公開的 struct.h 自行撰寫轉成明碼文字檔,再刪減成可用讓 john (一支著名暴力法破密碼程式)跑的格式。 john 跑完就可得密碼。

這裡好像沒有八卦,感覺都加密過(使用 DES加密),就算暴力跑也要花上很多時間吧?這又錯了。一般網頁論壇使用的大多是 md5 加密(比 DES 長度高,也安全一些,但目前卻有 rainbow table 可暴力破一部份)。八卦的是:DES 雖沒有 rainbow table,但 PTT 有效密碼長度只有八碼(你密碼十二個字打只前八個字也可以 login啦!)。據知名但不願具名的資安專家指稱,快速的破解法是自行撰寫 john rule 並且利用之前 log 或 sniffer 的明文加入 password db 作破解依據,據實務操作案例,約有 70% 以上的密碼可以 john 跑出明文(且是快速跑出,並非針對某特定帳號)(。且一般 bbs 註冊都要求填另外的 email,5~10% 的 case 可以用 bbs 跑出的密碼登入 bbs 註冊時填的 email。(這裡筆者猜測會有 10% 這麼低,可能因為 BBS 大多只收 .edu.tw 的信箱,但是學校的 mail 密碼變更手續的知識門檻很高,因專家指出從 web forum 偷的 db,其破解出的密碼可登入註冊 mail 的比例就相當高)

恐怖吧。更恐怖的是,沒人知道 BBS 被入侵後,後續發展會怎麼樣。因為誰都不能保證駭客只是乖乖的偷看資料,拷貝資料,不會放後門。可以放後門又怎樣呢?當然是可以再進來摸東摸西偷裝東西啊。還可以偷裝什麼東西?筆者就舉個最近 知名南部BBS索尼小站的案例吧,索尼小站發生的事情就是程式碼被改過,結果:

1) 有一個神秘的通用密碼可以登入任何帳號
2) 登入成功後,密碼會被記錄在某個檔案中

直接記錄密碼,連john都不用跑。所以當然是跑進來偷改程式啊!再據前面提到的知名但不願具名的資安專家的說法,改source code還被發現是很笨的,正解是改source code 編譯出真正運作的 binary 檔過後,把 source code 再改回去,神不知鬼不覺。而且,還可以透過 UNIX 的 LD_PRELOAD(也就是 DLL Hijack 技術),這種方法連程式碼都不用改。

鄉民以為安全的BBS,其實保安程度跟紙糊的差不多。而且 BBS 架站技術因為沒落,原始碼也骯髒、入門需要比較高的技術門檻,因此補洞並不時興也往往不是第一要務 ( 加同時上站人數應該是第一優先)。這次 PTT 被爆出密碼遭竊只是冰山一角,而全是因為 PTT 是全台第一大站的關係,才有如此小小波動,相信年久失修被入侵的老站和小站應該更多。可是大眾對於這類的資訊十分的缺乏,且也幾乎沒有多少人願意明講 BBS 遭入侵事件中,可入侵到何種程度的程度以及被竊取的資料洩漏程度( .PASSWD 和 register.log ),甚至大部分站台遭到入侵,連建議修改密碼公告也往往只是小小一幅。因此興起了我為此文的撰文目的(我連打了一個禮拜晚上的電動,文章都拖到不想寫,激戰超好玩XD),希望能喚起大家重視在 BBS 上需提防的操作細節,以及建議儘速修改密碼。


※注意,本篇所稱情形不全指 PTT,是通指一般 BBS 的情形,如有任何謬誤之處,請各位先進不吝指正。
※本文若有錯漏之,煩請告知。感謝各位花了這麼多時間看我在這裡連番胡天蓋地,晚安。最後感謝兩位資安界大大(避免曝光,故隱去姓名)提供相關 sample 檔以及專業技術指導。
※文章出處:http://blog.xdite.net/?p=462