豆泥關心的難題.
← 回到豆泥部落格
← 《普通人》

普通人 · 第 05 篇

籌獲計劃

陳芷微 國家級資安機構 24 分鐘

一 飯

調查官按門鈴時,電鍋剛跳起來。

五點四十七分。冷氣排水滴在樓下鐵棚上,每隔六七秒一聲。第一聲門鈴過後,我沒有動。第二聲響起時,我從貓眼看見三個人。兩男一女,都穿著深色外套。

領頭的男人把證件和搜索票舉到門前。

「陳芷微?」

我把門打開。

女調查官先走向餐桌,拔掉筆記型電腦的電源。另一個人進入臥室,在枕頭旁找到手機。

「解鎖密碼。」

我告訴他六個數字。

他輸入密碼,確認手機已經解鎖,才把它放進透明袋。

「還有其他儲存裝置嗎?」

「書桌第二個抽屜。」

女調查官拉開抽屜。裡面有一顆外接硬碟、兩張繳費單、一把沒電的手電筒和半包口罩。她逐件拍照,再把硬碟放進另一個袋子。

電鍋仍在冒氣。我問能不能拔掉插頭。

「可以。我陪妳。」

她跟我走進廚房。領頭的男人站在門口翻閱手上的資料。

「XMAS是妳寫的?」

「一部分。」

「哪一部分?」

「索引、文件解析、權限標籤。」

「許願池呢?」

「暫存區。」

「有多少文件進過暫存區?」

「二十幾萬。」

「二十六萬四千七百一十三份。」

「那應該是最後一次統計。」

「裡面有密件?」

「有。」

「妳什麼時候知道?」

「第一次完整測試。」

「知道以後還讓程式繼續執行?」

「繼續到稽核把系統切斷。」

我拔掉電鍋插頭。紅燈熄滅,鍋蓋邊緣還留著一圈水氣。

男人翻到下一頁。

「妳有沒有用這套系統搜尋過跟工作無關的資料?」

「有。」

「搜尋什麼?」

「自己的名字。」

他抬頭。

「為什麼?」

「想知道會出現什麼。」

「出現什麼?」

「一份試用期考核。」

「還有呢?」

「一份員工申訴。」

「申訴也是妳主動搜尋的?」

「不是。那次是預覽窗自己開啟。」

他看著我。

「搜尋自己名字時,預覽窗也是自己開啟?」

「不是。」

他在筆記本上寫了一行。

「許願池為什麼叫許願池?」

「大家把想找的資料丟進去。」

「妳許過什麼願?」

「一開始是一家醫院。」

「後來呢?」

「後來是我的名字。」

女調查官替電鍋拍照。鏡頭對著鍋蓋、插頭和已經熄滅的紅燈。她問裡面有沒有東西。

「飯。」

「熟了嗎?」

「還沒有。」

她把電鍋留在原位。

他們離開時,天已經亮了一點。門口的鞋櫃被移開,地上留著幾道灰塵。搜索票副本放在餐桌上,壓著一只空的證物袋。

我打開電鍋。米粒吸了一半的水,表面乾白,底下仍然溫熱。

我把整鍋飯倒進垃圾袋。

二 訪客

一年後,我再次走進沙崙園區。

警衛把我的身分證放在讀卡機上,問我拜訪哪個單位。

「平台專案辦公室。」

「承辦人?」

我說出一個以前沒有聽過的名字。

他在系統裡搜尋。

「公司名稱?」

我告訴他。

列印機吐出一張白色貼紙。上面有訪客編號、拜訪單位和有效時間。姓名欄是空的。

警衛看了一下螢幕。

「系統沒有帶到名字。」

他拿起原子筆,在空格裡寫下陳芷微。筆尖太粗,微字的最後一筆擠到欄線外。

「貼在胸前。離場要回收。」

我把貼紙貼在外套左側。

原本的前瞻籌獲中心研發組已經改成資訊安全管理室。玻璃門上貼著四項原則:

最小權限。

持續驗證。

完整稽核。

資料分級。

我所屬的公司承包「全院資訊治理暨韌性決策平台」。平台連結公文、採購、專案、資產和弱點資料。每次查詢都會檢查角色,下載文件會自動加上浮水印,批次存取達到門檻後,系統會通知承辦人和資安人員。密件全文只在使用者權限通過後暫時解密,關閉視窗後,暫存檔會在三十秒內刪除。

專案經理姓許,比我小兩歲。他帶我看機房和開發環境,說明客戶最近對詞彙很敏感。

「文件裡不要出現crawler。」

「那要寫什麼?」

「connector。」

「功能相同。」

「審查的人看到crawler會想到爬取。connector聽起來像正式介接。」

他說完,打開資料模型。

表格裡有一個欄位叫wish_id。

規格書將它解釋為Workflow Integration Service Handle,工作流程整合識別碼。

我問這個名稱從哪裡來。

「客戶給的舊規格就是這樣。」

「舊規格有版本紀錄嗎?」

「沒有。他們說前一套系統已經停止使用,能留下來的資料不完整。」

他滑到下一頁,繼續說明權限矩陣。

我沒有告訴他,wish_id原本只是願望編號。

當年柏勳說,使用者在搜尋欄輸入關鍵字,就像把一枚硬幣丟進池子。系統若能找出資料,願望就算實現。那個命名沒有經過正式會議,也沒有寫進需求文件。柏勳在凌晨三點改完資料表,隔天所有人便跟著使用。

現在,它有了十二個英文字的全名。

三 沙崙

我二十八歲進資服院。

在此之前,我待過兩家公司。第一間替購物網站做推薦系統。主管要求我們降低高退貨率商品的曝光,免得影響轉換率。第二間替銀行整理客戶資料。那裡的工作比較穩定,每一項修改都要填表,表格再由另一個從未接觸資料的人核准。

資服院面試時,黎恆之問我為什麼離開銀行。

我說,銀行有很多資料,但同一個人在不同系統裡常有不同名字。

他摘下眼鏡,用襯衫下擺擦鏡片。

「這裡也一樣。」

他又擦了一次。

「名字更多。」

前瞻籌獲中心在沙崙。辦公室的玻璃映著高鐵軌道、稻田和仍在施工的道路。每隔十幾分鐘,列車從旁邊經過,桌上的紙杯會向右移一點。

柏勳曾經用膠帶在桌面貼一條線,想知道紙杯一天能移多遠。下班時,杯子離線大約半公分。

柏勳負責後端。他只喝鋁箔包紅茶,吸管固定折兩次,第一折靠近盒口,第二折在中央。他原本待在外商雲端服務公司,薪水接近資服院的兩倍。有人問他為什麼回來,他說外商系統壞掉,最多只是有人無法看影片;國家的系統壞掉,新聞會多播幾天。

莊思妤研究隱私工程。她所有會議紀錄都用鉛筆寫,寫錯時用一塊已經磨得很薄的橡皮擦掉。她曾在民間團體處理個資外洩事件,加入資服院後,最常說的一句話是資料能做什麼,應當在蒐集以前決定。

羅子嘉做惡意程式分析。桌上放著一台拆開的路由器,螺絲依大小排在白紙上。他說等有空就裝回去。那台路由器放了兩年,灰塵先蓋住電路板,再蓋住螺絲。

黎恆之是研發組組長,四十二歲。他說話很慢,遇到技術問題時會摘下眼鏡,擦到別人開始不耐煩。他很少提自己的過去,只說曾在某個部會資訊室待過,見過一套系統因為承辦人退休,半年沒有人知道管理者密碼。

中心裡大多是年輕人。有人從國外研究室回來,有人放棄博士班,有人維護開源工具維護到凌晨。大家很少在辦公室談愛國。真正出現的通常是欄位、附件、權限、核銷、預算科目和承辦人失聯。

我進院第二個月,一家醫院的掛號、檢驗和影像系統同時異常。

最先傳來的是一張照片。急診櫃檯前排著人,護理師用原子筆在紙上寫病歷號碼。後方螢幕停在登入畫面,右下角的時間是凌晨一點十四分。

應變中心要求過去三年的資安輔導紀錄、設備清冊、弱點報告和維護廠商資料。

資料散在四個系統裡。

公文系統裡有輔導紀錄,附件無法開啟。資產系統裡有設備,醫院使用改名前的名稱。採購系統找得到廠商,承辦人已經調職。弱點報告儲存在一個共用資料夾裡,資料夾以民國年命名,裡面還有三個叫作「最新版本」的檔案。

凌晨四點,子嘉打電話給一名離職同仁。

對方已經在睡覺。子嘉道歉三次,問他是否還留著兩年前的郵件。電話另一端沉默很久,接著傳來鍵盤聲。

二十分鐘後,一張網路拓樸圖寄到信箱。

圖上有一台停止維護的影像伺服器。設備名稱和現行資產清冊完全不同,只在備註欄留下原始IP位置。

現場回報,異常流量最早從那台設備出現。

天亮後,柏勳把四個空紅茶盒排在桌邊。思妤趴在會議桌上睡著,手裡還握著鉛筆。子嘉去便利商店買飯糰,回來後才發現忘了拿發票。

那一百八十七元由他自己付掉。

我們沒有直接參與醫院現場應變,也沒有出現在事後新聞裡。兩天後的成果簡報寫著「跨中心協作掌握受影響設備」。沒有人說資料是從一名離職同仁的私人信箱找回來的。

一週後,魏紹庭副院長在主管會議上問,下一次遇到電力或自來水系統,是否仍要靠離職同仁找附件。

沒有人回答。

他要求前瞻籌獲中心在三週內做出跨系統查詢畫面。

四 三週

正式介接需要用途說明、欄位清單、個資評估、測試環境和廠商修改。

公文系統管理單位要求我們列出需要的每一個欄位。人事單位要先確認是否涉及個人資料。採購系統的維護廠商表示,新增介接模組需要另案報價。資產管理單位問我們是否會修改原始資料,我們說只讀取,對方仍要求補一份資料不落地聲明。

期限剩十二天時,我們拿到一份四年前的資料字典。

九十七個欄位裡,有三十二個已經停用。另有十一個欄位在正式系統存在,資料字典完全沒有記載。

魏紹庭到沙崙看進度。

那場會議只有六個人。魏紹庭、黎恆之、柏勳、思妤、我,還有一名很少說話的院長室秘書。秘書中途接電話離開,之後沒有回來。

沒有人開正式會議紀錄。我把手機放在桌角,啟動語音轉文字,準備會後整理重點。

黎恆之說,依現有程序不可能在三週內完成。

魏紹庭問,公文系統搬遷時留下的服務帳號能不能使用。

柏勳說可以登入。

思妤問服務帳號能讀到什麼。

沒有人知道。

魏紹庭說,先做出可以展示的版本,介接程序由他協調。

黎恆之又問一次,若權責單位不同意,展示是否延後。

魏紹庭看著牆上的進度表。

「部裡的會議不會延後。」

手機把「先把資料打通」辨識成「先把資料大同」。

柏勳笑了一聲。

魏紹庭看了他一眼,沒有問原因。

會後,我把錯字改掉。

服務帳號原本用於資料搬遷。一般使用者開啟公文時,前端會依單位、職務和密等判斷權限。服務帳號直接連到後端。後端只確認帳號仍然有效。

第一次測試時,一份限閱文件出現在螢幕上。

檔名是一串數字。首頁右上角有紅色方框,受文者欄位是院長室。

思妤把椅子拉到我旁邊。

「關掉。」

我關閉預覽。

柏勳說,只測一份無法知道影響範圍。

思妤說,至少已經知道權限有問題。

黎恆之站在我們後面,沒有坐下。他問我能不能在文件下載後立即辨識密等,將全文加密,只留下雜湊值、標題、日期和承辦單位。

我說舊文件的標示不一致。資料庫的密等欄位可能是空的,掃描首頁卻蓋著紅章。有些一般件的附件也可能含個資。

他問能不能先做。

我說可以。

思妤在問題追蹤系統開了一張工單。

「服務帳號可繞過前端存取控制,正式環境使用前必須完成權責確認。」

她將嚴重度標為最高,指定給黎恆之。

程式原本遇到權限錯誤就會略過。我在凌晨一點十七分加了一個備援流程。一般帳號回傳失敗後,系統會改用服務帳號重試。

參數名稱是legacy。

我測了三次。

第一次,服務帳號無法取得附件路徑。第二次,索引器把掃描檔當成空白文件。第三次,一批檔名開始從螢幕下方向上捲動。

速度很快。

思妤已經回家。柏勳到樓下買紅茶。黎恆之坐在會議室裡,門沒有關。他正在修改部裡簡報,投影幕上寫著「提升國家級資安治理之即時可視性」。

我沒有叫他過來看。

第一次完整索引取得七萬三千多份文件。

其中六百多份標為限閱。另有十幾份在資料庫中沒有密等,掃描首頁卻有紅色標記。兩千多份文件包含身分證字號、薪資資料、就醫證明、員工申訴和採購檢舉。

我們建立隔離區。解密金鑰由我和黎恆之保管。

早上八點半,魏紹庭看展示。

他輸入醫院名稱。畫面列出資產、維護廠商、弱點紀錄和改善追蹤。從首頁到完整關聯圖,用了三秒。

他又輸入一家電力公司的名稱。系統找出三個專案、兩份稽核紀錄和一張過期的資產清冊。

「這個版本可以拿去部裡。」

黎恆之問,正式介接是否繼續走原本流程。

魏紹庭說會處理。

他離開後,柏勳在登入頁加上一句話:

請謹慎許願,系統可能真的會回答。

暫存區從此被叫作許願池。

兩週後,思妤開的工單被關閉。

狀態是「風險已接受」。

處理人是黎恆之。

五 許願池

XMAS原本只打算執行一次。

部裡簡報結束後,魏紹庭要求增加人力、經費和採購進度。其他中心也開始提出需求。有人要找使用特定開源套件的專案,有人想查沒有管理者的設備,有人只記得公文裡的一句話。

程式改成每晚兩點執行。

柏勳替查詢頁增加收藏功能。子嘉把惡意程式家族名稱和弱點編號放進同一套索引。思妤建立個資遮罩規則,身分證字號只顯示前三碼和後兩碼,病歷資料預設不提供預覽。

XMAS確實有用。

它找到一百多台沒有明確管理者的主機,其中十七台仍在對外提供服務。它找出三個單位分別採購功能相近的威脅情資平台,也發現一批驗證憑證會在演練前一晚失效。

承辦單位連夜更換憑證。演練照常舉行。

成果簡報裡沒有提到XMAS。

柏勳並不在意。他說系統有沒有名字不重要,重要的是有人終於用了。

思妤不同意。

「沒有名字,就不會有責任。」

柏勳把吸管折了第二次。

「有名字只會比較容易被關掉。」

子嘉坐在旁邊拆一顆新的路由器。他沒有加入爭論,只問我們要不要吃晚餐。

那段時間,我們常在晚上九點以後叫便當。送餐員找不到大樓入口,總要打電話。柏勳每次都說,看到一棟還亮著燈、外面什麼人都沒有的大樓就是了。

有一天晚上,其他人先走了。

我在許願池的搜尋欄輸入自己的名字。

陳芷微。

系統回傳三十二筆結果。大多是會議簽到、教育訓練和專案分工。第十九筆是一份試用期考核草稿。

我點開預覽。

「技術能力佳,可獨立處理複雜問題。工作投入度高。跨單位溝通與行政層級理解仍待加強。」

最後一句曾經被刪除,後來又在修訂紀錄裡重新出現。

考核表下方還有一段沒有送出的主管意見。

「對問題本質掌握快速,對組織邊界敏感度不足。宜由資深人員陪同處理跨單位工作。」

送出版本沒有這段話。

我看了兩遍,關閉視窗。

查詢紀錄保留了關鍵字、帳號、時間和點選文件。它沒有記下我在最後一段停留多久。

我沒有刪除紀錄。

隔天下午,我測試個資遮罩。搜尋結果出現一份員工申訴。預覽窗載入後,我看見主管姓名、精神科診斷和一段家庭狀況。申訴人寫,她父親剛做完手術,她因照顧家人遲到,主管在全組面前說她把私人問題帶進工作。

我立即關閉,新增遮罩條件。

操作紀錄顯示,那份文件在螢幕上停留四十一秒。

思妤看完紀錄後,問我看見多少。

「三行。」

「哪三行?」

我沒有回答。

她把預覽功能關閉,要求所有涉及申訴、考核和就醫紀錄的文件只保留中繼資料。

柏勳說,這樣會讓關聯圖缺一塊。

思妤說,那一塊本來就不該存在。

黎恆之最後同意關閉預覽,全文仍留在隔離區,以便日後重新分類。

我沒有告訴思妤,前一晚我搜尋過自己的名字。

六 採購案

真正引起爭議的是一張採購關聯圖。

三個名稱不同的計畫,在兩年內向同一家廠商購買相近模組。每一案都有需求書、驗收紀錄和付款文件。分開查看時沒有明顯問題,放在同一張圖上後,金額、功能和人員重疊得很整齊。

其中一名專案顧問曾是廠商員工,離職後進入資服院,隔年又以外部顧問身分回到原本的計畫。這些經歷都依法揭露,單獨看來也有合理說明。

XMAS只把它們排在一起。

黎恆之將關聯圖送進院長室,建議停止重複投資,重新檢查三案的技術邊界。

兩天後,某中心主任在主管會議上要求停止系統。他說前瞻籌獲中心使用未經核定的資料,對其他單位進行實質稽核。

魏紹庭沒有同意停止。

他要求暫時移除採購關聯。

同一週,我們發現對外簡報裡的事件處理件數有重複。同一場攻擊被威脅分析、通報應變和技術支援分別列為成果。每個單位都做了工作。加總後,三項工作成為三起事件。

柏勳把兩年的數字重新計算,總數少了接近三成。

黎恆之把結果放進簡報。

魏紹庭將他叫到台北。

我帶著電腦陪他去。

會議室裡只有我們三人。魏紹庭把簡報翻到採購圖,再翻到事件統計。

「這兩頁先拿掉。」

黎恆之問資料有沒有錯。

「目前沒有人在談資料正確性。」

「那他們在談什麼?」

「你們用什麼權限看到這些資料。」

黎恆之摘下眼鏡。

「這些都是院內資料。」

「院內不代表所有人都能看。」

「平台的目的就是找出跨單位問題。」

「平台的目的原本是找技術資產。」

魏紹庭把簡報闔上。

「預算下個月進委員會。三個中心已經向院長反映,前瞻中心正在查他們。董事會也在問,為什麼一個研究組能讀到採購和人事資料。」

「你要求增加經費和人力。」

「我要求的是治理視圖。」

「完整治理不可能只看沒有爭議的資料。」

魏紹庭沒有立刻回答。

窗外是台北的雨。水沿著玻璃向下流,遠處的建築變成灰色方塊。

「平台要先留下來。」

黎恆之把眼鏡戴回去。

「留下來之後呢?」

「之後再談邊界。」

回到沙崙後,黎恆之把採購和績效頁面從選單移除。功能仍然存在,輸入網址便能開啟。

我負責更新前端。

刪除選單時,系統跳出確認視窗。

「是否確定隱藏。」

我按了確定。

思妤知道後,把自己的風險工單重新開啟。

她增加一段說明:

「現行系統已具備跨越原始業務目的之能力,且使用範圍持續擴張。建議在正式權責核定前暫停全文索引。」

黎恆之沒有關閉這張工單,也沒有暫停系統。

狀態一直停在「處理中」。

柏勳說,組織只在系統找到不好看的資料時才開始談權限。

思妤問他,員工申訴算不好看的資料,還是本來就不該看的資料。

柏勳沒有回答。

子嘉把路由器上的最後一顆螺絲拆下來,放在白紙右下角。

「如果現在停,前面那些漏洞會有人修嗎?」

思妤說不知道。

「如果不停,這套東西最後會變成什麼?」

也沒有人知道。

那天晚上,黎恆之留到很晚。

我離開前經過會議室,看見他一個人坐在裡面。投影幕上開著思妤的工單,游標停在「風險接受理由」的欄位。

隔天早上,欄位裡多了一句話。

「基於重大公共利益及專案時效,於隔離環境持續驗證,後續補正程序。」

填寫人是黎恆之。

七 事件

隔年一月,內部稽核發現凌晨兩點有固定流量進入公文系統。

流量來自沙崙的測試工作站。登入帳號屬於柏勳,排程服務由我維護,資料最後進入院內私有雲。

楊主任帶著兩名資訊人員到沙崙。

他先要求停止排程,再檢查網路路由和存取紀錄。

「資料有沒有出去?」

「沒有。」

「誰可以解密?」

「我和組長。」

「服務帳號是誰提供的?」

「原本就在系統裡。」

「誰核准使用?」

黎恆之說,副院長同意先做概念驗證。

楊主任看著他。

「有書面紀錄嗎?」

「有會議錄音。」

「正式簽核呢?」

黎恆之沒有回答。

楊主任又問,為什麼服務帳號持續使用超過三個月。

柏勳說,因為正式介接一直沒有完成。

「所以你們自己決定繼續?」

「每次展示都有人要求增加功能。」

「誰?」

柏勳說了幾個主管的名字。

楊主任沒有記錄。他請柏勳把所有需求郵件匯出,交給稽核保全。

下午,全組被要求到台北。

會議通知上的名稱是「異常資訊行為說明會」。

法務主管在會議中稱它為「未授權存取事件」。

魏紹庭最後進場。他沒有帶上次來沙崙時使用的紙本資料夾。

楊主任說明流量、文件數量和服務帳號權限。法務主管問,有沒有人收到明確指示,要求繞過公文系統的存取控制。

黎恆之說,魏紹庭曾提出服務帳號。

魏紹庭說,他要求的是資料整合。

「服務帳號由你先提出。」黎恆之說。

「我提到院內有可供測試的帳號。」

「你要求三週內完成。」

「期限不代表可以規避權限。」

「你看過展示,也要求增加採購、人力和經費。」

魏紹庭翻開面前的文件。

「我一直以為技術團隊會用合法方法完成。」

柏勳笑了一聲。

人事主管請他不要插話。

會議紀錄人員問,剛才那一段是否需要完整記錄。法務主管說,只記載雙方對授權範圍認知不同。

會議紀錄最後寫成:

「副院長曾指示加速推動跨系統資料介接。經查,尚無具體事證顯示其授權相關人員規避既有權限機制。」

下一段寫道:

「研究人員基於專業判斷,自行採取技術措施,取得大量非屬業務必要之文件。」

法務主管處理是否通報。

人事主管處理是否停職。

稽核單位處理證據保存。

預算室要求當天提出一頁說明,以供部裡回應立法院詢問。

院長室要求新聞回應不得提到文件內容,只能說明院方主動發現、主動調查、依法處理。

沒有人討論XMAS是否還要繼續存在。

散會前,院方決定通報檢調。

我們的門禁在會議結束前停用。

警衛陪我們回沙崙拿私人物品。柏勳的紅茶還放在桌上,吸管沒有拆。思妤收走鉛筆盒和那塊磨得很薄的橡皮擦。子嘉站在自己的桌前,看著那台拆開的路由器。

「你不帶走嗎?」我問。

「少一顆螺絲。」

「哪一顆?」

「不知道。」

他最後只拿走白紙上的螺絲,路由器留在原位。

我拿了馬克杯、外套和一盆薄荷。

走到門口時,門禁燈亮紅色。

警衛替我開門。

柏勳在群組裡把名稱從「XMAS開發」改成「離線」。

八 錄音

新聞在兩天後出現。

第一篇報導寫,資服院研究人員以技術手段取得內部密件,資料是否流向境外仍待調查。第二篇報導把事件稱為「資服院間諜門」。晚間政論節目在畫面上放了一張資料庫示意圖,背景是一串綠色英文字。

來賓問,最懂資安的人若成為內鬼,國家還能相信誰。

另一名來賓說,這可能是院內派系鬥爭。

沒有人知道許願池是什麼,也沒有人知道服務帳號原本由誰保留。

資服院聲明表示,內部稽核主動發現異常,院方依法通報,全力配合偵辦。

母親從彰化打電話來。

「新聞裡有妳嗎?」

「還沒有。」

「妳有沒有把資料給別人?」

「沒有。」

「有沒有看?」

我把手機換到另一隻手。

「有。」

她沉默一會兒。

「看了什麼?」

「考核、申訴,還有一些不該從我們那裡開啟的公文。」

「妳為什麼要看考核?」

「我搜尋自己的名字。」

電話另一端傳來膠帶被拉開的聲音。母親的店早上七點營業,她正在替貨架補標價。

「看完有比較好嗎?」

「沒有。」

她又問搜索那天電鍋裡的飯。

「後來有沒有吃?」

「沒有熟。」

「倒掉了嗎?」

「倒掉了。」

她說沒有熟就不能吃,接著問我要不要回彰化。

我說案件還沒結束。

第一次偵訊時,調查官把四十一秒的紀錄放在桌上。

第二次,他拿出legacy參數的版本紀錄。

第三次,他問我為什麼搜尋自己的名字。

「功能測試?」

「不是。」

「工作需要?」

「不是。」

「那為什麼?」

「想知道他們怎麼寫我。」

「看完以後做了什麼?」

「沒有做什麼。」

「有沒有把紀錄刪除?」

「沒有。」

他把筆放下。

「妳知道自己沒有權限嗎?」

「知道。」

「知道還點開?」

「是。」

「後來妳又看見員工申訴。」

「那次不是主動搜尋。」

「但妳知道這套系統可以看見什麼。」

「知道。」

筆錄寫成,我明知系統存取範圍逾越業務需要,仍曾基於私人目的進行查詢。

交保後,柏勳約我們在高鐵站吃飯。

思妤沒有來。子嘉戴著口罩,幾乎沒有說話。黎恆之面前放著一碗湯,直到冷掉都沒有喝。

柏勳問我,沙崙會議的錄音還在不在。

我說在。

「交給記者。」

黎恆之說,完整錄音涉及系統帳號和弱點,不能公開。

「剪掉技術細節。」

「剪過的錄音會被質疑。」

「那就把原檔交給律師,再由律師證明。」

黎恆之看著桌面。

「事件還在偵查。」

柏勳把筷子放下。

「我們已經被寫成間諜了。」

沒有人回答。

回家後,我把錄音附在電子郵件裡。主旨寫著「資服院事件授權經過」。

我刪除帳號名稱、機關名稱和系統入口。刪到最後,只剩兩段聲音。

「先做可以展示的版本。」

「程序由我協調。」

游標停在寄出鍵上。

我想到服務帳號,也想到那次搜尋。若完整紀錄被調出,考核草稿的查詢會跟著出現。記者可能會問,我究竟是在保護系統,還是在保護自己。

我把郵件存成草稿。

柏勳在凌晨把我移出群組。

我隔天早上才發現。

思妤傳了一封私人郵件給我。內容只有一句:

「我應該在第一張工單被關閉時,直接通報權責單位。」

我回覆她:

「我應該沒有寫legacy。」

寄出後,我又讀了一次。

我們都沒有寫,事情便不會發生。醫院的資料仍然分散,那些無人管理的主機也仍然存在。

我沒有再寄第二封信。

九 責任

行政調查會議在台北舉行。

桌上有姓名牌、水瓶和一台錄音設備。窗簾全拉上。主席說明程序時,所有人的手機都被要求放在門外。

我的律師要求播放沙崙會議錄音。

聲音很清楚。

「先做可以展示的版本。」

「程序由我協調。」

主席問魏紹庭是否說過。

他說有。

「是否授權使用搬遷服務帳號?」

「我授權推動資料整合。技術方法由專業主管評估。」

黎恆之說,正式介接不可能在三週內完成。

主席提醒他只回答問題。

魏紹庭看著黎恆之。

「我知道期限很緊,但我沒有要求任何人取得無權閱覽的文件。」

「你看過系統展示。」黎恆之說。

「我看到的是關聯結果,沒有看到權限繞行方式。」

「你從來沒有問。」

「技術細節由你負責。」

主席再次提醒雙方只回答問題。

接著輪到思妤。

委員把她的風險工單投在螢幕上,問她是否認為系統存在重大風險。

「是。」

「為什麼沒有向資訊單位或稽核單位通報?」

「我依內部流程交由組長處理。」

「工單被標示為風險已接受後,妳是否繼續參與開發?」

「是。」

「理由?」

思妤握著一枝鉛筆。會議規定不能攜帶手機,沒有規定不能帶文具。

「我以為至少可以把遮罩和隔離做好。」

委員問,這是否代表她接受系統繼續運作。

她沒有回答。

輪到柏勳時,委員問他是否將服務帳號交給我使用。

「帳號原本就在共用密碼庫。」

「誰告訴你可以用?」

「副院長在會議裡提出。」

「他是否明確說可以繞過權限?」

「沒有人用『繞過』這兩個字。」

「所以這是你們的技術判斷?」

柏勳靠在椅背上。

「如果所有命令都會寫得那麼清楚,就不需要開這場會。」

主席請他注意態度。

最後輪到我。

委員把legacy參數投在螢幕上。

「這段程式碼由妳新增?」

「是。」

「有沒有人命令妳使用服務帳號重試?」

「沒有。」

「妳是否知道這會擴大存取範圍?」

「第一次測試後知道。」

「發現限閱文件後,為什麼沒有停止?」

我想起那份試用考核,也想起申訴人的診斷。

「我們在做展示。」

「展示需要取得七萬多份文件?」

「為了確認關聯範圍。」

「搜尋自己的名字也屬於確認關聯範圍?」

「不是。」

會議室裡很安靜。

委員翻到下一頁。

「妳是否認為自己違反規範?」

律師在桌下碰了我一下。

我看著投影幕上的程式碼。legacy後面有一行我早已忘記的註解:

「temporary fallback until official integration」

在正式介接完成前使用的暫時備援。

正式介接從來沒有完成。

「有。」

「妳是否認為主管應共同負責?」

「有。」

主席請紀錄人員將兩個回答都記下。

人事單位提出處分建議。三名直接參與系統開發和資料管理的人解聘。相關主管停職調查。前瞻籌獲中心研發組停止運作,職掌拆分到其他單位。

黎恆之當場提出辭呈。

他從公事包裡拿出員工證,放在桌上。

魏紹庭說,事情發展至此令人遺憾。

黎恆之沒有看他。

行政調查報告後來寫道:

「管理階層在專案督導及權限確認方面有疏失,尚難認定曾明確指示違規存取。」

關於我們的段落寫道:

「相關人員明知權限可能逾越業務需要,仍持續執行資料取得與索引作業。」

兩段在同一頁。

幾個月後,立法院審查資服院預算。

委員拿著新聞影本,詢問國家級資安機構為何由內部人員取得密件。有人提案刪減一千萬元,也有人要求凍結部分預算,等改善報告提出後再解凍。

部裡承認管理疏失。

資服院表示,將建立專責資訊管理單位、重新盤點權限、強化存取紀錄和資料分級。

那些項目曾經出現在XMAS下一年度的計畫書裡。

院長在預算審查後提出辭呈。他表示願意承擔行政責任,以維持組織正常運作。

網站上的組織圖很快更新。

前瞻籌獲中心仍然存在。

研發組不見了。

十 保護貼

我投了二十七份履歷。

兩家公司在第二次面試前取消。一家公司問我是不是新聞裡的陳姓研究員。

我說是。

面試官把原本放在桌上的技術測驗收回資料夾。

「案件有結果了嗎?」

「還沒有。」

「資料有外流嗎?」

「目前沒有證據。」

「所以還不能確定?」

我沒有回答。

他說公司會再聯絡。

之後沒有聯絡。

我回彰化幫母親顧店。店裡賣手機殼、充電線、行動電源和保護貼。母親把新聞剪報收在櫃檯下面,與進貨單放在一起。她沒有告訴我為什麼留著。

第一週,我貼壞九張保護貼。氣泡總留在靠近聽筒的位置。母親說,刮板要慢慢推,看到灰塵就整張掀起來,不要假裝氣泡之後會自己消失。

有客人問我以前做什麼。

「寫程式。」

「什麼程式?」

「搜尋。」

「搜尋引擎?」

「差不多。」

他點點頭,把手機交給我。

那是一支舊型號。螢幕右上角有一道裂痕。保護貼貼上後,裂痕仍然看得見,只是手指摸不到。

晚上關店後,我會坐在櫃檯後面看案件文件。搜索扣押清單、偵訊筆錄、行政調查報告、解聘通知,每份文件對同一件事使用不同名稱。

異常資訊行為。

未授權存取事件。

違反工作規則。

涉嫌妨害電腦使用。

內部資安事件。

新聞使用的名稱最短:間諜門。

半年後,一家承包政府系統的公司找我做約聘工程師。

合約六個月,工作內容是文件索引、資料分類和權限治理。面試官只問我熟不熟悉Elasticsearch、文件雜湊和角色權限模型。

他沒有問新聞。

「專案很趕,客戶希望三個月內上線。」

「客戶是誰?」

「資服院。」

我看著他。

「有問題嗎?」

「沒有。」

我在合約上簽名。

母親知道後,只問薪水有沒有比店裡高。

我說有。

「那就去。」

「妳不問我為什麼要回去?」

她用刮板把保護貼下方最後一顆氣泡推出去。

「工作就是有人付錢叫妳做事。」

她把手機遞給客人,請對方檢查。

客人看了一遍,說可以。

十一 展示環境

我以廠商人員身分回到資服院。

新平台比XMAS更完整。

查詢前會檢查使用者的角色、案件編號和業務目的。高敏感資料需要第二人核准。每次預覽都有浮水印,內容包含使用者姓名、時間和來源IP。系統定期產生權限衝突清單,交由各單位主管確認。

它也更慢。

第一次查詢醫院名稱時,系統花了十一秒。XMAS當年只用三秒。

專案經理說,十一秒是可接受的安全成本。

我同意。

上線前,我在程式庫裡找到一段註解。

「先讓資料彼此看見,人才能決定該看什麼。」

那是我寫的。

版本紀錄顯示,作者是一名外包工程師,日期是新標案簽約後第三天。原始碼曾經經過兩次轉移,XMAS的提交紀錄已經消失。

我修正下一行的縮排,沒有刪除註解。

新平台上線當天,新任院長、部裡長官和幾名立委坐在前排。魏紹庭仍是副院長,頭髮比以前白了一些。

他在台上說,資服院已將過去的教訓轉化為治理韌性。新平台落實最小權限、持續驗證和完整稽核,確保每一次資料近用都有依據。

正式資料在此時跳出紅色告警。

一千八百多筆資產沒有管理者。

六十三組角色權限互相衝突。

三個單位仍使用已離職人員的帳號名稱。

其中一個帳號屬於黎恆之。

專案經理走到我旁邊。

「切展示環境。」

我看著他。

「活動先用展示資料。結束後再切回正式環境。」

我按下切換。

紅色方塊消失。資產完整率從百分之七十二變成百分之九十九點八。權限衝突從六十三組變成零。黎恆之的名字也從畫面上消失。

攝影師蹲在第一排前面。台上的人一起看向螢幕。

他們開始鼓掌。

我的手機在口袋裡震動。

律師寄來不起訴處分書。檢方認定沒有證據顯示資料流向院外,也無法證明我以取得特定機密為目的。服務帳號、全文索引和私人查詢涉及的行政及勞動責任,不影響刑事判斷。

柏勳的案件仍在偵查。

我把手機放回口袋。

專案經理問,展示畫面能不能維持到合照結束。

我說可以。

發表會結束後,魏紹庭到後台向專案團隊致意。

他依序和每個人握手。輪到我時,他看了一眼訪客證上的名字。

「妳現在在廠商這邊?」

「對。」

他停了一下。

「平台做得很好。」

「謝謝。」

「以前的事情,大家都付了代價。」

我沒有回答。

後面還有人等著握手。他很快走向下一位工程師。

晚上七點三分,我離開大樓。警衛撕下臨時證,貼在登記簿旁邊。

「明天還會來嗎?」

「會。」

「明天再申請。」

隔天早上,我再次報到。

警衛印出新的訪客證。姓名欄這次有字。

我進入辦公室,打開工作站。

九點十二分,承辦人寄來一張工單。

標題是「儀表板用語調整」。

內容只有一行:

「將『異常』統一改為『待確認』,避免未經人工判讀即產生負面意涵。」

我在程式庫裡搜尋「異常」。

共找到六十三處。

第一處出現在權限衝突頁面。

原始文字是:

「偵測到異常角色配置。」

我改成:

「偵測到待確認角色配置。」

第二處出現在離職帳號清單。

第三處出現在未指定管理者的資產。

修改到第十七處時,專案經理從後面經過。

「下午以前能完成嗎?」

「可以。」

他點頭,走向會議室。

螢幕右下角顯示,目前登入者為VISITOR-007。工作階段將在十七分鐘後失效。

我按下儲存。

接著打開第十八處。

框架:豆泥。文字:AI。