昨晚,對很多程序員來說可能是一個不眠之夜。12 月 10 日凌晨,Apache 開源項目 Log4j 的遠程代碼執(zhí)行漏洞細節(jié)被公開,由于 Log4j 的廣泛使用,該漏洞一旦被攻擊者利用會造成嚴重危害。
據(jù)悉,Apache Log4j 2.x <= 2.14.1 版本均回會受到影響。根據(jù)“微步在線研究響應中心”消息,可能的受影響應用包括但不限于:Spring-Boot-strater-log4j2、Apache Struts2、Apache Solr、Apache Flink、Apache Druid、Elasticsearch、Flume、Dubbo、Redis、Logstash、Kafka 等。很多互聯(lián)網(wǎng)企業(yè)都連夜做了應急措施。截至本文發(fā)出,斗魚、京東、網(wǎng)易、深信服和汽車產(chǎn)業(yè)安全應急響應中心皆發(fā)文表示,鑒于該漏洞影響范圍比較大,業(yè)務自查及升級修復需要一定時間,暫不接收 Log4j2 相關的遠程代碼執(zhí)行漏洞。Log4j 是一款開源 Java 日志記錄工具。日志記錄主要用來監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統(tǒng)計分析工作;跟蹤代碼運行時軌跡,作為日后審計的依據(jù);擔當集成開發(fā)環(huán)境中的調(diào)試器的作用,向文件或控制臺打印代碼的調(diào)試信息。因此,對于程序員來說,日志記錄非常重要。在強調(diào)可重用組件開發(fā)的今天,Apache 提供的強有力的日志操作包 Log4j。Log4j 可以輕松控制 log 信息是否顯示、log 信息的輸出端類型、輸出方式、輸出格式,更加細致地控制日志的生成過程,而其通過配置文件可以靈活地進行配置而不需要大量的更改代碼。因此,很多互聯(lián)網(wǎng)企業(yè)都選擇使用 Log4j 。2014 年,Log4j 2 發(fā)布。Log4j 2 是對 Log4j 的重大升級,完全重寫了 log4j 的日志實現(xiàn)。Log4j 2 提供了 Logback 中可用的許多改進,同時修復了 Logback 架構中的一些固有問題,目前已經(jīng)更新到 2.15.0 版本。Log4j2 也支持 SLF4J,可以自動重新加載日志配置,并支持高級過濾選項。此外它還允許基于 lambda 表達式對日志語句進行延遲評估,為低延遲系統(tǒng)提供異步記錄器,并提供無垃圾模式以避免由垃圾收集器操作引起的任何延遲。通過其他語言接口,企業(yè)也可以在 C、C++、.Net、PL/SQL 程序中使用 Log4j。此次漏洞的出現(xiàn),正是由用于 Log4j 2 提供的 lookup 功能造成的,該功能允許開發(fā)者通過一些協(xié)議去讀取相應環(huán)境中的配置。但在實現(xiàn)的過程中,并未對輸入進行嚴格的判斷,從而造成漏洞的發(fā)生?!拔⒉皆诰€研究響應中心”做了漏洞復現(xiàn):簡單來說,就是在打印日志時,如果發(fā)現(xiàn)日志內(nèi)容中包含關鍵詞 ${,那么這個里面包含的內(nèi)容會當做變量來進行替換,導致攻擊者可以任意執(zhí)行命令。詳細漏洞披露可查看:https://issues.apache.org/jira/projects/LOG4J2/issues/LOG4J2-3201?filter=allissues由于線上 web 業(yè)務的任何數(shù)據(jù)都可能寫入 Log4j,甚至一些 pre-auth 的地方,比如注冊、登錄,實際攻擊入口取決于業(yè)務具體情況。目前百度搜索、蘋果 iCloud 搜索、360 搜索等都出現(xiàn)了該問題。12 月 10 日上午,阿里云安全團隊再次發(fā)出預警,發(fā)現(xiàn) Apache Log4j 2.15.0-rc1 版本存在漏洞繞過,建議及時更新至 Apache Log4j 2.15.0-rc2 版本。對于這次漏洞,有網(wǎng)友評價說道,“可以說是災難性的漏洞,比之前的 fastjson 和 shiro 還要嚴重,這個漏洞估計在之后三四年內(nèi)還會繼續(xù)存在….”針對此次漏洞,“微步在線研究響應中心”也給出了一些應急方案。(1)修改 jvm 參數(shù) -Dlog4j2.formatMsgNoLookups=true
(2)修改配置 log4j2.formatMsgNoLookups=True
(3)將系統(tǒng)環(huán)境變量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設置為 true(1)由于攻擊者在攻擊過程中可能使用 DNSLog 進行漏洞探測,建議企業(yè)可以通過流量監(jiān)測設備監(jiān)控是否有相關 DNSLog 域名的請求,微步在線的 OneDNS 也已經(jīng)識別主流 DNSLog 域名并支持攔截。
(2)根據(jù)目前微步在線對于此類漏洞的研究積累,我們建議企業(yè)可以通過監(jiān)測相關流量或者日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符來發(fā)現(xiàn)可能的攻擊行為。檢查所有使用了 Log4j 組件的系統(tǒng),官方修復鏈接如下:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc1每個人都知道安全的重要性,但安全問題還是頻繁發(fā)生。去年 5 月,360 網(wǎng)絡安全響應中心發(fā)布“ Fastjson 遠程代碼執(zhí)行漏洞通告”。通告稱,Java 庫 fastjson <= 1.2.68 版本存在遠程代碼執(zhí)行漏洞,漏洞被利用可直接獲取服務器權限。該漏洞評定為“高危漏洞”,影響面“廣泛”。前年,阿里云應急響應中心監(jiān)測到,Apach Shiro 官方披露了其 cookie 持久化參數(shù) rememberMe 加密算法存在漏洞,攻擊者利用 Padding Oracle 攻擊手段可構造惡意的 rememberMe 值,繞過加密算法驗證,執(zhí)行 java 反序列化操作,最終可導致遠程命令執(zhí)行獲取服務器權限,風險極大。安全本身并不是一個能夠創(chuàng)造價值的功能,反而更像是需要消耗價值以確保功能穩(wěn)定的功能。中小企業(yè)常常沒有足夠的資金投入安全建設,而有資金的企業(yè)也會把這部分預算將到最低。網(wǎng)絡攻擊成功的可能性以及潛在損失的程度是難以實現(xiàn)估計的,決策者通常是依靠經(jīng)驗判斷來做決定投入金額。根據(jù) Alex Blau 在哈佛商業(yè)評論中的文章中提到的,決策者在作出決定時,會有一下三個誤區(qū):- 將網(wǎng)絡安全視為一種防御。在這個過程中,強大的防火墻和有能力的工程師可以讓他們遠離威脅。
- 認為遵守 NIST 或 FISMA 等安全框架就足夠安全。
- 以為如果近期沒有發(fā)生安全漏洞,那么看起來沒有問題的部分就不需要修復。
這些想法的問題在于,網(wǎng)絡安全不是要解決有限的問題,而應該是一個持續(xù)進行的過程。麻省理工學院數(shù)字經(jīng)濟倡議主任 Erik Brynjolfsson 表示,對抗網(wǎng)絡威脅應該被歸到“更高級別的優(yōu)先考慮項”。他認為,一些修復并不復雜。雖然增加一些額外的小操作會讓整個流程變長,并增加一點成本,但會讓企業(yè)和個人更加安全。Brynjolfsson 提出,在網(wǎng)絡安全方面,使用公開可用的密碼學通常比為特定公司構建的專有系統(tǒng)更加安全
推薦閱讀:
世界的真實格局分析,地球人類社會底層運行原理
不是你需要中臺,而是一名合格的架構師(附各大廠中臺建設PPT)
企業(yè)IT技術架構規(guī)劃方案
論數(shù)字化轉型——轉什么,如何轉?
華為干部與人才發(fā)展手冊(附PPT)
企業(yè)10大管理流程圖,數(shù)字化轉型從業(yè)者必備!
【中臺實踐】華為大數(shù)據(jù)中臺架構分享.pdf
華為的數(shù)字化轉型方法論
華為如何實施數(shù)字化轉型(附PPT)
超詳細280頁Docker實戰(zhàn)文檔!開放下載
華為大數(shù)據(jù)解決方案(PPT)