基本計算機安全/為什麼有些計算機仍然會生病
惡意軟體幾乎與 Unix 一樣古老。事實上,第一個惡意軟體應用程式是針對 Unix 的一個 rootkit,由 Cohen 記錄。它允許透過繞過密碼進入超級使用者帳戶的後門。它獨特之處在於,它嵌入在編譯器中,因此無法編譯不包含它的 UNIX 版本。
你可能會認為,到目前為止,大多數形式的惡意軟體都應該被發現並防禦。但是,這假設防禦的人總是誠實的,而且建立惡意軟體的新方法並不總是被構建出來。這個假設並不現實。沒有理由相信那些被僱用來防禦一個環境中的惡意軟體的人也會在另一個環境中這樣做。事實上,有理由不信任,因為通常,修復一種入侵型別的安全專業人員正在為下一次入侵埋下種子。
以編譯器為例。你可能會認為 Cohen 的文章會讓我們檢視編譯器並消除它被用作惡意軟體載體的任何可能性,但相反,我們發現每個編譯器製造商都以其標準庫函式中存在漏洞而聞名,這些漏洞使它們能夠被用作破壞軟體的載體。
病毒防禦者呢?好吧,一個病毒掃描程式實際上僱傭了病毒駭客來測試其軟體。結果是,從那以後,那個特定的病毒工具一直容易受到駭客攻擊。為什麼呢?好吧,事實證明,存在一個行業收集有關防禦惡意軟體的嘗試以及試圖阻止它們的資訊,就像有一個行業收集有關惡意軟體的資訊並試圖防禦它們一樣。這兩個行業一直在不斷衝突,國家往往支援壞人。你採取的每一項保護自己的措施都會被下一代惡意軟體抵消。
更糟糕的是,一些最糟糕的惡意軟體甚至不是病毒,而是軟體,它扭曲了系統軟體的設計,以便嵌入它自己的軟體包版本,這些軟體包在其他情況下可能是寶貴的或有吸引力的。如今,每個人都聽說過彈出視窗攔截器,但很少有人意識到,我們需要它們的原因是微軟的某個人有一個很棒的想法,他們應該在有人登入 MSN 時觸發一個子視窗來進行廣告宣傳。惡意軟體專家們找到了腐蝕這個概念的方法,突然之間,人們面臨著一系列他們必須在閱讀基礎頁面之前擺脫的視窗。惡意軟體專家並不關心廣告是否雅觀,因此許多廣告最終變成了色情網站的廣告。當足夠多的老太太和家長抱怨時,彈出視窗攔截器就開發出來了。請注意,在很多情況下,彈出視窗仍然可以穿透,例如,就在上週,我有一個網站的 61 個選項卡在我的瀏覽器上彈出。但是,它們不再與頁面一起載入,而是必須等待使用者觸發一個被破壞的錨點。
由於大多數時候你都不知道正在瀏覽的 HTML 頁面的來源,因此這種型別的惡意軟體可以安裝在任何外部人員可以訪問頁面原始碼的地方。一旦微軟傳播了這個想法,彈出視窗攔截器就成為必需,並且註定會失敗,因為存在其他方法可以解決這個問題,其中一些方法是微軟自己構建到其作業系統中的。
想想微軟的這個很棒的想法:當你更新落後並登入 MSN 時,將你重定向到更新網站。這難道不是一種更激進的彈出視窗形式嗎?有趣的是,彈出視窗攔截器在這方面毫無用處,不是嗎?微軟繼續嘗試構建可以繞過彈出視窗攔截器的自動彈出視窗式軟體。如果惡意軟體行業從他們那裡學習瞭如何繞過攔截器並在你的螢幕上放置一個網站的廣告,我們應該感到驚訝嗎?你認為病毒駭客不聰明嗎?我一直看到的病毒檢查程式的一個問題是,一旦你找到了病毒,它已經投放了有效載荷。當然,除了病毒原始碼在病毒檢查器檢查它之前不會執行的情況。這或多或少消除了已知的病毒(只要它們可以被及時檢測到)並透過電子郵件傳播,但不會消除其他形式的傳播。
即使我們能檢測到所有病毒,仍然存在特洛伊木馬,即偽裝成有價值或有用應用程式的惡意軟體,同時它也是某種形式的惡意軟體的交付工具。由於網際網路上有數百種軟體來源,因此發現許多形式的惡意軟體都是基於特洛伊木馬感染並不奇怪。因此,病毒檢查器必須在特洛伊木馬投放有效載荷之前檢測到它。如果動態連結庫更安全,這將容易得多,但相反,感染往往會透過說服庫它正在使用更新版本更新自己,將自己嵌入系統庫中。
即使是微軟產品中備受讚譽的登錄檔也容易受到惡意軟體的插入,僅僅因為它將啟動過程的一部分隱藏在一個數據庫中,在那裡它可以影響計算機的啟動,每次計算機重新啟動時都會啟動一個惡意軟體工具,但使用者不知道軟體已安裝自己,因此無法始終防禦它。
微軟希望用一個儲存所有詳細資訊的資料庫來隱藏啟動的複雜性,最終只是給了惡意軟體另一個隱藏的地方。
UNIX 和 LINUX 作業系統聲稱它們沒有病毒,但事實上,一些最早和最著名的病毒是在 UNIX 機器上發現的,但是它們加強了網路,以至於有人在沒有網路軟體學位或安裝錯誤的情況下幾乎不可能安裝基於網路的程式。如果你需要學位才能在你的免費作業系統上安裝軟體,這沒什麼用。