guest@blog.cmj.tw: ~/posts $

Info Leak


~ tasteless ~

Info Leak 算是一個食之無味、棄之可惜的安全性漏洞:以安全性來說他不會造成系統崩潰、也無法拿到 root 權限, 但是他卻能夠透過一些方式,讓攻擊者取得一些不應該被取得的資訊。

按照 CVSS v3 的定義,Info Leak 的嚴重性為 Low,並且不會造成 IntegrityAvailability 的影響。 但根據洩露的資料內容,可能會造成 Confidentiality 的影響、或者意外的導致高危險程度的漏洞發生。

  • Confidentiality: Low
  • Integrity: None
  • Availability: None

CWE

依照 CWE 的定義,Info Leak 最根本可以從 CWE-200 Information Exposure 開始追溯。按照描述、Info Leak 是指:

  1. 非授權的操作者 (Unauthorized Actor) 可以取得應該被限制的資訊
  2. 資訊可能包含 2.1. 私人資訊 (Personally Identifiable Information)。像是:使用者名稱、電子郵件、信用卡號碼、醫療紀錄等。 2.2. 系統資訊 (System Information)。像是:系統版本、系統設定、系統狀態等。 2.3. 商業機密 (Business Information)。像是:商業計畫、商業策略、商業流程等。 2.4. 程式碼 (source code)。像是:程式碼、設計文件、註解等。 2.5. metadata。像是:Log 或者其他資訊。

基於 CWE-200 下、又延伸各種不同的 Info Leak 情況。像是:

  • CWE-201: Information Exposure Through Sent Data
  • CWE-209: Information Exposure Through an Error Message
  • CWE-215: Information Exposure Through Debug Information
  • CWE-359: Exposure of Private Personal Information to an Unauthorized Actor
  • CWE-497: Exposure of System Data to an Unauthorized Control Sphere

The Diffculties

針對 Info Leak 來說、最困難的部分在於:如何判斷資訊是否應該被限制。資訊的敏感程度取決於資訊的內容、以及資訊的 使用情境。舉例來說:

對於 A 公司而言、公司的總數員工數是一個敏感資訊。公司規章上明確規定、任何人不得公開公司的總數員工數。
但對於一個外部的人而言、公司的總數員工數可能是一個公開資訊。

在上述的情況下、如果有一個漏洞可以讓外部的人取得公司的總數員工數、那麼這個漏洞就是一個 Info Leak。 但是如果這個漏洞只能讓公司內部的人取得公司的總數員工數、那麼這個漏洞就不是一個 Info Leak。

More Deep

在上述的情況下、如果公司 IT 使用的 mail server 設計一個功能:當搜尋使用者名稱時、可以顯示可能的使用者名稱 (prefix search)。

當權限控管不嚴謹時、這個功能可能會被外部的人使用:雖然功能的設計是合理的、但是這個功能的使用情境卻是不合理。 這個情況下、這個功能就是一個 Info Leak。