資料庫直接對外開放:資料外洩為什麼一再發生

資料外洩一再發生,往往不是被高深技術攻破,而是資料庫直接開在網路上、沒密碼或弱密碼,或測試資料、備份檔、雲端儲存設成公開。理由很平凡:圖方便遠端連線、測試環境忘了關、沿用預設值、外包交接沒人管。

2025 年 6 月,中央社引述資安媒體 Cybernews 報導,一個存有逾 40 億筆個資、總計 631GB 的資料庫未受密碼保護,裡面還有一個名為「tw_db」、包含與台灣相關資料的資料集。這種外洩不需要「破解」:門本來就沒鎖。

「資料庫直接對外」是什麼意思?

資料庫存放客戶、訂單與財務資料,正常應該躲在系統後面,只讓自家程式連線;「直接對外」就是外面的人也連得到。常見四種樣子:

  • 連接埠開在網路上:連接埠(port)可以想成資料庫的收件窗口,不限制來源,等於誰都能來敲門。
  • 沒密碼或弱密碼:沿用預設帳號、空密碼,或多人共用一組好記的密碼。
  • 測試或備份放在公開位置:複製正式資料來測試,或把備份檔放在網站目錄、公開分享連結,事後忘了收。
  • 雲端儲存設成公開:像 Amazon S3 這類儲存空間原本是私有的,被改成公開後,拿到網址就能下載。

2017 年的清空勒索:不是漏洞,是沒上鎖

2017 年 1 月,Elasticsearch 開發商 Elastic 在官方部落格指出,一波攻擊讓數千個開源資料庫的資料被複製、刪除並遭勒索。Elastic 說明這些攻擊沒用到惡意程式、與產品漏洞無關,設定正確就能避免,並強調沒有防護的 Elasticsearch 不該直接暴露在網路上。

同年 9 月又有一波針對 MongoDB 的勒索。MongoDB 向資安媒體 Infosecurity Magazine 證實,受害者的管理員帳號沒有設密碼;攻擊者刪掉資料,換上勒索訊息。

兩波的共同點是:資料庫對外開放、又沒有登入驗證,攻擊者不必找漏洞就能清空資料。

廠商都改了預設值,為什麼還一再發生?

這幾年廠商都把預設值往安全的方向調:

產品 預設值的改變
MongoDB 2.6.0 版起,官方 RPM 與 deb 安裝套件預設只接受本機連線;3.6 正式版起,伺服器程式本身預設只綁定本機,現行官方文件仍是如此
Elasticsearch 2022 年 2 月推出的 8.0 版,自架叢集第一次啟動時會自動產生加密連線憑證與管理員(elastic 使用者)密碼
Amazon S3 儲存空間一直預設私有;2023 年 4 月起,新建的儲存空間預設開啟「封鎖公開存取」

但預設值只保護照預設來的系統。常見破口是:

  • 為了方便改掉預設:廠商或同事要遠端連線,最快就是把資料庫開到網路上,事後沒改回來。Infosecurity Magazine 2017 年就推論,受害者可能用舊版、沒用官方安裝套件,或自己改掉了預設。
  • 測試環境忘了關:測試機放著真實資料,卻沒有正式環境的防護。
  • 舊系統沒升級:幾年前架的資料庫停在舊版,享受不到新預設。
  • 外包交接沒人管:廠商結案,連線帳號、防火牆例外和備份位置沒寫進交接文件。交接要確認什麼,可參考〈軟體專案交接清單〉。

這不只是小公司的問題。美國國家安全局(NSA)與網路安全暨基礎設施安全局(CISA)2023 年 10 月的聯合公告,整理紅藍隊評估與事件處理中最常見的十種設定錯誤,第一項就是「軟體與應用程式的預設設定」,並指出連資安成熟的大型組織也有這類弱點。

自我檢查清單:我家的資料庫有沒有開在外面?

不需要技術背景,拿這張表問 IT 或維護廠商,答不出來的就是要優先釐清的。

檢查項目 要問的問題 比較安全的狀態
連線來源 是否只允許內部或指定來源連線? 只開給應用程式伺服器或公司 VPN
帳號密碼 有沒有預設帳號、空密碼或共用弱密碼? 已啟用驗證,每人、每個系統各有帳號
測試與備份 測試環境、匯出檔、備份檔放在哪? 不在網站目錄或公開連結,測試資料去識別化
雲端儲存 儲存空間或分享連結是否公開? 預設封鎖公開,要公開的檔案另外放
連線權限 誰能連資料庫?權限多大? 只給需要的人,只到需要的資料
人員異動 離職員工、結案外包的帳號與金鑰收回了嗎? 異動當天停用,定期盤點
連線紀錄 有沒有登入與連線紀錄?有人看嗎? 保留紀錄,定期檢視陌生來源

MongoDB 官方安全檢查清單的第一項就是「啟用存取控制並強制驗證」,也要求限制網路曝露、只讓受信任的用戶端連線,和上表前兩項是同一件事。想把網站、帳號、備份一起檢查,可參考〈中型企業資安健檢要查什麼?一張清單看懂〉。

懷疑已經開在外面,下一步怎麼做?

  1. 先盤點:列出有哪些資料庫、測試機、備份檔與雲端儲存,各由誰負責。
  2. 先收窄:限制對外連線來源、啟用驗證並更換密碼,同時保留連線紀錄,之後才查得出有沒有人進來過。
  3. 再確認:請內部 IT 或外部團隊在授權範圍內檢查。智盾資安服務的檢測面向包含資料庫曝露與設定,交付風險分級報告與優先修補建議;檢測以唯讀為主,結果反映特定時間點的狀態,建議定期複測。

如果紀錄顯示資料已被讀取或下載,就不只是改設定,而要進入外洩處理流程,接著看〈個資外洩後企業要做什麼?通報與責任一次看懂〉。

資料來源與核對日期

作者與關係揭露

本文由奧微軟體開發企業社發布。內容為一般資安知識整理,不構成個別系統的檢測結論;奧微軟體提供與本文主題相關的智盾資安服務。

常見問題

資料庫為什麼會外洩?

常見原因是資料庫直接開在網路上,又沒設密碼或用弱密碼;測試環境、備份檔或雲端儲存設成公開也是同一類問題。背後理由通常是圖方便遠端連線、測試忘了關、沿用預設值或外包交接沒人管。

新版資料庫預設比較安全,為什麼還會外洩?

MongoDB 3.6 起預設只綁定本機,Elasticsearch 8.0 首次啟動會自動產生密碼與憑證,但預設只保護照預設來的系統;舊版本、手動改掉的設定或閒置測試環境仍可能對外。

怎麼檢查公司的資料庫有沒有對外開放?

先問 IT 或維護廠商:是否只允許內部或指定來源連線、有沒有預設帳號或弱密碼、測試與備份檔放在哪、雲端儲存是否公開、離職與外包權限是否收回、有沒有連線紀錄。答不出來的要優先釐清。

回文章列表