4 ms·
I don't think an attack like you describe would be feasible (assuming FS support of capacity variance) unless the target drive was near maximum capacity which a
by slaymaker1907 4y ago
I don't think an attack like you describe would be feasible (assuming FS support of capacity variance) unless the target drive was near maximum capacity which already causes issues with write amplification. You're assuming that an attack could write the same block over and over, but that's not simple even with capacity variance since you'd still need GC. The difference is that GC would only consider empty and partially empty blocks whereas wear leveling might move data from a completely utilized block (note I'm talking about a flash block which is much larger than an FS block).
Suppose your SSD had the following blocks where E means erased and x means deallocated (so it is free, but you would need an erase to use it.:
B0: [1,x,4]
B1: [x,E,E]
B2: [3,10,x]
B3: [11,12,13]
With wear leveling, a write to address 4 might consider erasing B3 as it moves things around even though it is fully utilized and contiguous addresses because B3 might have much fewer writes than the other blocks. Capacity variance would instead use all available blocks and merely stop using any block that gets too many writes. Equalizing writes among your working set of blocks that get data updates isn't too difficult, it's the RO data that gets tricky to work around.
In fact, something the paper doesn't discuss but it is totally possible with current APIs would be for a drive manufacturer to just increase the amount of storage held in reserve for GC and hide that extra capacity from the OS. As blocks go bad, you just decrease capacity in the hidden area until the drive gets to the point where it no longer has enough reserve capacity for efficient GC at which the drive reports failure. I think manufacturers may do this already if they detect a bad block, the proposal would just add in extra conditions for when the drive considers a block failed.
One weakness of the paper is they don't discuss how fast drive capacity would decrease over time.
- blagie 4y agoI think my post was unclear. The attack (and rapid wear) were both in the absence of wear levelling (of which capacity variance is a form). My points, which I admit got lost in there: 1) With wear levelling, write amplification doesn't matter much, since you have nearly infinite life in either case. SSDs fail, but only in highly esoteric scenarios due to going over write limits. 2) The write patterns in the paper make no sense, relatively to real-world usage patterns, or what wear levelling is trying to address.