20 сентября 2023

Статья 1 «Уязвимости веб-приложений»

Онлайн курс: Вебмониторэкс Getting Started

Содержание

Введение

Приветствуем вас на странице курса «Вебмониторэкс Getting Started», посвящённого продукту, помогающему компаниям защитить бизнес от кибератак, взломов и утечек данных через веб-приложения.

В первой статье цикла вы узнаете о наиболее важном аспекте в информационной безопасности: уязвимости веб-приложений.

В настоящий момент у каждой уважающей себя компании есть сайт. Но далеко не каждый такой ресурс требует использования дополнительных средств защиты. В связи с чем возникает вопрос: какой сайт будет являться полноценным веб-приложением, а какой — нет? Что нужно защищать, а за чем можно не приглядывать?

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

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

Второй вариант — это когда сайт компании динамический, с большим количеством различных функций и используемых технологий. Это может быть и интернет-магазин с функцией личных кабинетов покупателей и возможностью оплаты. Либо корпоративный справочник, опубликованный в сети, или CRM системы, имеющие доступ из интернета. Также это могут быть почтовые системы с web-интерфейсом для пользователей (классический пример — OutlookWebAccess или просто OWA).
Итого: примером может являться такой ресурс, у которого есть функционал личных кабинетов, хранения информации о пользователя, функционал оплаты и.т.п.

Перечисленные примеры сайтов являются крайне технологичными, из-за чего и появляется огромный простор для ошибок разработчиков, которыми смогут пользоваться злоумышленники. Именно такие сайты и стоит называть веб-приложениями. Эти ресурсы часто располагаются в инфраструктуре компании и являются «входными воротами» в периметр компании для злоумышленников. Получив доступ к серверу, на котором располагается сайт, злоумышленник сможет развить свою атаку и скомпрометировать всю инфраструктуру компании.

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

Для защиты от этого вида угроз используются решения класса WAF: Web Application Firewall.

Web Application Firewall

Фактически WAF — это межсетевой экран, работающий на прикладном уровне модели OSI. Иногда их могут называть L7 фаерволлами.
Эти устройства защищают веб-приложения методом анализа трафика HTTP/HTTPS и семантики XML/SOAP. Для осуществления своих функций они должны работать как обратные прокси-сервера и по каким-то признакам определять, что в запросе есть элементы атаки.

Классификация OWASP

А с какими именно атаками сталкиваются веб-приложения? От чего нужно их защищать? Есть ли классификатор таких угроз?
В 2001 году двумя энтузиастами — Марком Керфи и Дэннисом Грувзом был создан некоммерческий проект Open Web Application Security Project (OWASP).

Сообщество OWASP включает в себя корпорации, образовательные организации и частных лиц со всего мира. Сообщество работает над созданием статей, учебных пособий, документации, инструментов и технологий, находящихся в свободном доступе. Сайт российской ячейки организации находится по адресу: owasp.org/www-chapter-moscow/. В рамках этого проекта была проведена классификация уязвимостей веб-приложений, получившая название OWASP TOP-10.

Далее мы рассмотрим, что из себя представляет эта классификация, и отдельно пройдемся по ключевым элементам:
В классификации OWASP TOP 10 будут использоваться индексы А1, А2… А10.
На сегодняшний день существует три варианта классификации. По версии 2013 и 2017 и 2021 годов.

В рамках этой статьи мы будем рассматривать последнюю редакцию классификации от 2021 года.
Именно в ней отражены угрозы, с которыми веб-приложения сталкиваются сегодня. На рисунке можно увидеть, какие именно изменения произошли в классификации:
Чем выше позиция тем критичнее считается категория

Разберём каждую категорию отдельно:
A01:2021-Broken Access Control: нарушение контроля доступа
Как видно по рисунку выше, эта категория существовала и раньше. Но в современной версии классификации этот тип уязвимостей является самым критичным. Выводы были сделаны по оценкам экспертного сообщества и по результатам опросов.
A02:2021-Cryptographic Failures: ошибки криптографии
В предыдущих версиях классификации категория носила название «Утечка чувствительных данных» и располагалась на пункт ниже. В современных реалиях она занимает второе место в классификации.
A03:2021-Injection: иньекции
Ранее это был самый распространённый и опасный вид уязвимостей. В двух предыдущих редакциях он занимал первое место. По всей видимости, опасность осознали и приняли меры по сокращению ошибок, ведущих к данной уязвимости. Так же в эту категорию теперь входит межсайтинговый скриптинг, он же XSS.
A04:2021-Insecure Design: небезопасный дизайн
Это новичок в классификации OWASP. В основу категории входят угрозы, связанные с недостатками при проектировании приложения. Её появление обусловлено высокой сложностью современных веб-приложений. Аспекты безопасности теперь нужно рассматривать при проектировании приложения, чтобы в архитектуре не было ошибок, приводящих к его компрометации.
A05:2021-Security Misconfiguration: ошибки конфигурации
В этой категории описаны уязвимости, которые появились не в самом коде приложения, а в его окружении. В настройках сервера, подключаемых библиотек и базах данных. Эта категория также поднялась в классификаторе на пункт выше. И не удивительно: очевидно, это связано с распространением микросервисных архитектур. Серверных конфигураций стало больше уязвимости и уровень риска выше. Внедрение кода через XMLтеперь входит в эту категорию
A06:2021-Vulnerable and Outdated Components: уязвимые и устаревшие компоненты
Категорию немного переименовали и подняли в рейтинге на 6-е место. Из названия понятно, какие угрозы имеются ввиду. Ключевой вывод: ПО необходимо своевременно обновлять
A07:2021-Identification and Authentication Failures: ошибки идентификации и аутентификации
Эта категория ранее называлась Broken Authentication и занимала 2-е место в классификации. Согласно исследованиям OWASP, увеличение стандартизированных систем способствует значительному уменьшению некорректной аутентификации. То есть сессионные куки администраторов стали красть гораздо реже
A08:2021-Software and Data Integrity Failures: нарушение целостности данных и ПО
Это новая категория, в которую входят угрозы, связанные с обновлениями программного обеспечения, критическими данными и CI/CD конвейерами. Без проверки на целостность.
A09:2021-Security Logging and Monitoring Failures: сбой в системах мониторинга и журналирования событий
Эта категория раньше находилась на последнем месте классификатора, но по результатам последних исследований и опросов было принято решение поднять её на один пункт выше. Теперь она занимает 9-е место. По-сути, угрозы, входящие в данную категорию, не могут влиять на компрометацию и взлом приложения. Но если подобные изъяны присутствуют в ваших приложениях, это может привести к тому, что вы пропустите более серьёзные попытки атак на приложение.
A10:2021-Server-Side Request Forgery: подделка запросов со стороны сервера
Замыкает классификатор новая категория, которой ранее не было в классификаторе. По результатам опросов и исследований, данные угрозы проявляются не часто и ещё реже приводят к каким либо серьёзным последствиям.
С подробным описанием и примерами уязвимостей вы можете подробнее ознакомиться на сайте https://owasp.org. Целью данной статьи было показать, на какие угрозы рассчитаны современные WAF- решения.

OWASP top 10 — это необходимый минимум, с которыми должен уметь работать любой WAF на сегодняшний день.

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