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

командные инъекции

Что такое командные инъекции?

Это атаки, которые сопровождаются вводом, выполнением произвольных команд в уязвимых приложениях для того, чтобы перехватить управление программным обеспечением (ПО) и получить доступ к данным. Атаки подобного вида осуществляются через формы ввода данных, cookie файлы, заголовки HTTP с последующим внедрением в системную оболочку. Это становится возможным, когда отсутствует контроль вводимых данных или он носит поверхностный характер.

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

  • Пароли, которые используются для управления ОС.

  • Сведения конфигурации ОС.

  • Код приложения в его исходной форме.

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

Как найти уязвимости вроде командных инъекций в приложении?

Для обнаружения уязвимостей и ошибок ПО прибегают к использованию методов статического и динамического анализа. В качестве ключевых тестов безопасности приложений рассматриваются:

1. SAST. Методика анализа ПО, связанная с поиском ошибок, уязвимостей и не требующая запуска самого приложения. Второе название этого способа тестирования – метод белого ящика. В ходе глубокой проверки анализу подвергается код ПО или его отдельные участки. Благодаря SAST можно добиться 100% покрытия проверки, а риск пропуска ошибок и уязвимостей снижается. Статический анализ также хорош тем, что подходит для проверки любых приложений. Для тестирования не требуется развертывания отдельных виртуальных сред, не нужны и большие вычислительные мощности, создание копий ПО перед тестом. Это делает SAST универсальным решением для любой заинтересованной компании независимо от ее масштабов, объемов IT-инфраструктуры. Помимо этого, методика статического анализа легко внедряется в цикл разработки приложений, позволяет вести этот процесс безопасно, контролируя изменения на каждой стадии создания ПО.

2. DAST. Методика анализа ПО, связанная с поиском ошибок, уязвимостей в среде развернутого и функционирующего приложения. В ходе теста анализатор подвергает проверке точки доступа по HTTP, выполняет имитацию атак с эксплуатацией типичных уязвимостей, моделирует поведение пользователей при работе с приложением. При проверке API сервиса происходит отправка проверочных запросов на сервер, а для получения результатов проводится сопоставление запросов и ответов. Для проведения динамического анализа не требуется исходный код приложения. Также DAST никак не привязан к виду индексных выражений, вычисляет значения для конкретного выражения и подходит для работы с косвенной индексацией, функциями. В итоге DAST позволяет увидеть полную и объективную картину тестирования, включая сценарии работы приложения в зависимости от текущего набора данных.

Помимо методов статического и динамического анализа при поиске command injection в приложениях используются узкоспециализированные тесты. Например, слепая эксплуатация инъекций с помощью функции «sleep» или файловая эксплуатация, направленная на проверку отдельного файла на сервере.

поиск уязвимостей

Автоматизация процессов поиска уязвимостей приложений

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

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

2. Отсутствия необходимости предоставлять исходный код приложения для проверки. Анализатор проведет бинарный анализ программного продукта, а также сделает проверку по ссылке, если приложение еще не установлено.

3. Предоставления детального отчета по всем обнаруженным проблемам, рекомендаций по настройке межсетевого экрана для веб-приложений (WAF). Пользователю не придется тратить время на оценку угроз по степени критичности и опасности. Достаточно будет выполнить предложенные рекомендации по устранению рисков безопасности или отказаться от использования приложения (если уровень угроз слишком велик).

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