依據美國國防部 DOD 5220.22-M 標準 銷毀儲存媒體資料

Table of Contents

[TOC]

利用 SystemRescue 製作 USB 開機碟進行抹除
Official Doucument:
https://www.system-rescue.org/
image

1. 製作 wipe 開機碟

  • 查看需要製作的 USB 硬碟編號:
diskutil list
  • 卸載 USB
diskutil unmountDisk /dev/<disk name>
  • 格式化 USB
diskutil eraseDisk FAT32 MYDISK MBRFormat /dev/<disk name>

2. 將 image 燒錄至 USB

將 SystemRescue Image 寫入 USB

各系統燒錄 image 工具:

2.1 Linux

linux 可透過 dd 寫入

sudo dd if="<systemrescue.iso PATH>" of=/dev/<disk name> bs=4m conv=sync,noerror status=progress

status=progress 顯示寫入進度

sync
diskutil eject /dev/<disk name>

確保資料完全寫入後,再拔除 USB

2.2 MacOS

MacOS 可透過 balenaEtcher 燒錄

image

2.3 Windows

Windows 可利用 Rufus 燒錄

image

  • Partition scheme 選擇 MBR 同時相容 BIOS 和 UEFI
  • Target: BIOS or UEFI
  • Filesystem 選擇 FAT32 (UEFI 啟動過程僅適用於 FAT 檔案系統)

3. 啟用 SystemRescue

開機進入 BIOS 選擇使用 HardDisk (USB) 開機,進入 SystemRescue 開機選單

3.1 選擇 Boot SystemRescue using default options

選擇 Boot SystemRescue using default options 進入預設開機模式: image

  1. Boot SystemRescue using default options
    正常開機進 SystemRescue(預設參數)
  2. Boot SystemRescue and copy system to RAM (copytoram)
    整個 live 系統載入到記憶體再啟動 (開機後可以拔掉 USB)
  3. Boot SystemRescue and verify integrity of the medium (checksum)
    開機前/開機時做 media 驗證(校驗 ISO/檔案)
  4. Boot SystemRescue using basic display drivers (nomodeset)
    用基本顯示模式(禁用顯示卡 modesetting)
  5. Boot a Linux operating system installed on the disk (findroot)
    不進 SystemRescue,而是找硬碟上已安裝的 Linux 並嘗試開機
  6. Stop during the boot process before mounting the root filesystem
    除錯用(開機掛載 root 失敗、手動查 initramfs)
  7. Boot existing OS
    直接跳過開啟原本硬碟上的作業系統
  8. Run Memtest86+ (RAM test)
    跑記憶體測試
  9. Reboot
  10. Power Off

3.2 SystemRescue CLI

進入到 SystemRescue CLI
image

透過 lsblk 查詢要清除的內建 SSD/NVMe

lsblk -o NAME,SIZE,MODEL,TYPE

(範例)
image

nvme list 查看

nvme list

(範例)
image

符合 DoD 5220.22-M 或 NIST SP 800-88,兩條 Wipe SSD 路徑:

  • NIST 800-88:使用 Purge(Sanitize/Crypto-Erase/Block-Erase),或 Clear(覆寫)
  • DoD 5220.22-M:用 nwipe 的 DoD 3-pass / 7-pass 選項多次複寫

3.3 (Option 1) DoD 5220.22-M

以 DoD 5220.22-M 為例,在 Terminal 使用 nwipe

sudo nwipe

進入 nwipe 介面,可選擇要清除的硬碟 image

  • Print m : method
    可選擇 Wipe Method (抹除方法/演算法)
    wipe method

  • Print p: PRNG / Pattern
    設定隨機資料的產生器(PRNG)或寫入 pattern的細節
    顯示 Pseudo Random Number Generator image

🥚 因為 DoD method 每一輪都是固定 pattern(0x00/0xFF/隨機),若包含 random pass,才會用到設定的 PRNG

  • Print v: Verify
    設定驗證策略,常見:No Pass / Last Pass / All Passes

  • Print c: Config / Options
    全域選項包含 System Date & Time 設定、可以將 Wipe 過程匯出成 PDF Report

上述內容設定完後點擊 SHIFT + S 開始抹除 (如圖)
image

3.4 (Option 2) NIST SP 800-88

若要符合 NIST SP 800-88 可利用 NVMe Sanitize 執行 Purge

NVMe management:
https://github.com/linux-nvme/nvme-cli

sudo nvme sanitize /dev/<disk name> -a 4
sudo nvme sanitize /dev/<disk name> -a 2
  • -a 4: Crypto Erase(加密抹除)
  • -a 2: Block Erase (若 SSD 不支援 crypto erase)

查看抹除進度:

sudo nvme sanitize-log /dev/nvme0

讀取 NVMe 的 Sanitize Log Page,查看執行進度

詳細 nvme 操作可參考:manpages

4. 抹除完成 ✅