Виды сетевых угроз и интернет-атак: от чего и как защищать свой сайт

в 15:24, , рубрики: xss, информационная безопасность, Сетевые технологии

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

Динамика обнаружения уязвимостей веб-сайтов, источник osvbd.orgНеобходимость думать о сетевой безопасности почему-то считается правом только больших компаний, типа Badoo, Google и Google, Яндекс или Telegram, которые открыто объявляют конкурсы за нахождение уязвимостей и всеми способами поднимают безопасность своих продуктов, веб-приложений и сетевых инфраструктур. При этом подавляющее большинство существующих веб-систем содержат «дыры» различного характера (исследование за 2012 год от Positive Technologies, уязвимости средней степени риска содержат 90% систем).

Что такое сетевая угроза или сетевая уязвимость?

WASC (Web Application Security Consortium) выделял несколько базовых классов, каждый из которых содержит несколько групп, в общей сложности уже 50, распространенных уязвимостей, использование которых может нанести ущерб компании. Полная классификация выложена в виде WASC Thread Classification v2.0, и на русском языке есть перевод предыдущей версии от InfoSecurity — Классификация угроз безопасности Web-приложений, который будет использован за основу классификации и существенно дополнен.

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

Основные группы угроз безопасности сайтов

Недостаточная аутентификация при доступе к ресурсам

В эту группу угроз входят атаки на основе Подбора (Brute Force), Злоупотребление функционалом (Abuse of Functionality) и Предсказуемое расположение ресурсов (Predictable Resource Location). Основное отличие от недостаточной авторизации заключается в недостаточной проверке прав (или особенностей) уже авторизованного пользователя (например, обычный авторизованный пользователь может получить права администратора, просто зная адрес панели управления, если не производится достаточная проверка прав доступа).

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

Недостаточная авторизация

Авторизация
Сюда можно отнести атаки, направленные на легкость перебора реквизитов доступа или использование каких-либо ошибок при проверке доступа к системе. Кроме техник Подбора (Brute Force) сюда входит Угадывания доступа (Credential and Session Prediction) и Фиксация сессии (Session Fixation).

Защита от атак этой группы предполагает комплекс требований к надежной системе авторизации пользователей.

Подмена содержания (атаки на клиентов)

Сюда входят все техники изменить содержимое веб-сайта без какого-либо взаимодействия с сервером, обслуживающим запросы — т.е. угроза реализуется за счет браузера пользователя (но при этом обычно сам браузер не является «слабым звеном»: проблемы заключаются в фильтрации контента на стороне сервера) или промежуточного кэш-сервера. Виды атак: Подмена содержимого (Content Spoofing), Межсайтовые запросы (XSS, Cross-Site Scripting), Злоупотребление перенаправлениями (URL Redirector Abuse), Подделка межсайтовых запросов (Cross-Site Request Forgery), Расщепление HTTP-ответа (HTTP Response Splitting, Контрабанда HTTP-ответа (HTTP Response Smuggling), а также Обход маршрутизации (Routing Detour), Расщепление HTTP-запроса (HTTP Request Splitting) и Контрабанда HTTP-запроса (HTTP Request Smuggling).

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

Выполнение кода

Атаки на выполнение кода являются классическими примерами взлома сайта через уязвимости. Злоумышленник может выполнить свой код и получить доступ к хостингу, где расположен сайт, отправив определенным образом подготовленный запрос на сервер. Атаки: Переполнение буфера (Buffer Overflow), Форматирование строки (Format String), Целочисленное переполнение (Integer Overflows), LDAP внедрение (LDAP Injection), Mail внедрение (Mail Command Injection), Нулевой байт (Null Byte Injection), Выполнение команд ОС (OS Commanding), Исполнение внешнего файла (RFI, Remote File Inclusion), Внедрение SSI (SSI Injection), Внедрение SQL (SQL Injection), Внедрение XPath (XPath Injection), Внедрение XML (XML Injection), Внедрение XQuery (XQuery Injection) и Внедрение XXE (XML External Entities).

Не все из указанных типов атак могут касаться вашего сайта, но корректно они блокируются только на уровне WAF (Web Application Firewall) или фильтрации данных в самом веб-приложении.

Разглашение информации

Атаки этой группы не являются угрозой в чистом виде для самого сайта (поскольку сайт никак от них не страдает), но могут нанести вред бизнесу или использованы для проведения других типов атак. Виды: Отпечатки пальцев (Fingerprinting) и Обход директорий (Path Traversal)

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

Логические атаки

В этой группе отнесли все оставшиеся атаки, возможность которых заключается, в основном, в ограниченности серверных ресурсов. В частности, это Отказ в обслуживании (Denial of Service) и более точечные атаки — Злоупотребление SOAP (SOAP Array Abuse), Переполнение XML-атрибутов XML Attribute Blowup и Расширение XML-сущностей (XML Entity Expansion).

Защита от них только на уровне веб-приложений, либо блокировки подозрительных запросов (сетевое оборудование или веб-прокси). Но при появление новых видов точечных атак необходимо проводить аудит веб-приложений на предмет уязвимости им.

DDoS-атаки

DDoS атаки
Как должно быть понятно из классификации, DDoS-атака в профессиональном смысле — это всегда исчерпание ресурсов сервера тем или иным способом (вторая D — это Distributed, т.е. распределенная DoS атака). Другие методы (хотя и упомянуты в Википедии) напрямую к DDoS-атаке отношения не имеют, но представляют тот или иной вид уязвимости сайта. Там же в Википедии достаточно подробно изложены методы защиты, здесь их дублировать не буду.

Напоследок рекомендую к прочтению доклад QRator на тему защиты от DDoS и доклад Ростелекома об их методах защиты.

Автор: sunnybear

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js