Введение
Тип прокси-сервера
В компьютерных сетях обратный прокси-сервер, или суррогатный сервер, – это прокси-сервер, который для любого клиента выглядит как обычный веб-сервер, но на самом деле является лишь посредником, перенаправляющим запросы клиента на один или несколько обычных веб-серверов. Обратные прокси помогают повысить масштабируемость, производительность, отказоустойчивость и безопасность, но также сопряжены с определенными рисками. Компании, управляющие веб-серверами, часто настраивают обратные прокси для упрощения взаимодействия между браузером пользователя в Интернете и веб-серверами. Важным преимуществом является то, что веб-серверы могут быть скрыты за брандмауэром во внутренней сети компании, и только обратный прокси должен быть непосредственно доступен из Интернета. Обратные прокси-серверы реализованы в популярных веб-серверах с открытым исходным кодом, таких как Apache, Nginx и Caddy. Выделенные обратные прокси-серверы, такие как программное обеспечение с открытым исходным кодом HAProxy и Squid, используются одними из крупнейших веб-сайтов в Интернете. Обратный прокси может отслеживать все IP-адреса, отправляющие запросы через него, а также читать и изменять любой незашифрованный трафик, что создает риск регистрации паролей или внедрения вредоносного ПО в случае компрометации злоумышленником. Обратные прокси отличаются от прямых (forward) прокси, которые используются, когда клиент ограничен частной внутренней сетью и обращается к прямому прокси для получения ресурсов из общедоступного Интернета.
Применение
Крупные веб-сайты и сети доставки контента используют обратные прокси-серверы, а также другие методы для балансировки нагрузки между внутренними серверами. Обратные прокси могут хранить кэш статического контента, что дополнительно снижает нагрузку на эти внутренние серверы и внутреннюю сеть. Также распространено добавление обратными прокси таких функций, как сжатие или TLS-шифрование, в канал связи между клиентом и обратным прокси. Обратные прокси могут анализировать HTTP-заголовки, что, например, позволяет им представлять один IP-адрес в Интернете, перенаправляя запросы на различные внутренние серверы на основе URL HTTP-запроса. Обратные прокси могут скрывать существование и характеристики серверов-источников. Это может затруднить определение фактического местоположения сервера/сайта-источника и, например, усложнить инициирование юридических действий, таких как удаление контента или блокировка доступа к веб-сайту, поскольку IP-адрес веб-сайта может быть не сразу виден. Кроме того, обратный прокси может находиться в другой юрисдикции с иными правовыми требованиями, что еще больше усложняет процесс удаления. Функции веб-брандмауэра (WAF) могут защищать от распространенных веб-атак, таких как атака типа «отказ в обслуживании» (DoS) или распределенная атака типа «отказ в обслуживании» (DDoS). Без обратного прокси удаление вредоносного ПО или инициирование удаления (одновременно с отражением атаки) на собственном сайте, например, может быть затруднительным. В случае защищенных веб-сайтов веб-сервер может не выполнять TLS-шифрование самостоятельно, а перекладывать эту задачу на обратный прокси, который может быть оснащен аппаратным ускорением TLS. (См. TLS-терминационный прокси.) Обратный прокси может распределять нагрузку от входящих запросов между несколькими серверами, при этом каждый сервер обслуживает свою область применения. В случае обратного проксирования веб-серверов, обратный прокси может переписывать URL в каждом входящем запросе, чтобы он соответствовал соответствующему внутреннему расположению запрашиваемого ресурса. Обратный прокси может снизить нагрузку на свои серверы-источники за счет кэширования статического и динамического контента, что известно как ускорение веб-сайтов. Прокси-кэши такого типа часто могут удовлетворять значительное количество запросов к веб-сайту, существенно снижая нагрузку на серверы-источники. Обратный прокси может оптимизировать контент, сжимая его для ускорения времени загрузки. В технике, называемой "spoon feeding" (постепенная передача), динамически генерируемая страница может быть создана целиком и отправлена обратному прокси, который затем может возвращать ее клиенту небольшими частями. Программа, генерирующая страницу, не должна оставаться активной, тем самым освобождая ресурсы сервера на время, которое может потребоваться клиенту для завершения передачи. Обратные прокси могут работать везде, где несколько веб-серверов должны быть доступны через один общедоступный IP-адрес. Веб-серверы прослушивают различные порты на одной и той же машине с одним и тем же локальным IP-адресом или, возможно, на разных машинах с разными локальными IP-адресами. Обратный прокси анализирует каждый входящий запрос и направляет его на соответствующий сервер в локальной сети. Обратные прокси могут выполнять A/B-тестирование и многовариантное тестирование без размещения тегов JavaScript или кода на страницах. Обратный прокси может добавить аутентификацию доступа к веб-серверу, который не имеет собственной аутентификации.
Риски
Когда транзитный трафик зашифрован, а обратный прокси-сервер должен фильтровать, кэшировать, сжимать или иным образом изменять или улучшать трафик, прокси-серверу сначала необходимо расшифровать и повторно зашифровать данные. Это требует, чтобы прокси-сервер обладал TLS-сертификатом и соответствующим закрытым ключом, что увеличивает количество систем, имеющих доступ к незашифрованным данным, и делает его более привлекательной целью для злоумышленников. Подавляющее большинство внешних утечек данных происходит либо в результате успешной эксплуатации существующего обратного прокси-сервера, намеренно развернутого организацией, либо в результате преобразования существующего сервера, ориентированного на Интернет, в обратный прокси-сервер. Скомпрометированные или преобразованные системы позволяют внешним злоумышленникам указывать, куда направлять их атаки, обеспечивая доступ к внутренним сетям и системам. Приложения, разработанные для внутреннего использования в компании, как правило, не соответствуют общепринятым стандартам безопасности и не обязательно рассчитаны на противодействие всем попыткам взлома. Предоставляя внешний доступ к таким внутренним приложениям через обратный прокси-сервер, организация может непреднамеренно увеличить свою поверхность атаки и привлечь злоумышленников. Если обратный прокси-сервер не настроен на фильтрацию атак или не получает ежедневные обновления для поддержания актуальности базы данных сигнатур атак, уязвимость нулевого дня может пройти без фильтрации, позволяя злоумышленникам получить контроль над системами, находящимися за сервером обратного прокси-сервера. Использование обратного прокси-сервера сторонней организации (например, Cloudflare, Imperva) передает всю триаду – конфиденциальность, целостность и доступность – в руки третьей стороны, управляющей прокси-сервером. Если обратный прокси-сервер обслуживает множество различных доменов, его сбой (например, из-за неправильной конфигурации или DDoS-атаки) может привести к недоступности всех обслуживаемых доменов. Обратные прокси-серверы также могут стать единственной точкой отказа, если не существует другого способа доступа к серверу backend.