Сводная группа исследователей, в которую вошли специалисты из университета Карнеги-Меллон, компании 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 предложили атаковать исследователи.

Тестовый стенд команды

Первый тип атак специалисты назвали program interference, и с его помощью атакующий может записать данные на SSD. Исследователи использовали специальные шаблоны данных, которые провоцируют в 4,9 раз больше ошибок в MLC, побочным эффектом от которых становится то самое interference, то есть соседние ячейки NAND начинают влиять друг на друга, в результате чего значения битов могут меняться. В итоге атакующий способен повредить локальные данные и сократить срок службы SSD, если будет атаковать достаточно долго. Как можно заметить, данная атака во многом похожа на классическую Rowhammer-атаку, которая используется против памяти RAM, но сами исследователи никаких параллелей с Rowhammer не проводят.

Второй тип атак получил название read disturb и также связан с ошибкой в программной логике NAND-чипов. В данном случае злоумышленник может использовать эксплоит против SSD-накопителя, заставив его выполнить большое количество read-операций за короткое время. В результате это приведет к возникновению феномена, названного read disturb errors, то есть возникновению read disturb ошибок. После этого устройство окажется практически непригодно для надежного хранения данных.

Все технические подробности проделанной исследователями работы, а также предложенные ими методы защиты от подобных атак, можно найти в докладе группы.



3 комментария

  1. deadfish45

    22.05.2017 at 18:34

    >SLC (single-level cell), которая предполагает, что один чип флеш-памяти NAND хранит один бит данных
    Не один флеш-чип,а одна ячейка. В чипе миллионы и миллиарды ячеек, в основе которых, и в SLC и в MLC чипах, лежат транзисторы с плавающим затвором.
    >Затем производители поняли, что можно использовать транзистор с плавающим затвором (floating gate transistor), который позволит хранить на NAND-чипе два бита данных
    Просто взяли ту же самую ячейку с тем же транзистором и детектят у него не «больше половины заряда/меньше половины заряда», а по четвертям.

    • Мария Нефёдова

      Мария Нефёдова

      23.05.2017 at 08:16

      Спасибо, вы совершенно правы по поводу ячеек, конечно же, исправлено.

    • Jolly.Loki

      30.05.2017 at 13:54

      >>> детектят у него не «больше половины заряда/меньше половины заряда», а по четвертям.
      таки детектят по «третям», то есть — у одной ячейки устойчивых состояний 3: 0, 1 и 2.
      А четверти получаются за счет комбинаций (00, 01, 10, 11)

Оставить мнение