Введение​
Происхождение атаки по побочному каналу тесно связано с существованием физически наблюдаемых явлений, вызванных выполнением вычислительных задач в микроэлектронных устройствах и обычных системах. Например, микропроцессоры потребляют время и энергию для выполнения поставленных перед ними задач. Устройства хранят свои секреты, и если преступники поймут непреднамеренные сигналы, некоторые интересные секреты могут быть извлечены и использованы для выполнения атаки по побочному каналу. То же самое происходит, например, когда выполняется временная атака на веб-систему для перечисления возможных допустимых пользователей.

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

Использование этого вида атак может быть очень опасным, потому что для исследования уязвимостей используется другой ландшафт по сравнению с традиционными подходами. Как показано на рисунке 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 . Например, исправление времени отклика для наихудшего времени выполнения могло бы быть хорошим обходным путем для предотвращения временных каналов, но с серьезным влиянием на производительность.

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

Боковые каналы появляются по-разному. Обнаружение и предотвращение - серьезная проблема, которая часто может отрицательно сказаться на производительности системы