2005年6月29日 星期三

A 錢大玩家

這兩天最近引我的新聞,莫過於富邦證的錯帳事件。
事件的起因於美林國際打算以八千萬元下單,女交易員不熟悉網路下單指令,將1按成100,將八千萬元打成八十億元,導致二百多支股票瞬間大幅飆高,而此人為疏失不僅導致公司數億元的損失,也令該公司的風險控管受到質疑。
在讀閱相關新聞時,發現許多談到風險管理的文章,都會提到英國霸菱銀行破產事件,透過 google 我找到了幾篇文章(感謝 google),順手記錄如下:
1. 衍生性金融商品知多少
2. 不要抱歉--換掉中國信託
3. 蔡學鏞的短文 - 從 A 到 E+
4. A 錢大玩家
5. 本國銀行業採用網路轉帳交易之決策因素分析
6. 一個小員工如何讓霸菱銀行一夕倒閉
7. 無奈的恐懼

如果新聞所報導的內容屬實,我的想法是,假若該交易員完全不記得敲錯(明明印象中敲對),那有可能會是電腦程式出錯嗎? 還有可能是被所謂的駭客入侵修改了程式碼所造成的嗎? 找得到人頭處罰總比不知手措好吧 :)

喂,是你入侵不小心造成的嗎? 請私下找我聊聊~~ 嘻~~

2005年5月6日 星期五

駭客年會 2005

2005年駭客年會徵求論文了!
這是台灣第一次,以仿照外國 Defcon 方式舉辦的駭客年會,將在七月中舉辦。
事實上,類似的駭客聚會在各重視資訊安全的國家都經常舉辦,對岸著名的 Xcon 資訊安全焦點會議也舉辦了許多年。

我計畫準備相關 Embedded Linux 安全性的內容,如果有興趣不妨報名來會議上一塊討論喔 :-)

駭客年會的網址是 Hacks In Taiwan !

考試惡夢

這是前幾天作的惡夢,我覺得有必要記錄一下。

夢境裡的我似乎回到了高中,正準備進入教室考試。在門口還要抽籤決定座位,我抽到某個顏色的蠟燭,像小時候生日時點的細細螺旋紋路地蠟燭。監考老師是我的高中老師,沒記錯的話是教數學的覃娟老師,娃娃臉但兇起來很可怕的那種。
開始考試,發下考卷後,我一如往常從頭看到尾快速瀏覽所有題目,覺得題目怎麼都看不懂。突然間發現有一題是化學平衡式,心想,嘿嘿,有一題我可以慢慢解了吧!
然後我就花所有的時間精力在作那道化學平衡式。
然而,不管我怎麼絞盡腦汁都無法把化學式平衡好,眼看時間一分一秒過去,一題都解不出來!而在心裡焦慮的情況下,驚醒了起來。
一起床,腦子裡竟還在想,今天要考什麼!

過幾分鐘清醒後,我覺得有些震驚,都脫離了學生生涯多年,還有考試的陰影一直環繞著我。天那,雖然還會羨慕學生,但考試寫不出來的學生,實在痛苦啊!

2005年3月18日 星期五

WISE 2005

2005 網際網路安全工程(WISE 2005)研討會這兩天在警政署刑事警察局舉行。而我在第一天的下午上台介紹了 Linux Rootkit ,包含 Rookit 的特色、種類及偵測方式等,詳細內容全文已收錄在論文集,而我上台時所使用的投影片檔則可以在這裡下載。
事實上,Linux Rootkit 所包涵的內容很廣泛,而我所描述仍不夠充足,還有許多疏漏的地方,希望在我寫作計畫裡可以把內容補全。




2005年3月4日 星期五

邪惡的 GGKit

真是一個邪惡的點子啊 - 我心裡這麼想.
有一個邪惡且威力強大的 Linux Kernel Rootkit - SucKIT,在著名的 Phrack 裡有作者完整的技術介紹。而我的奮戰,便從將 SucKIT 1.3b 移植到 kernel 2.6 開始....
1. kernel 2.6 移除了 query_module(2) 系統呼叫,往後要取得核心符號表可透過 /proc/kallsyms。
2. 系統呼叫增加到 28x個,比 kernel 2.4 的 25x 多很多。
3. task_struct 結構也略有更動,增加了 struct thread_info *thread_info 等欄位。
4. 支援 TLS - Thread Local Storage,新增 get_thread_area(2)/set_thread_area(2) 系統呼叫。不過這和我要作的沒啥關係 :)。
5. kernel 2.6 支援 Pentium III+ 的快速系統呼叫 sysenter/sysexit 機制。核心提供了原先的 int 0x80 和 sysenter 雙介面,並虛擬印射了 linux-gate.so.1 來實作,詳細內容可閱讀這裡

就這樣奮戰了兩天,我一個個解決了 kernel 2.4 和 2.6 差異造成的問題,並且讓 GGKIT (原 SucKIT 1.3b,我取作新名字)順利的在 2.6 下運作,不過仍然有些奇怪的 bugs 待解決 :(
值得一提的是,GGKIT 可動態偵測核心 2.4 還是 2.6 並作即時修正,不需重新編譯即可在 2.4 和 2.6 kernel 下運作。
我所用的偵測方式乃取 ES 暫存器來判斷,2.4 kernel 下 ES 為 0x2b,而 2.6 kernel 則為 0x7b。底下是在 GGKIT 在 kernel mode 下的程式片段:

--------------
long *es;

asm ("movl %es, %eax\n");
asm ("movl %%eax, %0\n"
if (es == (int)0x7b)
{
/* kernel 2.6 */
*runkernel() = 0x26;
} else
*runkernel() = 0x24;
--------------

Q:既然 GGKit 這麼邪惡,那麼可在何處下載玩弄呢?
A: 應該找不到下載點,但也許會在你的系統裡發現 :-)