文/辛毅 孫洪磊 吳剛
2021年12月9日,互聯網爆出了Apache Log4j2遠程可執行漏洞(CVE-2021-44228),此漏洞又被稱為Log4shell。Apache Log4j是一個基于Java的開源日志項目,通過使用Log4j可以將相關信息寫入文件和數據庫,可以記錄應用的日志信息,便于日后溯源及調試錯誤。Log4j2是log4j的升級版,Log4j2包含基于LMAX Disruptor、高性能的異步處理框架的日志記錄項目。在多線程場景中,異步日志記錄的吞吐量比 Log4j 1.x 和 Logback 高 18 倍,延遲低幾個數量級,所以其出色的性能用于多個開源框架中。
Log4shell漏洞是由于Log4j2某些功能存在遞歸解析功能,漏洞通過JNDI(Java Naming and Directory Interface,Java命名和目錄接口)注入惡意代碼來完成攻擊,具體的操作方式有RMI和LDAP等。其攻擊流程如圖1所示。

圖1 Log4shell攻擊流程
攻擊者可直接構造惡意請求,觸發遠程代碼執行漏洞。從攻擊者的角度來看,此漏洞無需特殊配置,利用成本低,操作簡單。目前大量攻擊者利用遠程運行構造的代碼并進行混淆,企圖繞過WAF等安全設備,獲取對方的所有數據,從而植入惡意代碼、挖礦木馬、刪除或加密文件等進行勒索。根據我們的網絡數據監測,最早的攻擊于2021年12月9日23:37,之后大量黑客利用此漏洞攻擊嘗試。最近,我們檢測到大量涉及加密貨幣挖掘的Log4j 漏洞的攻擊。
Log4j2 大量應用于java開發,全球使用log4j2的組件就有6910個,前500個組件覆蓋了92485個框架,包括但不限于:Apache Solr、Apache Druid、Apache Struts2、Apache Flink、Flume、Dubbo、Redis、Logstash、ElasticSearch、Kafka、Ghidra、Minecraft、Apache Hive、DataX、Streaming、Dolphin Scheduler、Storm、Spring等。此漏洞暴露了開源軟件供應鏈安全的脆弱性:開源組件降低了開發成本,是軟件供應鏈生態中的重要一環,而其中一個環節出現問題就會造成整個軟件或系統的安全問題。
目前,我國高校信息系統大多都是由第三方公司甚至是教師、學生個人開發,其供應鏈環節復雜、暴露面多,高校信息系統生命周期各個環節都存在供應鏈的安全風險。高校信息系統供應鏈包括的角色、環節眾多,結構復雜,可能會受到來自供應鏈各個節點和流通過程中各個環節的安全威脅(如圖2所示)。

圖2 高校信息系統供應鏈安全環節模型
1.開發階段
開源軟件應用廣泛,大量信息系統的開發利用開源代碼、工具或組件。目前,已有超過80%的商業軟件是在開源軟件的基礎上二次開發而成的。這種開發模式,大大減少了開發成本,縮短了開發周期,勢必會帶來大量的安全問題:越來越多的開發者沒有經過嚴格的檢查、審計直接采用相關開源代碼,這類代碼一旦出現安全問題,勢必會傳遞到下游的軟件產品,必將造成廣泛、嚴重的影響。此類問題,波及面廣、難以第一時間修復,Log4shell漏洞就是一個很好的例子。更為嚴重的是,開源軟件存在被別有用心的攻擊者直接植入惡意代碼的風險。其次,開發工具污染時有發生,XcodeGhost事件曾導致國內 858個App受到污染,其中不乏手機銀行、主流移動互聯網應用等。最后,軟件開發企業缺乏安全開發意識,沒有全生命周期的代碼安全管理,代碼安全性較差。
2.系統交付階段
部分開發企業網絡安全意識淡漠,相關文檔、配置文件等大量存儲在未經加固的服務器上,極易造成實施方案、密碼、密鑰等泄漏問題。另外,廠商在交付系統時,對于相關操作系統、服務及組件等進行默認安裝,未進行極限加固,配置錯誤、策略失誤,甚至存在空密碼、弱密碼等情況;第三,在交付階段,安裝軟件來源不明,如:操作系統、數據庫等被植入了惡意代碼,造成系統帶病運行。更為嚴重的是廠商對測試環境或開發環境管控不嚴,造成源碼泄露、真實系統配置信息甚至用戶部分真實數據的泄露。
3.運維使用階段
高校信息系統大多是由開發企業進行運維,部分企業違規運維、違規操作。首先,運維過程中將用戶系統信息明文存儲在github代碼倉庫、郵件、網盤、個人終端及公司服務器中,甚至某些單位建立運維系統暴露在互聯網中,此類信息極易被獲取。同時,當相關系統被攻破時,勢必會造成用戶重要信息的泄露。其次,廠商將運維賬戶外借,在遠程運維過程中無管控措施。第三,部分廠商在版本迭代中將測試系統與生產系統設置信任關系,造成未經驗證對生產系統進行訪問。
攻擊者可能會利用供應鏈各個節點、環節的安全隱患,從上游、中間過程、下游等方面對目標進行信息收集、漏洞分析、攻擊利用等行為。攻擊者一旦對供應鏈的任意環節進行攻擊,都會引起連鎖反應,造成整個信息系統的安全威脅,嚴重危及高校重要信息系統的安全。
針對供應鏈的安全問題,國家陸續出臺了相關法律、制度,例如《網絡安全審查辦法》《關鍵信息基礎設施安全保護條例》,建立完善供應鏈安全保障體系。高校作為用戶應加強其信息系統供應鏈的安全管理,可從以下幾個部分入手:
1.加強信息系統的安全準入
在軟硬件采購招標過程中加入更全面的網絡安全要求;增加軟硬件產品驗收、入網等環節的安全檢查。高校信息系統應從系統設計階段強化安全構架及安全措施,系統上線前開展源代碼審計及滲透測試工作,將相關漏洞消滅在萌芽階段,做到防護端口前移。
2.加強對軟件開發企業的管理
高校應將軟件開發企業作為供應鏈管理的重要組成部分,在安全準入的基礎上對相關廠商代碼審計、安全滲透情況綜合研判。此外,應對準入漏洞及日常漏洞的修復速度和修復率進行考核,采取安全質保金等方法倒逼開發企業積極提高企業網絡安全水平,加強安全防護能力,制定安全開發、測試、部署及運維規范,推動SecDevOps 等先進方法成為軟件安全開發的通用實踐。
3.加強信息系統資產管理
高校信息化主管部門或網絡中心要建立信息系統資產臺賬,包括但不限于軟件供應商、開發框架、系統組件、中間件、數據庫、操作系統及其具體版本等。要按照最小化服務的原則采取白名單的方式開放必要的IP及端口,并采取必要的隔離措施。高校在加強資產管理的同時,還要注意清理老舊系統并關停下線。
4.加強漏洞情報和緊急響應
在明確其供應鏈資產的基礎上,加強漏洞情報工作,爭取在第一時間獲取相關開源軟件、數據庫及操作系統的漏洞與本單位的信息資產相匹配,從而快速進行漏洞修補、防護設備固件規則升級等工作。同時,高校要按照國家有關法律、法規及技術標準要求,強化供應鏈安全事件的響應、處置、恢復以及事件上報等環節的規范要求。
5.加強信息系統安全運維
高校信息化運維部門須對軟件廠商工作人員及相關系統的運維人員定期開展教育和培訓,加強其安全意識,并進行考核以提高其安全水平。同時,要加強信息系統的安全運維,對調試、運維等進行有效約束和管理,特別是對遠程運維人員要加強VPN的安全防護,全面推行雙因素認證、強制堡壘機雙因素登錄運維,采取多種安全監控方法對其操作進行監測、審計、跟蹤,防止安全問題的產生。
目前,供應鏈安全問題日趨嚴重,極大地威脅著高校信息系統及整個校園網的安全。供應鏈環節給高校網絡安全防護帶來了更高的要求,相關環節應該協同解決供應鏈安全防護問題。在供應鏈環節的安全防護上,廠商、用戶及運維單位應“齊抓共管”,以提高整個環節的安全度,從而確保高校信息系統的穩定安全運行。