--- title: '美國國防部 DOD 5220.22-M 標準銷毀儲存媒體資料' disqus: hackmd --- 依據美國國防部 DOD 5220.22-M 標準 銷毀儲存媒體資料 === ## Table of Contents [TOC] >[!Note] > 利用 SystemRescue 製作 USB 開機碟進行抹除\ >Official Doucument:\ >https://www.system-rescue.org/ \ > ## 1. 製作 wipe 開機碟 - 查看需要製作的 USB 硬碟編號: ``` diskutil list ``` - 卸載 USB ``` diskutil unmountDisk /dev/<disk name> ``` - 格式化 USB ``` diskutil eraseDisk FAT32 MYDISK MBRFormat /dev/<disk name> ``` - 下載 SystemRescue Image Image: https://www.system-rescue.org/Download/ \  ## 2. 將 image 燒錄至 USB >[!Tip] >將 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](https://github.com/balena-io/etcher) 燒錄  ### 2.3 Windows Windows 可利用 [Rufus](https://rufus.ie/) 燒錄  > - 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 進入預設開機模式:  > 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\  透過 `lsblk` 查詢要清除的內建 SSD/NVMe ``` lsblk -o NAME,SIZE,MODEL,TYPE ``` (範例)\  或 `nvme list` 查看 ``` nvme list ``` (範例)\  >[!Important] >符合 DoD 5220.22-M 或 NIST SP 800-88,兩條 Wipe SSD 路徑: > - [NIST 800-88](https://csrc.nist.gov/pubs/sp/800/88/r2/final):使用 Purge(Sanitize/Crypto-Erase/Block-Erase),或 Clear(覆寫) > - [DoD 5220.22-M](https://www.dau.edu/sites/default/files/Migrated/CopDocuments/DoD%205220.22%20M%20NISPOM%2020060228.pdf):用 nwipe 的 DoD 3-pass / 7-pass 選項多次複寫 ### 3.3 (Option 1) DoD 5220.22-M 以 DoD 5220.22-M 為例,在 Terminal 使用 nwipe ``` sudo nwipe ``` 進入 nwipe 介面,可選擇要清除的硬碟  - Print `m` : method\ 可選擇 Wipe Method (抹除方法/演算法)\  - Print `p`: PRNG / Pattern\ 設定隨機資料的產生器(PRNG)或寫入 pattern的細節\ 顯示 Pseudo Random Number Generator  > 🥚 因為 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` 開始抹除 (如圖)\  ### 3.4 (Option 2) NIST SP 800-88 若要符合 NIST SP 800-88 可利用 NVMe Sanitize 執行 Purge >[!Tip] > 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](https://manpages.debian.org/testing/nvme-cli/) ## 4. 抹除完成 ✅
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up