Хакер #305. Многошаговые SQL-инъекции
Еще в 2021 году ИБ-исследователь Джошуа Роджерс (Joshua Rogers) выявил 55 уязвимостей в Squid, популярном кеширующем прокси-сервере с отрытым исходным кодом. По словам эксперта, большая часть этих проблем не исправлена до сих пор, а большинству даже не присвоены идентификаторы CVE.
Squid, поддерживающий HTTP, HTTPS, FTP и не только, широко используется интернет-провайдерами и операторами сайтов. Как пишут его разработчики: «Многие из вас используют Squid, даже не подозревая об этом! Некоторые компании встраивают Squid в домашние или офисные брандмауэры, другие используют Squid в масштабных веб-прокси для ускорения широкополосного и коммутируемого доступа в интернет. Squid часто применяется в архитектурах доставки контента для доставки статического и потокового видео и аудио пользователям по всему миру».
В феврале 2021 года Джошуа Роджерс провел аудит безопасности Squid и обнаружил в исходном коде проекта 55 различных ошибок. Как теперь сообщает эксперт, только 20 из этих уязвимостей были исправлены к настоящему времени, а для остальных 35 до сих пор нет патчей или иных способов защиты.
На своем сайте Роджерс перечисляет 45 уязвимостей в Squid, и в список входят проблемы типа use-after-free, утечки памяти, отравление кеша и прочие дефекты в различных компонентах. Эксперт отмечает, что оставшиеся десять багов — это «результат схожих, но других способов воспроизведения [тех же] уязвимостей». В итоге многие из обнаруженных проблем могут привести к сбою, а некоторые могут использоваться и для выполнения произвольного кода.
Роджерс обнародовал не только технические подробности об уязвимостях, но и PoC-эксплоиты для них на GitHub. Кроме того, на его сайте также перечислены 13 дополнительных проблем в коде, которые он считает обычными ошибками, не имеющими отношения к безопасности.
По словам исследователя, все уязвимости он обнаружил в коде Squid-5.0.5 (новейшая версия Squid сейчас — это 6.3) с помощью фаззинга, ручной проверки кода и статического анализа. Он уверяет, что провел тестирование практически всех возможных компонентов, включая «прямое проксирование, обратное проксирование, всех поддерживаемые протоколы (http, https, https intercept, urn, whois, gopher, ftp), ответы, запросы, "помощников", DNS, ICAP, ESI, кеширование», при этом использовав все возможные конфигурации.
Роджерс признает, что сопровождающие Squid, как и большинство опенсорс-разработчиков, это в основном добровольцы, которые могут попросту не иметь возможностей для быстрого устранения проблем.
«Команда Squid Team была полезна и оказывала поддержку, когда я сообщал об этих проблемах. Однако они испытывают острую нехватку кадров, и у них просто нет ресурсов для устранения обнаруженных уязвимостей. Если долбить их требованиями об устранении проблем, толку от этого не будет», — пишет специалист.
Согласно подсчетам Роджерса, на сегодня в интернете доступно более 2,5 млн экземпляров Squid, и он рекомендует всем ознакомиться со списком обнаруженных уязвимостей и подробностями об их возможной эксплуатации.
«Вы сами должны оценить, является ли Squid подходящим решением для вашей системы», — резюмировал ИБ-эксперт.