~ tasteless ~
Info Leak 算是一個食之無味、棄之可惜的安全性漏洞:以安全性來說他不會造成系統崩潰、也無法拿到 root 權限, 但是他卻能夠透過一些方式,讓攻擊者取得一些不應該被取得的資訊。
按照 CVSS v3 的定義,Info Leak 的嚴重性為 Low
,並且不會造成 Integrity
或 Availability
的影響。
但根據洩露的資料內容,可能會造成 Confidentiality
的影響、或者意外的導致高危險程度的漏洞發生。
- Confidentiality: Low
- Integrity: None
- Availability: None
CWE
依照 CWE 的定義,Info Leak 最根本可以從 CWE-200 Information Exposure 開始追溯。按照描述、Info Leak 是指:
- 非授權的操作者 (Unauthorized Actor) 可以取得應該被限制的資訊
- 資訊可能包含 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。