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