Raid重组复习
Raid重组复习
今天看了下这次2021长安杯的手册,有考RAID重组知识点,所以复习下。一般需要手动分析偏移、条带、盘序的都是硬Raid,我们这里就重点看硬Raid的重组。至于软Raid以前美亚也考过,取证大师能直接重组,而且对性能其实没啥提升,大家做个了解即可。
RAID5简介
现在用的Raid一般都是Raid5,什么是Raid5呢?
RAID 5的特点、原理
RAID5 应该是目前最常见的 RAID 等级。校验数据分布在阵列中的所有磁盘上,校验原理 A1^A2^A3=Ap。假如此时Disk2损坏了,那么用Disk0、1、3互相异或,A1^A2^Ap=A3,可以还原磁盘数据。
即损坏一块硬盘不影响数据完整。
当阵列磁盘 数量增加时,并行操作量的能力也随之增长,可比 RAID4 支持更多的磁盘,从而拥有更高的容量以及更高的性能。
Raid5的存储效率=(m-1)/m(m为硬盘数量)。
Raid阵列参数:
前偏移:物理磁盘所在扇区号(MBR偏移)
条带:块的大小
盘序:物理磁盘组成Raid时的顺序
Raid Level:Raid5、Raid6....
循环方式(Raid5、6、HP)
RAID5的左异步、左同步、右异步、右同步
左循环与右循环
所谓“左右”即循环方向,是指 RAID 中的校验块的走向,一种是左循环,一种是右循环。
左循环
即校验块P0,P1....Pn从左至右旋转而下
右循环
即校验块P0,P1....Pn从右至左旋转而下
异步与同步
在 RAID5 中,数据块的写入有两种方式,一种是异步,一种是同步
异步
写满一个条带需要转入下一个条带写入时,直接回到 0 号盘进行写入。也就是每个条带内都是由低号盘开始写入,写满一个块后转向高号盘继续写入,这种方式不考虑校验块的位置,称为异步。
D0
D1
D2
P0
D3
D4
P1
D5
D6
P2
D7
D8
P3
D9
D10
D11
同步
写满一个条带,需要将数据写入下一个条带时,先判断下一个条带的校验块位于哪个磁盘,然后将数据写入校验块所在的磁盘的下一个磁盘,写满一个数据块后转向高号盘,直至该条带内编号最大的数据块写满后,再回到同条带内的 0 号盘写入,直至本条带内的校验块所在的磁盘的前一个磁盘。
也就是说,一个条带内的第一个数据块总是跟在本条带内的校验块之后。
D0
D1
D2
P0
D4
D5
P1
D3
D8
P2
D6
D7
P3
D9
D10
D11
NTFS的RAID重组案例
刚才说到,Raid阵列的参数有:
前偏移
、条带
、盘序
、Raid Level
、循环同步方式
Raid Level已经确定。
Step1.确定前偏移
首先,我们要确定前偏移
:
我们初始拿到的检材是四个镜像,簇视图非常难分析,我们首先要将他们挂载起来,用FTK Imager、Encase都可以
这个案例中首个扇区就是MBR,所以偏移为0
还有一点就是,这样能够通过右上方的箭头直接看分区大小,一个是350MB,一个是17.8GB,这个案例每个盘容量是6GB,350MB+17.8GB=18gb=(4*6-6)/4*6,可以确定这确实是个Raid5阵列
Step2.确定条带大小
众所周知,NTFS文件系统有$MFT(文件记录表),它是NTFS中通用规律性最强的一个文件,其中的记录ID对于我们判断条带的大小和盘序有很大的帮助
寻找$MFT
最简单的一个方法就是Ctrl+F5FILE(46 49 4C 45)
签名。
有时可能经过多次格式化硬盘会残留一些以前$MFT和它的mirror备份,要注意区别,文件记录假如是连续的,那基本能确定是$MFT。
当然,最稳的就是从DBR中确定$MFT的位置
030H-037H 代表$MFT在该分区的偏移
接下来我们就通过$MFT在每个磁盘相同扇区的ID来判断条带大小
001在2336796扇区的ID为14
002在2336796扇区的ID为78,003在2336796扇区的ID为46,004在2336796扇区的ID为110
我们发现ID是个等差数列,为什么会等差,我们回去看看Raid5的原理图,就知道为什么这里是等差的。
他们的ID依次等差32,说明块与块之间依次差32个$MFT,一个$MFT为1KB,那么条带大小就是32KB
Step3.确定盘序
条带确定好了,接下来通过校验块确定盘序
校验块怎么确定?根据Raid5的校验原理:p=x1^x2^x3,如果x1,x2,x3存储的是明文,那么p异或两次后会是乱码。所以,我们可以从$MFT的明文部分Filename
,来判断校验块。
如果文件名是明文,他一定不是校验块。
一个扇区可能不是只有一个Filename
是乱码,我们通常需要查看多个条带组才能判断
一个条带是32KB,于是就要向下跳转64扇区=2,336,860
按照上面的方法,依次分析,一般几块硬盘就分析几个条带组
把校验块排好,我们假设出一个左同步的盘序
这还不是最终的顺序,只是中间某一段的顺序
最终的顺序我们要通过前偏移确定,MBR从哪个盘找到的,就把那个盘当做第一个盘
由于检验原理,可能出现两个盘有MBR,最简单的方法就是猜,无非就两种可能嘛。比如我这里的案例,MBR在1和4中,一种是1324,一种是4132
Step4.RStudio 重构
打开4个镜像
四个镜像都检测到了,创建虚拟块RAID和自动检测
我们4132顺序试一下
编辑好盘序、偏移、RAID level 和条带大小(数据块大小)
点击应用,识别出两个分区
随便打开一个分区
说明顺序不对,那么就应该是另一种1324
应用,点进一个分区
可以看到磁盘的内容,找一个大于4条带大小的文件打开,能打开就说明重组成功了
这时候就可以创建一个镜像了,这个镜像就可以用来做后面的仿真
总结
看一遍不如做一遍,感觉是不一样的。重组RAID的关键在于找到文件系统的某些规律,通过同一扇区不同磁盘出现的不同规则来确定条带大小和校验块。但愿明天比赛出现了Raid重组能熟练的做出来。