首先,你要懂ATM,幸運的是國際品牌的ATM控制有標準,WOSA(Windows Open System Atchitecture),只要ATM有裝WOSA的驅動程式,我們就可以透過這個標準介面來控制ATM,這樣就解決了第一個問題ATM控制。如果你找的到ATM廠商的內部人,就算沒有WOSA,每個廠牌也還是會有自己控制ATM的API,你也可以使用這些API來直接控制ATM,跟WOSA的差異就是,你只能控制某廠牌甚至只有某型號的ATM,幸運的是銀行通常都整批購買,所以就算只能控制某銀行的某廠牌某型號,你能控制的機器應該都在百台以上。
第二個問題,怎麼把你的程式放進ATM呢?超級夜貓子應該常常會發現,怎麼在深夜,到處都是ATM在暫停營業,他們在幹嘛呢?換版。也就是說,如果你能夠在換板之前把你的程式塞到換版包裡,你的程式在隔天凌晨就上線了。
一定有人想問,不能就透過windows update,網路芳鄰或是瀏覽器劫持的方式來安裝嗎?理論上,ATM機器是獨立網路,只能與指定的機器透過指定的通訊協定來通訊。通常為了安全,這通訊協定有兩,第一類交易訊息(加密應該都升級到TLS 1.1以上了),第二類檔案傳輸(FTPS應該也升級到TLS1.1了,但是透過MS SMS的話,就麻煩了,SMS可以遠端安裝、遠端執行,只要拿到SMS Server的控制權,能做的事情就多了),交易訊息沒辦法換檔案,但是檔案傳輸就可以上下其手了,如果是用SMS作軟體派送,沒有把Port關好(例如UDP 270x),那麼,拿到SMS Server控ATM就是你的了。
當然,現在還會有影像監控的路、設備監控的路、廣告伺服器(越後面的越好用來攻擊)的路等等新的通訊可以讓ATM連接,都是可以攻擊的門。
第三個問題,怎麼外部遙控,能解決第二個問題的人,代表他已經在資料中心佔有領地(殭屍),但是理論上能跟ATM連接的系統,他的對外網路存取是正面表列的,跟ATM一樣只能透過指定的通訊協定跟指定的系統通訊,在不處理防火牆的情況下,黑客就要不斷的進行各種嗅探,尋找漏洞來建立據點,直到找到能通往Internet的門,有了門之後。像是著名的TeamViewer,SSH tunnel都是可以在嗅探內網漏洞,建立可以對外被遙控殭屍網路後,可以用來由外向內直接控制的方法,至於定時喚醒,ShadowSocket、Tor這許許多多的匿蹤技術就先不討論。
以上三個問題處理完畢,你就可以遙控ATM來吐錢了。
因此,通銀行在
- ATM網路建立防火牆,只做正面表列(前兩年還有些銀行直接在ATM設備裡面就裝了一台小防火牆),其餘一律封殺。
- ATM系統群對外建立防火牆,還是只做正面表列,只連線到交易主機,其餘一律封殺。
- 銀行對外也會有DMZ的戰區,戰區往內只有指定的正面表列能進來。
在這,幫國內僅有的幾家漏洞偵測公司宣傳一下,銀行大人們,花點錢們來攻擊看看吧,保證你有意外的收穫,花小錢省大錢。
但是,銀行人員的上網?電子郵件?如何管理?這會是最大的漏洞。
以現在技術的演進,實體分離(內網完全不能連Internet,要上Internet的就不能連內網)會是最安全的。
這樣對操作人員的麻煩,是目前我想的到的最安全。不然,只要能上網,就有可能被種木馬。
—實務演練—
我要作的話,我會去當保全,那些負責ATM維護跟補鈔的保全,在以行員模式打開ATM的時候,塞一個模擬光碟片的USB隨身碟進去,就搞定了。
想要領錢,就直接在ATM鍵盤打密碼,可以一次領光,可以不用一次領光,慢慢領。
不想碰PIN PAD的話,塞個USB藍芽接收器,就可以現場遙控了,不過這太麻煩也無聊了。
這樣搞,以後保全補鈔也要兩個人互相全程錄影了。
另一種方式,安排人進銀行作聯管科的大夜班OP,木馬種進去之後,走到ATM前面,告訴內線,他就可以在中心遙控ATM吐錢。
以上就是建立在實體分離是確實執行的前提下可以做的。
實體分離怎麼解?人在電腦前,接電話,搞定。
突然發現中國廠商自己做的Linux ATM瞬間變成相對安全的東東,哈。
對了,有些ATM為了保護網路通訊安裝的奇奇怪怪(沒品牌、沒維護的意思)硬體防火牆反而也是個很好的突破口