Snoop: новый вид атаки на процессоры Intel с далеко идущими последствиями
Инженер компании Amazon Web Services (AWS) открыл новый способ атаки на процессоры Intel, который назвал Snoop (следить, подглядывать). Эта атака очень сложная для реализации, но она открывает новый класс уязвимостей для атак по сторонним каналам. Если по этому пути пойдут серьезные исследователи, в процессорах Intel могут обнаружиться новые и неизвестные ранее опасные "дыры".
Инженер сервиса Amazon Web Services (AWS) Павел Вечоркевич (Pawel Wieczorkiewicz) обнаружил и сообщил компании Intel о новой уязвимости процессоров Xeon и Core. Уязвимость получила официальный идентификатор CVE-2020-0550. Атака с ее использованием описана как "Выборка данных L1 при помощи Snoop (слежения)" или просто Snoop.
Используя атаку Snoop, злоумышленник может похитить данные непосредственно из кеш-памяти процессоров. Список уязвимых процессоров компания Intel представила на этой странице. Процессоры Core уязвимы для Snoop до 5-го поколения включительно. Владельцам процессоров последующих поколений пока можно не волноваться. Еще одна хорошая новость, уязвимость Snoop закрывается патчем для защиты от атак типа L1TF (Foreshadow). Соответствующую заплатку Intel выпустила еще в августе 2018 года. На этом хорошие новости заканчиваются.
Новая уязвимость эксплуатирует ранее не задействованный метод атаки по сторонним каналам на механизм слежения за шиной согласования кеш-памяти. В многоядерных процессорах с двух- и трехуровневой иерархией кеш-памяти данные часто хранятся одновременно в памяти L1, L2, L3 и даже в ОЗУ. Для синхронизации данных в кеш-памяти всех уровней используется процесс когерентности (согласования) кеша. Как правило, сначала данные меняются в кеш-памяти L1 и затем переписываются в кеш-памяти на вышележащих уровнях. Для этого в действие вступает механизм отслеживания шины, с помощью которого обновляются все уровни кеша.
Инженер AWS обнаружил, что при определенных условиях злонамеренный код может включаться в операции отслеживания шины и вызывать ошибки. В результате сбоев в работе механизма слежения за шиной происходит утечка пользовательских данных. Если конкретно? информации из кеш-памяти L1, которая только что была изменена и потребовала операции согласования кешей. Тем самым происходит утечка данных из процессора, которая без атаки Snoop не могла бы произойти.
Подобная атака, считает Вечоркевич, опасна в многоядерном окружении в облачных сервисах. Запущенный на одном ядре зловредный код может привести к утечкам данных из кеш-памяти L1 из других ядер. Это подвергает опасности клиентов облачных сервисов.
В компании Intel заявили, что атака Snoop крайне сложно осуществима. Поэтому если операционная система не скомпрометирована, уязвимость Snoop становится невозможной. Также в Intel порекомендовали воспользоваться патчем для защиты от атак типа L1TF или, в крайнем случае, отключить на процессоре функцию Intel TSX (Transactional Synchronization Extensions). Это тоже снижает вероятность проведения атаки Snoop. Но проблема не в самой Snoop, как мы выше отметили. Ранее злоумышленники не использовали механизм слежения за шиной управления когерентностью кеш-памяти. Очевидно, пришла очередь присмотреться к этому механизму с должной внимательностью.