「我發郵件沒人回,LinkedIn消息石沉大海,最后只能找媒體。」——Joseph R. Cox,一位普通牙科患者,花了數周試圖讓一家軟件公司修復一個低級漏洞。
這個漏洞有多低級?登錄患者門戶后,把網址里的文檔編號改一下,就能打開別人的病歷。不需要黑客技術,不需要特殊工具,會看網址欄就行。
![]()
5000家診所,一個"遞增編號"的隱患
Practice by Numbers 是美國一家牙科診所管理軟件開發商,自稱產品覆蓋全美超過5000家牙科診所。這家公司提供的患者門戶(Patient Portal),本意是讓病人方便查看自己的就診記錄、醫療歷史和影像資料。
患者Joseph R. Cox就是在使用這個門戶時發現了問題。他在查看自己的牙科記錄時,注意到網頁地址里有一串文檔編號。出于好奇——或者說,出于一種普通用戶偶爾會出現的"看看這里能不能改"的本能——他修改了這串數字。
頁面刷新后,出現的不是錯誤提示,而是另一位患者的完整病歷。
Cox向TechCrunch描述了他能訪問的內容:其他患者的個人信息、醫療歷史、照片身份證明文件,以及其他各類文檔。更麻煩的是,這個漏洞是雙向的——當他能看別人時,別人也能看他。
漏洞的機制簡單到近乎荒謬:文檔編號是順序遞增的。這意味著一旦你知道某個編號的規律,就可以像翻電話簿一樣批量遍歷所有患者的文件。沒有權限校驗,沒有會話驗證,沒有訪問控制。
報告漏洞比發現漏洞更難
Cox的發現日期沒有公開,但從他的描述來看,他經歷了一個漫長且挫敗的溝通過程。
他首先嘗試通過郵件聯系Practice by Numbers。公司網站上的郵箱地址是失效的——郵件被退回,提示無法投遞。然后他轉向LinkedIn,給公司的一位創始人發了消息。對方沒有回復。他又發了一封跟進郵件,依然沒有回音。
這種遭遇并非孤例。TechCrunch在報道中提到,今年4月早些時候,時尚零售商Express修復了一個類似漏洞——任何用戶都能查看其他顧客的訂單詳情和個人信息。發現漏洞的用戶同樣找不到報告渠道。去年12月,家得寶(Home Depot)的案例更為典型:一名安全研究人員試圖私下報告一個已暴露近一年的內部系統訪問漏洞,報告被無視,直到TechCrunch介入聯系公司后才得到處理。
這三個案例指向同一個現象:普通消費者越來越頻繁地成為安全漏洞的第一發現者,但企業卻沒有為這些"業余哨兵"準備好接收通道。
漏洞響應的"媒體觸發"模式
由于Practice by Numbers的漏洞正在實時暴露患者數據,TechCrunch于4月13日直接聯系了該公司。報道中沒有說明具體聯系方式,但結果是公司當天就下線了相關功能進行修復。
從時間線來看:Cox的個人嘗試持續數周無果,媒體介入后數小時內問題得到解決。這個對比本身比漏洞技術細節更值得玩味。
Practice by Numbers最終修復了漏洞,但整個過程暴露了一個結構性問題。對于一家服務5000家診所、處理敏感醫療數據的公司,其安全響應流程存在明顯斷層:沒有有效的漏洞報告入口,沒有公開的協調機制,沒有針對外部安全報告的響應預案。
在醫療數據保護領域,這種斷層尤其危險。美國健康保險流通與責任法案(HIPAA)對受保護健康信息(PHI)的訪問控制有明確要求。雖然報道沒有提及監管機構是否介入,但"通過修改URL參數即可越權訪問"這類漏洞,通常被視為基本的訪問控制失效。
為什么"順序編號"至今仍是雷區
從技術角度看,這個漏洞屬于經典的"不安全的直接對象引用"(Insecure Direct Object Reference,IDOR)。攻擊者通過篡改請求中的標識符,訪問未經授權的資源。IDOR在OWASP十大安全漏洞中長期占據一席之地,解決方案也成熟:使用隨機不可預測的標識符(如UUID),在服務端校驗用戶權限,實施速率限制等。
但Practice by Numbers選擇了最簡單的實現方式:自增整數。這種選擇在開發效率上有優勢——易于調試,便于關聯數據庫主鍵——但在多租戶場景下是明顯的安全負債。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.