Chinaunix首页 | 论坛 | 博客
  • 博客访问: 848096
  • 博文数量: 756
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:40
文章分类

全部博文(756)

文章存档

2011年(1)

2008年(755)

我的朋友

分类:

2008-10-13 16:11:13

提款機遠比妳想像中還要有可能不安全得多。讓我們來看看下列這些事實:

  1. 某銀行最近有一批新的提款機
  2. 這批新的提款機為了展現豐富的多媒體聲光效果,故採用了 Microsoft Windows 2000 來當作作業系統
    1. 早期的提款機用的多半是平實但穩定且安全的 IBM OS/2 來當作作業系統
    2. Microsoft Windows 2000 中文版預設就提供了「螢幕小鍵盤」
  3. 為了提供更具互動性的畫面,這些新的提款機一律採用了觸控螢幕
    1. 妳的手指頭於是變成了指標工具
    2. 妳可以用妳的手指頭搭配「螢幕小鍵盤」,輸入任何字母、符號、甚至是中文字
    3. 妳也可以叫出 Windows 的「開始」選單
  4. 這一批提款機很神秘地連上了 Internet
    1. 這表示妳可以透過這台提款機上網
    2. 這也表示妳可以把這台提款機內的任何檔案上傳到網路上的其他機器裡
    3. 當然妳也可以從網路上抓取任何檔案到這台提款機上
    4. 如果能夠安裝必要的程式、做出正確的調校,妳就可以從網際網路上,連線到這樣子的提款機
    5. 這同時也意味著,這台提款機其實會是網際網路到銀行內部網路間的橋樑
  5. 為了管理方便,這台提款機開機後,其實是以 Administrator (系統管理者) 的身份登入 Microsoft Windows 2000 的
    1. 以這個身份登入的話,通常意味著擁有最大的權限
    2. 以這個身份登入的話,代表著安裝任何軟體、存取任何檔案、或調整任何設定都不會受到阻擾

這件事情看起來很嚴重,不過也許會比妳想像的更為嚴重……

隨便想想,就可以想到許多入侵的手段。舉例來說,妳可以在提款機上安裝 Keylogger (會記錄下所有按鍵輸入的程式),然後就能夠輕易取得所有用過這台提款機的帳號跟密碼;或者,妳也可以把控制提款機吐鈔的程式下載回家,加以反組譯,就能夠知道要怎麼讓提款機把錢吐出來;又或者,妳也可以在提款機上安裝 VNC (虛擬遠端桌面),然後就可以把這台提款機當作跳板,入侵銀行的內部網路……

最可怕的一點,莫過於上述這些事情其實都是真實發生的,或確實可行的。妳的身份資產,真的安全嗎?

由 Jedi 於 May 3, 2004 11:05 PM 所發表 | |

--------------------next---------------------
[ : ]

這篇網友傳給我看的,早上看到到現在都還是想不通會有這樣的狀況.
雖然對於網路架構的認知不夠,不過以個人的角度來看....感覺上問題沒這麼嚴重?

1.用Win2k,資源多,架構快,維護成本低(?),擴充性強,程式架構容易,再加上可以多賣些錢,用Win2k有何不可?
反正人才到處都找的到,今天工程師走了,換一個新人進來馬上就上線...
有誰在學校沒玩過NT的呀?
不是說linux不好,重點是這個東西能賣個漂亮的價錢的話....2k可以綁更多錢..XD

2.我對於2k不是很了解,如果只給一個人數字鍵盤和滑鼠游標,能叫的出螢幕小鍵盤嗎?
除非該螢幕小鍵盤就直接出現在螢幕上,那另當別論
完整鍵盤也不可能會讓一般民眾帶去接吧
除非要搞debug模式,才有可能帶鍵盤去維護
在"完整的安全前提之下"
一般人只有數字鍵盤和滑鼠游標,能作啥呢?

3.銀行系統對於網路這東西應該要求非常嚴格,就算是用低成本的ADSL來當作是ATM的迴路,少說也會利用VPN的方式來架構,要先往外連應該就是直接連到銀行內部的專屬金融網路去了,只不過中間的路途是利用到Internet,除非VPN本身有問題.

金融網路應該是屬於封閉性的網路,我想沒有銀行會笨到開放給外部的internet來去作存取.讓人隨便去從internet去連ATM的機器... 如果是這樣,那幹那些網路的工程師早就跳出來當駭客自己提錢出來玩了啊,哪還輪的到一般的民眾..

如果要搞,把ATM撬開,然後用他的作業系統去連線到他的資料庫裡去番東搞西,不過能在這有限的時間內不被抓包,機率也是蠻小的吧.

小弟不是搞銀行網路和ATM的,不太了解該Jedi對於ATM了解的內容有多少....或許他知道很多內幕也不一定...

發表於 May 4, 2004 11:36 PM
--------------------next---------------------
[ : ]

我是做銀行程式的,雖然不是ATM,不過我覺得這問題變得有些爭論MS Windows和Linux誰好一樣。
1. Windows會當機,當然Linux也會當機,有看到Windows當機畫面不代表什麼東西,我也看過OS/2, DOS當機,更常看過Linux當機(在台北捷運地下街,用的是Linux加Netscape)。所有Jedi說的會有問題的,基本上也都可以在Linux上發生。
2. 回應上篇,ATM一般來說是沒有用VPN的。
3. 一般來說ATM是不能連上Internet的,甚至於直接用SNA連上Host,只有在比較新的架構下才會有透過EAI上Host的ATM,所以我會想知道哪家銀行那麼白目,我心中有些非常親近MS的銀行而且稽核做的很差的,我在想會不會是這些銀行。
4. 即使是櫃員的電腦,在一個有正當稽核的銀行通常也會鎖住所有的registry,包括上網,根本沒有任何可以輸入URL的地方,除非一開始就被植入木馬,一開始就有木馬也不用那麼麻煩了。
5. 是的,新的Kiosk(基本上可視為很漂亮功能很多的ATM,不過通常不能領錢)基本上都是用Windows 2000,而且是國內外皆然(我也不是做Kiosk的,這是獨占而且很賺錢的生意,銀行很保守,也不會買沒聽過的廠商,進入門檻高),會鎖死所有的registry,我在國外甚至看過有提供鍵盤的,你甚至不用螢幕小鍵盤,一般來說所有的程式都是在一個提供了一個沒有地方輸入URL的embedded IE,我想不到沒有地方讓你改URL,如何換到別的site去。

由 MJ 發表於 May 5, 2004 10:44 AM
--------------------next---------------------
[ : ]

所以我說要請Jedi說哪一家提款機可以上網的,這是一件不可思議的事情,應該說,就算可以上網,也不該被別人發現,就是說不該有地方可以轉到別的不允許的URL上面。
以下無關本文。
回應上上篇,新的ATM不是做成embedded system, only embedded browser,所以linux並沒有絕對的優勢,我們公司也力推Linux,事實上,但是因為銀行的單一伺服器通常只用來做單一功能,在這樣的情形下,伺服器端的Linux甚至比Windows貴,因為我們都用AP Server(WebSphere, WebLogic, Tomcat),所以Windows 2000 Server只要買有限client數目的陽春版(5 clients, less than USD$900),但是RedHat Enterprise AS(銀行不用免費的,都用這一版),最便宜也要USD$1499 (intel standard version,OS/390的RedHat,還要花USD$18000)。我要說的是,用linux在銀行來說純粹是趕流行。

由 MJ 發表於 May 6, 2004 01:10 PM
--------------------next---------------------
[ : ]

這一篇有一點點危言的意味。相較於舊式用NCR或者OS/2的提款機來說,以Windows 平台做為開發基礎當然有著很多好處,當然我不否認,要把一台Windows(就算他是一台提款機)弄掛有什麼難度,但是要以此作為入侵的跳板,可能沒有想像中的簡單。就我所知的銀行架構來說,後面多半是用Unix 的機器,甚至是跑SNA網路的。在沒有通訊軟體支援的情況下,要從提款機端侵入是很困難的事情。中間有AP Server跟Queue Sevice,後面接上資料庫。除非這三段都用了不合適的東西(比方說,提款機上有光碟機,還給你一個夠完整的鍵盤),不然要從機制上處理,機會不大。問題最大的反而不在這裡,是在網路銀行端,甚至是各主機用的call pager機制(讓我含糊其詞一下吧,這個說太清楚不好)才是最大的問題。如果說提款機會有被竊聽轉發的問題的話,那~看看你的DSU/CSU、ATU-R 上有沒有被動過手腳比較快。

由 發表於 May 6, 2004 09:19 PM
--------------------next---------------------
[ : ]

其實, 不論是 Linux 或是 Windows, 身為一位 hacker, 只要能坐在 terminal 前, 不管是拔線, 鍬面板, 有什麼難的? 尤其當 ATM 越來越走向開放系統時, 難保哪一天, 你就可以撬開一個小縫, 拉出一條 USB 的線, 接上你的 keyboard. 重點是這些廠商是否考慮到這些問題?

就開發速度而言, 我個人並不覺的 Windows 就比較快. Windows 對於 UI 的開發有許多好用的工具, 但這對 ATM 而言並沒什麼助益. 主要的 protocol 還是得 coding, 流程也沒辨法自動完成. 反到是 Windows 有一堆 API, 往往行為出乎意料, 每個版本之間的相容性又很差, 往往造成更長的 debug 時間. 反過來看 Linux 或 BSD, 行為可預測性高, 光這一點就勝過 Windows 平台很多. 對一個產品的開發過程而言, debug 的時間長過 coding 和 design 的時間數倍. 那一種 OS 較適於用於 ATM, 參考 UI 的需求, 行為的可預測試, debug 所花的時間, coding 所花的時間, design 所花的時間, 大概很明顯了.

OSS 的東西, 就算行為異常, 至少還有 source 可以參考. 當然, source code 對低路工程師而言, 是沒有什麼用的. 然而, 只要有人看的懂, 那就差很多了.

由 發表於 May 15, 2004 10:56 PM
--------------------next---------------------
[ : ]

剛好路過,就我知道的情況討論一下...

1.Physical security方面,有一個叫UL291的標準,規範了一些基本的耐擊程度,在沒有鑰匙的情況下,要打開蓋子接鍵盤上去應該沒那麼簡單(不知那種鎖好不好開?)。

2.開發程式方面,ATM廠商都會有library讓程式來叫用;除了聽過某家POS有把library從DOS porting到Linux上面外,ATM是還沒聽說(我也不是專門做這的,或許有也說不定)。不過當在Windows上面用一行 card.eject() 就可把卡片彈出來,而Linux上得要自己從serial port I/O開始研究起的狀況下,會選哪一個...?

3.其實,找到那台機器接的網路Switch,機會應該比較大...

PS.如果決定讓ATM網路可以連上Internet,那可能會被笑吧! 我也想知道是哪幾家~

由 Froggy 發表於 May 16, 2004 12:20 AM
--------------------next---------------------

阅读(428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~