Для Linux представлена система верификации исполняемых файлов по цифровым подписям

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 17 Jan 2013.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    Для Linux представлена система верификации исполняемых файлов по цифровым подписям


    Один из инженеров из компании Red Hat представил в списке рассылки разработчиков ядра Linux патчи с реализацией системы верификации исполняемых файлов в формате ELF с использованием цифровых подписей. Разработка дополняет систему верификации модулей ядра, созданную в рамках проекта по обеспечению поддержки механизма UEFI Secure Boot.

    В текущей реализации режима верификации модулей ядра пришлось заблокировать механизм kexec наряду с другими возможностями, которые могут быть использованы для обхода цепочки проверки загружаемых модулей (через kexec могло быть запущено ядро в режиме без проверки цифровых подписей модулей). Одним из предложенных решений указанной проблемы стала поддержка проверки по цифровой подписи исполняемого файла /sbin/kexec, применяемого для загрузки нового ядра с использованием системного вызова sys_kexec(). Другим мотивом обеспечения верификации исполняемых файлов являлось желание выполнения команды kdump для ядер, загруженных в режиме UEFI Secure Boot. Другой возможностью является создание полностью верифицируемых систем, в которых гарантируется неизменность не только ядра, но и исполняемых компонентов пользовательского уровня.

    Кроме патчей для ядра Linux представлена новая утилита signelf, предназначенная для заверения исполняемых файлов ELF с использованием закрытого ключа и сертификата x509, созданных в процессе сборки ядра Linux с включенным режимом верификации. В процессе выполнения вызова exec(), ядро проверяет снабжён ли файл цифровой подписью и проводит верификацию (проверяется загружаемое в память содержимое секции PT_LOAD). Если цифровая подпись соответствует проверочному ключу или файл не подписан, то программа выполняется в обычном режим, иначе выполнение блокируется.

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

    Из других проектов по использованию цифровых подписей для защиты целостности исполняемых файлов можно отметить интегрированную начиная с ядра Linux 2.6.30 инфраструктуру IMA (Integrity Management Architecture) и предложенные компанией Ericsson системы DSI (Distributed Security Infrastructure) и DigSig (Digital Signature in the Kernel).

    16.01.2013
    http://www.opennet.ru/opennews/art.shtml?num=35852​