Компанията представи на обсъждане в списъка за разпространение на разработчиците на ядрото на Linux код на LSM-модул с реализация на механизма IPE (Integrity Policy Enforcement), който разширява съществуващите системи за мандатно управление на достъпа. Вместо да се свързва с етикети и пътища, в IPE решението за разрешаване или забраняване на операция се взема на базата на постоянните свойства на системния компонент, с който се извършва операцията. Модулът позволява да се определи обща политика за осигуряване на целостта на цялата система, указваща кои операции са допустими и по какъв начин трябва да се проверява автентичността на компонентите.
IPE е насочен към създаването на напълно верифицирани системи, чиято целостност е удостоверена от началния зареждач и ядрото до крайните изпълняеми файлове, конфигурации и зареждаеми файлове. Например, с помощта на IPE може да се укаже кои изпълняеми файлове е разрешено да се стартират, вземайки предвид проверката им за съответствие с еталонната версия чрез криптографски хешове, предоставени от системата dm-verity. В случай на промяна или подмяна на файл, IPE може да блокира операцията или да журнализира факта за нарушение на целостта.
Предложеният механизъм може да бъде прилаган в фърмуер за вградени устройства, в които целият софтуер и настройки са специално събрани и предоставени от собственика, например, в центровете за данни на Microsoft IPE се прилага в оборудването за защитни стени. За разлика от други системи за проверка на целостта, като IMA, IPE се отличава с независимост от метаданните в ФС — всички свойства, определящи допустимостта на операциите, се съхраняват директно в ядрото.
Правилата се задават в текстова форма, използвайки комплекти от ключ-стойност. Основните са ключът „op“, който определя операцията, към която се прилага правилото (например, op=EXECUTE ще сработи при опит за изпълнение), и „action“, който определя действието (например, „action=DENY“ за блокировка). Правилата се свързват със свойства, предоставяни от външни подсистеми, като dm-verity и fs-verity.
Например, правилото op=EXECUTE boot_verified=TRUE action=ALLOW op=EXECUTE dmverity_signature=FALSE action=DENY op=EXECUTE fsverity_digest=sha256:401fce…0dec146938 action=DENY ще разреши само зареждането от верифицирано разделение, ще забрани изпълнението на файлове от раздели, които нямат подписи в dm-verity, и също така ще забрани избирателно изпълнението на файл с хеш «401fce…0dec146938».
Началният набор от правила за зареждане се определя с помощта на настройката SECURITY_IPE_BOOT_POLICY и е включен в състава на ядрото, а останалите правила се добавят при необходимост чрез файла /sys/kernel/security/ipe/new_policy. Предадените правила се шифроват с използването на сертификат, определен в SYSTEM_TRUSTED_KEYRING.
На системите с общо предназначение се предлага да се прилага IPE в комбинация с механизма DIGLIM, разработван от Huawei. DIGLIM е реализиран с помощта на eBPF и позволява лесно прилагане на контрол на целостта на ниво отделни файлове в обикновените дистрибуции, без да изисква тяхната преработка (предлага се като вариант на Secure Boot, работещ на приложен ниво). Същността на DIGLIM е поддържането на пул от проверъчни хешове за файлове и метаданни, и предоставянето на достъп до изпълними файлове само ако техният хеш присъства в пула. Списъкът с хешовете може да бъде получен от пакетния мениджър RPM или ръчно генериран от потребителя.
Източник: opennet.ru
