本文來自安全牛。
邏輯炸彈是一種非常傳統(tǒng)的惡意代碼攻擊形式之一,其雛形可追溯到上世紀(jì)80年代美蘇冷戰(zhàn)時期。當(dāng)時,前蘇聯(lián)的一家科技公司竊取了加拿大的精密控制系統(tǒng),用于自己的工業(yè)設(shè)施建設(shè),但其中已經(jīng)被秘密植入了邏輯炸彈。該邏輯炸彈在1982年一個特定的時間觸發(fā),使渦輪機和閥門失控,產(chǎn)生巨大壓力,造成西伯利亞天然氣管道爆炸。
雖然隨著APT、勒索病毒、供應(yīng)鏈攻擊等新型威脅的出現(xiàn),邏輯炸彈攻擊看似銷聲匿跡,淡出人們的視野,但從數(shù)字經(jīng)濟時代網(wǎng)絡(luò)安全的發(fā)展形勢來看,邏輯炸彈的攻擊邏輯一直存在并在不斷增長。畢竟,對于敏感的信息系統(tǒng)而言,一旦交付應(yīng)用就會產(chǎn)生巨大的商業(yè)價值,而同時它也會受到多重安全措施的保護,此時邏輯炸彈則成為最難被發(fā)現(xiàn)和有效防護的攻擊方式。
1.什么是邏輯炸彈?
邏輯炸彈是在滿足特定的邏輯條件時能改變運行方式,對目標(biāo)計算機系統(tǒng)實施破壞的計算機程序。這種程序一般隱藏在具有正常功能的軟件系統(tǒng)中,在不具備觸發(fā)條件的情況下,邏輯炸彈深藏不露,系統(tǒng)運行情況良好,用戶也察覺不到任何異常。但是,觸發(fā)條件一旦被滿足,邏輯炸彈就會“爆炸”,造成對目標(biāo)系統(tǒng)的硬件破壞、文件破壞及系統(tǒng)癱瘓等嚴(yán)重后果。邏輯炸彈的觸發(fā)方式非常多,如事件觸發(fā)、時間觸發(fā)、計數(shù)器觸發(fā)等。
邏輯炸彈之所以被稱之為“炸彈”,因為它在原理和破壞力上與真實炸彈高度相似。真實的炸彈的引爆需要觸發(fā)條件,邏輯炸彈也有類似的觸發(fā)條件,當(dāng)預(yù)先設(shè)定的條件得到滿足,邏輯炸彈就會開始工作。邏輯炸彈與真實炸彈一樣具有驚人的破壞力,只不過兩者破壞目標(biāo)不同。
邏輯炸彈攻擊不但可以設(shè)置在企業(yè)的應(yīng)用軟件系統(tǒng)中,也可以暗藏在計算設(shè)備的硬件系統(tǒng)中,如主板、硬盤和CPU。邏輯炸彈通常不具傳染性,也不會自我復(fù)制,但觸發(fā)邏輯炸彈發(fā)作的誘因可存在于邏輯炸彈載體的各個環(huán)節(jié),具有不可控制的意外性。此外,雖然有時邏輯炸彈的交付技術(shù)是通過計算機病毒感染或其他惡意軟件,但更多情況下,它們是由對被攻擊系統(tǒng)具有特權(quán)訪問權(quán)限的內(nèi)部人員在開發(fā)階段就植入系統(tǒng),因此很難檢測到。
邏輯炸彈與病毒不同,邏輯炸彈的顯著特征不在于它的傳播方式,而在于它的觸發(fā)方式,但它可以通過病毒傳播。不過并非所有邏輯炸彈都需要通過病毒來投放,事實上,許多邏輯炸彈都被編寫程序的人隱藏在正規(guī)的軟件程序中。
2.邏輯炸彈的危害
邏輯炸彈的觸發(fā)器(一種有記憶功能的邏輯部件)一般分為積極觸發(fā)器和消極觸發(fā)器兩種形式。如果某個事件發(fā)生,積極的觸發(fā)器就會引爆;反之,如果某個事件沒有發(fā)生,也可能會引爆消極的觸發(fā)器。
消極的觸發(fā)器并不難理解,我們可以思考一下企業(yè)面臨的內(nèi)部威脅,也是邏輯炸彈的常見案例。例如,心懷不滿的員工懷疑他們即將被解雇,因此在公司服務(wù)器上放置一個邏輯炸彈,如果創(chuàng)建者沒有干預(yù),邏輯炸彈將在上午10點執(zhí)行刪除公司有價值數(shù)據(jù)的程序。如果員工沒有被解雇,則依然保持對系統(tǒng)的訪問權(quán)限,他們就可以刪除邏輯炸彈程序,以阻止炸彈觸發(fā)執(zhí)行。這也是他們與雇主爭執(zhí)的籌碼——如果得到滿足,他們會阻止炸彈爆發(fā);而一旦被解雇,就會選擇讓邏輯炸彈引爆。
邏輯炸彈的危害范圍很廣,包括文件或硬盤驅(qū)動器刪除,作為贖金威脅或報復(fù)行為,數(shù)據(jù)泄露等??梢哉J(rèn)為,邏輯炸彈的危害性完全取決于惡意攻擊設(shè)計者的專業(yè)技能和想象力。
當(dāng)然,也有一些表面上類似于邏輯炸彈但實則無害的應(yīng)用程序,例如,一些通過互聯(lián)網(wǎng)免費試用下載的程序可能會在15天后停止工作。這些程序在用戶下載時就已被告知,不會對使用者造成危害和損失。
人們有時會將時間炸彈視為一種網(wǎng)絡(luò)攻擊方式,但其實它是邏輯炸彈的一個子集。時間炸彈是一種邏輯炸彈,其觸發(fā)器會在特定時間觸發(fā)。在某些方面,它可能被認(rèn)為是實施邏輯炸彈最簡單的一種類型。時間炸彈觸發(fā)器類似于物理爆炸的定時炸彈:給攻擊者足夠的時間來隱藏攻擊行為,以降低他們作為攻擊者受到懷疑的可能性。
消極觸發(fā)器就是時間炸彈概念的一個更復(fù)雜的變體,因為它的時間期限可以通過用戶操作推遲或阻止,以創(chuàng)建一種“失能開關(guān)(dead man's switch)”,即在操作者失去行為能力,諸如死亡、失去意識或者離開控制設(shè)備時,能自動操作的開關(guān),它最初起源于重型機械領(lǐng)域,后來也應(yīng)用于例如計算機軟件等的虛擬應(yīng)用。例如,如果用戶長期處于非活躍狀態(tài),則向其發(fā)出通知或自動注銷賬號。
3.如何檢測和防御邏輯炸彈攻擊
邏輯炸彈是一種特別有害的攻擊類型,因為攻擊代碼本身可能會長期處于休眠狀態(tài)。一般來說,即使是最好的端點安全軟件也很難檢測出處于潛伏狀態(tài)的邏輯炸彈程序。
由于某些邏輯炸彈是通過病毒等惡意軟件傳播的,因此預(yù)防邏輯炸彈的基本防護措施就是遵循反惡意軟件最佳實踐:
1)注意網(wǎng)絡(luò)釣魚電子郵件,請不要打開和下載來歷不明的郵件附件。
2)請勿下載或安裝未知來源或非官方的應(yīng)用程序,包括瀏覽器導(dǎo)航欄,它是一種常見的惡意軟件載體。
3)安裝并及時更新防病毒/端點安全軟件保護您的計算機安全。
但是,防范惡意軟件并不足以應(yīng)對所有的邏輯炸彈,特別是由內(nèi)部員工設(shè)置的惡意邏輯炸彈程序。當(dāng)代碼中隱藏著邏輯炸彈時,現(xiàn)有的防病毒產(chǎn)品也很難發(fā)揮作用。檢測嵌入在企業(yè)業(yè)務(wù)軟件系統(tǒng)中的惡意代碼(不論是心懷不滿的員工故意破壞,還是以第三方軟件庫的形式無意導(dǎo)致)的最佳方法是進行有效的軟件開發(fā)流程管控,將安全編碼實踐融入到開發(fā)流程中。這些做法旨在確保任何代碼在正式部署應(yīng)用之前通過安全測試,并防止內(nèi)部惡意員工者以不安全的方式單方面修改代碼。