那把貼在環境變數裡的 key,IETF 把它判成了反模式
一個跑在伺服器上的程式,半夜三點被叫醒,要去呼叫一個 API。對面問它:你是誰。 它的回答是一串字。那串字躺在環境變數裡,名字大概是 API_KEY 或 SERVICE_TOKEN,開頭幾個字元你閉著眼睛都背得出來。程式把它貼進 header,對面收到,放行。「證明自己是誰」這件事就這樣結束了。 嚴格講那不叫證明,叫出示。持有即通過,誰撿到誰就是你。在只有幾支定時腳本的年代這還算堪用,那些腳本做的事很固定:讀一張表、寄一封信、清一次快取,key 外流的代價估得出來。 現在跑在上面的東西不一樣了。它自己決定下一步呼叫哪個工具,把外面讀進來的文字塞回自己的上下文,一輪任務裡動到三四個系統。而它手上還是同一把 key,還是同一句「持有即通過」。 IETF 的 WIMSE 工作組(Workload Identity in Multi-System Environments)交了一份草案處理這件事,文件編號 draft-ietf-wimse-aims-00,標題是 “AI Identity Management System”,30 頁。它對上面那把 key 的判決寫得很不客氣。 憑證本身...
你沒叫它讀,它還是讀了:Agent SDK 的 settingSources 與關不掉的五樣東西
你用 Agent SDK 寫的那支 agent,這一刻很可能正在讀你的 ~/.claude/CLAUDE.md。你沒有叫它讀。 平常不會有人發現這件事。在自己的機器、自己的 repo 裡,agent 的行為跟你預期的一樣,因為你的預期本來就是那台機器上的設定養出來的。要等到把同一份程式碼交給第二個人跑、或是包成服務丟上另一台機器,行為才開始飄。那時候大家第一個翻的是 prompt 跟 model,很少人會回頭去看它是從哪個目錄啟動的。 反方向的抱怨也一樣常見:專案裡明明放了 CLAUDE.md、.claude/skills/、hooks,agent 卻像沒看到一樣。 兩種抱怨的方向完全相反,管它們的是同一個選項:settingSources。 省略它,等於你寫了三個值文件講得很白:省略 settingSources 時,query() 會讀跟 Claude Code CLI 一樣的檔案系統設定,包含 user、project、local 設定、CLAUDE.md 檔案,以及 .claude/ 底下的 skills、agents、commands。省略等同於 ["user...
AI 與科技新聞摘要 - 2026/09/16
一個開發者打完一句話,AI 助理接著吐出一個套件名。他裝了。 市面上那些 AI 防護產品的型錄,大致照「怎麼擋提示詞注入、怎麼避免它把憑證講出去、怎麼限制它讀得到哪些檔案」在排。9 月 15 到 16 日這兩天出來的幾份報告,擺進這個分法裡會有點卡。 一、開發者照著助理的建議,裝了那個套件Mandiant 在 2026 年 9 月的 AI 風險與韌性報告裡記了一個案子,The Hacker News 在 9 月 16 日轉述。受害的是一家未具名的 SaaS 業者。 起點不在套件庫,在一段還在進行中的對話。攻擊者挾持了該公司一段正在進行的 AI 編碼助理對話,然後在那段對話裡推薦了一個被下毒的套件。開發者採納了這個建議,經由一個被汙染的 PyPI 套件安裝了資訊竊取程式。接著 GitHub OAuth token 被竊,攻擊者拿它把 Shai-Hulud 蠕蟲部署到約 100 個內部儲存庫。最後一步繞了回來:該公司官方命名空間裡的一個被下毒套件,在另一名員工拉取那個版本時造成二次感染。 技術環節上沒有一樣是新的。被下毒的 PyPI 套件、被竊的 OAuth token、會自我散播的...
模型怎麼搬到另一台機器:ModelPack 決定不蓋新輪子,直接推進 OCI registry
一個幾十 GB 的資料夾躺在某台配了 GPU 的機器上。裡面是權重檔、一份 tokenizer、一個 config、還有當初隨手寫的 README。現在要讓另外三台機器拿到一模一樣的東西。注意是「一模一樣」,不是「看起來差不多」。 這件事到今天為止,沒有一個大家都同意的做法。 打成 tar 丟過去,然後呢最直覺的做法是打包。tar 一下,傳過去,對面解開。檔案確實會到。 問題出在你要怎麼稱呼它。 打完的那包,你叫它 model-v2.tar。一週後有人換掉 tokenizer,重打一份,還是叫 model-v2.tar,只是尾巴多黏一個 -new。再過兩週,三台機器上各自躺著一個名字不一樣、內容可能相同也可能不同的壓縮檔,而你沒有任何機械化的辦法判斷它們是不是同一份東西。人腦記不住,ls -la 也告訴不了你。 容器生態早就把這題解掉了:拿內容本身的雜湊值當地址。digest 一樣就是同一份,不用相信檔名,不用相信任何人的口頭保證。 但這招沒辦法直接套到你手工打的 tar 上。tar 會把每個檔案的修改時間、擁有者的 uid 跟 gid、權限模式一起寫進去,而這些欄位是跟著你打包...
沒有 MDM,公司的規則怎麼跑到那台筆電上:拆開 server-managed settings
那台筆電是他自己買的。公司沒有 MDM、沒有端點管理系統,IT 連 managed-settings.json 該塞到哪個路徑都推不動。可是他一開 Claude Code,Read(./.env) 就是擋著的。 這份政策是從哪裡來的?更精確一點問:它在啟動流程的哪一步到達,在它到達之前的那幾百毫秒,Claude Code 照誰的規矩在跑? 「Owner 在 claude.ai 填了一份 JSON」這句先擱著,那講的是誰按了按鈕。從 client 這一側看只有兩個動作:向 api.anthropic.com 要一份 payload,存進 ~/.claude/remote-settings.json。啟動時抓一次,session 開著的話每小時再抓一次。 骨架就這麼大。難的全在時序。 那份政策在你開機的第幾毫秒到達抓東西要時間,而 Claude Code 不能為了等一份設定讓你盯著空畫面。文件把取捨切成兩種。 開發者在啟動時登入(第一次跑,或者剛 /logout 過),Claude Code 最多等 5 秒讓 fetch 跑完才開 session。政策及時送到,就從第一個畫面開始執行...
AI 與科技新聞摘要 - 2026/09/15
9 月 14 日,adminmenueditor.com 上架了 Admin Menu Editor Pro 2.35。外掛的開發者 Janis Elsts 沒有放這一版上去。 那一版裡多了一個檔案,includes/wp-user-consent.php,會在裝上它的網站放一個 web shell,再建一個看不見的管理員帳號。Elsts 發現之後把它移掉,同一天 19:00 UTC 推出乾淨的 2.36。 攻擊者當時還在那台主機上。2.36 也被下毒了。 一、乾淨的那一版,跟髒的那一版來自同一台主機BleepingComputer 9 月 15 日報導了這件事,攻擊發生在前一天。惡意的 2.35 掛在網站上的時間,報導寫的是當天 06:00 UTC 到 13:00 UTC,大約七個小時。影響範圍照原文是「至少 230 名客戶、約 1,500 個網站」,這兩個數字量的不是同一件事,一個客戶手上通常不只一個站,別把 1,500 讀成 1,500 家公司。 範圍也要界定。被入侵的是付費 Pro 版的散布基礎設施,不是 WordPress.org 上那個免費版(逾 30 萬次啟用安裝)...
該不該為你的模型產一份 AI-BOM:先問誰會去填那七個欄位
有人問你一個問題:你們產品裡總共用了幾個模型,每一個是拿什麼資料訓出來的。 你打開 repo。權重檔躺在那裡,旁邊一個 README 寫了三行;另外兩個模型是從 Hugging Face 拉下來的,各自附一張 model card,格式不一樣,其中一張的訓練資料那欄填的是一個連結,點進去是一篇論文。 三個模型,三種寫法,全部是給人讀的。要回答那個問題,只能一份一份打開來看,然後手寫一份總表。下個月再被問一次,整套重來。 資料其實都在,只是躺在工具讀不懂的地方。你沒辦法在 CI 裡問這個問題,也沒辦法寫一支腳本掃出全公司的模型清單。能做的只有靠人記得,而靠人記得的事,在那個人離職的那天就會斷。 而且這個問題通常由外面的人問出來:客戶的資安問卷、稽核、某個合作方的採購流程。問的人要一份可以歸檔的東西,你手上只有三個風格不一樣的 README。 這就是 AI-BOM 要處理的事。至於你該不該弄一份,答案比「當然要」複雜,而且關鍵完全不在格式好不好。 它沒有另立新格式先講清楚這東西的實際長相,不然沒辦法談值不值得。 規格本體是 CycloneDX v1.7,由 ECMA-424 第 2 ...
包住入口不等於包住全部:Claude Code 強制啟動器管不到的那五件事
有些公司的規定是這樣的:工作站上每一個行程,都必須經過一支強制啟動器啟動。沙箱、網路管制、憑證注入,全部掛在那支 launcher 上。繞過它就是違反政策。 碰到 Claude Code,以前的做法很直覺。在 PATH 前面塞一支自己寫的 claude,讓它先進 launcher、再去跑真正的 binary。狠一點的做法是直接把 ~/.local/bin/claude 那個 symlink 換掉。使用者打 claude,路徑被接管,收工。 覆蓋率報表上這件事是 100%。 實際跑起來的東西不是這樣。agent view 裡每一列的 session、按需啟動的背景服務、服務當掉之後重新生出來的 session、Claude Code 為了裝完更新而對自己做的重啟,全都在 launcher 外面。 原因只有一句話:這些行程是 Claude Code 直接用 binary 的絕對路徑啟動的,不會去查 PATH。 你在大樓門口設了檢查哨,門口那一關做得很嚴。但樓裡的人本來就知道自己辦公室在幾樓,他走的是內部電梯。檢查哨攔得住從外面進來的人,而 Claude Code 開出來的那些行程,從...
AI 與科技新聞摘要 - 2026/09/14
怎麼判斷一句「我們該放慢」是認真的? 不必聽他承諾了什麼,算他自己會少掉什麼比較快。9 月 13 到 14 日這兩天,有三個人先後對「AI 前沿該不該放慢」開口,一個支持、一個附和、一個嘲諷。三個人的表態,在說出口的當下都沒有讓自己少掉任何東西。 同一批日子裡,確實有人的東西變少了。只是不在這三個人身上。 一、少掉的那 17%,官方文件上找不到9 月 14 日起,Claude Code 的週用量上限改了。前一階段的 50% 加成在 2026 年 9 月 13 日 23:59 PT 結束,從 9 月 14 日開始改成永久 +25%,基準是促銷前的那個值,適用範圍是 Pro、Max、Team 與席次制 Enterprise。五小時上限不變,其他 Claude 介面不受影響,免費方案與用量計費的 Enterprise 席次不在範圍內。 那個 50% 是 2026 年 5 月 13 日開始的,原訂到 7 月 13 日,中間延長了四次。 對促銷期間一直在用的人來說,數字是從 150% 掉到 125%,淨減少約 17%。「+25%」跟「−17%」兩個都是對的,差別只在基準點選在哪裡:一個以促...
一轉檔就全斷:C2PA 怎麼在位元組之外留第二條線索
最早那套設計是把來源資訊釘死在位元組上。算一段雜湊、簽名、把 manifest 塞進檔案,之後只要有一個 bit 被動過,驗章就過不了。密碼學上沒有破口。 然後你把那張圖上傳到某個平台。它重新壓一次、順手把不認得的中繼資料清掉,你的 manifest 就不見了。驗章這一步根本沒有東西可以驗,連「這張圖曾經有過來源資訊」這件事都查不出來。 這是 hard binding 的結構性下限,跟演算法強度無關。位元組變了,綁在位元組上的東西當然對不上;而平台剝掉中繼資料的理由可以完全無辜,有的是用了不支援的軟體,有的是轉檔流程順手清掉。剝的人沒有惡意,結果一樣是全斷。 那段時間能做的就是祈禱平台不要剝。講出來很扯,但那真的是唯一的湊合法:你把 manifest 簽好、上傳,然後等對方的管線給你面子。 2024 年 9 月,規格裡多了四個零件C2PA 2.1 是 2024 年 9 月 20 日發的,soft binding 那一整套是在這一版進來的。 C2PA 規格版本 2.1(2...














