Спецпроекты

На страницу обзора
Безопасность на уровне кода: как уничтожить риски уязвимостей

Бизнес, работающий в областях комплексного обслуживания пользователей, сопровождения ИС и ИТ-инфраструктуры, всегда сталкивается с теми или иными угрозами безопасности. Чтобы снизить их количество, был создан программный продукт SafeERP Соde Security. Компания «Газинформсервис» рассказала CNews об этапах его создания и результатах внедрения в группе компаний нефтегазовой отрасли.

Определяем проблематику и ставим задачу

На сегодняшний день основной программной платформой для реализации информационно-управляющих систем (ИУС) в группе компаний являются решения компании SAP. С 2008 г. большинство систем разрабатывается на базе технологической платформы SAP NetWeaver Application Server.

Изначально при внедрении ИУС предполагалось использовать стандартные решения компании SAP с их изменением и формированием Z-объектов силами программистов подрядных организаций. На этапе приемки первых ИУС выяснилось, что самостоятельно разработанные модули для реализации бизнес-функций составляют значительное количество и измеряются сотнями, доходя до 90% от общего объема функционала. А количество строк разрабатываемого кода исчисляется миллионами. Разработка ИУС ведется во встроенной среде программирования АВАР, предоставляемой самой технологической платформой SAP NetWeaver Application Server. Но зачастую бывает, что разработчики ИУС не учитывают встроенные возможности программного обеспечения SAP, основные принципы и лучшие практики безопасного программирования. Это влечет за собой угрозу появления в программном коде уязвимостей, которые могут использоваться злоумышленниками для осуществления несанкционированных действий.

Основываясь на результатах приемки ИУС и анализе количества созданных и модифицированных модулей на языке программирования ABAP, была сформулирована задача по автоматизации процесса проверки исходного кода.

Переходим от решения к внедрению

Весь разрабатываемый программный код информационных систем автоматизации бизнес-процессов на платформе SAP NetWeaver должен соответствовать мировым стандартам и лучшим практикам безопасного программирования. Следовало учитывать все требования и рекомендации SAP в области информационной безопасности.

Минимальный набор типов уязвимостей, обнаружение которых требуется в программном коде АВАР, должен включать: неконтролируемое использование критичных системных команд, уязвимости типа backdoors, наличие пользовательских привилегий в программном коде. Сюда же входят: отсутствие проверки полномочий, динамическое выполнение команд, SQL инъекции, межсайтовый скриптинг (XSS) и силовой просмотр. Программный продукт SafeERP Code Security компании ООО «Газинформсервис», выбранный в качестве решения поставленной задачи, в полном объеме соответствует этим требованиям.

Поиск уязвимостей производится статическим методом анализа с использованием сигнатур, который определяет участки кода, с большой долей вероятности содержащие уязвимости. Механизм работы предполагает встраивание процесса проверки кода в транспортную систему на уровне проверки запросов с функцией блокировки переноса кода разработки, не прошедшего проверку.

В ходе своей работы программный продукт определяет в тексте программы фрагменты, содержащие уязвимости, и предрасположенные к ошибкам участки кода, требующие анализа на соответствие информационной безопасности. По результатам анализа кода для администратора информационной безопасности формируется отчет, содержащий статистическую информацию о количестве и типах выявленных уязвимостей. Кроме того, в отчет входят описания выявленных типов уязвимостей и рисков информационной безопасности, связанных с их реализацией, а также типовые рекомендации по их устранению. Функциональные возможности и качество продукта подтверждены сертификатами ФСТЭК России и SAP ICC. Представитель компании-заказчика пояснил, что анализ кода является одним из ключевых элементов эффективной системы обеспечения информационной безопасности в автоматизированных системах.

Целью анализа является своевременное выявление уязвимостей в программном коде ИУС, для исключения эксплуатации ПО, не описанным или не соответствующим документации порядком. В результате снижаются риски возможных нарушений конфиденциальности, доступности или целостности обрабатываемой информации.

Сергей Устенко, руководитель группы защиты ППО SAP «Газинформсервис», добавил: «Функционал проверки АВАР кода реализован на базе статического анализатора кода с сигнатурным методом анализа посредством обращения к серверам приложений SAP. Прямое обращение к коду системы происходит без выгрузки кода во внешнее средство контроля защищенности. SafeERP Code Security выполнен в виде отдельной транзакции SAP, исполняемой на центральной инстанции».

Финал: успешная реализация

При выполнении работ использование программного продукта SafeERP Code Security продемонстрировало результаты, которые позволили оценить качество кода, созданного подрядчиком. Для достижения гарантированного результата анализ кода ИУС группы компаний проводился в два этапа: первичная и повторная проверки.

При выборке в несколько миллионов строк кода первичный анализ выявил большое количество уязвимостей различных типов и уровней критичности. В среднем на каждые 200 строк кода была обнаружена одна уязвимость. Более 70% из них имели высокий уровень критичности. Оставшиеся распределились в долях 13% и 17% –средней и низкой соответственно.

Выявленные уязвимости были тщательно проанализированы на предмет актуальности и возможности эксплуатации. Все уязвимости, признанные актуальными, были устранены разработчиком ИУС. Помимо прочего, были установлены две некритичные уязвимости, которые располагались в программном коде, автоматически генерируемом программными средствами из состава платформы SAP NetWeaver. По результатам обнаружения этих уязвимостей было создано соответствующее обращение в службу технической поддержки SAP SE. Уязвимости устраняются компанией SAP SE в рамках выпуска обновлений.

Повторная проверка показала, что все перечисленные для исправления уязвимости были устранены. Однако она же выявила и ряд новых уязвимостей, появившихся в промежутке между проверками.

Причины их возникновения — постоянные изменения, которые вносятся в информационную систему на этапах тестирования бизнес-функционала. Перечень уязвимостей вошел в итоговый отчет работы вместе с рекомендациями по устранению. Идентификация и классификация уязвимостей проводилась в соответствии с рекомендациями БДУ ФСТЭК России и международными стандартами в области безопасной разработки: Basel II, BIZEC APP/11, EuroSOX, PCI DSS, SOX, CWE/SANS, OWASP.

По результатам внедрения решения можно утверждать, что проект реализован успешно. Работники подрядных организаций — разработчики кода и сотрудники эксплуатирующих организаций получили современный инструмент аудита кода разработок на языке АВАР, с возможностью выявления уязвимостей и выдачи рекомендаций по их устранению. Кроме того, функционал программного продукта SafeERP Code Security позволяет зафиксировать безопасное состояние программного кода, прошедшего проверку и обеспечить его неизменность при дальнейшем транспорте в продуктивную среду. В результате проделанной работы в ИУС группы компаний повысился уровень информационной безопасности.

Представитель компании-заказчика отметил, что результат анализа кода программным продуктом SafeERP Code Security удивил количеством найденных уязвимостей. Программисты разработчика ответственно отнеслись к требованиям и оперативно их устранили. При использовании программного продукта SafeERP Code Security, существенно повысился уровень информационной безопасности в информационных системах, процесс разработки нового функционала стал более безопасным.