Чтобы одобрить
выдачу сертификата, недостаточно просто проверить выполнение функций безопасности в ПО. Нужно понять, насколько надежно эти функции выполняются, какова вероятность того, что эти функции будут выполняться всегда, в любом окружении, при любых событиях. Что эти функции нельзя отключить, обойти – случайно или намеренно. И тут мы сталкивается с тем, что одними испытаниями на соответствие профилю защиты или технических условий не обойтись. При этом строгая, исключающая несоответствие
требованиям безопасности в любых ситуациях проверка для современного ПО просто невозможна: слишком оно сложное, а способы такой строгой проверки часто слишком теоретические, и их нельзя применить на практике. Ситуация усугубляется тем, что для ПО часто недоступны ни структура (блоки и связи между ними), ни исходный код. То есть такое ПО представляется для нас «черным ящиком»: мы может судить о нем только по его реакции на внешние воздействия: вводу данных, изменению конфигурации или программного окружения. В таких условиях надежно подтвердить работу функций безопасности в программных продуктах очень сложно. Ведь для полной надежности нужно, чтобы ПО правильно работало во всех возможных ситуациях, в то время как достаточно одного-единственного воспроизводимого сочетания параметров, в котором работа функций защиты нарушается, и всё: продукт уже уязвим.
И тут на помощь приходит идея доверия и процесс безопасной разработки ПО. Эти вещи впервые появились в тех же «Общих критериях». На их основании были приняты национальные стандарты ГОСТ, в том числе ГОСТ Р ИСО/МЭК 15408-3-2013. В нем используется понятие оценочного уровня доверия. Если коротко, то доверие устанавливает причинно-следственную связь между процессами безопасной разработки ПО и характеристиками его безопасности. В этом случае вместо самого ПО как конечного продукта проверяются среда и процессы. Чем строже требования к этим процессам, тем выше вероятность, что функции безопасности будут выполняться как надо. Подход с оценочным уровнем доверия из ГОСТ первым начал широко применять (и применяет до сих пор) Банк России. Именно он ввел обязательную проверку прикладного программного обеспечения по оценочным уровням доверия в информационной безопасности.
Раньше Гостехкомиссия (а потом и ФСТЭК) использовала принципы уровней доверия в своих требованиях по отсутствию недекларированных возможностей. И такая проверка стала частью
сертификационных испытаний. Но за почти 20 лет подход ФСТЭК и методические документы на его основе уже устарели, принципы безопасной разработки эволюционировали, и нужно было опять синхронизировать их, привести в соответствие.
И в 2018 году появились
требования доверия ФСТЭК, которые как раз и решили эту проблему. Они гораздо полнее соответствуют современным принципам безопасной разработки. И отдельную проверку на недекларированные возможности больше не делают: ее включили в подтверждение требований к уровням доверия как часть этих требований. Поэтому говорить о том, что проверку на недекларированные возможности «отправили на пенсию», нельзя. Правда, первый блин оказался комом: требования 131-го приказа на практике оказались трудновыполнимыми, и были оперативно приняты новые требования, зафиксированные в 76-м приказе. Именно он сейчас является главным документом, и именно на соответствие требованиям этого приказа сейчас сертифицируется любое ПО. Сейчас уровни доверия в информационной безопасности стали обязательной частью процесса сертификации, без них обойтись нельзя, а если продукт не был сертифицирован по уровням доверия, то его сертификат может прекратить действие в любой момент по решению ФСТЭК.