技術

對38萬款用AI生成的App跑了一次掃描,結果發現上千款連身分驗證都沒裝

Susan Hill

自2023年起,「vibe-coding」(氛圍式編程)一直在販賣同一句宣傳:誰都能做App。RedAccess的最新掃描,給這句話第一次開出了真正帶數字的收據。在用AI編程工具建造、並透過Netlify等服務上線的約38萬款Web應用中,約有5,000款根本沒有任何身分驗證;在這些毫無防護的App裡,約40%承載著敏感資料——使用者資料、對話紀錄、付款資訊、內部憑證。這組數字本週同時落到WIRED、Axios與Security Boulevard的報導中,描述的正是這個產業過去兩年悄悄堆出來的一類失敗。

那些被點名的生成工具,是連非開發者都早已叫得出名字的平台。Lovable、Replit、Base44,以及更廣義的「靠一段提示詞搭起來」的工具生態,從一開始就在賣同一個隱含承諾:AI不只接管打字,也接管那位本該盯著流程的工程師。選一段提示詞,看著App從無到有冒出來,從Netlify或Vercel推上線,再把連結轉出去。RedAccess這次掃描記錄的,正是這條流水線裡沒有任何人停下來問一句「這支App是不是該裝鎖」,就已經悄悄上線的東西。

漏洞並不精巧。那些沒有防護的App並不需要高明的攻擊者,需要的只是一個瀏覽器。許多應用上線時直接把Supabase或Firebase金鑰塞進用戶端bundle裡,這意味著任何感興趣的人都能讀整個資料庫。部分應用甚至允許對同一個資料庫進行寫入,於是一個陌生人就能修改使用者紀錄。少數應用還直接把管理後台的端點公開出來。這種缺陷不是零日,也不是某個邊緣情境設定錯誤。它是整個安全層的整體缺席。

懷疑要留一點,因為把責任全推給工具的誘惑很大,但只對了一半。一名沒人監督、從零寫同樣App的資淺開發者,大概也會上線差不多的東西。真正的差別在於規模。vibe-coding工具把門檻壓得夠低,使得那些沒能力獨立思考身分驗證的人,在正式環境部署的App總量被推高了。工具技術上完全能提出身分驗證的腳手架,但預設流程不強制;而最受這些工具惠益的人,恰恰是最缺裝備去注意「少了什麼」的那群。Lovable表示正在著手把身分驗證腳手架做成預設開啟。Replit指向自家既有的安全預設,並承認使用者可以關掉它們。Base44沒有公開回應。平台都在反應——問題是這個反應能不能跑贏部署的速度。

往結構層去讀,就更難下嚥。過去兩年,整個產業把「把專業審查從部署管線裡抽掉」當作功能而非代價在賣。RedAccess的這組數字,就是這種「抽掉」被放大到產業規模時的樣子。App對親手做它的人能用,對任何隨手找到URL的人也一樣能用。接下來兩年,很可能就是這類事件慢慢累積的兩年——直到要嘛平台在框架層把身分驗證設為預設強制,要嘛由監管機構強制平台這麼做。兩件事可以同時發生。歐盟的產品責任制度已經被重新解讀,意圖把AI生成軟體納入射程;美國各州總檢察長也開始繞著這個議題打轉。

這些平台的使用者今天能做的,其實有限。RedAccess對被點名的四款工具發布了使用指南——確認App在存取資料前是否要求登入、稽核隨用戶端bundle一同送出的金鑰,以及把「任何一條被分享出去的URL都已經被人掃過」當作預設前提。平台承諾會改善。這次產生整個故事的掃描只花了幾天。下一輪已經在準備中。

討論

共有 0 則留言。