跳轉到

六、證據檔存在哪裡

這章在講什麼:檢測產生的報告與上傳的證據檔,實際放在哪一個「倉庫」,以及怎麼換倉庫。

換儲存位置就像公司換倉庫:換了之後,新貨會進新倉庫,舊貨還留在舊倉庫——不自己搬,它不會過去。這件事看起來理所當然,但實務上最常出事的就是這一點,所以 6.3 那三條請務必先讀。

什麼時候看:裝機當下決定要用哪一種儲存時;或日後貴單位要求「所有資料集中存到公司統一的儲存」時。

出廠預設就能用,多數貴單位不需要改——要改的常見理由是「公司已有統一的物件儲存,要求所有資料存進去」。

物件儲存 是專門用來放檔案的服務,類似公司內部的雲端硬碟。檔案丟進去、需要時再取出來,不必自己管目錄結構。


6.1 出廠預設是什麼

安裝完成後,證據檔存在隨出貨包一起裝上的內建物件儲存(服務名 guidant-agent-seaweedfs),資料落在 Docker 的 seaweed-data 資料區。

存取用的帳號密碼是安裝時亂數產生的,寫在權限 600 的設定檔內。

為什麼不讓您自己取密碼:現場想出來的密碼實務上多半是 Passw0rd! 這種等級,而它守的是全部證據檔,所以刻意由程式亂數產生。

這個內建儲存只綁定在本機127.0.0.1),外部網路連不到。


6.2 三種可選的儲存方式

方式 檔案實際存在哪 什麼時候選這個
系統內建(預設) 隨出貨包裝上的物件儲存 預設;沒有特殊需求就用這個
自有 SeaweedFS/MinIO 貴單位自己架設的物件儲存 公司已有統一儲存、要求資料集中管理
本機磁碟 Agent 主機的一個目錄 極簡場景;不需要額外服務

6.3 🔴 換儲存位置之前,先讀這三條

① 換位置不會搬移既有檔案

Agent 讀檔一律走目前設定的儲存位置。切換之後,原本存在舊位置的證據檔會變成「找不到」——平台端的症狀是下載或預覽失敗

這不只是「沒搬過去」,是取不回來

② 要保留舊檔,必須自己搬且檔名不能變

平台記的是檔案名稱。要保留舊檔,請在切換前後把舊位置的物件複製到新位置,檔名逐字保持不變

或者換個順序:趁還沒有任何證據檔的時候就切換——這是最省事的做法。剛裝完就決定好用哪一種,之後不再動。

③ 搬移完成前,切勿刪除舊位置的資料

確認新位置的檔案都能正常下載之後,再考慮清理舊位置。


6.4 怎麼切換

這步在做什麼:一條指令換掉儲存位置,不需要編輯任何設定檔

sudo guidant-agent-compose configure-storage

成功長什麼樣:進入互動問答,畫面如下。

設定證據檔的儲存位置

  目前設定:seaweedfs

    1) 系統內建 SeaweedFS(恢復預設)——出貨內建的物件儲存,連線資訊自動代入
    2) 自有 SeaweedFS   存到貴公司自有的 SeaweedFS 物件儲存
    3) 自有 MinIO       存到 MinIO 或其他相容 S3 的物件儲存
    4) 本機磁碟         存在這台機器的磁碟上(不需要額外服務)

  請選擇(輸入 1~4,或直接打型別名稱)
      >

選 2 或 3(自有物件儲存)要填什麼

它問您什麼 該填什麼
服務位址 主機:埠,例如 192.168.1.50:8333不需要 http:// 前綴(誤貼了它會自動去掉並告知)
存取金鑰(access key) 貴單位儲存服務的帳號
祕密金鑰(secret key) 對應的密碼。輸入時不會顯示
儲存空間名稱(bucket) 這個儲存服務裡的一個獨立空間,像雲端硬碟裡的一個資料夾。不存在的話 Agent 首次上傳時會自動建立
是否使用加密連線 truefalse

⚠️ SeaweedFS 的埠要填 S3 介面(預設 8333),不是管理介面的 9333。 填錯的症狀是簽章錯誤而不是「連不上」,很難聯想到是埠填錯——問答畫面上會再提醒一次。

選 4(本機磁碟)

只問一個目錄路徑。指令會實際寫一個檔進去測試,不只檢查權限位元。

填錯了會怎樣(它會怎麼保護您)

這個指令一次做完三件事:驗連通 → 改設定(先備份)→ 重建服務套用

情況 它會怎麼處理
位址或埠不通 當場報錯,什麼都不寫、服務不重啟
帳號或密碼錯 明確指出是憑證被拒(不是「連不上」)
憑證對但沒有該儲存空間的權限 明確指出是權限問題,不是名稱打錯
設定寫進去了但服務起不來 自動還原成原本的設定

驗證未過時,既有設定原封不動——不會出現「改到一半」的狀態。


6.5 改回系統內建儲存

這步在做什麼:從自有儲存換回出貨內建的那一套,一條指令、全程不需要輸入任何帳號密碼

sudo guidant-agent-compose configure-storage --type factory

成功長什麼樣:直接完成切換,不會問您任何連線資訊。

連線資訊取自安裝時留下的出廠快照(/srv/guidant-ai-agent/factory/factory-defaults.env,權限 600)。互動問答的選項 1 做的是同一件事。

🔴 請勿編輯或刪除 factory/ 目錄下的檔案——刪掉之後就沒辦法一鍵恢復了。

恢復同樣不會搬移既有檔案,6.3 的三條警語一樣適用。

較舊版本安裝的站點沒有這份快照:升級時若儲存設定仍是內建值會自動補建;已經改用自有儲存的舊站點補不回來(出廠帳密已被覆蓋),要恢復請聯繫原廠。


6.6 自動化:不進入問答直接設定

這步在做什麼:把答案直接寫在指令裡,跳過互動問答(適合寫進自動化腳本)。

sudo guidant-agent-compose configure-storage --type minio \
  --endpoint 10.0.0.5:9000 --access-key <帳號> --bucket <儲存空間名稱>

祕密金鑰會以不回顯的方式另外詢問。

🔴 不要把祕密金鑰寫在指令列上——同一台機器的其他使用者用 ps 就看得到整條指令。

MinIO 走加密連線時再加 --secure


6.7 資料保護是誰的責任

這一節請務必讀完,並讓貴單位負責備份的同仁也知道。

事實:證據檔存在貴單位自己的磁碟上

檢測 Agent 的設計原則就是「機敏證據不落雲端」——證據檔全部留在貴單位自己的機器上,這是這個架構的主要價值。

代價是:這些檔案的可靠性,由貴單位承擔。

雜湊 SHA-256 可以理解成「檔案指紋」:把檔案內容算成一串固定長度的字,檔案只要改動一個位元組,這串字就會完全不同。用它就能確認檔案有沒有被改過。

這件事 誰負責
Agent 程式本身的正確運作 原廠
證據檔的完整性偵測(任何改動都查得出來) 原廠——平台端保有每個檔案的雜湊錨點
儲存磁碟的可靠性(RAID、硬體壽命、機房環境) 貴單位
備份與異地保存 貴單位
磁碟空間監控 貴單位
磁碟故障後的資料還原 貴單位(原廠無法提供,我們手上沒有這些檔案的副本)

磁碟壞了,證據檔就沒了。 原廠這邊只有雜湊值(用來驗證檔案有沒有被改過),沒有檔案本身。

因此請務必:

  1. 5.6 建立定期備份,且備份存在另一台機器上。
  2. 把 Agent 主機的磁碟用量納入監控。
  3. 若證據檔對貴單位屬於長期保存義務(例如法規要求保存數年),請把 Agent 主機納入貴單位既有的高可用與備援機制(RAID、快照、異地備份)。

關於「防篡改」的說明邊界

證據檔存進儲存之後,Agent 對每個檔案獨立記錄 SHA-256 雜湊值,任何內容改動都偵測得到(信任根在平台端,不在這台機器上)。稽核時可以用平台的「對帳」功能逐檔比對。

但儲存服務跑在貴單位自己的機器上,機器的擁有者始終有辦法動到底層資料。因此本產品:

  • 宣稱:改動必被偵測到。
  • 不宣稱:「不可刪除」「WORM」或任何法規級的不可竄改保證。

WORM(Write Once Read Many)指「一寫入就再也不能改」的儲存形態,常見於法規要求的長期封存設備。

這條邊界是誠實的技術事實,不是產品缺陷——任何跑在客戶自有硬體上的軟體都受同樣的限制。真正的防線是平台端的雜湊錨點與偵測,而那一層我們有做。