上周五(7月28日),美國工業控制系統網絡應急小組ICS-CERT發布一項警告,指出控制器局域網(簡稱CAN)總線標準當中存在安全漏洞。
E安全百科:CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是由以研發和生產汽車電子產品著稱的德國BOSCH公司開發的,并最終成為國際標準(ISO 11898),是國際上應用最廣泛的現場總線之一。 在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。
此項警報當中詳盡描述稱,該漏洞屬于匿名拒絕服務攻擊,需要以物理方式訪問CAN,且攻擊者必須擁有必要知識以對流量進行逆向工程,成功之后,攻擊者將能夠中斷目標設備當中的任意功能。
ICS-CERT在警報中引用了來自米蘭理工大學(意大利國內最大的技術性高校)一組安全研究人員的研究報告,詳盡介紹了“汽車如何利用多達10萬行驅動代碼整合數十個電氣控制單元。各單元通過內部網絡緊密相連,而這套內部網絡則主要基于CAN總線標準……”
為何針對CAN總線標準的拒絕服務攻擊難以檢測?該研究報告介紹稱,針對CAN總線標準的拒絕服務攻擊非常難以檢測,因為其利用到CAN總線在設計上處于架構底層的特性。這意味著攻擊者能夠對關鍵性安全組件進行篡改,或者禁用轉向助力乃至安全氣囊等車輛功能。
此項攻擊利用到CAN標準中的缺陷,作用于OSI堆棧的物理層與數據鏈路層之間,且不需要攻擊者發送任何消息。
值得強調的是,報告中同時給出研究結論,表示只要CAN總線網絡未經顯著改造,則此類攻擊活動完全不可能被發現。這意味著廣泛采用CAN總線標準的汽車、制造流水線、樓宇自動化乃至醫院等環境都可能遭遇此類攻擊。
研究人員還在GitHub上發布了CAN拒絕服務攻擊概念驗證項目,該項目題為“針對汽車網絡的隱匿、選擇性、鏈路層拒絕服務攻擊”。在報告中,米蘭理工大學方面證明確實可利用一臺Arduino Uno Rev 3設備入侵阿爾法羅密歐的朱麗葉車型,并立足29 bit / 50 kbps CAN總線操作禁用其泊車傳感模塊(標識符06314018)。
總而言之,這項漏洞主要集中在隱匿性與控制bit(非完整幀)以實現CAN節點故障,這一點曾經在此前IDS/IPS系統當中出現過的其它攻擊當中有所體現。
目前有何方法緩解刺激攻擊?考慮到拒絕服務攻擊對于CAN標準內設計缺陷的利用與易于使用的輸入端口(一般為ODB-II),ICS-CERT建議大家限制指向這些輸入端口的訪問操作。另外,他們也在與汽車乃至其它行業合作以制定應對計劃。
考慮到CAN總線標準在汽車、醫療衛生以及制造行業當中的廣泛應用,此次警告進一步強調了安全環境中的單一缺陷可能給整體網絡帶來致命性的嚴重危害。
GitHub上關于CAN拒絕服務攻擊概念驗證項目的相關鏈接,請戳!