談了這麼多篇,大部分都著重在聯網的部分。不過,工業或交通設備之間的連線,也可以視為「網路」的一種。
既然這個和「網路安全」也有一點關係(雖然有點擦邊),但也算是討論的範圍之一。
交通號誌設備,在剛開始出現時,都是設計成各個獨立的單位。每個紅綠燈之間都不會做連線,各自管各自的,各自依照自己的時間表去決定要做什麼事情。後來,交通號誌設備開始有互聯的能力,於是開始有辦法支援多種時間表、讓各來源的資料和交通號誌設備互動,或甚至依靠一個設備的資訊去改變另一個設備的行為。
這次是介紹一篇密西根大學的論文,主要是針對美國密西根州某一城市的紅綠燈做研究。
通常,沒有人會特別去想要研究的方面,一言就起來,就會發現有蠻多問題的。例如這次講的交通號誌系統,就是一個例子。 主要的問題並不是使用什麼協定,而是缺乏安全意識。
首先,我們先介紹「交通路口」。
一個交通路口,其實是由許多系統組成的。我們先逐一做介紹。
感應器在這邊是用來感應車輛的。通常會使用感應線圈和影像偵測來感應車輛,不過,也有使用微波、雷達或超音波系統來做這件事情的。
交通控制器是負責讀取感應器的資料,然後控制號誌的。控制器通常是放在某個路邊的金屬箱子裡面,而感應器通常是用某種方式連線到控制器上,然後依據某種程式性的規則,去控制目前交通號誌的狀態。
交通路口通常會有多種「模式」。例如:
控制器可以獨自運作,或者是成為某個大系統的一部份。如果和其他系統連動的話,各個系統之間可能會共享時間和交通狀況等等資訊。
各控制器之間除了可以互相通訊以外,也可以和一個中央伺服器做通訊的動作。如果是在人稠地狹的地方,有可能會使用實體線路把各個控制器串起來,但如過在偏遠的地方,就有可能會使用無線電 (900Mhz/5.8G/4.9G) 等等的方式來做通信。
Malfunction management units (MMU),這個系統是拿來管理「故障」或「衝突」的。這系統會有一份白名單,裡面記載各狀態下應該要有的信號狀態,然後還有可能是直接用機電控制的方式來判斷狀況,而不是像控制器中,用軟體的方式來做控制。如果控制器判斷了不正確的狀態出來(例如:十字路口,卻兩邊都是綠燈),就會由 MMU 強行介入,然後回到「安全模式」(例如改成閃紅燈),然後該控制器就會必須要由人工去手動檢查並做重設的動作。MMU 也有可能會檢查燈號秒數是否太短,若太短的話,也會回到前述的安全模式。
這 Paper 的作者,還真的和密西根當地的一些管理單位借一些號誌拿來「研究」。他們配合的單位,因為轄區太大了,所以大部分都只能靠無線電來做「通信」的動作。各設備會以無線電的方式來傳輸目前的路況給一個控制中心,然後控制中心會依照這些資訊,修改一些路口的秒數長短。
雖然他們研究的系統是使用無線電,但不管是哪種通訊方式,問題的根源都是相同的。
在他們研究的系統中,是使用 5.8G/900Mhz 的頻段在做通信的。每個路口都會有兩組無線電,一組發而另一組收,然後每個系統中的設備都會有一個 IP 位置,組成一個私有的網路。
在收訊夠好的狀況下,就會用上 5.8G 的頻率。這種模式下,由於是使用和 Wifi 類似的協定,所以可以用隨便一台裝置連上去,而且常常沒有把預設密碼改掉。如果收訊不夠好,就會用 900Mhz 的頻段,不過也和 5.8G 的狀況一樣,沒什麼安全性可言。
不管是用哪一個頻段,也都沒有實作「加密」。
有趣的是,控制器可以用 FTP 等等方式來修改程式,不過也沒有把預設密碼改掉。
控制器是跑 VxWorks 5.5,除了一些開發用功能沒有關掉以外,也有很久一段時間沒有做系統更新了。
所以,我們可以得出一些結論:
由於並沒有任何加密,所以無線信號沒有什麼值得探討太多的。
控制器可以打已知的 VxWorks 漏洞,也可以透過控制器本身的遠端控制功能的漏洞去模擬「在控制器本身上面按按鈕」的動作。控制器的製造商還真的有利用這個功能,做了一個遠端控制的程式,所以只要觀察這個程式的行為,就可以做這件事情。
只要掌控了控制器,就可以掌控該路口的紅綠燈狀態。例如說,把該路口的紅綠燈加快、減慢,或是讓紅綠燈變得無限的久。雖然,設一些奇怪的狀況,還是會導致 MMU 強行介入。若 MMU 強行介入,那就只能真的跑去那台控制器做重設的動作了。
綜合以上,主要會有幾種攻擊模式。
這應該是最明顯的攻擊模式,透過讓紅綠燈變得不可用,或者是把兩邊信號都弄成紅燈,就可以造成塞車。雖然弄了奇怪的狀況會觸發 MMU,但還是可以讓某單位轄區內的紅綠燈一直出狀況,使該單位疲於奔命。
另一種方法就是故意製造交通阻塞,例如把綠燈弄超短,或是把紅燈弄超長。這樣就會造成交通阻塞。
攻擊方也可以學「看門狗」裡面的主角,控制燈號。這樣有幾種可能: