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

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

Недекларированные возможности (НДВ) — функциональность приложения, не заявленная в документации или противоречащая обозначенной. Ее использование нередко приводит к нарушению целостности и защищенности обрабатываемых данных. Задача разработчиков ПО — обнаружить и ликвидировать проблемы еще на этапе создания программы. С этой целью применяются различные инструменты анализа безопасности, о которых мы расскажем в этой статье

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

В цикл безопасной разработки целесообразно включить четыре вида тестирований кода на безопасность:

1. SAST — статическое тестирование Static Application Security Testing для выявления уязвимостей и проблем в исходном коде. Его называют методом «белого ящика», оно предполагает погружение в структуру приложения и доступ к исходном коду. Такая проверка выполняется без развертывания программного продукта в рабочей среде, не требует больших вычислительных мощностей, обеспечивает практически 100% покрытие кода, легко интегрируется в процесс безопасной разработки ПО. Благодаря этим преимуществам и простоте использования SAST стал одним из самых популярных видов анализа.

2. DAST — динамический анализ Dynamic Application Security Testing, позволяющий протестировать готовое работающее ПО. Он реализуется путем имитации реальной атаки на программу, развернутую в рабочей среде. DAST относится к методам «черного ящика» — для его проведения не требуется глубокого погружения в структуру продукта.

3. SCA — средство выявления уязвимостей, возникающих в результате использования компонентов с открытым исходным кодом (open source). Проверка Software Composition Analysis позволяет обнаружить уязвимости, закладки, устаревшие фрагменты, проблемы с лицензированием, которые есть в сторонних компонентах. SCA обычно проводят на этапе разработки ПО, чтобы вовремя выявить уязвимости в используемых заимствованных компонентах и не допустить их в разрабатываемое ПО.

4. SCS — проверка безопасности цепочки поставок, которая позволяет отследить все этапы пути ПО – от его создания или покупки до применения в процессе разработки. Под цепочкой поставок понимают все процессы, происходящие с приложением, участие причастных лиц (создателей ПО, поставщиков компонентов, тестировщиков и т. д), используемые технологии и инструменты. Из-за этого использование сторонних компонентов может быть сопряжено с большим количеством рисков безопасности, которые позволяет выявлять Supply Chain Security.

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

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

Выявление угроз и уязвимостей с помощью Solar appScreener

Успешность мероприятий по выявлению, анализу и устранению уязвимостей во многом зависит от выбора инструмента. С учетом текущей активности злоумышленников и растущего количества угроз, связанных с уязвимостями в коде приложений, эффективнее всего использовать комплексные платформы, сочетающие возможности для проведения разных видов тестирований. Например, решение Solar appScreener включает статический анализ (SAST), динамический анализ (DAST), анализ состава ПО (SCA) и анализ цепочки поставок ПО (SCS). Рассмотрим, как в нем реализованы алгоритмы контроля безопасности ПО.

SAST

Выявление уязвимостей путем статического анализа в Solar appScreener происходит так:

  • Исходный код проходит через алгоритмы статического анализа внутри Solar appScreener.
  • В ходе проверки на исходный код транслируются известные уязвимости и НДВ.
  • Анализатор выдает подробный отчет об обнаруженных проблемах с экспертными рекомендациями по их устранению.

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

Solar appScreener может проводить SAST-анализ для выявления уязвимостей в готовых мобильных приложениях. Чтобы начать тестирование, достаточно вставить ссылку на приложение в одном из магазинов приложений. Анализатор восстановит исходный код и проверит его на наличие уязвимостей.

Еще одно преимущество использования Solar appScreener для SAST-анализа — минимизация ложноположительных срабатываний, которыми часто грешит данный вид тестирования. То есть анализатор сигнализирует о выявлении уязвимости, хотя по факту проблем нет. В Solar appScreener реализована технология Fuzzy Logic Engine, позволяющая избежать ложных сигналов, не снижающая при этом точность анализа.

DAST

Для запуска динамического тестирования в анализаторе Solar appScreener необходим только URL программы — исходный код не требуется.

Чтобы не спровоцировать нежелательные изменения в продукте во время проверки, DAST-тестирование рекомендуется проводить в специально развернутой среде или контуре разработчиков.

Выявление угроз и уязвимостей с помощью DAST в Solar appScreener происходит путем передачи на вход приложения заведомо неверных данных, чаще всего сгенерированных случайным образом. Дальнейший алгоритм тестирования зависит от выбранных инструментов анализа. В Solar appScreener их пять:

  • Инструменты фаззинга используются для проверки поведения приложения при осуществлении неожиданного входа. Такой метод подойдет для страниц с известными входными данными.
  • Традиционный сканер анализирует приложение при отсутствии ограниченных целей проверки.
  • Агрессивный сканер выявляет уязвимости в новых обнаруженных узлах.
  • Инструменты сканирования в активном режиме инициируют атаки в процессе проверки.
  • AJAX-сканер позволяет обращаться к сервисам без перезагрузки открытой страницы. Такой инструмент подходит для тестирования работы форм, с помощью которых пользователи совершают элементарные действия в приложении (например, форма регистрации, кнопка “Купить” и т.д).

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

SCA

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

  • В анализатор Solar appScreener загружается архив с исходным кодом программы или SBOM-файл.
  • Если данные будут загружены в виде архива, анализатор автоматически сформирует SBOM-файл для дальнейшего тестирования.
  • Модуль SCA-анализа проверит файл по доступным и собственным базам сторонних компонентов. Базы Solar appScreener регулярно обновляются и пополняются актуальными уязвимостями.
  • Анализатор соберет информацию по обнаруженным устаревшим или небезопасным фрагментам и оформит ее в детальный отчет.

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

SCS

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

Модуль SCS в платформе Solar appScreener анализирует каждый open source компонент и выставляет ему оценку доверия на основании восьми показателей.

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

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

Преимущества выявления уязвимостей с помощью Solar appScreener

Внедрение анализатора Solar appScreener в цикл безопасной разработки позволит:

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

Solar appScreener удобно встраивается в цикл разработки приложений и обеспечивает полноценный контроль безопасности ПО.

ЗАКЛЮЧЕНИЕ

Чтобы снизить риски выявления уязвимостей программного обеспечения после выхода продуктов на рынок и начала их использования, команды ИБ и разработчики должны позаботиться о защищенности приложений еще на этапе их создания. В этом поможет комплекс проверок, включающий такие виды анализа, как SAST, DAST, SCA, SCS. Такие инструменты есть в Solar appScreener — платформе для комплексной проверки безопасности ПО, поддерживающей тридцать шесть языков программирования. Это единственное на рынке российское решение, которое включает сразу четыре вида анализа кода в одном интерфейсе, а сам интерфейс удобен и понятен всем категориям пользователей – от разработчиков до сотрудников службы ИБ.

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

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

Zero Day уязвимость: что такое уязвимость нулевого дня

Zero Day уязвимость: что такое уязвимость нулевого дня

Узнать больше
White Box-тестирование: что это такое, и когда применяется

White Box-тестирование: что это такое, и когда применяется

Узнать больше
Cross Site Scripting: что такое XSS-атаки и как от них защититься

Cross Site Scripting: что такое XSS-атаки и как от них защититься

Узнать больше
Веб-приложения: как контролировать безопасность кода

Веб-приложения: как контролировать безопасность кода

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