[安] 家用電腦安全維護的一般性實務
資安確信(information assurance)的理論由淺至深, 繁雜紛紜, 不過, 在實務的層面上, 其中關鍵往往僅是屬於操作習慣面、而非純然為軟體架構面上的問題。一般家用電腦的作業系統, 通常只要事先花費不到半小時做好安全性調校及私人資料夾的加密(private folders encryption)設定, 並且不要忽略設定使用者登入密碼(login password)的簡單動作, 就可以有效提升安全性了。
基本的安全設定其實不會很難, 然而, 《詩經‧大雅‧抑》有曰:「誨爾諄諄, 聽我藐藐。」習慣上的調整恒屬不易, 不少人還是每天「盡量」用管理員帳戶(administrator acount)來上網, 那就算安裝了再強的防毒軟體, 會一再中毒或受到惡意程式(malware, malicious software)的侵犯(be compromised)也就不足為奇了。幾年以來, 敝人不曾在自家電腦安裝過常駐式防毒軟體, 卻也沒被惡意程式擾亂過, 所憑的不過是曾預先花了一點時間做好安全設定而已。於此也僅就本板幾篇舊文, 略為整理一些網路防護的途徑。
先前提到, 登入密碼是必定要設的(包括管理員、使用者、與常因忽略而成為漏洞的 Guest 帳戶), 若沒有設定, 那入侵的惡意程式、病毒、間碟程式(spyware)將可輕易取得系統裏既有帳號的權限而無所拘忌。進一步要考量的實體因素是, 就算設了登入密碼, 但別人只要將硬碟接用在另一台電腦或其他作業系統, 私人檔案仍是照讀不誤, 因此對於檔案系統或私人資料夾進行加密才屬保安之道。至於有些軟體的「儲存密碼」選項也盡量少用, 特別是那些在尚未輸入時即自動以 * 號(asterisk)顯示出正確密碼位數的程式, 可能即代表其設計邏輯是在驗證密碼時將原始密碼給還原出來, 這屬於嚴重的安全弱點(security vulnerability), 被入侵者或惡意程式破譯的可能性很高, 而可以破解 * 號密碼的現成工具程式也不少。
〈對 Rootkits 入侵程式的簡易防範之道〉以系統管理的角度, 指示一些日常警覺與事後偵察的技巧, 由於任何防毒措施都不可能 100% 湊效, 有時能在遭受入侵後發現癥候尤為要緊。在近端傳輸的保全性上, 無線網路一向較有線網路有更多的隱憂, 故應預先設定好加密與存取控制(ACL, access control list)機制:〈無線網路 WEP/ACL 的設定〉。要留意的一點是, 由於 WEP 協定已被證實容易被破解, 最好改用 WPA 或更新的 802.11i 安全標準。
由於有越來多的網路服務會使用具備軟體認證機制(code authentication)的遠端 ActiveX control 或 Java applet 物件, 並且曾經發生過〈VeriSign 誤發 MS 牌憑證〉事件, 因而在 IE、Firefox 等網頁瀏覽器及 Java 虛擬機器(JVM, Java runtime environment)的安全性設定選項, 應該啟動憑證撤銷清單(CRL)的下載比對功能。實際上, 由於 IE 與系統 GUI 及檔案管理介面捆綁得太深, 並且非常不智地直接於使用者權限空間(user space)執行 ActiveX control (Java applet 則是透過有存取權限隔離效果的 secure sandbox 來運行的), 先天上就是 Windows 的大弱點, 美國國防部發給各級軍事首長的 Mobile Code Memorandum 安全指引早就將 ActiveX WSH 列入 Risk Category 1 (風險最大等級)的行動軟體技術清單內, 如果能棄 IE 而改用不支援它的瀏覽器, 如 Firefox、Opera 等, 那防禦能力立即增強不少──利用 ActiveX 或 Active Scripting 來入侵的惡意、木馬程式實是多不勝數。至於本地端軟體, 若適當地對於軟體安裝、用戶權限、編輯登錄檔(Registry)等項做出限制, 不失為日常作業安全性的增強良方, 這方面可參考〈使用群組原則來限制軟體的裝用〉的解說。
在〈Windows 98/Me 延壽秘方 - 支援性延展之大計篇〉一文的「五、安全性的考量」一節, 所談的幾支程式及 IE/Outlook 安全性區域(security zones)的調整原則, 其實對包括 XP、Vista 等各個 Windows 版本都能發揮其防護作用。在檔案管理上有一個較常受到忽略的要項, 一般「刪除檔案」的動作在技術上只是將檔案系統目錄中指定的物件項目(directory entry)給標記為已刪除(mark as deleted)並釋放出其所佔用的空間而已, 資料實際上仍存於硬碟裏(「陳冠希慾照」外流事件就是如此發生的, 另參癮科技〈驚! 電腦維修工人不可信?〉), 要真正清除乾淨應使用會重複以無意義資料覆寫檔案的「碎紙機」程式, 如前引連結所提及 Spybot - Search & Destroy 所附的 File Shredder、以及 Linux 命令列工具 shred 等是, 這類程式常會參考美國國防部 DoD 5220.22-M specs 所規定的覆寫刪檔程序:先以 0 再以 1 來覆寫, 重複至少三次;以任意值覆寫一次;最後檢查資料是否已確實清除。
有些惡意程式會刻意鎖定特定防毒軟體為攻擊標的, 為了確保防毒系統仍在正常運作, 應不時以〈測試你的防毒軟體是否在運作:EICAR Test String〉檔案來自我測試。敝人雖然不使用常駐式防毒軟體, 但仍會定期下載 Trend Micro System Cleaner (sysclean.com for Windows)、ClamAV clamscan (for Linux)等免費手動掃毒程式暨其病毒識別碼檔案(viruses pattern/definition database)來確認系統無毒, 防毒軟體的更新是必需的。為了減少巨集病毒的發作機率, Office 軟體也最好設成不自動執行文件檔的內嵌巨集(document-embedded macros), 只有可信任來源的文件檔巨集才放行。至於定期/自動進行 Windows Update 等機制以修補(patch)系統程式的漏洞, 那應該不消多提了, 雖則我個人偏好於手動更新。
敝人還在〈處理 Autorun 類型的惡意程式〉裏以一支蠕蟲程式的清除實例, 強調「不該以具管理員權限的帳戶來上網及日常操作」對於維護電腦安全的重要性。只要不使用管理員帳戶來進行日常作業或連往網路服務, 那麼, 就算遭受惡意程式入侵, 其感染範圍將受限, 且無法輕易取得管理等級權限(除非系統程式有漏洞), 也就難以修改系統登錄檔而化身成能避開防毒軟體偵測的 rootkit 式病毒了。不過, 由於長期以來 Windows 縱容管理員帳戶受到任意使用的不良慣性(Linux 的桌面系統對此通常會提示安全警告、甚至於功能上設限), 不少程式設計師並未考量到權限管理上的問題, 他們(常是在不經意中)假定操作者皆以管理員帳戶登入, 會把軟體的設定檔、甚至資料檔錯誤地寫在具有存取限制的 \Program Files、\Windows 等程式或系統資料夾, 而不是常規的使用者資料夾(user profile, or \Documents and Settings\[user account])內, 造成得對這類檔案另調權限才能讓非管理員帳戶正常操作該軟體的人為障礙。
另外還有一些細節。凡是已知其網址、或者有加入書籤的網站, 就盡量不去點選由其他網站所提供的連結, 特別是自己要進行服務登入的場合更要留意, 以防釣魚攻擊(phishing)。若需要點入連結, 也應在滑鼠指標停留其上時, 先行由狀態列檢視網址正不正確;若正在進行登入, 更要瞧一下安全圖示所顯示的中立憑證發行業者(CA)是否為系統已合格登錄者(若不符合, 瀏覽器會發出警示)。在下載欲安裝的軟體或文件檔時, 盡量選擇從具公信力、社群廣為引用、具常態性掃毒機制等等條件的網站來源下載, 當然, 通常最保險的即是該檔案的原始提供者/官網, 而下載完成後也總該再手動掃毒一次。至於從 e-mail 寄來的檔案尤應慎重檢查, 切記:無論是否為親朋所寄, 未經適當簽證(not certified signed)的附件檔案根本就沒有「來源追溯性」可言。這些是一些雖屬細微、但易造成安全風險的小地方, 也是在操作習慣上多付出一點注意力即能增強安全性的事項。
防護之方多不勝數, 難以道盡。以上諸端的抉取原則, 在於實務上所費資源最少的可行性(所以沒提出購置專屬防火牆機器、向 ISP 申購機房端兒童上網過濾方案、甚至於「偽造」系統程式的識別資訊等建議), 僅提供諸君參考並指教。