Известный ИБ-специалист Ханно Бек (Hanno Böck) обнаружил уязвимость CVE-2017-9798, которой подвержены некоторые серверы Apache. Проблема получила имя Optionsbleed, по аналогии с Heartbleed, так как в данном случае атакующий тоже может вынудить уязвимый сервер ответить на запрос и сообщить при этом лишние данные. Бек отмечает, что проблема Optionsbleed куда менее опасна, чем ее именитая предшественница, так как веб-сервер Apache раскрывать лишь те данные, которые обрабатывает сам, но не содержимое памяти самой машины и других приложений.

Чтобы понять, как работает Optionsbleed , нужно знать, как функционирует веб-сервер. Когда клиент (к примеру, браузер) обращается к серверу с запросом на получение контента, обычно для этого используются GET или POST. Серверы Apache также поддерживают и другие методы запросов, PUT, PATCH, HEAD и так далее. Чтобы избежать ситуации, когда запрос клиента уходит «в пустоту», существует метод OPTIONS. Так, если клиент обращается к серверу с OPTIONS-запросом, сервер может ответить тем методом, который ему разрешен и поддерживается.

Бек решил проверить, что на OPTIONS-запрос отвечают различные серверы из первого миллиона самых популярных сайтов по версии Alexa. Он обнаружил, что 466 хостов отвечают на такие запросы весьма странно, серверы сообщили не только стандартный ответ Allow с перечислением доступных методов, но также прислали куски случайных данных. Это выглядело следующим образом:

Allow: ,GET,,,POST,OPTIONS,HEAD,,
Allow: POST,OPTIONS,,HEAD,:09:44 GMT
Allow: GET,HEAD,OPTIONS,,HEAD,,HEAD,,HEAD,, HEAD,,HEAD,,HEAD,,HEAD,POST,,HEAD,, HEAD,!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
Allow: GET,HEAD,OPTIONS,=write HTTP/1.0,HEAD,,HEAD,POST,,HEAD,TRACE

Самостоятельно специалист не сумел воспроизвести тот сценарий, который провоцировал утечку информации, поэтому он сообщил о проблеме инженерам Apache. Проведенное разработчиками расследование обнаружило ошибку в исходном коде Apache, для которой уже были выпущены патчи (для веток 2.4.x и 2.2.x).

Как выяснилось, Optionsbleed представляет опасность для небольшого процента серверов с определенными настройками. Проблема связана с опцией Limit в файле .htaccess. Когда настройки  .htaccess для определенной директории вступают в конфликт с настройками .htaccess для более высокоуровневой директории или с настройками самого сервера, Apache реагирует некорректно, в силу чего и происходит use-after-free утечка.

Интересно, что еще в 2014 году эту проблему описывали в своем докладе (PDF) специалисты университета Старого Доминиона, однако баг был устранен только сейчас, когда его «заново нашел» Бек.



2 комментария

  1. Il

    23.09.2017 at 14:44

    Апач шалит в последнее время

Оставить мнение