萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

做自己的救世主:系統安全保衛戰,拒絕盲目依賴殺毒軟件

看過《駭客任務》系列的朋友,一定對主角尼奧印象深刻——這位闖入虛擬世界的程式設計師,一次次演繹「救世主」角色,守護城市居民,形象早已深入人心。但離開電影院,我們面對的卻是另一個真假難辨的數位虛擬世界:網絡。這裡同樣潛伏著無數危險,同樣存在著「駭客帝國」,卻沒有尼奧這樣的救世主存在。我們能依靠的,只有形形色色的安全廠商與他們提供的安全工具,似乎別無選擇。

於是,許多用戶將各類安全工具視為這個世界的「救世主」:我們看著防毒軟體廣告,購買熱門殺毒軟體,聽到每周一次的「新病毒預警」就趕緊升級病毒特徵庫,每周進行漫長的全盤掃描……許多人都這樣做,也只能這樣做,因為我們把一切都交給了殺毒工具。我們以為擁有「即時監測」功能,每時每刻檢查下載檔案,就能高枕無憂,以為這就是網絡防禦的全部。

然而,事實真的這麼美好嗎?俗話說:「無論做什麼事,都不可避免要付出代價。」在我們安然享受殺毒工具帶來的安全感時,同樣在付出代價。殺毒工具是隨系統啟動而運行、直到關機才停止的程式,其檢測防禦機制效率無法與尼奧相提並論。打個比方:學過程式設計的人都知道,象棋程式最難寫得完美,因為走法沒有固定模式,程式只能依靠有限判斷機制決定每一步。同樣的缺陷,正發生在殺毒軟體身上。

大多數殺毒軟體採用「特徵碼」技術搜尋病毒:引擎讀取程式或檔案內容,與資料庫中已確認的病毒特定代碼進行匹配。隨著病毒家族龐大,資料庫體積增長到不可忽視地步,載入速度變慢;每增加一個特徵碼,判斷分支就多一條,耗時相應延長。為避免掃描一個檔案需半小時的尷尬,殺毒軟體採用各種提速方案,但無一例外都瘋狂佔用系統資源。若電腦配置不高,查毒時基本無法正常做其他工作。

那麼,誰才是我們真正的救世主?答案就是——你自己。能信任的永遠只有自己,只要肯努力,每個人都可以做尼奧。雖然這也有代價:將系統資源消耗轉化為腦力消耗,將判斷分支與經驗寫入腦中。但在處理分支效率上,人永遠比程式靈活,且能避免依賴的惡性循環。離開殺毒軟體,我們必須學會靠自己保護自己,不被虛擬世界傷害。現在,就讓我們開始做自己的救世主吧。

捕獲不請自來的「客人」

《魔鬼終結者》中有段經典對白:「600型機器人包裹橡膠外皮,易被識別;但101型採用生化技術,擁有真實皮膚、會呼吸、流血、甚至口臭,一切與人類無異,直到它開始攻擊,你才知它非人類。」「那你們怎麼辦?」「我們用狗識別終結者。」

在電影裡,狗是唯一能區分敵我的工具,因為它判斷方式不靠眼睛——眼睛可被欺騙,但氣息不能。機器人偽裝得再逼真,也無法具備生命體的氣息。後門技術發展至今,偽裝技術日益成熟:從最初的啟動項結合隱藏進程,到最新的Ring 0驅動方式,我們越來越難發現這些「客人」的痕跡,等到它開始破壞,已來不及補救。所以,我們需要一種能嗅出後門氣息的「狗」。

準備工作:建立系統知識基石

動手前,用戶需對系統有基本了解:登錄表、啟動項、服務、常見程式與進程名稱等,這是手工查毒的門檻。初期可參考「系統進程詳解」、「Windows XP系統服務簡介與優化」等文章,做筆記、日積月累,記住常見系統程式與工具用法。過不了這關,後續工作無從談起。

首先必須掌握Windows系統三大核心知識點:登錄表(Registry)、進程和權限。

登錄表:系統的中樞神經

登錄表出現於Windows 95及後續版本,是一種資料庫。在此之前,配置軟硬體環境需修改INI檔案,但每種設備或應用程式都有自己的INI檔,管理難度大。微軟統一標準,將各類資訊集中存儲,形成容納應用程式與系統配置資訊的「登錄表」,管理應用程式與檔案關聯、硬體設備說明、狀態屬性等,維持系統正常運作。

登錄表採用類似檔案目錄的樹狀結構描述配置資訊,最頂端的5個項目稱為「根鍵」:

  • HKEY_CLASSES_ROOT:負責組件註冊類別與檔案關聯資訊
  • HKEY_CURRENT_USER:當前登入用戶的環境資訊
  • HKEY_LOCAL_MACHINE:整個系統的公共環境資訊
  • HKEY_USERS:所有用戶的環境配置資訊
  • HKEY_CURRENT_CONFIG:當前的硬體配置資訊

我們主要關注前三個根鍵,它們是後門最愛竄改的地方:三個啟動項目HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run和HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices,一般後門都通過修改這裡實現隨系統啟動;此外還有檔案關聯資訊HKEY_CLASSES_ROOT,關聯型後門愛修改.exe、.bat、.scr、.com等可執行檔的註冊資訊,搶先運行。

進程:程式運行的映像

「進程」是指可執行檔運行期間,系統在記憶體劃分給它的資料資訊塊。系統通過控制這個資料塊,為運行程式提供資料交換與決定生存期限。任何程式都必須擁有至少一個進程,否則不被系統承認。進程可視為可執行檔從儲存介質複製到記憶體的映像,通常與磁碟上某個檔案保持對應關係。完整進程資訊包含多方面數據,任務管理器的「應用程式」頁籤顯示進程標題,「進程」頁籤顯示進程檔名、進程識別符(PID)、佔用記憶體等。其中進程檔名和進程識別符是必須掌握的關鍵:PID是系統分配給進程記憶體空間的唯一數字,從載入到結束期間保持不變;進程檔名則對應儲存介質上的檔案名稱。

copyright © 萬盛學電腦網 all rights reserved