Трой Хант рассказал о неожиданно большом счете за облачный хостинг Have I Been Pwned

Основатель сервиса проверки утечек личных данных Have I Been Pwned (HIBP) Трой Хант заявил, что столкнулся с проблемой неожиданных счетов облачного хостинга. По его словам, счет за услуги облачного хранилища Azure Table Storage за декабрь был намного выше обычного. Хант объяснил, в чем была суть проблемы.

HIBP изначально построен на облакоориентированности, и Хант заложил в сервис современные облачные парадигмы Azure Table Storage для снижения стоимости. В проблемном месяце на аккаунте Ханта оказалось использовано неожиданно много трафика, и напротив сетевых услуг в инвойсе стояла сумма в 5 тысяч австралийских долларов.

Создатель проекта приводит в виде таблицы то, какой объем хранилища Azure используют отдельные службы на его аккаунте (Хант также хостит сайты Hack Yourself First и Why No HTTPS). Выяснилось, что 98% затрат приходится на пропускную способность во всех службах для данных, отправляемых из инфраструктуры Microsoft Azure (по цене 0,014 австралийского доллара за ГБ).

Ханта смутило то, что это аккаунт для хранилища, а не с веб-сайтами — поэтому большому объёму обмена данными с внешним миром взяться неоткуда. Он посчитал, что к проблеме привело начало взаимодействия Pwned Passwords с ФБР, а также загрузка сотен миллионов новых скомпрометированных паролей от Национального агентства по борьбе с преступностью Великобритании 20 декабря. 

Разработчик обратился к детальному изучению использования сетевых ресурсов. На графике за четыре часа видны нерегулярные последовательные всплески на уровне 17,3 ГБ. Трафик потреблялиют загружаемые хэши в Pwned Passwords. Эти данные Хант настроил для кэширования на Cloudflare, чтобы не нагружать сеть у хранилища.  

Хант изучил отдельные запросы и понял, что запросы приходили с IP-адреса Cloudflare, регулярно потребляя 17,3 ГБ трафика. Эта CDN должна была кэшировать эти данные и тем самым экономить трафик, но почему-то каждый раз заправшивала их из хранилища. Хант проверил эту догадку, временно зарезав трафик Cloudflare на уровне файрволла и пронаблюдав нормализацию потребления трафика до обычных значений.

Данные, переданные Cloudflare всего за 24 часа
Данные, переданные Cloudflare всего за 24 часа

Хант проверил, что такое особенное было в самих файлах, что могло вызвать подобное поведение Cloudflare. Он обнаружил отсутствие значения CacheControl и проверил его обработку правилами Cloudlfare. Реальная проблема крылась совсем в другом.

Разработчик HIBP связался со знакомым в Cloudflare и выяснил, почему хостинг-провайдер не кэширует эти zip-файлы. Как заметил сотрудник, в тарифном плане Ханта максимальный размер кэшируемого файла был установлен на уровне 15 ГБ.

Хант перешел в Azure Storage Explorer и увидел, что два архива с хэшам SHA-1 больше 15 ГБ. Это и были проблемные файлы.

Для временного решения разработчик создал в Cloudflare правила для этих двух файлов и удалил прямые ссылки для скачивания с веб-сайта HIBP, оставив торренты, в которых уже было много сидов. Позднее Cloudflare поднял его лимит на кэширование, и Хант восстановил прямые ссылки.

Проблема была решена. Но всего за месяц Хант переплатил более 11 тысяч австралийских долларов (около 8 тысяч долларов США).

По словам разработчика, ему следовало лучше отслеживать пропускную способность в Azure, особенно в учетной записи хранения, обслуживающей наибольшее количество данных. Пропускная способность исходящего трафика никогда не превышала 50 ГБ в день при обычном использовании и стоила 0,7 австралийских доллара для исходящих данных, тогда как в декабре она выросла до 350 австралийских долларов в сутки. 

Также Хант советует настраивать оповещения о расходах. Например, он знал еще до инцидента, что переплачивает за прием журналов из-за того, что App Insights хранит слишком много данных для часто используемых служб, а именно HIBP API. 

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

Пользователи в комментариях отметили, что нужно использовать собственный прокси-сервер перед выходом с Cloudflare в облако. Они советуют экземпляры Linode, Hetzner или другого веб-сервера, который поставляется с адекватным бесплатным уровнем пропускной способности, чтобы настроить обратный прокси-сервер nginx. Еще один вариант — использовать адекватный CDN, например, BunnyCDN.

В 2020 году Трой Хант открыл исходный код HIBP. До этого он рассказал, что отказался от идеи продать проект.

Читайте так же:

  • Яндекс не согласен с решением суда об удалении из поиска результатов по запросу «Умное голосование»Яндекс не согласен с решением суда об удалении из поиска результатов по запросу «Умное голосование» Яндекс заявил, что не согласен с решением суда, по которому поисковой системе запрещено отображать в поиске результаты по запросу «Умное голосование». Из документа совершенно непонятно, что конкретно нас обязывают сделать и как это можно реализовать, – заявили в Яндексе. Напомним, 6 […]
  • НАСА планирует запустить противоастероидный корабль уже в средуНАСА планирует запустить противоастероидный корабль уже в среду Американское космическое агентство заявило, что 24 ноября в ходе миссии Double Asteroid Redirection Test (DART) состоится запуск космического корабля. Летательный аппарат предназначен для изменения траектории полета астероида, чтобы небесное тело не достигло Земли. Аналогичных этому […]
  • Маркетинговая Среда 5.0 Описание Мы знаем, где искать горячие идеи, креатив, полезные знания и нетворкинг!Маркетинговая Среда – площадка, объединяющая предпринимателей и экспертов в области маркетинга. Здесь классные люди знакомятся друг с другом, с эффективными практиками, с лидерами рынка, новостями и […]
  • Депутаты Госдумы обсудят с представителями Google и YouTube исполнение российских законовДепутаты Госдумы обсудят с представителями Google и YouTube исполнение российских законов По информации «ТАСС», депутаты Госдумы 25 октября в режиме видеоконференции обсудят с представителями Google и YouTube выполнение компаниями российских законов.Иностранные IT-компании приняли предложения о встрече от комитета Госдумы по безопасности и противодействию коррупции и готовы […]