Способ защиты программного обеспечения от недекларированных возможностей, содержащихся в получаемых обновлениях
METHOD OF PROTECTING SOFTWARE FROM UNDECLARED CAPABILITIES CONTAINED IN OBTAINED UPDATES

Изобретение относится к обработке цифровых данных с помощью электрических устройств, а в частности к способам защиты компьютеров или компьютерных систем от несанкционированной деятельности.
В настоящее время выпуск и отладка программного обеспечения (ПО) являются ресурсоемкими процессами. ПО стало сложнее, отследить все возможные варианты его использования практически невозможно. Поэтому ПО выпускают в определенный срок, однако, зачастую с неизвестным количеством ошибок. После обнаружения ошибок при использовании ПО разработчик выпускает обновления, которые проверяются на корректность установки, совместимость с обновлениями другого программного обеспечения и аппаратной составляющей персональных компьютеров (ПК). При этом полученные обновления потенциально могут содержать недекларированные возможности (как специально, так и случайно внесенные). Примером таких недекларированных возможностей могут быть анонимный сбор (и последующая отправка на сервера разработчика ПО) данных о пользователе: данные о местоположении пользователя, посещаемые интернет-ресурсы, запросы в поисковых системах, список пользовательских приложений, установленных на устройстве, информация о соединении и его типе, информация об устройстве [Android-приложения собирают персональные данные пользователей в интересах разработчиков [Электронный ресурс] URL: http://4pda.ru/2014/12/19/192307;  Какие данные о пользователях собираются в Интернете? [Электронный ресурс] URL: http://about-windows.ru/nastrojka-windows/kakie-dannye-sobirayutsya-v-internete/].
Недекларированные возможности – функциональные возможности программного обеспечения, не описанные или не соответствующие описанным в документации, при использовании которых возможно нарушение конфиденциальности, доступности или целостности обрабатываемой информации [Руководящий документ «Защита от несанкционированного доступа к информации. Ч.1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей»].
Известна «Система и способ для определения доверия при обновлении разрешенного программного обеспечения» (патент РФ № 2495487, G06F 21/00 (2013.01), опубл. 10.10.2013 г. Бюл. № 28) заключающийся в том, что определяют, разрешено ли для запуска, по меньшей мере, одно средство обновления на персональном компьютере, при этом если указанное средство обновления разрешено для запуска на персональном компьютере, то определяют доверенным, по меньшей мере, один новый объект, появившийся при работе процесса обновления, инициированного указанным средством обновления; передают, по меньшей мере, один новый объект, появившийся при работе процесса обновления, инициированного указанным средством обновления, по меньшей мере, одному средству установки для осуществления доступа к указанному объекту; определяют, разрешено ли для запуска указанное средство установки на персональном компьютере, при этом если указанное средство установки разрешено для запуска на персональном компьютере и средство установки осуществляет доступ, по меньшей мере, к одному новому объекту, который появился при работе разрешенного средства обновления, то, по меньшей мере, одно средство установки определяют доверенным на время.
Известен «Способ, устройство обновления и устройство для обновления» (патент РФ №2618937, G06F 9/44, G06F 9/445, опубл. 11.05.2017 г. Бюл. № 14) заключающийся в том, что получают файлы обновления, соответствующие множеству версий обновления, более новых, чем текущая версия, выбирают одну версию обновления, ближайшую к текущей версии, в качестве эталонной версии и обновляют текущую версию до эталонной версии, используя файл обновления, соответствующий эталонной версии, при корректной обстановке обновления, формируют подсказку об успехе обновления.
Наиболее близким по технической сущности и выполняемым функциям аналогом (прототипом) к заявленному является «Система и способ проверки целесообразности установки обновлений» (патент РФ №2571726, G06F 11/00 опубл. 20.12.2015 г. Бюл. № 35.) заключающийся в том, что получают по крайней мере одно обновление и информацию об уязвимостях, устраняемых этим обновлением, после чего формируют испытательный стенд и устанавливают на него обновление, проверяют корректность установки обновления, после чего тестируют его, в случае неработоспособности обновления осуществляют «откат» обновления до предыдущей версии, в случае работоспособности обновления устанавливают его на функционирующую компьютерную сеть.
Техническая проблема – низкая достоверность выявления недекларированных возможностей в получаемых обновлениях программного обеспечения сетевого оборудования, в связи с отсутствием контроля аномального поведения пользователя и сетевых соединений после установки обновлений программного обеспечения сетевого оборудования.
Технический результат – повышение достоверности выявления недекларированных возможностей в получаемых обновлениях программного обеспечения сетевого оборудования, за счет изменения порядка проверки полученных обновлений, использования испытательного стенда сетевого оборудования и изменения порядка функционирования системы обнаружения атак и системы защиты информации.
Техническая проблема решается за счет разработки способа защиты программного обеспечения от недекларированнных возможностей содержащихся в получаемых обновлениях, обеспечивающего оценку важности и критичности обновления программного обеспечения сетевого оборудования, создание испытательного стенда, изменение порядка проверки программного обеспечения, а также изменение порядка функционирования системы обнаружения атак и системы защиты информации на период отладки сетевого оборудования при установленном программном обеспечении.
Техническая проблема решается тем, что в способе защиты программного обеспечения от недекларированных возможностей содержащихся в получаемых обновлениях выполняется следующая последовательность действий, формируют испытательный стенд, после чего получают по крайней мере одно обновление, информацию об уязвимостях устраняемых этим обновлением и оценивают его критичность, затем инсталлируют на него обновление и проверяют корректность инсталляции обновления, после чего тестируют его, в случае неработоспособности обновления осуществляют деинсталляцию обновления до предыдущего состояния, в случае работоспособности обновления инсталлируют его на функционирующую систему и осуществляют функционирование системы, согласно изобретению дополнительно перед формированием испытательного стенда собирают статистику сетевых соединений и активности пользователей. После проверки корректности инсталляции обновления осуществляют проверку работоспособности обновления в различных режимах, затем анализируют систему с установленным обновлением с помощью сканера безопасности. В процессе функционирования системы с помощью системы обнаружения атак осуществляют анализ сетевых соединений и выявление аномалий. Если в процессе функционирования системы с помощью системы обнаружения атак выявлены аномалии, то разрывают аномальное соединение и осуществляют выявление источника аномалии. Если причиной аномального соединения является установленное программное обеспечение сетевого оборудования, то деинсталлируют данное программное обеспечение до предыдущей версии, после чего изменяют настройки системы защиты информации.
Перечисленная новая совокупность существенных признаков обеспечивает повышение достоверности выявления недекларированных возможностей в получаемых обновлениях программного обеспечения сетевого оборудования, за счет изменения порядка проверки полученных обновлений, использования испытательного стенда сетевого оборудования и изменения порядка функционирования системы обнаружения атак и системы защиты информации.
Результаты поиска известных решений в данной и смежной областях техники с целью выявления признаков, совпадающих с отличительными от прототипов признаками заявленного изобретения, показали, что они не следуют явным образом из уровня техники. Из определенного заявителем уровня техники не выявлена известность влияния предусматриваемых существенными признаками заявленного изобретения на достижение указанного технического результата. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностями признаков, тождественным всем признакам заявленного способа, отсутствуют. Следовательно, заявленное изобретение соответствует условию патентоспособности «новизна».
«Промышленная применимость» способа обусловлена наличием элементной базы, на основе которой могут быть выполнены устройства, реализующие данный способ с достижением указанного в изобретении результата.
Заявленный способ поясняется чертежами, на которых показано:
фиг. 1 - структурно-логическая последовательность функционирования способа защиты программного обеспечения от недекларированных возможностей содержащихся в получаемых обновлениях.
Заявленный способ поясняется структурно-логической последовательностью функционирования способа защиты программного обеспечения от недекларированных возможностей содержащихся в получаемых обновлениях (фиг.1), где в блоке 1 собирают статистику сетевых соединений [Система обнаружения атак «Форпост» [Электронный ресурс] URL: http://www.rnt.ru/ru/production/detail.php?ID=19]. Формируют профили стандартного поведения пользователей.
Профиль стандартного поведения пользователя – параметры, характеризующие правильное или допустимое поведение объекта наблюдения. При этом поведение характерное для одного пользователя может считаться аномальным для другого и наоборот. [М. Коломыцев, С. Носок Аудит аномального поведения пользователей баз данных приложениями [Электронный ресурс] URL: http://pandia.ru/text/77/395/26319.php].
В блоке 2 формируют испытательный стенд представляющий собой имитирующее инфраструктуру сетевое оборудование и (или) персональный компьютер пользователя подключенный к ним [процесс настройки маршрутизатора: Базовая настройка маршрутизатора Использование Cisco Configuration Professional. Электронный ресурс: http://www.cisco.com/cisco/web/support/RU/108/1089/1089854_basic-router-config-ccp-00.pdf]. Персональные компьютеры имеют типовую аппаратную часть и программное обеспечение с типовыми настройками пользователей компьютерной сети.
Компьютерная сеть (КС) – совокупность компьютеров, связанных каналами передачи информации, необходимого программного обеспечения и технических средств, предназначенных для организации распределённой обработки информации [Горкин А.П. Энциклопедия "Техника" (с иллюстрациями) Росмэн-Издат, Москва, 2006 с. 9 Мбит].
В блоке 3 осуществляют функционирование системы.
В блоке 4 проверяют время функционирования системы, если оно превышает заданное время, то способ завершает работу.
Как правило ПО автоматически уведомляет о появлении новых обновлений и предлагает их скачать, для чего в блоке 5 получают обновление с официального сайта разработчика ПО. Помимо этого, возможно использование сканеров безопасности компьютерной сети, которые после анализа способны выявить на недостающие в системе обновления. Отчет о результатах аудита содержит ссылки, по которым можно загрузить требуемые обновления [Сканер безопасности RedCheck [Электронный ресурс] URL: https://www.redcheck.ru/].
Далее по тексту под обновлением понимают отдельно выпускаемую часть ПО, используемую для устранения его ошибок в работе, изменения его функционала, интерфейса и т.д.. Примерами обновлений могут быть программные патчи (англ. patch), наборы обновлений (англ. service pack) и другие виды обновлений программного обеспечения (англ. software updates). Обновления создают для большинства элементов компьютерной сети. Существуют обновления драйверов устройств, отдельного ПО, операционной системы в целом.
В блоке 6 по заданным правилам проверяют степень критичности обновлений, например, если обновление устанавливается в ПО операционной системы или браузер, то оно критично, если обновления предназначено для текстовых редакторов, графических редакторов, приложений просмотра видеофайлов то оно не относится к критичному.
В блоке 7 инсталлируют обновление на испытательный стенд.
В блоке 8 проверяют корректность инсталляции полученного обновления. Инсталляция обновления считается корректной если получено сообщение от операционной системы или обновляемого программного обеспечения о корректной инсталляции обновления. Если получено сообщение о некорректной инсталляции обновления, то переходят к блоку 14 и осуществляют деинсталляцию обновления до предыдущего состояния.
Если обновление инсталлировано корректно (блок 9), то в блоке 10 осуществляют проверку работоспособности обновленного ПО в различных режимах (фаззинг) [Фаззинг, фаззить, фаззер: ищем уязвимости в программах, сетевых сервисах, драйверах [Электронный ресурс] URL: https://xakep.ru/2010/07/19/52726/]. Если обновление не работоспособно (блок 11), то переходят к блоку 14 где деинсталлируют обновление до предыдущей версии, в противном случае переходят к блоку 12 и осуществляют анализ системы сканером безопасности [Сканер безопасности RedCheck [Электронный ресурс] URL: https://www.redcheck.ru/]. Анализ сканером безопасности необходим для оценки влияния обновленного ПО на защищенность системы в целом, например, если обновление ПО вносит в него уязвимость.
Фаззинг (англ. fuzzing) – техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающая в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе. Фаззинг является разновидностью выборочного тестирования (англ. random testing), часто используемого для проверки проблем безопасности в программном обеспечении и компьютерных системах [Фаззинг [Электронный ресурс]: URL: https://ru.wikipedia.org/wiki/Фаззинг].
В случае обнаружения уязвимости или нарушения работоспособности ПО в одном из режимов (блок 13), администратором безопасности принимается решение о работоспособности обновления и инсталляции его в реально функционирующую систему (блок 15) или об деинсталляции обновления до предыдущего состояния (блок 14).
В случае принятия решения о деинсталляции обновления до предыдущего состояния (блок 14) система восстанавливается до исходного состояния и переходят к блоку 3, в противном случае инсталлируют обновление в реально функционирующую систему (блок 15).
После инсталляции обновления программного обеспечения (блок 15) осуществляют функционирование системы (блок 16). Одновременно с помощью СОА в блоке 18 осуществляют анализ сетевых соединений и выявление аномального поведения пользователей [Система обнаружения атак «Форпост» [Электронный ресурс] URL: http://www.rnt.ru/ru/production/detail.php?ID=19].
Аномальное поведение пользователя – поведение, когда наблюдаемая деятельность пользователя не соответствует ожидаемому режиму работы. Аномалии означают любую необычную деятельность, которая потенциально может указывать на атаку [Сидоров М. В. Аникеев И. Д. Обнаружение аномального поведения пользователя в операционной системе Windows на основе анализа работы с приложениями [Электронный ресурс] URL: https://cyberleninka.ru/article/n/obnaruzhenie-anomalnogo-povedeniya-polzovatelya-v-operatsionnoy-sisteme-windows-na-osnove-analiza-raboty-s-prilozheniyami].
В случае обнаружения аномального сетевого соединения (блок 19) с помощью СОА в блоке 20 это соединение разрывают [Руководство администратора системы обнаружения «Форпост» [Электронный ресурс] URL: http://www.rnt.ru/ru/production/detail.php?ID=19] и в блоке 21 выявляют источник аномалии.
Если в блоке 22 определено, что выявленную аномалию возможно устранить с помощью изменения настроек системы защиты информации, то в блоке 23 изменяют настройки СЗИ и продолжают дальнейшее функционирование компьютерной сети (блок 16). Например, если обновленное приложение устанавливает соединение и отправляет данные в сеть без оповещения пользователя и его разрешения, то возможно заблокировать это соединение с помощью изменения настроек системы защиты информации [Комплекс «Рубикон» [Электронный ресурс] URL: https://npo-echelon.ru/production/65/11342].
Система защиты информации – совокупность органов и (или) исполнителей, используемой ими техники защиты информации, а также объектов защиты информации, организованная и функционирующая по правилам и нормам, установленным соответствующими документами в области защиты информации [Защита информации. Основные термины и определения. ГОСТ Р 50922-2006 (утв. Приказом Ростехрегулирования от 27.12.2006 N 373-ст)].
Если выявленную аномалию не возможно устранить, то в блоке 14 производят деинсталляцию обновления до предыдущего состояния.
Расчёт эффективности заявленной системы проводился согласно коэффициента несоответствия Тэйла. Осуществлялась оценка точности прогноза выполненного по построенной модели [Е.Ю. Пискунов «Модификация коэффициента Тэйла». Электронный журнал «Известия Иркутской государственной экономической академии» №5, 2012 г.].
;
t
t
t
t
где P и A – соответственно предсказанное и фактическое (реализованное) изменение переменной. Коэффициент , когда все P = A (случай совершенного прогнозирования); , когда процесс прогнозирования приводит к той же среднеквадратической ошибке, что и экстраполяция неизменности приростов; , когда прогноз дает худшие результаты, чем предположение о неизменности исследуемого явления.
Достоинством коэффициента Тэйла является возможность использования при сопоставлении качества прогнозов, получаемых на основе различных методов и моделей.
Способ-прототип учитывает только период тестирования, среду тестирования и определяет целесообразность установки обновления таким образом предсказанные значения будут соответствовать фактическим только в этом случае и значение коэффициента Тэйла будет меньше единицы и стремиться к нулю:
Предлагаемый способ дополнительно оценивает сетевые соединения, выявляет аномалии, оценивает работоспособность обновления в различных режимах, анализируют систему с установленным обновлением с помощью сканера безопасности в данном случае коэффициент Тэйла для устройства-прототипа будет рассчитываться как:
Коэффициент Тэйла для предлагаемой системы (даже в случае несовершенного прогнозирования например, 8 из 9 значений) будет рассчитываться как:
Далее производим сравнение рассчитанных коэффициентов Тэйла для прототипа () и заявленной системы ()
Из произведенного сравнения рассчитанных коэффициентов Тэйла для прототипа () и заявленной системы (), следует вывод, что результаты прогнозирования заявленного способа достовернее отражают протекающие процессы.
На основании этого, следует вывод, что заявленный способ защиты программного обеспечения от недекларированных возможностей содержащихся в получаемых обновлениях, позволяет повысить достоверность выявления недекларированных возможностей в получаемых обновлениях программного обеспечения сетевого оборудования, за счет изменения порядка проверки полученных обновлений, использования испытательного стенда сетевого оборудования и изменения порядка функционирования системы обнаружения атак и системы защиты информации.