開發者筆電上,
躺著一堆明文金鑰
為什麼現在很紅:不在 git 裡,不代表安全;竊密程式專找家目錄裡那幾個常見的設定檔路徑。
- 一句話結論
- 開發者家目錄常放著雲端金鑰設定檔、寫死密碼的腳本和多年沒換的 SSH 私鑰;不在 git 裡,不代表安全。
- 他要的是什麼
- 他不用進你的雲端,只要讓一位工程師裝上一個看起來正常的套件,再把家目錄裡那幾個設定檔打包帶走。
- 你今天做一件事
- 今天就看一眼自己家目錄裡的雲端設定檔,確認裡面有沒有長期金鑰,以及它上次被使用是什麼時候。 直接去做 →
- 哪些能信
- 3 可證明2 推論2 缺口 每個主張都標了等級,缺口是誠實寫出來的。
- 破口速查
- 受害端一律去識別化;寫「未公開」代表公開資料查不到。
- 伺服器服務商
- 不適用(示意情境;涉及的是開發者筆電與雲端帳號)
- 網路服務商
- 不適用(同上)
- 漏洞出現的地方
- 端點層:開發者家目錄的設定檔、測試腳本裡存著長期有效、權限過大的明文金鑰;惡意套件或竊密程式專找常見的設定檔路徑,公司也沒有一份哪台筆電上有哪些金鑰的清單
- 馬上自我檢測
ls -la ~/.aws ~/.ssh gitleaks dir --redact ~ aws iam list-access-keys aws iam get-access-key-last-used --access-key-id <你的金鑰 ID>- 漏洞修補方式
- 請每位工程師自我掃描家目錄並自行處理;雲端存取改用 SSO 取得短期憑證,不在本機放長期金鑰;開發帳號只給開發環境權限,正式環境金鑰不放個人電腦;找出並停用閒置金鑰;開啟全碟加密、安裝套件前確認來源並鎖定版本;離職時撤銷此人建立的所有金鑰
有 15 分鐘再看:其餘 2 點
- 惡意套件與竊密程式專找常見的設定檔路徑,本機金鑰又常是長期有效、權限過大,一台筆電就能交出管理員權限。
- 不用先買工具:用開源掃描器自我盤點、改用 SSO 短期憑證、縮小權限、停用閒置金鑰,並把撤銷金鑰寫進離職流程。
雲端金鑰的設定檔、寫死資料庫密碼的測試腳本、從同事那裡複製來的 token、好幾年沒換的 SSH 私鑰。這些檔案不在 git 裡,所以感覺很安全;但筆電只要中了惡意程式或被偷,它們就一起被帶走。
本篇目錄
一個看似正常的開發套件
假設有一家二十人的 SaaS 新創。工程師 N 安裝了一個看似正常的開發套件,裡面藏著竊取程式,會把家目錄的設定檔打包上傳。幾天後,公司的雲端帳號出現陌生的存取金鑰。調查發現,那把被盜的雲端金鑰是 N 兩年前建立、存在本機設定檔裡的,而且權限是管理員等級。
先說清楚,這是示意情境,不是真實事件,公司、人物與經過都是為了說明而設。但打開任何一位工程師的家目錄,你多半會找到類似的東西:放著雲端金鑰的設定檔、寫死資料庫密碼的測試腳本、從同事那裡複製來的 API token、好幾年沒換的 SSH 私鑰。
這篇要講的只有一件事:不在 git 裡,不代表安全;本機上的長期金鑰,要換成會自己過期的憑證。
本機不等於安全
第一層是位置。惡意套件、竊密程式專找常見的設定檔路徑,家目錄是它們最先翻的地方。
第二層是壽命。本機金鑰很少輪換,建立那天到被偷那天,可能已經好幾年。
第三層是權限。為了方便,常常直接給了管理員權限,一把金鑰就能做所有事。
最後是清單。公司不知道哪台筆電上有哪些金鑰,出事時也就答不出還要撤銷哪幾把。
這篇示意情境裡,被帶走的是什麼
這是示意情境,沒有實際外洩;下表列的是開發者筆電上最常見、也最常被竊密程式帶走的憑證。
| 服務 | 憑證類型 | 用途 | 存在形式 | 放在哪 | 權限範圍 | 狀態 |
|---|---|---|---|---|---|---|
| 雲端帳號(IAM) | 長期存取金鑰 | 工程師在本機用命令列操作雲端 | 明文寫在家目錄的雲端設定檔 | 工程師 N 的筆電 | 管理員等級(示意情境中被拿來建立陌生的存取金鑰) | 示意情境;兩年前建立、從未輪換,撤銷前持續有效 |
| 其他本機憑證(資料庫密碼、第三方 API token、SSH 私鑰) | 密碼/API token/私鑰 | 測試腳本、呼叫第三方服務、登入主機 | 腳本內常數、純文字檔、PEM 私鑰檔 | 同一台筆電的家目錄 | 依各服務而定 | 是否一起被帶走無法確認 |
第二列標成缺口,是因為竊取程式打包了哪些檔案,要做惡意程式分析才知道。
能證明的、只能推論的
這篇是觀點文,情境是示意的,所以能證明的只有官方文件與專案頁寫明的事;情境裡的經過只能算推論,不知道的就寫成缺口。
不花錢就能做的流程
到這裡,其實已經足夠理解問題在哪。如果你想直接動手,可以跳到「今天就可以來試試」;下面是完整的六步流程。
第一步,自我盤點。 請每位工程師用開源掃描器掃自己的家目錄。結果只給本人看,自己處理,降低抗拒。
第二步,能換成短期憑證的就換。 雲端存取改用 SSO 登入、取得短期憑證(主要雲端平台的命令列工具多半支援),不要在本機放長期存取金鑰。
第三步,權限縮小。 開發用的帳號只給開發環境的權限;正式環境的金鑰不放在個人電腦上。
第四步,找出閒置金鑰。 AWS IAM Access Analyzer 可以找出未使用的存取金鑰(付費功能);Google Cloud 的 IAM 建議工具可以提出縮小角色的建議。
第五步,全碟加密和套件衛生。 開啟全碟加密;安裝套件前確認來源,鎖定版本。
第六步,離職時撤銷。 離職檢查表加上「撤銷此人建立的所有金鑰」。
什麼時候不需要買工具
工程師在十人以下的話,開源掃描加上「改用短期憑證」就能處理大部分問題。需要集中看到全公司裝置上的金鑰狀況時,才需要端點層級的工具。
市面上大致分四類。開源掃描器:Gitleaks、TruffleHog。雲端原生:短期憑證登入、AWS IAM Access Analyzer、Google Cloud IAM 建議工具。密鑰管理:雲端原生的 AWS Secrets Manager、Google Cloud Secret Manager;開源的 Infisical、OpenBao;商用的密碼和密鑰管理器(例如 1Password 的開發者密鑰管理,官網說程式可以在執行時透過 CLI 或 SDK 取出密鑰)。端點管理:MDM 和端點偵測回應類產品,可以搭配政策檢查。
限制也要一起看:把金鑰移進保管庫可以減少明文檔案,但如果電腦已經被入侵,執行時取出的金鑰還是可能被攔截,這無法取代端點防護;掃描靠規則比對,會有漏判。選的時候問三件事:雲端平台本身有沒有短期憑證機制(有就先用)、團隊規模(人少靠自我盤點,人多需要集中可見性)、裝置管理現況(沒有 MDM 的話,端點層級的工具很難推行)。
後續更新兩則。2026/07/28,1Password 宣布 Developer Watchtower 正式提供,官網說可以找出開發者裝置上的明文密鑰,並移進受管理的保管庫。2026/10/17 查證時,1Password Device Trust 的英文產品頁列出「AI 與密鑰探索」功能(推出日期未在頁面上註明);另外,Gitleaks 的 README 寫明專案「功能完整」,之後只發布安全修補,作者轉而開發 Betterleaks。
這篇提到的項目要花多少錢
來源沒有列損失金額與商用方案價格,表裡照實標成未公開或估算。
| 項目 | 用量 | 單價 | 期間 | US$ | NT$ | 舉證 |
|---|---|---|---|---|---|---|
| 每位工程師自我掃描家目錄並處理 估 | 每人 | 估 30–60 分鐘 | 一次性 | — | — | 本站估算 |
| Gitleaks/TruffleHog | 開源 | 軟體免費 | — | 0.00 | 0 | 各專案 GitHub 頁 |
| AWS IAM Access Analyzer 未使用存取發現 | 依帳號與角色數 | 付費功能,本文未取得價格 | 每月 | — | — | AWS 官方文件註明為付費功能 |
| Google Cloud IAM 角色建議 | 依專案 | 本文來源未列價格 | — | — | — | 官方文件未在本文引用處列價格 |
| 示意情境中被盜管理員金鑰造成的損失 | 未公開 | 未公開 | — | — | — | 示意情境,無實際帳單 |
| 合計(僅可證明列) | 0.00 | 0 | ||||
最便宜的一列是掃描,最貴的一列是那把兩年沒換、權限是管理員的金鑰被拿去之後,你還不知道它做了什麼。
你可以學到什麼
站在攻擊者那一側看,開發者的家目錄是一個路徑固定、內容豐富的保險箱。他不用猜,只要知道常見設定檔放在哪;裡面的金鑰多半長期有效、權限又大,一台筆電就夠了。
- 01開發者家目錄裡的雲端設定檔、測試腳本、SSH 私鑰都可能存著明文金鑰;不在 git 裡,不代表安全。
- 02竊密程式專找常見的設定檔路徑,所以本機長期金鑰要換成用 SSO 取得、會自己過期的短期憑證。
- 03開發帳號只給開發環境權限,正式環境的金鑰不放在個人電腦上,被偷時影響範圍才會小。
- 04用 IAM Access Analyzer 或 IAM 建議工具找出閒置金鑰與過大的角色,該停用的先停用。
- 05把金鑰移進保管庫能減少明文檔案,但無法取代端點防護;電腦已被入侵時,執行時取出的金鑰仍可能被攔截。
- 01明文金鑰這篇的主角:不加密地躺在設定檔與腳本裡,誰拿到檔案誰就能用。
- 02長期存取金鑰建立後不會自己過期,被偷的那天距離建立可能已經好幾年。
- 03短期憑證(SSO 登入)取代本機長期金鑰的做法,就算被偷也很快失效。
- 04家目錄設定檔竊密程式最先翻的地方,自我盤點也從這裡開始。
- 05最小權限開發帳號只給開發環境權限,決定被偷時損失有多大。
- 06IAM Access Analyzer找出未使用存取金鑰的 AWS 官方工具,注意這是付費功能。
- 07IAM 角色建議Google Cloud 依實際使用建議縮小角色,處理「為了方便給了管理員」。
- 08Gitleaks dir不只掃 repo,也能掃本機目錄,適合工程師自我盤點。
- 09全碟加密筆電被偷時保護檔案的最後一道防線。
- 10離職撤銷人走了,他建立的金鑰也要一起收回,否則清單永遠補不齊。
全部唯讀,不改任何設定;做完你會知道自己有沒有同樣的破口。
- 看一眼自己家目錄裡的雲端與 SSH 設定資料夾有哪些檔案(唯讀,不要打開貼給別人)
ls -la ~/.aws ~/.ssh看到什麼代表什麼:看到 credentials 這類檔案,代表本機可能放著長期金鑰;私鑰檔的建立日期越早,越該檢查。 - 已安裝 Gitleaks 的話,掃一次自己的家目錄,結果遮蔽顯示,只給自己看(唯讀)
gitleaks dir --redact ~看到什麼代表什麼:列出的每一筆都是明文密鑰候選;掃描器會漏判,沒有發現也不代表沒有。 - AWS 使用者:列出自己帳號下的存取金鑰(唯讀)
aws iam list-access-keys看到什麼代表什麼:看到建立日期很久以前、狀態為 Active 的金鑰,就是示意情境裡那一把的同類;把每一把的 ID 末 4 碼與建立日期記進「laptop-key-ledger-n4.csv」,第六步離職撤銷時才有清單可對。 - 對上一步列出的每把金鑰,查它上次被使用的時間(唯讀)
aws iam get-access-key-last-used --access-key-id <你的金鑰 ID>看到什麼代表什麼:很久沒用過的金鑰,是可以優先停用的候選;最近有使用但你不記得用過的,要特別追查。 - 確認筆電已開啟全碟加密(macOS:系統設定 → 隱私權與安全性 → FileVault;Windows:設定 → 裝置加密或 BitLocker)(唯讀)看到什麼代表什麼:顯示已關閉的,筆電一旦遺失,家目錄裡的檔案就沒有任何保護。
揭露:本文未受任何廠商贊助,提及的產品僅為舉例。
環境背景、時間線、攻擊鏈對照 ATT&CK、關鍵證據、根因、處置與檢討都在完整版,約 7 分鐘。
來源
- Gitleaks(開源密鑰掃描器)
- TruffleHog(開源憑證掃描器)
- AWS IAM Access Analyzer:發現項目說明(含未使用存取)
- Google Cloud:IAM 角色建議總覽
- Infisical(開源密鑰管理)
- OpenBao(開源 Vault 分支)
本文為公開報導與官方公告的整理與拆解,非第一手鑑識;證據等級依來源可信度標註。
本文由 AI 團隊協助研究與撰寫,經隱私與事實檢查後發布;證據等級依來源可信度標註。
複製下面這段,貼給你在用的 AI 工具(Claude Code、Cursor、Copilot、ChatGPT 都可以)。它會用本篇的破口位置、自我檢測與學習重點,對你的專案或環境做一次資安掃描,列出潛在問題與建議的調整或加強方式。
預設是唯讀:只發現問題、提出建議,不會改你任何檔案或設定。
M2 身分與金鑰 · 想在自己的環境做一次同樣的盤點,從 自我盤點 開始。
每篇新文章一封:三點摘要、關鍵字定義、今天能做的一件事。或先 加入會員 記錄你完成的任務。