Многие современные высоконагруженные платформы всё чаще полагаются на периферийные графические процессоры (GPU) и ускорители глубокого обучения (DLA) для поддержки вычислений в режиме повышенных рабочих нагрузок. Хотя эти ускорители обеспечивают обработку сложных приложений в реальном времени благодаря их массовому параллелизму, их энергопотребление и тепловые характеристики, а также последствия сохранения безопасности в последнее время подвергаются критическому пересмотру.
Графические процессоры и DLA на периферии сети используются в автономных транспортных средствах, промышленной автоматизации, системах видеонаблюдения, устройствах IoT и медицинских приложениях — все они обрабатывают конфиденциальные данные, например, видеопоток с камер наблюдения, данные медицинской визуализации, финансовые транзакции и так далее, работая в ненадёжных средах
Хотя некоторые исследователи начали изучать безопасность периферийных GPU, они использовали компоненты платформы SoC, такие как блоки управления обновлением маломощных DRAM (например, LPDDR), которые не являются уникальными для периферийных платформ GPU. Почти все исследовательские работы на эту тему ограничивались серверными GPU. Следует отметить, что периферийные GPU могут быть более уязвимы для атак на безопасность, поскольку они развёрнуты ближе к конечным пользователям, которые имеют прямой доступ к источнику конфиденциальных или частных данных, что делает их более привлекательными для злоумышленников. Именно поэтому некоторые хакерские группировки пытаются проникать в системы через скрытые каналы, используя особенности энергопотребления и частоты периферийных GPU и DLA.
Более того, графические процессоры и DLA на периферии сети предоставляют злоумышленникам уникальные возможности, отсутствующие в серверных системах. Например, скрытые каналы серверных графических процессоров могут быть подвержены влиянию шума от других безобидных приложений. Однако DLA на периферии сети и некоторые графические процессоры более низкого уровня позволяют выполнять по одному ядру за раз. Таким образом, они предлагают относительно бесшумный канал для скрытой связи между двумя процессами хакера.
Когда две сущности взаимодействуют друг с другом через канал, не предназначенный для обычной связи, такая скрытая связь называется скрытым каналом. Как правило, это включает в себя два вредоносных процесса, где только один из них имеет доступ к некоторой конфиденциальной информации, а легитимные каналы связи защищены таким образом, что конфиденциальная информация не может передаваться между ними. Чтобы обойти политику безопасности системы, вредоносные процессы используют некоторые функции системы, не предназначенные для связи, такие как побочные эффекты аппаратного или программного обеспечения, и они сотрудничают для создания скрытого канала для передачи конфиденциальных данных. Скрытые каналы в последнее время активно изучаются для графических процессоров. Исследователи проблем в области безопасности периферийных систем продемонстрировали атаки с использованием скрытых каналов между компонентами в интегрированных системах CPU-GPU на основе различных общих ресурсов, включая кэши первого и второго уровня (L1 и L2), а также блоки специальных функций, где троян (отправитель) и шпион (получатель) находятся в графическом процессоре и оперативной памяти. Также известны случаи, когда злоумышленниками использовалось тепловое и электромагнитное излучение для создания скрытых каналов связи в периферийных графических процессорах NVIDIA.
В частности, атаки через скрытые каналы используют асимметричные характеристики архитектурных компонентов, такие как задержки доступа и энергопотребление, для кодирования данных и передачи конфиденциальной информации шпионским приложениям. Одной из ключевых проблем при построении скрытых каналов на периферийных графических процессорах NVIDIA является отсутствие поддержки многопроцессорного обслуживания (MPS), которое позволяет одновременное выполнение нескольких процессов на одном ядре. Однако функция MPS не поддерживается в большинстве периферийных графических процессоров NVIDIA (только совсем недавно начала поддержку MPS для встроенных графических процессоров Volta, в то время как другие архитектуры периферийных графических процессоров по-прежнему не имеют этой поддержки). Ещё одна проблема — отсутствие поддержки библиотеки управления (NVML) для этих периферийных устройств.
Модель угрозы скрытого канала предполагает наличие двух процессов, где цель трояна — отправить данные шпионскому процессу через косвенный канал, не предназначенный для связи. Оба этих процесса являются процессами пользовательского уровня без каких-либо привилегий root. Как правило, они работают на одном и том же интегрированном устройстве CPU-GPU. Троян (отправитель) выполняется на ядре GPU или DLA, а шпионский (получатель) — на CPU. При этом они не используют совместно какие-либо объекты памяти для прямой связи, и им не разрешено взаимодействовать друг с другом. Перед началом атаки злоумышленник выполняет упрощённую калибровку целевой платформы. На этом этапе он анализирует характеристики энергопотребления и частоты целевого графического процессора, чтобы определить подходящие параметры передачи, такие как выбор инструкций и периоды сна, которые обеспечивают максимальную различимость сигнала и надёжность связи. Эти параметры могут различаться в зависимости от платформы, но сама методология атаки остаётся неизменной, поскольку она основана на наличии различимых сигнатур энергопотребления и частоты в целевой архитектуре.
Это реалистичный сценарий, поскольку такой многопользовательский режим не обязательно означает одновременное выполнение несколькими пользователями — скорее, достаточно сосуществования нескольких доверенных доменов (например, приложений и программных модулей). Некоторые реальные приложения состоят из множества модулей, разработанных сторонними организациями, которые могут содержать троянские и шпионские модули. Например, из-за стоимости и усилий, необходимых для разработки моделей глубокого обучения, многие приложения ИИ интегрируются со сторонними моделями из сторонних библиотек. Экосистемы плагинов также распространены в периферийных видео/ИИ-стеках на подобных платформах, где плагин может внедрять вредоносный процесс. Широко используемые библиотеки видеоаналитики вообще явно поддерживают добавление пользовательских/сторонних плагинов.
Одновременное выполнение сторонних моделей, плагинов и сервисов от разных поставщиков на периферийном устройстве легко приводит к тому, что компоненты программного обеспечения, не пользующиеся доверием, совместно используют одни и те же ресурсы графического процессора, даже если платформа не используется несколькими пользователями. В результате, даже если устройство работает в рамках одного административного пользователя, совместно используемые приложения или модули могут иметь разные границы доверия. В таких условиях враждебный модуль может намеренно изменять нагрузку на графический процессор для передачи информации через общие аппаратные ресурсы, в то время как получатель наблюдает за возникающими побочными эффектами на аппаратном уровне.
Одной из распространённых проблем скрытых каналов является наличие шума от процесса, отличного от трояна. Для уменьшения этого шума хакеры реализуют скрытые каналы, используя функцию динамического параллелизма в CUDA, где ядро трояна на GPU внутренне создаёт дочерние процессы, которые запускают микроядра, фактически передающие информацию. Динамический параллелизм позволяет ядру трояна занимать ресурсы GPU исключительно до тех пор, пока дочерние микроядра завершают передачу. Следует отметить, что многие периферийные GPU не поддерживают обслуживание одновременно нескольких процессов. Простой пример скрытого канала — использование всего одной инструкции. Предположим, что троян и шпион знают, какая инструкция используется в устройстве скрытого канала и сколько энергии рассеивается при выполнении устройства. Даже одни и те же инструкции с различным энергопотреблением для разной ширины данных могут использоваться для кодирования разных битов. После каждой передачи 2-битной информации рандомно используется период ожидания (от 1500 до 6000 мс) для уменьшения шума в передаче за счёт снижения энергопотребления графического процессора. Этот алгоритм затрудняет отслеживание подозрительной активности системами мониторинга безопасности. Приёмник (т.е. шпион) пассивно считывает показания датчика мощности графического процессора и интерпретирует различные пики мощности, как различную двухбитную информацию.
Как показали замеры — благодаря этой методике достигается превосходная пропускная способность скрытого канала до 1,3 бит/секунду — что вполне достаточно для кражи особо чувствительных конфиденциальных данных (например, логинов и паролей учётных записей). Более того — исследователи, проводившие эксперимент, выяснили, что скрытый канал вызывал 0% битовых ошибок при передаче 1K случайных битов. Они оценили полосу пропускания и частоту ошибок на разных платформах, протестировав предложенный инструмент атаки при изменении периода задержки от 1000 мс до 1750 мс. Более длительный период задержки приводит к более низкой частоте ошибок из-за меньшего количества помех между сигналами. Однако, поскольку более длительный период задержки увеличивает интервал передачи данных, полоса пропускания утечки информации также уменьшается.
С DLA всё происходит ещё намного проще — его частота достигает пика во время выполнения процесса и немедленно падает после завершения. Эта характеристика обеспечивает практически бесшумную индикацию вычислительной активности по статистике энергопотребления. Для построения скрытого канала DLA на основе частоты хакеры могут кодировать информацию либо длиной активных циклов DLA, где частота достигает максимального значения, либо длиной холостых циклов, где частота остаётся равной нулю. А приёмник-шпион регулярно проверяет частоту DLA, получаемую от встроенного системного датчика.
При таком положении дел, меры противодействия, разработанные для скрытых каналов, основанных на конкуренции (такие как GPUGuard) не будут работать. Системы отслеживания, основанные на временном разделении, также неэффективны, поскольку используется динамический параллелизм для резервирования ресурсов GPU в максимально возможной степени. Кроме того, как правило, сама атака достаточно коротка, чтобы её можно было успешно отследить на периферийных платформах, которые уже реализуют временное совместное использование ресурсов. Чтобы предотвратить создание скрытых каналов на основе измерения мощности и частоты злоумышленниками без привилегий, использование мониторов мощности и частоты (например, tegrastats и jtop) может быть ограничено только для привилегированных пользователей. Это может быть эффективно, но неоправданно ограничит полезное использование данных с датчиков.
Ограничение частоты дискретизации монитора мощности и частоты только для непривилегированных пользователей может снизить точность и пропускную способность скрытого канала, сохраняя при этом полезность высокоточной телеметрии для привилегированных пользователей. Вместо полного ограничения возможности мониторинга телеметрии только привилегированными пользователями или снижения разрешения мониторинга, калиброванное рандомное возмущение (программный дизеринг) может быть добавлен к данным с датчиков только для непривилегированных пользователей. Только для пользователей с уровнем доступа администратора может быть предоставлена истинная телеметрия.
Хотя предложенные меры могут затруднить разработку точного скрытого канала, они, в свою очередь, могут значительно ограничить безопасное использование этих инструментов и сенсорных данных. Ограничение доступа эффективно против всех предложенных скрытых каналов, но полностью блокирует законное использование телеметрии. Ограничение разрешения и искажение телеметрии эффективны только против скрытых каналов, основанных на частоте, при этом сохраняя законное использование телеметрии. Таким образом, необходимы дополнительные усилия для разработки практических мер противодействия против шпионских действий такого характера.



