Защита веб-приложений: какие ошибки допускают разработчики, способы их устранения

Защита веб-приложений: какие ошибки допускают разработчики, способы их устранения

Изображение: Bernd Dittrich (unsplash)

Человеку свойственно допускать ошибки, и в сфере разработки программного обеспечения они также неизбежны. Даже самые опытные специалисты могут допустить недочёты, которые впоследствии окажутся в рабочей версии продукта, доступной для пользователей (также называемой в профессиональном сообществе «прод»).

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

Появляются и новые вызовы – уязвимости, связанные с бизнес-логикой, IDOR (Insecure Direct Object References), утечкой чувствительных данных и особенностями API, отраженные в обновлениях списков OWASP Top 10 и OWASP API Top 10. Всё это результаты ошибок в разработке, которые могут стать лазейками для злоумышленников и поставить под угрозу безопасность данных и репутацию.

Почему ошибки выходят на «прод»

Даже при тщательном тестировании в процессе разработки некоторые ошибки могут остаться незамеченными. Причины могут быть разными:

  • человеческий фактор – разработчик мог случайно пропустить проверку ввода;
  • сложность проекта – невозможно проконтролировать абсолютно все детали и нюансы;
  • изменения требований – правки, которые вносятся в уже имеющийся код,
  • жесткие дедлайны – выпуск релиза до завершения тестирования.

Если ошибки попадают на «прод», они становятся потенциальными точками входа для злоумышленников. И в этот момент, когда надо срочно обеспечить защиту, в игру вступает Web Application Firewall (WAF), который может обнаружить и временно устранить такие уязвимости.

Как WAF помогает находить и исправлять ошибки

WAF анализирует входящие запросы к веб-ресурсу и сравнивает их с заранее определенными метриками, паттернами атак, а также с результатами анализа моделей поведения, объединенными в правила. Если запрос соответствует какому-либо из них, WAF либо блокирует его, либо отправляет предупреждение администратору системы.

Чтобы лучше понять, как исправить допущенные при разработке ошибки, рассмотрим каждый этап работы WAF отдельно:

1. Обнаружение аномалий

WAF отслеживает весь трафик, идущий к веб-приложению. Такой подход позволяет распознать необычное поведение, которое может указывать на ошибку разработчика или попытку атаки. Например, если кто-то попытается ввести SQL-код в форму поиска, WAF сразу же заметит эту активность и пресечет её.

2. Анализ ответов

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

3. Виртуальный патчинг

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

4. Дополнительные проверки

WAF поддерживают интеграцию с различными системами безопасности, что значительно усиливает защиту. Взаимодействие с SIEM позволяет централизовать сбор и анализ событий, установить зависимости между ними, снизить время реагирования на инциденты. А применение SAST и DAST инструментов автоматизирует создание защитных правил на основе результатов сканирований кода приложения.

5. Уведомления и отчеты

Фиксирование данных об уязвимостях и мерах по их устранению позволяют команде разработчиков оперативно реагировать на угрозы и вносить необходимые изменения в код. Для этого WAF хранит журналы событий, формирует на их основе подробные отчеты, а также моментально уведомляет о попытках атак и обнаруженных уязвимостях как в интерфейсе, так и в наиболее удобные для команды системы.

Заключение

Ошибки в программном обеспечении неизбежны, но с применением WAF можно значительно улучшить защиту веб-приложений и снизить риски, вызванные ошибками разработчиков.

Автор: Анастасия Травкина, младший системный аналитик.

Вебмониторэкс
Автор: Вебмониторэкс
Вебмониторэкс — российский вендор с 10+ летней историей разработки платформы для защиты веб-приложений, микросервисов и API от атак. Продукт внесен в Реестр российского программного обеспечения и проходит сертификационные испытания во ФСТЭК России. Вебмониторэкс используется для защиты ведущих финансовых и платежных систем, электронной коммерции и высоконагруженных веб-приложений. Помогает компаниям защитить бизнес от кибератак, взломов и утечек данных через веб-приложения.
Комментарии: