
Опубликовано: [Сегодняшняя дата]
Атака через побочный канал — это мощный класс атак на безопасность, когда злоумышленник стремится получить конфиденциальную информацию не через взлом криптографической схемы, а через изучение артефактов реализации, таких как схемы доступа к кэшу, время, энергопотребление, электромагнитные (ЕМ) излучения или даже звук и вибрации.
Короче говоря, побочные каналы — это «случайные» утечки в любом вычислении: крошечные следы данных, остающиеся от физических или логических компонентов при обработке защищенной информации.
Аналогия из реального мира:
Подумайте о сценарии взлома замка. Вместо того, чтобы брутально подбирать ключ, вы внимательно слушаете, как каждый штифт встаёт на место — звук и время выдают информацию!
Типичные побочные каналы:
Почему это важно:
Атаки через побочные каналы могут подорвать даже самые математически обоснованные криптосистемы, зачастую не требуя уязвимостей в программном обеспечении — просто близости или доступа к общим вычислительным ресурсам.
Постоянная память Intel Optane (PMem) принадлежит к новому классу памяти, называемой энергонезависимой памятью (NVM). В отличие от традиционной DRAM, которая теряет свое содержимое при отключении питания, Optane сохраняет данные, стирая границу между оперативной памятью и хранилищем.
Основные характеристики:
Типичная система Optane:
[CPU] <---> [L1/L2/L3 CPU Кэши] <---> [Контроллер памяти] <---> [Постоянная память Optane (PMem)]
^
[Традиционная DRAM] ------------------------/
Постоянство, высокая плотность и тесная интеграция Optane PM с кэшами ЦП делают его увлекательной, но сложной целью для атак через побочный канал.
До недавнего времени большинство исследований в области побочных каналов сосредотачивалось на DRAM или кэшах CPU, но уникальная аппаратная структура Optane и новая внутренняя структура кэша вводят новые векторы атаки.
Работа "Persistent State Side-channel Attacks on Intel Optane Persistent Memory" представляет собой первый систематический анализ безопасности побочных каналов Optane, выявляющий, что ранее безопасные предположения больше не действуют, что стимулирует разработку новых стратегий защиты.
Традиционные архитектуры памяти имеют хорошо документированную иерархию кэша: L1, L2, L3 на ЦП и, возможно, строковые и банковые буферы в DRAM. Optane PM, с другой стороны, обладает внутренними, недокументированными кэшами.
Исследование USENIX 2023 года использовало микробенчмаркинг для раскрытия структуры буферов Optane. Внутренняя иерархия кэша примерно следующая:
| Характеристика | DRAM | Optane PM |
|---|---|---|
| Летучесть | Летучая | Энергонезависимая |
| Размер строкового буфера | ~8КБ | Строковый буфер: до 256КБ (обратная разработка) |
| Время жизни буфера | Очищается при отключении | Постоянный или полупостоянный |
| Поверхность атаки | Ограничена DRAM | Расширяется за счет крупных, постоянных буферов |
Размер и постоянство строковых буферов Optane открывают новые, высокоточные временные и пространственные побочные каналы.
Prime+Probe — это временная атака кэша, обычно используемая для выявления схем доступа в средах с общей памятью.
Поскольку внутренние строковые буферы Optane большие и постоянные, Prime+Probe получает новые мощные возможности:
Практическое последствие:
Вредоносное ПО или арендатор А может исследовать загруженность буфера Optane, узнавая, какие области памяти использует арендатор B — даже после сбоя или перезагрузки.
Ключевым шагом в оценке безопасности является понимание аппаратного обеспечения. В исследовательской работе использовались микробенчмарки времени, чтобы эмпирически выявить:
Исследователи создали низкоуровневые инструменты для быстрого доступа (чтения/записи) последовательно по адресам памяти и записи времени. Изменения во времени указывают на попадания и промахи в кэше/буфере.
import time
import mmap
ADDR = 0x10000000 # Пример физического адреса
with open("/dev/mem", "rb") as f:
mem = mmap.mmap(f.fileno(), 4096, offset=ADDR)
t1 = time.perf_counter_ns()
data = mem.read(64)
t2 = time.perf_counter_ns()
latency = t2 - t1
print(f"Задержка чтения: {latency} ns")
mem.close()
Примечание: Доступ к /dev/mem и физическим адресам требует прав суперпользователя! Используйте в контролируемой лабораторной среде.
Меняя шаги и измеряя задержки, исследователи выяснили, сколько адресов может одновременно находиться в буфере перед его вытеснением, и таким образом реверсировали ассоциативность кэша.
Представьте, что два арендатора делят одно оборудование в облачной среде, каждый из них использует память на базе Optane. Арендатор A совершает атаку Prime+Probe на строковые буферы Optane:
Допустим, буфер Optane не очищается после потери питания (или восстанавливается достаточно быстро, чтобы буферы сохранялись):
Для исследователей и красных команд выполнение своих микробенчмарков полезно. Внизу приведены базовые примеры кода для сканирования буферов Optane и анализа данных о времени в Bash и Python.
#!/bin/bash
# Измерение времени чтения памяти, смещенной на mmap
FILE="/mnt/pmem0/testfile"
dd if=/dev/zero of=$FILE bs=64K count=1 # Подготовка файла
for i in {1..1000}; do
t1=$(date +%s%N)
dd if=$FILE of=/dev/null bs=64 count=1 iflag=direct 2>/dev/null
t2=$(date +%s%N)
echo "$(($t2 - $t1))"
done > timings.txt
import matplotlib.pyplot as plt
with open("timings.txt") as f:
times = [int(line.strip()) for line in f]
plt.plot(times)
plt.xlabel("Итерация")
plt.ylabel("Время (нс)")
plt.title("Микробенчмарк задержки доступа Optane")
plt.show()
На что обратить внимание:
Повторяющиеся шаблоны — «пиковые» значения времени доступа обычно указывают на промах буфера (вытеснение другим процессом).
Более продвинутые инструменты будут выделять большой массив, напрямую отображенный на постоянную память Optane, и обращаться к нему по шаблонам, рассчитанным для нацеливания на определенные строковые буферы. Затем используются данные о времени для реконструкции отображения.
Предостережение:
Хотя полезно для исследования, эти действия могут нарушить политику поставщика на производственном оборудовании. Ограничьте использование воздушно изолированными, преданными испытательными средами.
Сопротивление атакам через побочные каналы многогранно, включает аппаратные средства, системное ПО и меры на уровне приложений.
Реализуйте криптографические процедуры и доступ к конфиденциальным данным в константное время и константный шаблон:
Инструменты и ресурсы:
По мере того как технологии энергонезависимой памяти, такие как Intel Optane PM, масштабируются в дата-центрах, облаках и ИИ-инфраструктуре, площадь атак через побочный канал эволюционирует. Аппаратная архитектура внутренних буферов, ранее игнорировавшаяся как вектор угрозы, теперь заслуживает систематического внимания как со стороны индустрии, так и исследователей.
Ключевые выводы:
Оставайтесь в курсе:
Регулярно изучайте предупреждения о программном обеспечении, исследуйте безопасность и применяйте меры смягчения атак, чтобы опередить злоумышленников, использующих побочные каналы в развивающихся технологиях.
Эта статья является частью серии о безопасности аппаратного обеспечения и возникновении технологий энергонезависимой памяти. Если вы нашли ее полезной, поделитесь с командой и подпишитесь на обновления по кибербезопасности следующего поколения.
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.