Web14: Проблемы безопасности в протоколе HTTP

Web14: Проблемы безопасности в протоколе HTTP

В этой статье представлены некоторые проблемы безопасности протокола HTTP , поднятые в двух документах RFC 7230 и RFC 7231. Примеры в статье о конкретных ошибках взяты из OWASP.

1. Риски от промежуточных факторов

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

Запрос или ответ должен будет пройти через точки A, B и C. Они могут получить доступ к передаваемой конфиденциальной информации, например личной информации пользователей или организаций. Отсутствие внимания, уделяемого посредниками безопасности и конфиденциальности, может привести к широкому спектру потенциальных атак.

Разработчики и разработчики систем должны учитывать факторы конфиденциальности и безопасности в процессе проектирования, кодирования и развертывания системы.

Пользователи должны знать об опасностях использования ненадежных прокси или шлюзов.

2. Разделение ответов

Разделение ответов (также известное как внедрение CRLF) — популярный метод веб-эксплойтов. Злоумышленник отправляет закодированные данные в некоторых параметрах запроса, которые затем декодируются и повторяются в определенном поле заголовка ответа.

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

3. Запрос на контрабанду

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

Давайте рассмотрим следующий пример:

Предположим, запрос POST содержит в заголовке два поля «Content-length» с двумя разными значениями. Некоторые серверы отклонят этот запрос (IIS и Apache), а другие — нет. Например, SunONE W/S 6.1 сначала использует поле Content-length, а sunONE Proxy 3.6 — во вторую.

Предполагая, что SITE является DNS SunONE W/S, расположенным за прокси-сервером SunONE, на SunONE W/S находится файл яда.html. Вот как можно использовать подсказку HTTP-запроса на основе несогласованности обработки между двумя серверами:

Web14: Проблемы безопасности в протоколе HTTP

[Обратите внимание, что каждая строка заканчивается CRLF («»), кроме строки 10]

Давайте рассмотрим, что происходит, когда запрос отправляется на W/S через прокси-сервер. Сначала прокси проанализирует запрос из строк с 1 по 7 (синий) и обнаружит два поля Content-Length. Как упоминалось выше, он проигнорирует первое поле и поймет, что длина тела запроса составляет 44 байта. Поэтому он рассматривает данные из строк 8–10 как тело первого запроса (в строках 8–10 данные имеют длину ровно 44 байта). Затем прокси-сервер проанализирует строки с 11 по 14 (красные) как второй запрос клиента.

Теперь давайте посмотрим, как W/S интерпретирует приведенные выше данные, пересылаемые с прокси. В отличие от прокси, W/S будет использовать первое поле Content-Length и интерпретировать его следующим образом: первый запрос не имеет тела, а второй запрос начинается со строки 8 (обратите внимание, что W/S будет анализировать, начиная со строки 11, как значение месторождения Бла).

Далее давайте посмотрим, как ответ возвращается клиенту. Запрос, который понимает W/S, — это «POST/foobar.html» (из строки 1) и «GET /poison.html» (из строки 8), поэтому он отправит клиенту 2 ответа с содержимым страницы foobar. html и яд.html. Прокси понимает, что эти 2 ответа соответствуют 2 запросам: «POST/foobar.html» (из строки 1) и «GET /page_to_poison.html» (строка 11). Прокси-сервер будет кэшировать содержимое страницы Poison.html, соответствующее URL-адресу «page_to_poison.html» (отравление кэша). Оттуда, когда клиент запрашивает «page_to_poison.html», он получит содержимое страницы Poison.html.

4. Атака по пути к файлу

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

Например, UNIX, Microsoft Windows и некоторые другие операционные системы используют «..» в качестве элемента пути для обозначения каталога на один уровень выше текущего файла/каталога. Без надлежащего контроля ввода и авторизации доступ к конфиденциальным файлам/папкам системы можно получить путем ввода путей, указывающих на эти файлы/папки.

5. Типы атак: внедрение команд, внедрение кода, внедрение запроса.

[Веб-серверы часто используют параметры в URI в качестве входных данных для выполнения системных команд и запросов к базе данных. Однако данным, полученным в запросе, не всегда можно доверять. Злоумышленник может создавать и изменять компоненты запроса (например, методы, поля в заголовке, теле...), выполнять системные команды, запрашивать базу данных...

Например, SQL-инъекция — это распространенная атака, при которой веб-сервер получает параметры в URI, которые являются частью SQL-запроса. Таким образом, злоумышленник может обманом заставить веб-сервер выполнить незаконные SQL-запросы, чтобы украсть или саботировать базу данных.
Как правило, данные, предоставленные пользователями, не должны использоваться непосредственно для выполнения операций на сервере. Эти данные должны пройти через фильтры, которые определяют, что действительно, а что нет, тем самым удаляя ненужные данные.

6. Раскрытие личной информации

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

7. Раскрытие конфиденциальной информации в URI

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

Избегайте использования метода GET для отправки личной информации на сервер, поскольку она будет отображаться в URI. Вместо этого используйте метод POST.

8. Раскрытие информации об используемом программном обеспечении

Поля User-Agent, Via, Server в заголовке обычно предоставляют информацию о программном обеспечении, используемом отправителем. Теоретически это позволяет злоумышленникам легче использовать известные уязвимости в этом программном обеспечении.


Как убрать уведомление о запросе на авторские права в правом углу экрана в Windows 10

Как убрать уведомление о запросе на авторские права в правом углу экрана в Windows 10

Вы видите уведомление об активации Windows 10 в правом углу экрана? В этой статье вы узнаете, как удалить уведомление о запросе на авторские права в Windows 10.

Инструкция от А-Я как установить Windows 10 сборка 14393.222

Инструкция от А-Я как установить Windows 10 сборка 14393.222

Недавно Microsoft выпустила последнее накопительное обновление для пользователей ПК с Windows 10 под названием Build 14393.222. Это обновление, выпущенное для Windows 10, в основном исправляет ошибки на основе отзывов пользователей и повышает производительность операционной системы.

Защитите свою компьютерную сеть с помощью хоста Bastion всего за 3 шага

Защитите свою компьютерную сеть с помощью хоста Bastion всего за 3 шага

Есть ли в вашей локальной сети компьютеры, которым требуется внешний доступ? Использование хоста-бастиона в качестве привратника для вашей сети может быть хорошим решением.

Как создать клавишу Windows, если ваша клавиатура недоступна

Как создать клавишу Windows, если ваша клавиатура недоступна

Если вы предпочитаете использовать старую классическую клавиатуру, например IBM Model M, на которой нет физической клавиши Windows, есть простой способ добавить ее, позаимствовав клавишу, которую вы не часто используете.

3 способа быстро очистить все журналы событий в Windows 10

3 способа быстро очистить все журналы событий в Windows 10

Иногда вам может потребоваться удалить все старые журналы событий сразу. В этом руководстве Quantrimang.com покажет вам 3 способа быстрого удаления всех журналов событий в средстве просмотра событий Windows 10.

Методы поддельного IP помогают вам получить анонимный доступ

Методы поддельного IP помогают вам получить анонимный доступ

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

Как создать режим прозрачного фона в Windows 10

Как создать режим прозрачного фона в Windows 10

WindowTop — это инструмент, который позволяет затемнять все окна приложений и программ, запущенных на компьютерах с Windows 10. Или вы можете использовать интерфейс с темным фоном в Windows.

Как отключить языковую панель на панели задач Windows 8

Как отключить языковую панель на панели задач Windows 8

Языковая панель в Windows 8 — это миниатюрная языковая панель инструментов, предназначенная для автоматического отображения на экране рабочего стола. Однако многие люди хотят скрыть эту языковую панель на панели задач.

Как настроить WEP, WPA, WPA2 для роутера Linksys

Как настроить WEP, WPA, WPA2 для роутера Linksys

Беспроводное подключение сегодня является необходимостью, и поэтому безопасность беспроводной сети необходима для обеспечения безопасности вашей внутренней сети.

Советы по оптимизации скорости интернет-соединения от Linksys

Советы по оптимизации скорости интернет-соединения от Linksys

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