Тестирование приложений на безопасность
AST — это процесс автоматизированного анализа исходного кода, байт-кода или бинарного кода приложения на наличие уязвимостей безопасности без его выполнения в рабочей среде. Создан для того, чтобы максимально повысить уровень защищённости приложений, выявить и устранить уязвимости и недекларированные возможности, ускорить выпуск надёжных программных продуктов. Применяется в рамках стратегии безопасной разработки DevSecOps.
Зачем нужно AST
Современные приложения в среднем требуют всё большего количества кода. Это делает его проверку на безопасность вручную попросту невозможной.
Из-за использования компонентов с открытым исходным кодом количество уязвимостей в приложениях также растёт. В ходе исследования ГК «Солар» в исходном коде 42% изученных приложений удалось обнаружить хотя бы одну уязвимость высокого уровня критичности. Использование AST до выхода приложения и после его официального релиза значительно уменьшает риск эксплуатации таких проблем безопасности потенциальными злоумышленниками.
Виды AST
- Статический анализ (SAST, Static Application Security Testing). Это проверка кода «в покое» на этапе разработки.
- DAST — динамическое сканирование с запуском программы в специально смоделированной рабочей среде, а также анализ компонентного состава ПО на предмет проверки фрагментов с открытым исходным кодом (SCA).
- Supply Chain Security (SCS) — исследование цепочки поставок. Здесь проверке подвергается цепочка поставок (все процессы, происходящие с программным продуктом). Благодаря этим показателям можно обнаружить потенциально опасные библиотеки, спрогнозировать уязвимости, которые не были обнаружены на момент сканирования, но могут появиться.
Современные инструменты безопасной разработки часто сочетают в себе несколько видов сканирования. Именно такой подход реализован в Solar appScreener.
Что анализирует AST
Принципы DevSecOps требуют применения тестирования приложений на безопасность к любому стороннему компоненту, используемому при разработке приложения. Инструмент анализирует его исходный код в поисках уязвимостей и проблем с лицензиями. Лишь после тестирования можно с уверенностью сказать, что этот компонент безопасен для использования.
Анализу рекомендуется подвергать и код, собственноручно написанный разработчиком или сгенерированный при помощи ИИ. В этом случае тестирование выявляет логические ошибки, а также допущенные из-за человеческого фактора неточности.
Итогом сканирования становится отчёт по найденным уязвимостям. В результате разработчики могут быстрее исправить их.
Как использовать AST в безопасной разработке
Современное тестирование приложений на безопасность основано на нескольких принципах:
- Left shift или «сдвиг влево» подразумевает начало проверок ещё до выпуска приложения — на этапе разработки.
- Автоматизация, то есть встраивание непрерывного сканирования в конвейер CI/CD обеспечивает быстрый поиск уязвимостей как в процессе разработки, так и после выпуска приложений.
- Раннее выявление уязвимых сторонних библиотек с помощью анализа компонентов ПО (SCA).
Использование AST позволяет команде разработки своими силами обеспечивать безопасность приложения как на ранних этапах, так и после выпуска.