資料庫直接對外開放:資料外洩為什麼一再發生
資料外洩一再發生,往往不是被高深技術攻破,而是資料庫直接開在網路上、沒密碼或弱密碼,或測試資料、備份檔、雲端儲存設成公開。理由很平凡:圖方便遠端連線、測試環境忘了關、沿用預設值、外包交接沒人管。
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 官方安全檢查清單的第一項就是「啟用存取控制並強制驗證」,也要求限制網路曝露、只讓受信任的用戶端連線,和上表前兩項是同一件事。想把網站、帳號、備份一起檢查,可參考〈中型企業資安健檢要查什麼?一張清單看懂〉。
懷疑已經開在外面,下一步怎麼做?
- 先盤點:列出有哪些資料庫、測試機、備份檔與雲端儲存,各由誰負責。
- 先收窄:限制對外連線來源、啟用驗證並更換密碼,同時保留連線紀錄,之後才查得出有沒有人進來過。
- 再確認:請內部 IT 或外部團隊在授權範圍內檢查。智盾資安服務的檢測面向包含資料庫曝露與設定,交付風險分級報告與優先修補建議;檢測以唯讀為主,結果反映特定時間點的狀態,建議定期複測。
如果紀錄顯示資料已被讀取或下載,就不只是改設定,而要進入外洩處理流程,接著看〈個資外洩後企業要做什麼?通報與責任一次看懂〉。
資料來源與核對日期
- 中央社,〈中國爆逾40億筆敏感個資外洩 受害者包括台灣民眾〉,https://www.cna.com.tw/news/acn/202506090186.aspx,2026-10-07 核對。
- Elastic(Mike Paquette),〈Protecting Against Attacks that Hold Your Data for Ransom〉,https://www.elastic.co/blog/protecting-against-attacks-that-hold-your-data-for-ransom,2026-10-07 核對。
- Infosecurity Magazine(Phil Muncaster),〈MongoDB Ransom Victims Had No Account Passwords〉,https://www.infosecurity-magazine.com/news/mongodb-ransom-victims-no/,2026-10-07 核對。
- MongoDB,〈SERVER-28229: Bind to localhost by default〉,https://jira.mongodb.org/browse/SERVER-28229,2026-10-07 核對。
- MongoDB,〈IP Binding in Self-Managed Deployments〉,https://www.mongodb.com/docs/manual/core/security-mongodb-configuration/,2026-10-07 核對。
- MongoDB,〈Security Checklist for Self-Managed Deployments〉,https://www.mongodb.com/docs/manual/administration/security-checklist/,2026-10-07 核對。
- Elastic,〈Start the Elastic Stack with security enabled(Elasticsearch Guide 8.0)〉,https://www.elastic.co/guide/en/elasticsearch/reference/8.0/configuring-stack-security.html,2026-10-07 核對。
- Elastic,〈Elastic Announces the General Availability of Elastic 8.0〉,https://www.elastic.co/about/press/elastic-announces-the-general-availability-of-elastic-8-0,2026-10-07 核對。
- AWS News Blog(Jeff Barr),〈Heads-Up: Amazon S3 Security Changes Are Coming in April of 2023〉,https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of-2023/,2026-10-07 核對。
- NSA、CISA,〈NSA and CISA Red and Blue Teams Share Top Ten Cybersecurity Misconfigurations〉,https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-278a,2026-10-07 核對。
作者與關係揭露
本文由奧微軟體開發企業社發布。內容為一般資安知識整理,不構成個別系統的檢測結論;奧微軟體提供與本文主題相關的智盾資安服務。
常見問題
資料庫為什麼會外洩?
常見原因是資料庫直接開在網路上,又沒設密碼或用弱密碼;測試環境、備份檔或雲端儲存設成公開也是同一類問題。背後理由通常是圖方便遠端連線、測試忘了關、沿用預設值或外包交接沒人管。
新版資料庫預設比較安全,為什麼還會外洩?
MongoDB 3.6 起預設只綁定本機,Elasticsearch 8.0 首次啟動會自動產生密碼與憑證,但預設只保護照預設來的系統;舊版本、手動改掉的設定或閒置測試環境仍可能對外。
怎麼檢查公司的資料庫有沒有對外開放?
先問 IT 或維護廠商:是否只允許內部或指定來源連線、有沒有預設帳號或弱密碼、測試與備份檔放在哪、雲端儲存是否公開、離職與外包權限是否收回、有沒有連線紀錄。答不出來的要優先釐清。
