八個假檔案埋進公網,十二天錄到 502 次敲門,一半在找 .env
訪客紀錄裡有一條特別顯眼:User-Agent 自稱 iPod touch,瀏覽器欄寫著 Firefox,開口要的第一份檔案是 .env。iPod 上裝 Firefox,還專程來翻伺服器的環境設定,這個組合在任何真實使用情境裡都不成立,在掃描器的偽裝名單裡卻是熟面孔。
把它寫進日誌的,是署名 SEQVEC 的開發者。2026 年 10 月 5 日,他在掘金發布實測帖《我埋了 8 個假文件,看誰會上鉤:12 天 502 次掃描實錄》(來源:掘金平臺貼文),公布一場為期十二天的觀察:502 次訪問、119 個獨立 IP,沒有一天缺席。來客包括一鍵掃全網的洩漏情報平臺、把掃描聲明寫進 User-Agent 的安全廠商,以及那個偽裝成 iPod 的腳本。
被動的日誌,分不清兩種敲門
發文者的起點很實際:一般伺服器的日誌是被動的。一臺公網機器每天被幾千次掃描撞上,日誌裡滿滿的 404,隨手掃一腳的路人與盯著你找東西的人,在紀錄裡長得一模一樣,都是一條 GET 加一個 404。
既然擋不住被掃,那就把掃描引到專門的地方,看對方到底想要什麼。這是蜜罐的思路。帖子裡也特別說明,這裡沒有部署整套系統的重型方案,就是幾個假檔案。
與其隔著螢幕猜,不如把現場佈置出來等答案。這個思路換個社羣也成立,手機圈就有人走進門市看過實機,再替螢幕翻案,把線上罵聲與現場觀感的落差親自量了一次。
誘餌的做工,貴在一行人味
挑誘餌的原則只有一條:做他們以為自己撿到漏的東西。放一個 readme.txt 沒人理,要放的是那種正常專案裡絕不該出現在公網、一旦出現就算事故的檔案。這次埋的主要有幾類:
- 環境設定 .env:KEY=value 一行一個,內容是資料庫連線串、Redis 位址、各種金鑰。它在掃描器界的優先級排第一,這回一半以上的訪問衝著它來,比第二名高出近一倍。
- 內部文件:一份「維運筆記」,有架構說明、待辦清單,還留著「換掉臨時金鑰」這種看起來很要命的 TODO。
- 偽裝的後臺路徑:/api/admin/、/internal/ 這類路徑本來就會被批量探測,與其回 404,不如回一段 JSON。
整批誘餌裡最值錢的,是 .env 裡的一行維運備註。割接是行話,指系統切換。
發文者自己拆解過這行字的機關:「臨時」「忘了刪」這類字眼會讓上門者的判斷力先降一階。讀到的人這時相信,自己撞見的是別人的失誤,一次真實的疏忽。
每份回應裡,都藏一個專屬編號
只記 IP 意思不大,掃描的人不會拿真實 IP 上門,多半走代理或雲端主機。所以每個誘餌檔案的回應裡都塞了一個唯一的隨機字串,字串連同對應的訪問細節一起寫進日誌。
價值在事後追溯。假如一年後網上流出某份「內部設定」的截圖,截圖裡帶著那個字串,就能反查它從哪一次訪問漏出去、當時是哪個 IP、用了什麼工具。發文者說得直白:追人是追不到的,要的是搞清楚洩露路徑。安全事件裡最難回答的問題,從來都是從哪漏的。
「給每個人一份略有不同的版本」這套思路,在間諜小說裡有現成的名字:金絲雀陷阱。湯姆克蘭西在《愛國者遊戲》裡讓情報單位把同一份文件做成幾個用字各異的版本發給不同嫌疑人,誰的外流版本現身,源頭就是誰;《紙牌屋》第一季也用過同一招。資安圈後來把它做成了現成服務,文件一被打開就寄信通知的 canary token,一般人也能免費申請。
十二天的來客名單
能辨識出來的訪客,幾乎都是自動化工具:
- 一個專做洩漏情報的平臺,十二天裡來了 48 次
- 一家知名安全廠商的攻擊面掃描服務,來過 8 次,User-Agent 裡直接寫明「這是我們的掃描行為,詳情見某某頁面」,姿態坦蕩
- 一個做網路空間測繪的搜尋引擎爬蟲,同類服務的代表作是 Shodan
- 大量 curl,以及偽裝成正常瀏覽器的腳本
偽裝成瀏覽器這件事,其實是向老傳統行禮。瀏覽器互相偽裝了近三十年,Chrome 到今天仍宣稱自己 Mozilla 相容、like Gecko,為的是通過舊網站的相容性檢查。掃描器冒充 iPod,只是把這門祖傳手藝排到了夜班。
按訪問次數排下來的「購物清單」,依序是配置類檔案(過半)、通用配置 JSON、安全聲明文件、提示頁、備份目錄、內部維運文件、偽裝後臺接口。.env 登頂不算意外,它是各框架通用的檔名,一支腳本就能掃遍全網,投入產出比最高。
有人明顯上鉤了,證據是路徑變形:/.//.env、//.env、用 URL 編碼寫成的 %2eenv,甚至往 /api/uploads/ 塞一串 %2e%2e%2f 的路徑穿越。走到這一步的,說明已經拿到回應,正在琢磨怎麼要得更多。
蜜罐這個詞,是從間諜行話借來的
蜜罐在成為資安術語之前,是諜報行話,指以感情為餌的布局。資安圈把它借走之後,詞義換成「故意放著引人來摸的假資產」,那股「歡迎光臨、請自便」的味道沒變。
掃描與反掃描是一對老搭檔。1983 年的電影《戰爭遊戲》裡,少年用撥號程式隨機打電話找數據機,這個動作後來被叫作 wardialing,算是網路掃描的史前形態。四十年後,方向倒了過來:被掃的人開始替機器佈置迷宮。2025 年春季,Cloudflare 在官方部落格宣布 AI Labyrinth,把無視規則的 AI 爬蟲引進一串 AI 生成的假頁面裡繞圈(來源:官方公告);開源圈同年流行的 Anubis 則要求爬蟲先算完一段工作量證明才放行,許多開源專案官網掛上它之後,人類照常進門,機器被留在門口算數學(來源:公開報導)。
相較之下,掘金這篇走的是最樸素的路線:不部署系統、不擋人,放八個檔案,然後誠實攤開日誌。這種把動手過程寫成紀錄的長文,是開發者社羣的看家文體,先前Agent 修完程式碼、自己上雲端借了一臺 Samsung的實測也屬同一條譜系:親手做,按時間順序交代,連踩到的坑一起寫出來。
普通專案能帶走什麼
帖子最後回到普通人的處境,提醒並不複雜:公網上沒有小到沒人注意的專案。119 個獨立 IP 裡的訪客多半不知道這臺機器屬於誰,它們只按清單敲門。.env 該進 .gitignore、部署該換掉預設值,這些老規矩的分量,讀完 502 次訪問紀錄之後會變得具體。
放大到全網,Imperva 歷年發布的 Bad Bot Report(來源:公開報告)把自動化流量的佔比估在四成以上,近年逼近一半。掘金這篇帖子做的事,等於把那個大數字縮小到八個檔案和十二天裡,讓「背景噪音」四個字底下每一次具體的敲門被看見。
誘餌還埋在原處。那些帶著專屬編號的假文件,如果哪天出現在某張流傳的截圖裡,就能順著編號找到它離開的那一天。問題只剩一個:你自己伺服器的日誌裡,今天的幾條 404,是衝著什麼來的?