В течение многих месяцев ошибка в системах оптимизации контента CloudFlare "сливала" конфиденциальную информацию, отправляемую пользователями, на сайты, использующие сеть доставки контента компании. Эта информация включала пароли, куки сеанса, маркеры аутентификации и даже личные сообщения, пишет Computerworld.
Cloudflare выступает в качестве обратного прокси-сервера для миллионов сайтов, в т.ч. крупных интернет-сервисов и компаний из списка Fortune 500, для которых он обеспечивает безопасность и оптимизацию контента. В рамках этого процесса системы компании модифицируют HTML-страницы, т.к. они проходят через свои серверы, чтобы переписать HTTP-ссылки в HTTPS, скрывают определенное содержание от ботов и адреса электронной почты, активируют ускоренные мобильные страницы (AMP) и многое другое.
Ошибка, раскрывающая пользовательские данные, была и в более старом анализаторе HTML, которым компания пользовалась много лет, однако она не активизировалась, пока в прошлом году не был добавлен новый HTML-анализатор, изменивший способ использования буферов внутреннего веб-сервера при некоторых активных функциях.
В результате внутренняя память, содержащая потенциально важную информацию, теперь просочилась в некоторые результаты поиска, предоставляемые пользователям, а также поисковым ботам. Веб-страницы с конфиденциальными данными кэшировались и могли быть найдены в таких поисковых системах, как Google, Yahoo и Bing.
Утечка была обнаружена почти случайно инженером безопасности Google Tэвисом Орманди, когда он работал над совершенно посторонним проектом. Как только он и его коллеги поняли, что за странные данные они видят и откуда, они предупредили Cloudflare.
Это произошло 18 февраля. Cloudflare немедленно собрала группу реагирования на инциденты и в течение нескольких часов устранила элемент, бывший причиной большинства утечек. Полное исправление состоялось 20 февраля. В остальное время, пока инцидент не был публично раскрыт 23 февраля, проводилась работа с поисковыми системами, чтобы удалить конфиденциальные данные из их кэш-памяти.
"С помощью Google, Yahoo, Bing и других поисковиков мы обнаружили 770 уникальных URI (Uniform Resource Identifier, универсальные идентификаторы ресурсов), которые были кэшированы и содержали просочившиеся данные, — написал в своем блоге Джон Грэхем-Камминг, технический директор CloudFlare. — Эти уникальные 770 URI охватывали 161 уникальный домен".
По словам Грэхема-Камминга, утечка, возможно, началась 22 сентября, но период наибольшего влияния пришелся на 13-18 февраля, когда функция обфускации (умышленное запутывание) электронной почты была перенесена на новый анализатор. По оценкам Cloudflare, примерно один из каждых 3,3 млн HTTP-запросов, прошедших через систему, мог приводить к утечке памяти. Это около 0,00003% всех запросов.
По своему действию эта ошибка аналогична уязвимости HeartBleed в OpenSSL, которая могла позволять злоумышленникам заставить серверы HTTPS "сливать" потенциально конфиденциальное содержимое памяти. Но, в отличие от HeartBleed, которая могла раскрыть секретные ключи SSL/TLS, в инциденте с Cloudflare такие ключи не были затронуты.
"Cloudflare запускает несколько отдельных процессов, обеспечивающих изоляцию процесса и памяти, — рассказал Грэхем-Камминг. — Просочившаяся информация была из процесса на базе NGINX, что обрабатывает HTTP. Он имеет отдельный неупорядоченный массив данных от процессов, обрабатывающих SSL, осуществляющих повторное сжатие изображений и кэширование, и поэтому мы смогли быстро определить, что секретные ключи SSL, принадлежащие нашим клиентам, не могли быть раскрыты". Один раскрытый секретный ключ был использован для защищенного соединения между машинами Cloudflare.
Для собственной безопасности интернет-пользователям рекомендуется подумать о смене своих паролей — хотя это то действие, которое нужно делать регулярно, чтобы предварять утечки данных.