Несмотря на то, что на сегодняшний день поставки компьютеров и ноутбуков с жесткими дисками превышают таковые с твердотельными накопителями, растущая популярность SSD не оставляет сомнений, что вскоре количество последних превзойдёт HDD. Дело в том, что SSD обладают более высокой производительностью и надёжностью, к тому же цены на них постоянно падают. В этой связи представляет интерес исследование, проведённое сводной группой исследователей, в которую вошли специалисты из университета Карнеги-Меллон, компании Seagate и Швейцарской высшей технической школы Цюриха.
На симпозиуме High-Performance Computer Architecture (HPCA) эксперты рассказали, что чипы NAND-памяти по технологии MLC (Multi-Level Cell), которые применяются в SSD, содержат программную уязвимость, которая может использоваться для подмены и порчи данных на накопителях, а также для значительного сокращения срока службы SSD.
В отличие от менее гибкой технологии SLC (single-level cell), которая позволяет хранить на одной ячейке флэш-памяти NAND один бит данных, ноль или единицу, для работы MLC используется транзистор с плавающим затвором (floating gate transistor), который позволяет хранить в ячейке два бита данных, то есть подаваемое на ячейку электрическое напряжение программирует четыре состояния: 00, 01, 10, 11. Исследователи выяснили, что программная уязвимость позволяет хакеру создать избыточную активность с данными на накопителе, которая приводит к появлению в них ошибок.
В докладе специалистов говорится, что ими разработано два типа атак на SSD, оборудованных памятью MLC. Первый тип назвали «program interference», и с его помощью атакующий может записать данные на SSD. Для этого исследователи использовали специальные шаблоны данных, которые провоцируют в 4,9 раз больше ошибок в MLC. В результате побочного эффекта соседние ячейки NAND начинают влиять друг на друга, изменяя значения битов. Отмечается, что чем больше продолжительность атаки, тем хаотичнее состояние локальных данных и соответственно физическое состояние носителя.
Второй тип атак направлен на искажение данных при чтении значений частично запрограммированных ячеек, которые проявляются при выполнении большого числа операций чтения за очень короткий отрезок времени. Искажение считываемых данных приводит как к повреждению содержимого, уже сброшенного в частично запрограммированные ячейки, так и страниц, которые только готовятся к записи.
Исследователи разработали несколько методов предотвращения атак, которые рекомендованы производителям SSD для внедрения.