tgoop.com/computersecuritybasics/102
Last Update:
История первая, о криптографии. Как строить, строить и наконец ничего не построить
В начале 2021 года была официально опубликована информация об уязвимостях различной степени критичности (от 3.1 до 7.1) в ПЛК Modicon M100/M200/M221 производства Schneider Electric. Уязвимости связаны с недостатками реализации криптографических функций защиты данных.
Эти и подобные контроллеры используются для базовой машинной автоматизации в автоматизации упаковки, погрузочно-разгрузочных работах, в том числе в логистических системах (доставке), переработке материалов, в промышленной роботизации. Конкретно контроллеры этих линеек работают на базе изначально небезопасного протокола Modbus over TCP. Аутентификация инженера и дальнейший обмен данными, к примеру, при переконфигурации контроллера требуют защиты. Если нарушитель получил доступ к промышленной сети, то его несанкционированный доступ к контроллеру или MitM атака c подделкой данных может привести к непредсказуемым последствиям, в том числе физическому ущербу.
Так ли уж защищает от подобных атак спроектированная инженерами Schneider Electric криптография?
На самом деле нет: при реализации защиты были сделаны детские ошибки.
Во-первых, собственный алгоритм для генерации общего «секрета» (ключа), несколько похожий на алгоритм Диффи-Хеллмана, но отличающийся в деталях (замечу, что этот алгоритм генерации секрета не является устойчивым к MitM атаке)
Во-вторых, длина того самого секрета – всего 4 байта! Пространство перебора очень небольшое, да и сложность задачи дискретного логарифмирования в таких порядках невысока
В-третьих, для генерации случайных данных использовалось текущее время, а это абсолютно плохая практика, так как числа получаются предсказуемыми.
В-четвертых, в трафике смешивались шифрованные и нешифрованные данные, это всегда облегчает криптоанализ.
Ну, и в-пятых, никакой криптоанализ и не требовался, точнее, требовался в минимальном объеме. Дело в том, что для шифрования передаваемых данных на общем «секрете» использовалось «исключающее или» (XOR) с этим ключом. Для Modbus трафика с предсказуемыми, часто нулевыми заполнениями, это позволяет в некоторых участках дампа трафика попросту наблюдать ключ в открытом виде (XOR нулевых байтов и ключа даст сам ключ).
Давайте вспомним, что разработка каких-то новых функций в ПО известного оборудования – довольно дорогостоящая история. Кто-то обосновал и спроектировал эту «защиту», описал требования, был проведен цикл разработки, включая контроль качества, успешно прошел релиз. Эффект для безопасности – околонулевой. Издержки на выпуск обновления, коммуникацию, поддержку репутации.
А стоило всего лишь привлечь кого-то, кто не пропускал лекции по основам криптографии в универе
Ссылки на оригинальные источники в блоге Kaspersky ICS CERT
BY Computer security basics
Share with your friend now:
tgoop.com/computersecuritybasics/102