Введение
Происхождение атаки по побочному каналу тесно связано с существованием физически наблюдаемых явлений, вызванных выполнением вычислительных задач в микроэлектронных устройствах и обычных системах. Например, микропроцессоры потребляют время и энергию для выполнения поставленных перед ними задач. Устройства хранят свои секреты, и если преступники поймут непреднамеренные сигналы, некоторые интересные секреты могут быть извлечены и использованы для выполнения атаки по побочному каналу. То же самое происходит, например, когда выполняется временная атака на веб-систему для перечисления возможных допустимых пользователей.
В подобных атаках используются шаблоны информации. Например, на экране отображается электрическое излучение монитора или жесткого диска компьютера, которое можно использовать для анализа информации такого типа, или сценарий, в котором компоненты компьютера потребляют разное количество энергии при выполнении определенных процессов.
Использование этого вида атак может быть очень опасным, потому что для исследования уязвимостей используется другой ландшафт по сравнению с традиционными подходами. Как показано на рисунке 1 ниже, сигналы от популярных устройств, таких как смартфоны, встроенные устройства и среда Интернета вещей, использовались для поиска уязвимостей, извлечения конфиденциальной информации или поведения путем анализа частоты сигнала в определенный период времени (входы и выходы).
Другой популярный пример атаки по побочному каналу, изображающий сценарий из рисунка 1, - это использование звуков нажатия клавиши для создания копии ключа с помощью 3D-принтеров.
Общая картина атак по побочным каналам
«Обычно, когда мы разрабатываем алгоритм, мы думаем о входах и выходах. Мы не думаем ни о чем другом, что происходит при запуске программы », - говорит Дэниел Генкин, ученый-компьютерщик из Мичиганского университета.
Компьютеры работают на основе физики, и существует множество боковых физических эффектов, которые можно проанализировать, включая время, мощность и звук. Это три важных ингредиента, которые могут быть исследованы мошенниками в дикой природе. Например, временная атака - это атака по побочному каналу, при которой злоумышленник пытается скомпрометировать криптосистему, анализируя время, необходимое для выполнения криптографических алгоритмов.
Еще один знакомый сценарий из Интернета - это слепая SQL-атака на основе времени. Здесь функции WAIT FOR DELAY могут использоваться для приостановки выполнения на указанное время или WAIT FOR TIME могут использоваться для приостановки выполнения запроса и продолжения его, когда системное время равно параметру. Используя этот метод, злоумышленник перечисляет каждую букву желаемого фрагмента данных, используя следующую логику:
Если первая буква имени первой базы данных - «А», подождите 10 секунд.
Если первая буква имени первой базы данных - «B», подождите 10 секунд.
[так далее.]
В частности, эти атаки используют один из этих эффектов, чтобы получить больше информации о секретах используемого алгоритма.
С точки зрения злоумышленника, практически любая случайная утечка информации может быть собрана, чтобы узнать то, чего они не должны.
На рисунке 2 ниже показано, как атака по побочному каналу может быть использована для получения секретов обычного рабочего процесса приложения и использования дополнительной информации, такой как звук, частота, потребляемая мощность и т. Д., Для получения окончательного результата (например, открытого текста из зашифрованный текст).
Вычислительные системы стали более сложными: компоненты работают на пределе своих физических возможностей, работают во всех направлениях и используют всю возможную информацию для достижения наилучших результатов. В этом смысле атаки по побочным каналам становятся все более многочисленными, и их трудно обнаружить и предотвратить.
Например, в последние годы было обнаружено несколько ошибок на самом популярном физическом оборудовании с такими именами, как Meltdown, Spectre, Fallout, RIDL и Zombieload, и все они использовали атаки по побочным каналам как часть своих методов кражи секретов. .
Давайте подробно рассмотрим каждый из них.
Meltdown: это аппаратная уязвимость, которая затрагивает микропроцессоры Intel x86, процессоры IBM POWER и некоторые микропроцессоры на базе ARM. В частности, это позволяет мошенническому процессу получить всю память, даже если он не авторизован для этого.
Spectre: это уязвимость, которая затрагивает современные микропроцессоры, реализующие прогнозирование ветвлений. На большинстве процессоров спекулятивное выполнение в результате неправильного предсказания ветвления может оставлять наблюдаемые побочные эффекты, которые могут раскрыть личные данные.
Fallout: Атака Fallout позволяет получить данные, которые операционная система недавно записала, и определить положение в памяти операционной системы, усиливающее другие атаки.
RIDL: Атака RIDL может использоваться для утечки информации в различных доменах безопасности из разных буферов, таких как буферы заполнения строк и порты загрузки, внутри процессоров Intel.
ZombieLoad: атака ZombieLoad воскрешает частную историю просмотров и другие конфиденциальные данные. Это позволяет утечку информации из других приложений, операционной системы, виртуальных машин в облаке и доверенных сред выполнения.
Заключение.
Атаки по побочным каналам были горячей темой в последние несколько лет и стали более сложным горизонтом, используемым для исследования группы уязвимостей на физическом оборудовании или использования сигналов для раскрытия секретов рабочего процесса, канала связи или зашифрованного туннеля.
Meltdown и Spectre являются реальным доказательством этой опасной атаки, исследуя уязвимости, влияющие на микропроцессоры, и используя в своих интересах временную атаку по побочным каналам. В каждом из них используются разные методы доступа к секретной информации и ее декодирования в кэше процессора - части памяти, предназначенной для хранения определенных данных под рукой для повышения эффективности. В этом контексте злоумышленник может проанализировать время ответов процессора и узнать, что происходит в кэше, и, следовательно, секретную информацию.
Предотвращение таких сценариев - сложная задача, но существует группа передовых методов, которым можно следовать, как указано в OWASP . Например, исправление времени отклика для наихудшего времени выполнения могло бы быть хорошим обходным путем для предотвращения временных каналов, но с серьезным влиянием на производительность.
С другой стороны, атаки по побочным каналам на веб-приложения также могут представлять большую проблему. Узнайте о существовании имени пользователя по времени ответа или по сообщениям об ошибках, которые можно использовать для эксфильтрации информации из целевой системы.
Боковые каналы появляются по-разному. Обнаружение и предотвращение - серьезная проблема, которая часто может отрицательно сказаться на производительности системы