Профессор компьютерных наук Панос Ипеиротис (Panos Ipeirotis) из Нью-Йоркского университета рассказывает печальную историю, как он по глупости «попал на деньги» в облачном хостинге Amazon Web Services.
Профессор узнал об этом неприятном факте из «поздравительного» письма от Amazon: мол, уважаемый клиент, в этом месяце вы потратили необычно много денег ($720,85), так что рады предложить вам новые виды услуг.
Как и любой другой на его месте, профессор опешил и пошёл проверять баланс. Там он увидел ещё бóльшую сумму: $1177,76, в том числе $1065 за исходящий трафик, который составил 8,8 терабайт.
Победневший на тысячу IT-специалист начал разбираться, откуда утечка. Он сразу обнаружил, что источником запросов является Google, который скачивает 250 гигабайт картинкок из его инстанса с периодичностью раз в час.
Исходя из среднего размера картинки от 0,5 до 1 МБ, поток запросов составляет 250 тыс. в час, то есть более 100 запросов в секунду.
Это не поисковый робот Google, тем более что robots.txt запрещал скачивать эти ресурсы. Всё оказалось гораздо интереснее.
74.125.156.82 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.64.83 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.64.84 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.81 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.86 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.92 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.64.87 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.81 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.82 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.85 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.89 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.83 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.90 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.92 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.64.85 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.82 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.88 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.86 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.89 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.83 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.94 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.83 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.88 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.83 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.64.92 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.156.80 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.64.88 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.84 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html) 74.125.158.87 Mozilla/5.0 (compatible) Feedfetcher-Google; (+http://www.google.com/feedfetcher.html)
Анализ логов показал, что атаку проводил некий бот Feedfetcher. Согласно правилам Google, этот бот игнорирует robots.txt.
Как выяснилось, Панос Ипеиротис сам сделал документ Google Spreadsheet с уменьшенными копиями картинок, используя атрибут =image(url). Он не мог знать, что для этих целей Google использует краулер фидов Feedfetcher, который не работает с кэшированным контентом и обновляет контент каждый час.
Частная история профессора Ипеиритоса описывает конкретный пример потенциальной атаки, которую может использовать злоумышленник. Как показывает практика, здесь не требуется особенных усилий: достаточно собрать большой спсиок URL с сайта жертвы и сконфигурировать скрипты в документах Google Docs, чтобы они постоянно обращались к указанному списку URL. Таким образом, Google способен генерировать большой поток запросов, а владелец сайта будет оплачивать счета за трафик (и вряд ли сможет заблокировать IP-адреса Google).
P.S. Компания Amazon компенсировала профессору расходы на трафик, посчитав его случайным, а не умышленным. Другой хостер может оказаться не таким добрым.