建了一個用戶交流群,我在群里說:“Windows 是最安全的操作系統。” 立刻引發了很多有意思的觀點。我在群里一個人說不過大家,先篇文章把自己的論點羅列一下。
對操作系統攻擊的方式
有5類基本的攻擊方式:
1、 系統口令攻擊:猜測攻擊、字典攻擊、窮舉攻擊、混合攻擊、直接破譯攻擊、網絡嗅探、鍵盤記錄、中間人攻擊、社會工程學
2、 SMB/NetBIOS協議攻擊:空會話攻擊
3、 腳本攻擊:SQL注入技術、PHP+MySQL注入技術、跨站腳本攻擊技術、cookie攻擊技術、WebShell提權技術
4、 惡意代碼攻擊:木馬技術、Rootkit技術、病毒技術、蠕蟲技術、網頁惡意代碼
5、 網絡安全設備攻擊:路由技術、Dos攻擊、防火牆攻擊
一項對參加了 DEFCON 會議的黑客的調查表明,“84% 的人使用社會工程學作為攻擊策略的一部分。” 社會工程學又叫社交工程學,發起“社會工程學”攻擊的人也有一個被美化的稱號是社工工程師。Windows 系統因為用戶基礎的關系,社會工程學的攻擊主要也是針對 Windows 系統。
在 Windows 、macOS 和 Linux 三個用戶最多的系統中,Windows 在安全方面做了更多的工作。因為其用戶量不但碾壓其他兩個系統,其用戶的技術水平也最為參差。
當然這只是個人觀點。目前業界並沒有全面的統計數據。甚至安全的指標都不明確。到底什么才是安全的指標呢?是 攻擊成功率、被攻破次數?到底是以那個時間段作為衡量指標?衡量覆蓋范圍到底涉及哪些?統統沒有定論,所以沒有標准答案。
業界影響較大的攻擊舉例
案例一 Equifax 數據安全事件
2017 年 9 月,美國征信巨頭 Equifax 承認 1.45 億美國居民個人隱私信息泄露,這是該國歷史上最嚴重的數據安全事件,以美國人口 3.2 億計算,受影響的超過 40%。
由於征信局采集的數據涉及到消費、貸款等大量隱私數據,這讓征信局成了黑客眼中的香饃饃,偏偏本次事件的主角 Equifax 的安全防范系統實在不堪一擊,讓犯罪分子得以利用其漏洞獲取對部分文件的訪問權,於是 1.45 億用戶的姓名、社會安全號碼(SSN)、出生日期、地址、駕駛證號碼(這相當於是中國的身份證號碼)等信息就這樣泄露了出去。
這個漏洞是 Apache Struts 的低版本安全漏洞引起的,其實只要及時升級版本,問題可以避免。但是特別是這種重要的應用,版本升級等變更就越困難。所以在一個新應用投產時,特別是邊界應用,盡量選擇無高危漏洞的版本。而事實上,新應用在選擇版本時,架構師們往往並不根據實際情況,而是采取“跟隨策略”。就是使用其他應用在長期穩定運行的版本。
問題是首先要考慮,如果自己的應用邊界應用,並且是很多黑客覬覦的產品的一部分,安全是第一重要的,應該盡量選用無已經被發現漏洞的高級版本。因為像 Equifax 被攻擊這種事情,30年也就發生一次。作為邊界應用被攻擊成功,不會有其他應用給做背書,一損俱損。后果還是自己扛。
案例二 Log4j2 lookup 漏洞
2021年12月9日,國內多家機構監測到 Apache Log4j2 存在任意代碼執行漏洞,並緊急通報相關情況。由於Apache Log4j存在遞歸解析功能,未取得身份認證的用戶,可以從遠程發送數據請求輸入數據日志,輕松觸發漏洞,最終在目標上執行任意代碼。
雖然有這個漏洞,目前還沒有對企業造成任何損失。並且如果沒有用到 Message Pattern Lookups
的程序,可以使用 - Dlog4j2.formatMsgNoLookups=true 禁用它解決問題。而且 log4j2 官方也已經為此漏洞打上補丁。其實我很想為 log4j2 說兩句話。高版本的 log4j2 相比logback等其他主流日志框架更加強大,它提供了更加強大優雅的API、默認無垃圾模式運行、更強的異步性能。

Log4j2 在安全方面給我的啟迪有兩點:第一,盡量使用官方還在維護的軟件版本。現在設想一下:假如發現 log4j2 漏洞之后,log4j2 開發者明確表示不會修復此漏洞,使用的公司們打算怎么辦?第二,不要在不需要的情況下開啟軟件的高級特性,增加引入漏洞的幾率。
總結
近年來,由於操作系統本身的問題引起的漏洞要少了上面運行的軟件的漏洞。而 Windows 操作系統由於擁有更多的用戶量,配套的軟件也更多更全,很多都很難從官方渠道免費使用,使得攜帶病毒的軟件有可乘之機。而MacOS由於基本只能通過官方應用商店下載;而 linux 系統上運行大多是開源軟件,完全可以通過官方渠道免費下載。所以這其實使得 Windows 系統不如其他兩個系統安全,這個是 Windows 從一開始的設計理念決定,這個鍋 Windows 得背。
