Получить консультацию по Solar appScreener

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

Что такое унаследованный код

У унаследованного кода достаточно много определений. Кто-то называет его просто кодом без тестов, кто-то — кодом, полученным от кого-то другого. Фактически все определения верные.

Главные отличия унаследованного кода и сложности работы с ним:

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

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

В результате, несмотря на очевидные недостатки унаследованного кода, многие компании предпочитают продолжать его использование.

риски связанные с унаследованным кодом

Ключевые риски, связанные с унаследованным кодом

Стоит отметить, что унаследованный код — это не всегда плохо. Иногда встречаются системы с полным комплектом сопроводительной документации и отличной архитектурой. Но статья посвящена скорее проблемным решениям, поэтому рассказываем о рисках в разрезе трех аспектов: безопасности, поддержки и производительности:

  • Безопасность. Унаследованный код может стать источником самых часто встречающихся уязвимостей, входящих в OWASP TOP 10 и других менее популярных уязвимостей. Эти слабые места могут обнаружить злоумышленники и проэксплуатировать для атак на веб-приложения.
  • Поддержка и масштабируемость. Из-за того, что код разрабатывался давно, его сложно дополнять новыми функциями и адаптировать под задачи бизнеса.
  • Производительность. Некоторые веб-приложения из-за устаревших архитектурных решений часто грешат медленной работой.

Так возможна ли эффективная работа с унаследованным кодом, если существуют такие риски? Да, если уделить внимание безопасности и грамотно подойти к тестированию решений.

В работе с унаследованным кодом огромное значение имеет слаженное взаимодействие разработчиков, аналитиков, тестировщиков и ИБ-специалистов. Эксперты должны быстро, эффективно и в связке друг с другом выполнять свои обязанности по оптимизации программ, контролю безопасности.

инструменты для контроля безопасности унаследованного кода

Инструменты для контроля безопасности унаследованного кода и их применение с помощью Solar appScreener

Всесторонне контролировать безопасность программного обеспечения можно с помощью комплекса тестирований: Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), Software Composition Analysis (SCA), анализа лицензионных рисков и Supply Chain Security (SCS). Рассказываем подробнее о каждом виде проверки.

SAST

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

Какие еще преимущества статического анализа делают его главным инструментом для контроля безопасности унаследованного кода:

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

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

У SAST есть и объективные минусы. Первый — необходимость доступа к исходному коду. Но в случае с унаследованным кодом доступ есть не всегда. С помощью анализатора Solar appScreener можно проверять и бинарный код. Для анализа достаточно ссылки на программу. Второй минус SAST — вероятность ложных срабатываний False Positive. Чтобы нивелировать эту проблему, в Solar appScreener реализована технология Fuzzy Logic Engine.

DAST

Как мы уже упоминали, работа с унаследованным кодом подразумевает определенные риски не только из-за уязвимостей, но и из-за некорректной работы некоторых функций. Чтобы увидеть проблемы, необходимо посмотреть, как программа ведет себя в рабочей среде. В этом как раз и поможет динамическое тестирование. В рамках такого анализа имитируются реальные атаки на ПО, исследуется отклик программы на пользовательские действия.

Чтобы провести DAST, необходимо запустить ПО. Реальную рабочую среду использовать опасно, поскольку в этом случае пользовательские данные окажутся под угрозой утечки. Поэтому нужно разворачивать тестовую, максимально приближенную к реальной.

Преимущества DAST для проверки унаследованного кода:

  • Тестирование без доступа к исходному коду и глубокого знания архитектуры программы.
  • Возможность обнаружить проблемы, которые проявляют себя только при эксплуатации.
  • Отсутствие ложных срабатываний.
  • Выбор характера и интенсивности атаки.

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

Чтобы выявить максимум уязвимостей, следует комбинировать (по возможности) SAST и DAST. В коррелированный отчет по результатам проверок будут включены перечень обнаруженных брешей безопасности и рекомендации по повышению уровня защищенности ПО.

OSA

Open Source Analysis (OSA) — общий модуль в Solar appScreener, объединяющий технологии SCA, SCS и анализа лицензионных рисков для контроля безопасности открытых компонентов Open Source, которые используются во многих программах. Их обязательно нужно проверять на наличие уязвимостей и проблем с лицензированием. В этом поможет Software Composition Analysis (SCA) — анализ состава ПО. Он заключается в сканировании программы с целью выявить все заимствованные компоненты и убедиться в их безопасности.

Преимущества такого анализа унаследованного кода в том, что можно обнаружить:

  • Программные закладки в сторонних библиотеках.
  • Устаревшие и проблемные лицензии.
  • Заведомо опасные фрагменты.

В процессе SCA-тестирования анализатор «прогоняет» все обнаруженные заимствованные компоненты по базам уязвимостей. Если использовать Solar appScreener, можно рассчитывать на более детальную проверку, поскольку платформа применяет не только общедоступные базы, но и собственные от экспертов ГК «Солар». После детального анализа Open Source-фрагментов анализатор выдает подробный отчет с перечнем обнаруженных проблем.

Если можно восстановить цепочку поставок (путь системы со старта разработки до попадания к конечному потребителю), целесообразно провести анализ SCS. Он играет важную роль в безопасной работе с унаследованным кодом, поскольку позволяет спрогнозировать риски Supply Chain-атак (атак на какое-либо звено цепочки поставок).

Анализатор Solar appScreener проверяет все звенья цепочки поставок: действия разработчиков ПО и других причастных лиц, применяемые технологии, заимствованные компоненты. Анализ выполняется на основе метрик, среди которых: авторский состав, дата выпуска компонентов, заинтересованность в безопасности продукта, первые версии, общее количество проектов и др.

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

ЗАКЛЮЧЕНИЕ

Можно ли выстроить эффективную работу с унаследованным кодом, несмотря на риски? Да, если внедрить мониторинг и контроль безопасности. Важно периодически анализировать унаследованный код с применением зарекомендовавших себя инструментов: SAST, DAST и OSA. Все эти виды анализа удобно проводить с помощью одного анализатора для комплексного контроля безопасности — Solar appScreener. Перед внедрением можно бесплатно протестировать ключевые возможности продукта.

ДРУГИЕ СТАТЬИ ПРОДУКТА

Еще больше о наших возможностях

Application Security (AppSec): комплексная безопасность разработки приложений

Application Security (AppSec): комплексная безопасность разработки приложений

Узнать больше