
Спецификация PCI Express 4.0, обеспечившая двукратный рост полосы пропускания шины (с 8 до 16 гигатранзакций в секунду), среди прочих нововведений, добавила в лексикон разработчиков оборудования и системного программного обеспечения новый термин — Lane Margining. Одноименная процедура обеспечивает аналоговую подстройку электрофизических характеристик шинных соединений: амплитуд и таймингов сигналов, обеспечивая адаптивность дизайна к операционным условиям функционирования платформы.
Программно-аппаратные аспекты Lane Margining
Процесс, инициируемый при старте вычислительной системы, а также для восстановления после сбоя, состоит из передачи тестовых паттернов, измерения и анализа искажений таких паттернов с последующей коррекцией характеристик приемо-передающих цепей в соответствии с результатами. Иначе, неизбежные факторы разброса и деградации параметров компонентов, влияние индуктивности проводников и емкости диэлектрической изоляции сделают невозможной передачу сигналов на столь высоких частотах.
Интересной особенностью является возможность детального низкоуровневого программного контроля над аналоговыми величинами. В результате появления множества аналого-цифровых узлов в схемах хостов и устройств, произошло своеобразное сближение двух «миров», различных, пожалуй, не только технологически, но и ментально: СВЧ-техники и системного программирования. Хотя, если быть точным, некоторые шаги в этом направлении были сделаны в предыдущих поколениях шины, в виде известной процедуры Link Training, предназначенной для согласования ширины и полосы пропускания интерфейса в соответствии с возможностями двух соединяемых устройств и платформы.
Проблемы и решения
Как известно, спецификация PCI Express является закрытым документом, поэтому доступ к информации о функциональных особенностях этой шины может стать неординарной задачей. Увы, в доступных фрагментах на сегодня не удалось найти полного побитного описания регистровых полей Lane Margining Extended Capability, с помощью которых системное программное обеспечение должно инициировать передачу тестовых паттернов по СВЧ-тракту с последующей коррекцией характеристик в соответствии с результатами теста. Кроме того, возможность включения ретаймеров и редрайверов между взаимодействующими устройствами, сценарии, связанные с бифуркацией сигнальных цепей портов а также необходимость учета взаимного влияния сигналов не только в пределах одной функциональной группы (порта), но и между несколькими функциональными группами, создает предпосылки для появления Vendor Specific и Platform Specific расширений базового протокола, возможность существования которых декларирована в спецификации и достаточно обстоятельно обсуждается в документе «PCIe Gen4 Standards Margin Assisted Outer Layer Equalization for Cross Lane Optimization in a 16GT/s PCIe Link».
В частности, такой дополнительный канал взаимодействия как последовательная шина System Management Bus, поддерживаемая микросхемами ретаймеров может играть важную роль на начальных этапах старта платформы, до момента, когда интерфейс PCI Express будет инициализирован и готов к устойчивой передаче информации.
Неожиданно
В упомянутом документе, среди прочего, допускается возможность применения процедуры Lane Margining в качестве вредоносного сценария. Тезис спорный. Очевидно, неверно инициализировав аналоговые характеристики сигнальных цепей, можно ухудшить стабильность системы и даже ввести шину в длительный таймаут. Вместе с тем, регистры конфигурационного PCI-пространства относятся к числу привилегированных системных ресурсов, доступ к которым требует привилегий Kernel Mode или, другими словами, так называемого нулевого кольца защиты.
Это значит, что рассматривая такой сценарий, авторы предполагают, что вредоносный код уже получил соответствующие привилегии. А это, в свою очередь означает, что в арсенале такого вредоносного кода есть более простые и в то же время более деструктивные методы, обнуление секторов диска, например. Да и нарушить работу PCIe-устройств можно весьма ординарными путями, например, банально изменив базовый адрес используемого диапазона памяти или ввода-вывода в регистре BAR.
![Регистры базовых адресов [0-5] управляют выделением диапазонов для устройства согласно правилам PCI PnP Регистры базовых адресов [0-5] управляют выделением диапазонов для устройства согласно правилам PCI PnP](/sites/default/files/inline-images/BAR.png)
Почему Lane Margining рассматривается в специальном статусе, требующем реализации отдельных защитных механизмов разработчиками платформ и UEFI? Обоснован ли такой тезис? Ответы на эти вопросы еще только предстоит получить.
Подчеркнем, оригинальный документ не посвящен проблемам безопасности, а гипотетический сценарий атаки не основан на каких-либо специфических свойствах PCIe v4 или передаче цифровых сигналов в СВЧ-диапазоне (пока уступим этот аспект компьютерной вирусологии авторам художественных произведений). В документе всего лишь, указывается на возможность организации таймаута шины, вследствие несанкционированного запуска Lane Margining. И надо признать, что в этой формулировке вместо «Lane Margining» могут стоять десятки других операций, существовавших еще в первой версии PCI Express.