SSD – скорость в ущерб безопасности?

23 февраль, 2011 - 12:30Игорь Дериев

То, о чем и раньше можно было догадываться, нашло четкое подтверждение в исследовании студентов из Университета Калифорнии: на SSD не так-то просто гарантированно уничтожить данные.

Применялись различные методики полной и частичной очистки информации, а их эффективность проверялась считыванием непосредственно с микросхем, в обход логики контроллера. При этом искались заведомо известные шаблоны данных, т.е. исследователи находились в лучшем положении, чем реальный злоумышленник. Тем не менее выводы очевидны и неутешительны. Стандартные процедуры безопасного удаления отдельных файлов на SSD оставляли неприкосновенными от 4 до 75% их содержимого. Тогда как даже после 100-кратной «зачистки» свободного пространства накопителей сохранялось больше половины «удаленных» данных.

Связано это, прежде всего, с непрямой адресацией LBA-секторов (естественно, в данном случае этот термин нужно понимать условно) и с довольно сложной внутренней логикой работы SSD. Так, они не умеют перезаписывать сектора непосредственно, затирая их лишь на логическом уровне, и при этом содержат от 6 до 25% избыточного пространства для внутренних нужд – например для специфических процедур сборки мусора и консолидации. В результате последних могут появиться дополнительные копии содержимого файлов, которых в своих экспериментах исследователи насчитывали до 16. Нельзя также забывать о сбойных ячейках, данные в которых «застывают» навсегда.

Приятное исключение составляют некоторые современные SSD, в работе которых автоматически используется компрессия и шифрование данных. С одной стороны, для них сложно провести корректную верификацию упомянутых операций, но с другой – злоумышленник также окажется в гораздо более сложной ситуации. Кроме того, для полного уничтожения информации на таких SSD достаточно затереть лишь ключ шифрования, что выполняется очень быстро. Лишь бы контроллер делал это корректно, а повод для сомнения в этом имеется. Как оказалось, аппаратные методы полного уничтожения, основанные на командах SATA, нередко не дают ожидаемого эффекта. В трети испытуемых накопителей их поддержка просто отсутствовала (она не есть обязательной), еще в трети они отрабатывали некорректно, оставляя все данные нетронутыми.

Со своей стороны исследователи предлагают разработать и внести в логику SSD-контроллера (FTL, flash translation layer) необходимые изменения и дополнительные команды, которые позволяли бы определять и затирать конкретные области накопителей. Подробнее с проблематикой можно познакомиться в публикациях, указанных внизу страницы.