Сводная группа исследователей, в которую вошли специалисты из университета Карнеги-Меллон, компании Seagate и Швейцарской высшей технической школы Цюриха, представила интересный доклад (PDF) на международном симпозиуме High-Performance Computer Architecture (HPCA). Эксперты рассказали, что чипы NAND-памяти, которые применяются в SSD, содержат «программные уязвимости» (programming vulnerabilities), которые могут использоваться для подмены и порчи данных на накопителях, а также для значительного сокращения срока службы SSD.
Раньше SSD-накопители повсеместно использовали технологию SLC (single-level cell), которая предполагает, что одна ячейка флеш-памяти NAND хранит один бит данных, ноль или единицу. Затем производители поняли, что можно использовать транзистор с плавающим затвором (floating gate transistor), который позволит хранить в ячейке два бита данных, то есть подаваемое на ячейку электрическое напряжение позволяет программировать четыре состояния: 00, 01, 10, 11. Данная технология получила название MLC (multi-level cell) и с 2015 года является превалирующей на рынке SSD. И именно MLC предложили атаковать исследователи.
![](https://xakep.ru/wp-content/uploads/2017/05/126592/NAND-Test-Rig.jpg)
Первый тип атак специалисты назвали program interference, и с его помощью атакующий может записать данные на SSD. Исследователи использовали специальные шаблоны данных, которые провоцируют в 4,9 раз больше ошибок в MLC, побочным эффектом от которых становится то самое interference, то есть соседние ячейки NAND начинают влиять друг на друга, в результате чего значения битов могут меняться. В итоге атакующий способен повредить локальные данные и сократить срок службы SSD, если будет атаковать достаточно долго. Как можно заметить, данная атака во многом похожа на классическую Rowhammer-атаку, которая используется против памяти RAM, но сами исследователи никаких параллелей с Rowhammer не проводят.
Второй тип атак получил название read disturb и также связан с ошибкой в программной логике NAND-чипов. В данном случае злоумышленник может использовать эксплоит против SSD-накопителя, заставив его выполнить большое количество read-операций за короткое время. В результате это приведет к возникновению феномена, названного read disturb errors, то есть возникновению read disturb ошибок. После этого устройство окажется практически непригодно для надежного хранения данных.
Все технические подробности проделанной исследователями работы, а также предложенные ими методы защиты от подобных атак, можно найти в докладе группы.