ZeRO и No-FAT: аппаратная защита памяти без потери производительности

ZeRO и No-FAT: аппаратная защита памяти без потери производительности

ZeRO и No-FAT: аппаратная защита памяти без потери производительности

Исследователи из Колумбийского университета предложили два новаторских способа обеспечения безопасности по памяти аппаратными средствами. Оба метода можно реализовать, слегка изменив микроархитектуру. Тестирование показало, что при подходе No-FAT снижение производительности незначительно — около 8%; в случае ZeRØ потери равны нулю.

Безопасность доступа к памяти — давняя проблема, о которой каждый раз вспоминают при появлении серьезных угроз. За сорок лет было предложено множество различных решений, но они либо плохо работали, либо требовали жертв. Меры противодействия эксплойту Spectre и Meltdown, например, повлекли падение производительности — в среднем на 20%, в отдельных случаях в два раза. Кроме того, с появлением новых угроз используемая защита может потерять свою эффективность, и специалистам придется искать альтернативные решения.

Согласно описанию ZeRØ (PDF), этот механизм позволяет обеспечить защиту кода и указателей системы, притом без поражения в производительности. Его реализация предполагает замену инструкций обращения к памяти и схемы кодирования метаданных — по словам авторов проекта, эти изменения можно привнести в современные процессоры без особого труда. Университетские исследователи предлагают использовать ZeRØ в дополнение к средствам противодействия атакам на память.

 

Техника No-FAT (PDF) была разработана с прицелом на снижение потребления ресурсов при проверках безопасности по памяти. С этой целью авторы исследования предложили использовать группировку распределителей памяти (memory allocator binning) — набрающий популярность метод, который позволяет ускорить вычисление начального адреса и размера участка памяти, выделенного под указатель, притом выполнять это во время доступа к данным.

Применение No-FAT, по словам разработчиков, снимает многие проблемы, свойственные традиционным подходам, — такие как совместимость с незащищенным софтом и заметное падение производительности. Прогон тестов SPEC CPU2017 показал, что при новом способе защиты памяти быстродействие снижается примерно на 8%.

Среди прочих достоинств создатели No-FAT особо отметили надежную защиту от некоторых видов Spectre-атак. Их метод также позволяет значительно ускорить фаззинг при поиске уязвимостей, автоматическую очистку памяти, улучшить предсказуемость предвыборки данных и работы контроллеров DRAM.

 

Финансирование проектов ZeRØ и No-FAT частично осуществлялось за счет грантов, полученных от ВМС и ВВС США, а также целевой дотации Qualcomm. Спецподразделение ВВС уже работает над созданием чипов с новой встроенной защитой.

Linux 7.1 может наконец сделать NTFS по-настоящему родной файловой системой

В Linux 7.1 намечается заметное обновление, которое особенно оценят те, кто живёт на два мира — Linux и Windows. В ядро уже влит новый драйвер NTFS, и это одна из самых важных, хотя и не самых громких, перемен в файловой подсистеме за последние годы. Сам Линус Торвальдс назвал это воскрешением NTFS.

Вся соль в том, что Linux наконец получает более современную встроенную поддержку NTFS — файловой системы, на которой по умолчанию живёт Windows.

До сих пор с ней всё было либо терпимо, либо просто неудобно: старый драйвер в ядре долгое время умел в основном читать NTFS-разделы, NTFS-3G работал через FUSE и проигрывал по скорости, а более новый NTFS3, хотя и был быстрее, за последние годы успел заработать репутацию решения без слишком активного развития.

Новый драйвер делает ставку не просто на поддержку NTFS, а на более нативную работу внутри самого ядра Linux. В документации ядра прямо сказано, что он обеспечивает полноценную поддержку чтения и записи, рассчитан на высокую производительность и использует современные механизмы вроде iomap и folio.

За разработкой стоит Намджэ Чон — тот же девелопер, который раньше занимался драйвером exFAT для Linux. По данным LKML, он работал над этим направлением около четырёх лет.

На бумаге всё выглядит очень бодро. В обсуждении патчей и публикациях о слиянии упоминается, что однопоточная запись стала быстрее примерно на 3–5%, многопоточная — на 35–110%, а монтирование 4-терабайтного диска ускорилось примерно в четыре раза по сравнению с NTFS3. Кроме того, новый драйвер уже проходит больше тестов xfstests, чем NTFS3: 326 против 273.

Правда, без оговорок тут не обошлось. Это всё-таки новый код, так что в первых релизах вполне возможны шероховатости, особенно в каких-то менее популярных особенностях NTFS. Да и сама NTFS остаётся файловой системой из мира Windows, так что полностью вести себя как ext4 или XFS под Linux она всё равно не начнёт. Но сам вектор выглядит приятным: в ядре Linux эту тему наконец решили делать всерьёз, а не по остаточному принципу.

RSS: Новости на портале Anti-Malware.ru