
Ложноположительное срабатывание (False Positive)
Узнать больше03.04.2025
Существует такое понятие, как унаследованный код. Часто о нем говорят в контексте рисков для проектов, заявляя о том, как важно уделять внимание безопасности ПО, в котором он используется. Искать уязвимости, недекларированные возможности и некорректно работающие функциональности помогут тестирования, выполненные с помощью специальных анализаторов — таких, как Solar appScreener. Давайте разбираться, в чем заключается контроль безопасности, как прийти к эффективной работе с унаследованным кодом.
Что такое унаследованный код
У унаследованного кода достаточно много определений. Кто-то называет его просто кодом без тестов, кто-то — кодом, полученным от кого-то другого. Фактически все определения верные.
Главные отличия унаследованного кода и сложности работы с ним:
Почему, несмотря на проблемы и риски, работа с унаследованным кодом продолжается? Все просто. В первую очередь из-за экономии времени и денег. Системы уже используются и выполняют свои функции, так зачем менять их на новые. Во-вторых, разработчики уже привыкли с ними работать и научились обходить проблемы. Особую сложность представляет тот факт, что замена или модернизация части унаследованного кода может привести к появлению новых ошибок в работе критически важных веб-приложений. При этом исправление потенциальных проблем требует значительных временных ресурсов, что создает дополнительный риск для бесперебойной работы организации.
В результате, несмотря на очевидные недостатки унаследованного кода, многие компании предпочитают продолжать его использование.
Ключевые риски, связанные с унаследованным кодом
Стоит отметить, что унаследованный код — это не всегда плохо. Иногда встречаются системы с полным комплектом сопроводительной документации и отличной архитектурой. Но статья посвящена скорее проблемным решениям, поэтому рассказываем о рисках в разрезе трех аспектов: безопасности, поддержки и производительности:
Так возможна ли эффективная работа с унаследованным кодом, если существуют такие риски? Да, если уделить внимание безопасности и грамотно подойти к тестированию решений.
В работе с унаследованным кодом огромное значение имеет слаженное взаимодействие разработчиков, аналитиков, тестировщиков и ИБ-специалистов. Эксперты должны быстро, эффективно и в связке друг с другом выполнять свои обязанности по оптимизации программ, контролю безопасности.
Инструменты для контроля безопасности унаследованного кода и их применение с помощью 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. Перед внедрением можно бесплатно протестировать ключевые возможности продукта.
Самые важные новости кибербезопасности у вас в почте
Выберите темы, на которые бы вам было интересно получать новости.
Для получения бесплатной консультации заполните форму ниже и отправьте заявку. Наш менеджер свяжется с вами в ближайшее время.