Skip to content
AI Ferryman Alex
Go back

我把 AI 兩天寫完的安全平臺審了一遍,九成代碼是真的

昨天在 Hacker News 上刷到一個新開源項目,叫 Argus。一套完整的安全運營平臺:接雲、接身份系統、接終端,接完之後 AI 負責調查,查實了還能自動處置,封 IP、隔離電腦、停賬號,一條龍。這種東西放在以前,是幾十個工程師做一兩年的活。

我點進倉庫看了一眼時間。10 月 23、24 兩天,38 個 commit,全部出自同一個人,其中 35 個帶着 Claude 的聯署。也就是說,一個人加一個 AI,兩天,把這套東西寫出來開源了。

我第一反應是不信。這兩年我見過太多 README 寫得天花亂墜、代碼打開全是空殼的項目。所以我把倉庫拉下來,逐個子系統審了一遍。審的方法很土:不看它宣稱什麼,只看代碼。調雲接口的那部分是真發請求還是直接返回成功,測試是連真環境還是全程演戲,文檔裏的數字跟代碼對不對得上。

它想幹什麼,先用大白話講一遍

把 Argus 想成一棟大樓的保安室。

樓裏各處的攝像頭和門禁記錄不停往保安室送,這部分叫數據接入。Argus 接了 9 路:AWS、Azure、谷歌雲、Kubernetes、GitHub、Okta 這些。值班的偵探有 7 個,分工查不同的事,他們有個共同的規矩:只能看,只能寫報告,不能自己動手抓人。真要處置,偵探得遞一張申請單。單子到了出納手裏,出納管着保險箱鑰匙,動手之前要先核政策、找人批准、預演一遍看會誤傷誰,動手之後還能撤回。旁邊還有一個總開關,情況不對一把拉下,全部停手。保安室牆上掛着一本賬,每一筆進出都按順序記下來,頁和頁之間環環相扣,撕掉哪一頁、改掉哪個數,後面對不上,一眼能看出來。

這套分工是這個項目最值錢的地方。AI 能看、能想、能提建議,就是不能自己碰鑰匙。這兩年大家都在聊怎麼管住 AI,這個項目至少把規矩立對了。

Argus 的分工和那道閘門

審下來的結果:大部分是真的

執行處置的那 27 個動作最容易造假,我一個一個翻的。封雲上的一臺機器、去 Cloudflare 加一條攔截規則、讓 CrowdStrike 隔離一臺終端,全是真調用,參數怎麼拼、出錯怎麼處理、撤回怎麼恢復原樣,都寫了。

有幾個細節是編不出來的。比如 CrowdStrike 那個執行器,默認拒絕隔離域控和服務器,怕把整個公司的登錄搞癱。比如它給 Cloudflare 加規則時,連這個平臺只認 /16、/24 這種長度的網段都處理對了,這種坑只有真踩過的人才知道。再比如 SentinelOne 隔離完之後,它會回頭確認到底有幾臺終端真的被影響了,數目是 0 就算失敗。接口返回一句成功,它不認。

那本賬也是真的。哈希鏈、簽名、密鑰輪換、防分叉的鎖,寫得比很多正經商業產品還講究。全倉 43,643 行 Python,測試 10,297 行,467 個測試函數。我用grep翻了一遍,TODO 和 FIXME 是零。

給 AI 設的陷阱,是全倉最認真的部分

這個項目裏我最喜歡的東西,是一套專門給 AI 設的陷阱。

思路來自礦井裏的金絲雀。它在系統裏埋了 12 種誘餌,其中 4 種是衝着 AI 來的:一個假的 MCP 服務器,一個假的模型接口,一把假的 API 密鑰,還有一份藏好的提示詞注入。哪個 AI 先動了這些東西,說明它已經在脫離指令亂來了,當場觸發警報,它用的什麼模型、問了什麼,一併記下來。

假 MCP 服務器寫得最下功夫。它完整實現了 MCP 的握手協議,對面來一個 AI,能正經對上話。它只提供一個工具,名字起得直白,就叫 get_production_credentials,獲取生產環境憑證。真有 AI 調了這個工具,性質就清楚了。假的模型接口連報錯的格式都仿了 OpenAI 的樣子,爲的是讓來試探的 AI 看不出破綻。

給失控的 AI 挖坑這件事,過去一年我聽過很多人在會上講,這是我第一次在開源代碼裏見到有人真把它做出來,能跑的那種。

AI 露餡的兩個地方

當然,它還是露了餡,露得很有 AI 的特色。

一處在價格表裏。管 AI 調用的那部分代碼內置了一張模型價格表,用來算成本。表裏列着 claude-opus-5-5、claude-fable-5-1 這種型號,還有對應的價格。問題是這些型號不存在。它還給 Anthropic 的接口加了一個測試版請求頭,日期編號都編圓了,最後靠一段異常兜底代碼保平安。寫得一本正經,查無此物。AI 寫代碼的手藝和它編東西的膽子,是同一個來源,這張表就是標本。

另一處在文檔。它自己的路線圖裏寫着 12 條檢測規則、8 種誘餌,代碼裏實際是 13 條、12 種。README 後來改對了,路線圖忘了改。一個人指揮多個 AI 分頭寫,文檔和代碼各寫各的,最後對不上數。這種事我在人帶的團隊裏也見過,只是沒想到 AI 分工也會犯。

真正的問題:這棟房子沒人驗過

前面說的全是「代碼寫了」。另一件事是「跑過沒有」,這一欄是空的。

467 個測試,沒有一個連過真實環境。雲也好,身份系統也好,終端管理也好,測試裏全是假接口:錄好的數據喂進去,假裝對面是真的 AWS,跑通了,綠燈。代碼本身的邏輯測得挺細,對面的系統長什麼樣、限流怎麼算、權限怎麼給,它一次都沒真碰過。倉庫建起來才兩天,零個正式版本,作者之外沒有第二個貢獻者。

審計成色

打個比方。這棟房子蓋完了,圖紙齊全,水電錶都裝了,看着像模像樣。但沒驗過房,也沒人住過一晚。水管通沒通水,要擰開水龍頭才知道。

普通項目這樣也就罷了。安全產品手裏是要拿公司鑰匙的:雲賬號、身份系統、終端管理臺的權限都得給它。一個從沒在真環境裏跑過的東西,我不會把鑰匙交出去。作者自己其實也誠實,文檔裏明說了數據接入只用錄製數據測過,還專門留了一章記「實現和設計對不上的地方」。這份誠實在同類項目裏不多見。

我的結論

Argus 現在適合拿來讀,不適合拿來用。讀它的分工設計,讀它給 AI 挖坑的思路,讀審計鏈怎麼寫的,都值。它要是哪天補上真實環境的驗證記錄,出了幾個正式版本,我會再回來看一眼。

往後這種項目只會越來越多。一個人加 AI,幾天攢一個大系統,README 寫得比誰都漂亮。分辨真假的辦法不復雜,就是我這次用的這套笨辦法:別聽它宣稱,先翻動手的那部分代碼,再看測試連的是真環境還是假接口,最後拿文檔的數字跟代碼對一遍。對得上,成色就不差;對不上,README 寫得再好也先放一放。

倉庫地址:https://github.com/thomasunise/argus


在 X 上討論→

評論都在 X 上——回覆、引用和討論都在那邊進行。