iT邦幫忙

2026 iThome 鐵人賽

DAY 29
0
Security

新手的30天數位鑑識之旅系列 第 29 篇

29|用 XOR 理解 RAID,為什麼重建可能破壞證據?

  • 分享至 

  • xImage
  •  

XOR(⊕)

XOR(Exclusive OR)是一種邏輯運算。

規則很簡單:相同 → 0,不同 → 1。

例如:

A B A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

XOR 為什麼可以拿來還原資料?

XOR 有一個很重要的特性:

A XOR B = C

C XOR B = A

只要知道其中兩個,就可以算出第三個。

例如:

A = 1010
B = 1100

A XOR B = C = 0110

現在假設 A 不見了:

C XOR B
= 0110 XOR 1100
= 1010
= A

A 就被還原回來了。

RAID 5 怎麼利用 XOR?

假設 RAID 5 有三顆硬碟:

Disk 1    Disk 2    Disk 3
   A         B         P

其中:

P = A XOR B

假設:

A = 1010
B = 1100

那麼:

P = 1010 XOR 1100
  = 0110

所以三顆硬碟裡是:

Disk 1    Disk 2    Disk 3
 1010      1100      0110
   A         B         P

如果 Disk 1 壞掉:

Disk 1    Disk 2    Disk 3
   ?       1100      0110
   A         B         P

就可以利用:

A = P XOR B

0110 XOR 1100
     ↓
    1010

把 A 算回來。

這就是 RAID 5 Parity 能夠協助資料重建的基本概念。

那 RAID 6 呢?

RAID 6 比 RAID 5 更複雜,因為它使用兩組 Parity。

資料
 ↓
Parity P
Parity Q

因此即使同時遺失兩顆硬碟,也有機會利用剩下的資料與 Parity 進行重建。

不過 RAID 6 的第二組 Parity 並不是單純再做一次 XOR,實際上使用更複雜的數學運算。

Parity Q 是先對每個 Data 乘上不同的係數,再 XOR:

Q = (g₀ × D₀) ⊕ (g₁ × D₁) ⊕ (g₂ × D₂) ⊕ (g₃ × D₃)

這裡的 × 不是一般的乘法,而是在 Galois Field GF(2⁸) 裡做乘法。

為什麼不能直接按下「Rebuild」?

如果是一般 IT 維運,發現 RAID 有一顆硬碟故障,通常會希望趕快把 Array 恢復正常。

但在數位鑑識中,情況完全不同。

因為 Rebuild 本身就是一個會對磁碟進行寫入的操作。

系統可能會根據其他磁碟上的資料與 Parity,重新產生遺失的內容並寫入新的磁碟。

重建過程可能涉及:

  • 寫入原本故障磁碟的資料
  • 更新 RAID Metadata
  • 更新 Array 狀態
  • 改變部分磁碟內容
  • 產生新的時間或系統紀錄
  • 讓原本的磁碟狀態發生變化

這時候後續分析的東西,就不一定還是案發當下的原始狀態。

因此實務上更重要的是先:

原始 RAID
    ↓
保存現場狀態
    ↓
逐顆取得證據
    ↓
建立 Forensic Image
    ↓
Hash
    ↓
在副本上研究 RAID 結構
    ↓
必要時進行重建

小結

  1. XOR 的特性讓 RAID 5/6 可以利用 Parity 還原遺失的資料,Parity = Data A XOR Data B。
  2. 鑑識時應先保存、取得並驗證原始證據,再在副本上進行 RAID 重建與分析。

上一篇
28|RAID 簡介
系列文
新手的30天數位鑑識之旅 共 29 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言