這個簡單方案可以防御下一個“震網”病毒的出現
新加坡和印度的科學家表示,全球最老編程風格之一,運行在工業可編程邏輯控制器(PLC)上的梯形邏輯,依然十分脆弱,易于攻擊。但不用慌張,因為它很容易擋住。
印度海德拉巴國際信息技術學院的納曼·高維爾,新加坡科技設計大學的阿南德·阿格拉沃爾和尼爾斯·奧利·蒂芬豪爾,三位研究人員認為,大家普通的把目光都關注到了震網這樣的攻擊上,而控制邏輯層面上的安全工作卻無人問津。
在他們測試的羅克韋爾系統中,固件更新是有數字簽名保護的,但梯形邏輯沒有。梯形邏輯的運行假定是:只有受信任的人才有權限插入程序,但是卻沒有任何檢查/驗證以確保被編入PLC的邏輯更新來自授權源。
為證明此點,蒂芬豪爾及其同事撰寫了“梯形邏輯炸彈(LLB)”,重點放在人類操作員在驗證PLC上運行程序時難以發現的隱秘行為。
三人組測試的負載類型包括:
- 拒絕服務LLB:等待觸發,關停系統;
- 數據操作LLB:操縱傳感器讀數和指令;
- 數據日志LLB:特別危險的一類,因為不干擾系統,所以可長期泄露敏感數據。
科學家們指出,很容易隱藏那些甚至能讓PLC失效的命令,使用合法指令愚弄陣列或者創建棧溢出(后者超簡單:創建一個遞歸調用自身的子程序即可)。
幸運的是,蒂芬豪爾的論文中提出的防御方法,同樣簡單。首先,公司企業應該集中他們的PLC軟件存儲到單一地點,所有工程師提交“黃金樣本”,PLC僅采用來自這些樣本的更新。其次,操作員應(最好自動地)執行定期檢查,核實PLC上的軟件是否與中心邏輯存儲一致。