時事 26 Sep 2007 11:52 pm
|
推到 Twitter!
推到 Plurk!
|
淺談 BBS 資料的安全性
寫在前面,如果你看到這一篇文章,我代為宣傳一下:
請儘速修改你的 PTT 密碼!
(如果沒有玩 BBS,就把這篇文章當作是篇比較八卦的知識文章吧。)
———————————
相信大家前幾天都有看到這則新聞:「破解中華電、批踢踢~駭客竊千萬個資 林志玲也受害!」。苦主有中華電信、台灣深藍學生論壇、卡提諾論壇、EzPeer、無名小站、雅虎、Google、PChome、艾噹洛學院等十個大型網站。鄉民最愛的批踢踢實業坊(ptt)也慘遭毒手。
最近,PTT 進站畫面底下悄悄上了一行黃字:[公告] 請更換您的密碼以保護帳號安全,不過好像沒多少人在意,大部分以為密碼有加密就沒事了。筆者想乾脆趁這個機會稍稍淺談一下 BBS 資料的資訊保全,讓大家知道換掉密碼以及避免在 BBS 留下敏感資訊的重要性,所以寫了這篇文章。(因為鑑於 BBS 架設有一定的門檻,管理上也需要一定的知識,知道 BBS 運作原理的算少數)
[注意,本篇所稱情形不全指 PTT,是通指一般 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。
[注意,這裡並非是使用 PTT 資料做為畫面]
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 上需提防的操作細節,以及建議儘速修改密碼。
本文若有錯漏之,煩請告知。感謝各位花了這麼多時間看我在這裡連番胡天蓋地,晚安。
最後感謝兩位資安界大大(避免曝光,故隱去姓名)提供相關 sample 檔以及專業技術指導。
This
work is licensed under a
Creative Commons Attribution-Share Alike 2.5 Taiwan License.
[本文採 cc-by-sa 授權,白話意思就是可以直接轉走,但是要附出處與作者)]
28 Responses to “淺談 BBS 資料的安全性”

on 27 Sep 2007 at 12:20 am 1.None said …
Ptt 連 Announce、Sysop 板都沒有發公告…
on 27 Sep 2007 at 1:08 am 2.chitsaou said …
我是索尼小站的”前前”程設站長 XDD
被拿出來講了rz
不過那個是站長堅守自盜…不是入侵呢 :Q
但是偷改程式的不是我 …zZ
on 27 Sep 2007 at 1:17 am 3.ckmarkhsu said …
我是深藍的站長,也被提到了XD
其實目前較為嚴謹的論壇系統已經都不純使用 MD5
以敝站 vBulletin 系統為例,已經使用雙 Salted MD5
沒辦法單純以現有的 rainbow table 反查
不過卡提諾跟愛噹絡的 Discuz! 目前為止還是使用 MD5
請用過重要密碼的人盡快變更Orz…
—
btw 其實 xdite 應該寫比較有爆點的部分阿XD 其實對於這件事情,深藍站方有不少怨言:p
on 27 Sep 2007 at 3:04 am 4.fauzty said …
XDite 太狠了啦 BBS是pre-Web時代的東西 安全性當然和紙糊的一樣 這是「不願面對的真相」啊 XD
on 27 Sep 2007 at 3:15 am 5.fauzty said …
除非整個砍掉重練,或著in2的兔毛吹一口氣就可以化為千萬個in2分身,否則這種事情是很難有修正的機會的。修改BBS程式碼,入門門檻高、冷門(Web才是主流)、無金錢報酬,很難吸引新人投入,只能靠著以前就在接觸的老骨頭們用熱血去支撐。
on 27 Sep 2007 at 7:30 am 6.hrs said …
為什麼XDite大會知道索尼小站XD?
BBS的系統本來就沒有安全性的
再多的log
只要有local端權限就為所欲為了
on 27 Sep 2007 at 7:47 am 7.s3p said …
專職的 log server 這時候就很重要了….
on 27 Sep 2007 at 9:17 am 8.mabel said …
hey man, 我來自對岸, 你的 site 很有意思。
今后會經常來看看的~~
on 27 Sep 2007 at 9:57 am 9.Test said …
可是,那麼多帳號、那麼多密碼,改來改去根本記不住啊;
何況還要要求密碼強度,那種夠強的密碼是正常人類會記得起來的東西嗎???! :~~~
on 27 Sep 2007 at 9:57 am 10.Test said …
:~~~
on 27 Sep 2007 at 12:01 pm 11.ckmarkhsu said …
我是深藍的站長,敝站也被提到了:p
其實目前較為嚴謹的論壇系統已經不是採用純 MD5 雜湊
以敝站使用的 vBulletin 為例,所有密碼均使用 雙 Salted MD5 雜湊
無法使用現有的 Rainbow Talbe 反查
不過,卡提諾與艾噹洛使用之 Discuz! 系統仍舊是純 MD5
甚至有些網站使用 plaintext Orz….
有在這幾個站使用過重要密碼的人,建議快點更換:p
密碼其實可以用簡單了方式增強安全性(使用中文詞句英文輸入)
另,Windows LM 密碼經證實低於 7 位可在本機快速查出原始密碼
–
btw 話說 xdite 為什麼不寫比較有爆點的部分XD
其實這件事情,深藍站方頗有怨言:p
on 27 Sep 2007 at 12:51 pm 12.GAGAGA said …
R安全這種東西,弄的越方便就越不安全了…
所以…只能將就著點了。
on 27 Sep 2007 at 1:09 pm 13.xdite said …
恭請十樓寫信提供爆點啊 XD
on 27 Sep 2007 at 1:52 pm 14.wildcat said …
你要我來留言,不過我又不能跟那兩位提供你資料的大大一樣匿名,
真是尷尬 XD
不過,就算不進 shell ,也是可以透過某些方式來取得 .PASSWDS 檔,
例如充滿隱藏後門的精華區 XD
早期的站長為了方便起見,常常把一些bbs的設定檔案 link 到系統專用的精華區中來編輯,可以省下登入,進 shell 的時間,
不過相對的也就可以在精華區裡面連到很多不該連的東西… XD
如果 link 之後再轉寄… 你知道的 :p
至於 DES 編碼安全性的問題,這邊就不多探討,
基本上跟 unix 系統的 passwd or shadow 是一樣的。
on 27 Sep 2007 at 2:45 pm 15.hiroshi yui said …
請問有 Pxx 已經補洞與否的八卦嗎?
不然邏輯上就算改了密碼,似乎還是躲不了?
on 27 Sep 2007 at 3:35 pm 16.xdite said …
symbolic link …XD
這個我忘了講了。可以從精華區直接建連結到某些檔案。常見被建連結的檔案是 水球記錄 和 個人信箱 XD
on 27 Sep 2007 at 4:40 pm 17.wildcat said …
我這樣假設好了,
在人人有站長的那一夜,
某些東西已經直接被送出去賣了…? :p
on 27 Sep 2007 at 5:09 pm 18.Maverick said …
我論這假設正確性高達八成 (立委調
on 27 Sep 2007 at 9:35 pm 19.fauzty said …
13樓有爆點,推推推
on 28 Sep 2007 at 1:09 pm 20.Test said …
http://www.cis.nctu.edu.tw/chinese/doc/research/doc/cismagazine/cis-magazine-83-12.html
http://www.cis.nctu.edu.tw/chinese/doc/research/doc/cismagazine/cis-magazine-84-1.html
有人又想起了 Ken Thomposon 在他的圖寧獎演講中 所提及, 放在C compiler 中的那個特洛伊木馬了. 我曾在資訊人 園地 『 Compiling a Compiler 』 中談到這個故事. 『特洛伊 木馬』, 指的是外表看起來無害, 但內裡暗藏玄機的程式. 據 Ken 所說, 他在 C compiler (事實上應該是 pre-processor) 中放了一個後門, 如果compiler發現它所處理的程式是 login 的 原始程式, 它就會在裡面加入一段程式碼, 讓 Ken Thomposon 可以 login 進去. 由於 UNIX 得用 C compiler 來編譯, 這意味 著 Ken 將可以進入任何裝 UNIX 的電腦; 那麼, 我換個乾淨的 compiler 總可以吧? 但新 compiler 的原始碼也得由舊compiler 來編譯, 而為了讓這個特洛伊木馬能流傳久遠, 如果舊 com- piler 發現自己正處理的的是另一個 (正常的) C compiler, 它 就會把上面那段『如果是login, 就加入一段…』 的那段程式碼, 給插到這個compiler裡面去.
on 29 Sep 2007 at 11:08 am 21.in2 said …
據聞 Pxx 已經補洞了
on 29 Sep 2007 at 12:35 pm 22.in3 said …
Pxx照打
如入無人之境…ya
on 05 Oct 2007 at 1:32 am 23.fan said …
話說,現在還有人在維護的BBㄟ死還有哪些勒?
on 07 Oct 2007 at 11:25 pm 24.hash vs. encryption said …
>一般網頁論壇使用的大多是 md5 加密(比 DES 長度高,也
>安全一些,但目前卻有 rainbow table 可暴力破一部
>份)。八卦的是:DES 雖沒有 rainbow table
md5 : hash演算法, digest length : 128 bits
DES : 加解密演算法, key length: 56 bits
md5 是 hash 演算法; DES 是加解密演算法, 怎麼比較呢? rainbow table 是 pre-hash, 當然只有 MD5 可以應用, DES 不是 hash 演算法, 自然沒有 rainbow table.
DES 和 MD5 也都被破解過. 但如果是樓上說的 MD5(雙 salt + password), 應該強度會大幅提昇, 增加破解難度.
on 13 Oct 2007 at 6:14 pm 25.偽宅男 said …
我看新聞說蘇柏榕是建中的數理資優生,似乎具有人腦推算解密的能力…
on 13 Oct 2007 at 10:28 pm 26.AIG said …
那是記者寫的, 反正cracker落網也不會跟記者透露手法, 就算透露了記者也聽不懂的, 記者當然只好自己亂掰
要是人腦用某種方法就可以帶過天文數字般的complexity, 那還當什麼cracker? 直接去領Turing award了嘛!
on 03 Jan 2008 at 8:34 am 27.完全なる不労所得を得る事が出来る said …
全て答えをだしてマニュアルを作成…
この情報を知ってしまえば稼ぐ事がこんなにも
簡単になってしまうんです。 …
on 08 Jun 2008 at 12:47 am 28.Blog.XDite.net » 誰賣了 PTT? said …
[...] # 噗 …. # 不知道會不會是在這個事件洩漏出去的資料? [...]