漏洞(Vulnerability),是指系統開發者因為本身的疏忽,造成系統本身面臨機密性、完整性、可用性上的威脅。漏洞也可視為是開發者的因素導致的Bug,只不過這些Bug與安全有關。
但是出現在系統或是軟體的漏洞跟我們又有甚麼關係呢?以2021著名的Log4Shell 為例,這個漏洞影響了數十億台的系統,而且其嚴重程度可讓駭客對弱點系統進行所謂的RCE(Remote Code Execution)。除此之外,軟體漏洞也可能影響一般使用者,以微軟體的Windows診斷工具(MSDT)漏洞 - Follina為例,該漏洞可讓使用者在特殊設定下僅僅只是預覽檔案就被駭客植入惡意程式,相當的恐怖。
講了這兩個經典的漏洞,感覺這些漏洞都很高深莫測吧?那漏洞真的距離我們這麼遠嗎,其實不然。因為針對一些嚴重漏洞,網路上都會有熱心的研究者在漏洞修補後提供對應的POC(Proof of Concept)程式,這些程式多半都可以在github、twitter上面找到。因此透過適當的環境搭建,編譯這些POC程式,要重現漏洞其實或許沒有想像中的那麼困難。一旦有辦法重現漏洞後,我們可以藉由觀察環境變化、調整POC程式去觀察了解漏洞,除了可以知道漏洞成立的前題之外,也可以學習到新的相關知識。
而針對某個軟體系統的某個漏洞,我們該如何辨識以及進行研究呢? CVE(Common Vulnerabilities and Exposures)資料庫是一個公開的漏洞資料庫,由MITRE組織進行維護。它會針對通報的漏洞進行審核並且給予編號,其編號格是為CVE-YYYY-NNNN,其中YYYY為西元年分。而每個CVE的漏洞資料會關聯到NVD(NATIONAL VULNERABILITY DATABASE)資料,裡面會針對該漏洞的影響嚴重性進行評分,以及紀錄該漏洞影響的產品CPE(Common Platform Enumeration)資訊。漏洞相關整理資訊參考如下圖。
也因此這個系列的30天文章,主要會由三個部分組成。
預計建置及介紹的相關漏洞資訊如下 :
因此接下來影片,我將會透過VMWare 建置四種作業系統進行漏洞環境驗證。相關作業系統參考如下 :
使用相關工具參考如下 :
參考資料