Технологии безопасности

Сайт посвященный вопросам безопасности

Как я умудрился за 1 день задолжать Amazon 12000$

Я руководитель небольшой IT компании из Зеленограда. Занимаемся интеграцией программ 1С и телефонии. В компании работает чуть менее 20 человек и так получилось, что за всю IT инфраструктуру отвечаю я сам.
В принципе, я люблю этим заниматься и знакомиться с различными новыми технологиями. Одной из таких технологий стала виртуализация и в частности, такой интересный сервис как Amazon AWS.
Часто бывает необходимо быстро развернуть несколько виртуальных машин с белыми IP адресами в лабораторных целях, попользоваться ими пару дней, и прибить без сожаления. В терминологии Amazon этот сервис называется EC2, и позволяет за считанные минуты выполнять такие манипуляции. Это очень удобно и стоит копейки, т.к. оплата происходит по часовому тарифу.

И так, в далеком 2011 году я активно изучал Asterisk и пользовался сервисом, в конце месяца с моей карты списывали по 20$-30$. Затем, необходимость в сервисе пропала, я выключил все машины, сделал какие-то бекапы и стал ежемесячно получать счета в размере $3.66 и все как-то руки не доходили узнать за что списывалась эта сумма.

Первая ласточка

Мы занялись новым проектом и появилась необходимость создать отказоустойчивую конфигурацию. Я конечно вспомнил о Amazon AWS. Зашел в админку, посмотрел что нового появилось, походил по пунктам меню, разобрался за что списывают 3.66, это был бекап виртуальной машины размером в 50 гигабайт, удалил его и с чувством выполненного долга лег спать.

Утром был понедельник, много работы и в сотне писем от клиентов и коллег, неприметное письмо от Amazon с следующим содержанием:

Account Closure: Please Read
Greetings from Amazon Web Services,
Please take the time to read this message — it contains important information about your Amazon Web Services account.

At Amazon Web Services, we routinely perform reviews of orders and customer accounts to protect our customers. After careful review of your account, we believe it may have been accessed and used by a third-party without your permission. Please review your AWS account for unauthorized activity per the directions below. It seems that someone obtained your personal account and/or financial information elsewhere, and used it to access your Amazon Web Services account.

If the activity was not authorized, your account will remain open for Five (5) days in order that you may secure your account. To regain access to your account, first, you will need to reset your password when you return to our site. Just click “Your Account” at the top of our Home page and select “Forgot your Password?” Enter your email address as prompted, and once completed, we’ll send you an e-mail containing a personalized link. Click the link from the e-mail and follow the directions provided. Your new password will be effective immediately. If there is no unauthorized activity please reply as such and there are no additional actions needed.

In addition to resetting your password, we require that you log into your AWS Management Console at console.aws.amazon.com/, check if all usage is authorized, and delete all unauthorized resources. Please pay special attention to the running EC2 instances, EC2 Spot Bids, IAM users, and access keys (please check all regions — to switch between regions use the drop-down in the top-right corner of the management console screen).

А я еще и в английском не силен, ну думаю вот чудаки, это же я вчера заходил и на все кнопки там нажимал спустя пол года, а они уже панику бьют, ладно зайду вечером продолжу начатое…

Вечером

Перед сном я люблю сделать что-нибудь полезное, особенно с 12 до 2-х ночи 🙂
Открыл письмо, захожу в аккаунт и вижу… что у меня запущено 20 виртуальных машин, причем достаточно мощных, а значит и дорогих.

Как я умудрился за 1 день задолжать Amazon 12000$ — 1Как я умудрился за 1 день задолжать Amazon 12000$ — 1

Сердце застучало, я их выделяю скопом и за пару секунд пытаюсь удалить, не получается, тогда просто останавливаю. Ну думаю взломали гады, попал на сотню другую долларов, а ведь у меня все карточки привязаны к аккаунту.

Захожу в биллинг, а там такая картинка:
Как я умудрился за 1 день задолжать Amazon 12000$ — 2Как я умудрился за 1 день задолжать Amazon 12000$ — 2

Оказывается, у меня запущено не 20 машин, а 140. На каждом континенте, в каждом амазоновском датацентре. Вот это я попал!

Ближайший час, я все это пытался остановить, поменял пароль на вход, включил двухфакторную авторизацию и создал кейс в службу поддержки с вопросом: «Что мне с этим всем делать?»

Утром

Утром посмотрел цену на свой автомобиль, ну примерно половину суммы есть :). Естественно никакого желания расставаться с такой огромной, по нынешним временам суммой, у меня не было.
Кейс продолжал висеть в статусе не рассмотрен, а у меня появилась еще одна «веселая» история, о том как попасть на 12000$, причем я достаточно аккуратно отношусь к вопросам безопасности и вопрос: «Каким образом у меня увели этот пароль?», продолжал меня мучать.

Я попытался отвязать свои карточки от амазоновского биллинга, на что он мне ответил отказом и требованием зайти на сайт магазина Amazon.com и там манипулировать своим аккаунтом.
Сайт Amazon.com встретил меня парой вопросов о том, кто мой первый руководитель и как зовут друга детства, и разрешил отвязать мою кредитку. Половина дела сделано.

Тут раздается звонок на сотовом, с явно не российским кодом страны. Т.к. я не владею никакими языками кроме 1С, C++, C# и PHP, то и поднимать трубку я не стал. Благо через 15 минут увидел первый ответ саппорта.

Завязалась небольшая беседа с помощью коллеги и Google переводчика. Саппорт понял ситуацию и начал давать мне задания.
Сменить пароли, удалить все виртуальные машины во всех ЦОД, удалить все заявки на аукционах покупки вычислительных мощностей.
А т.к. в аккаунте у меня вообще не было ничего моего, я вежливо попросил удалить мне все централизованно, на что мне также вежливо отказали.

Каждая виртуальная машина была защищена от удаления, приходилось заходить в настройки и снимать специальную галочку. Это развлечение заняло у меня еще полтора часа. Когда я удалял машины, я заметил что время создания и запуска у них было у всех одинаковым, значит их создавали каким-то скриптом.

После удаления всех 140 машин, я решил пробежаться по всем вкладкам и проверить все ли ок.
И что я вижу? Прямо на моих глазах, появляются новые машины, объединяются в кластер и запускаются. И это после смены всех паролей и включения двухфакторной авторизации…

Выключаю машины, читаю внимательно задание саппорта еще раз, и вижу строчку про ротацию API ключей. Вот блин, нахожу их в недрах настроек системы авторизации, смотрю на дату — 2011 год, и без сожаления удаляю нафиг, даже не припомню сам я их создал или получил в нагрузку при регистрации.

После этого, у меня еще около 40 минут уходит на удаление новых 60 машин.

Сообщаю саппорту о выполнении квеста, на что получаю ответ о том, что мой вопрос будет передан в финансовую группу, все-таки сумма не маленькая и не ждите быстрого ответа.

Вот фрагмент выписки из моего счета.
Как я умудрился за 1 день задолжать Amazon 12000$ — 3Как я умудрился за 1 день задолжать Amazon 12000$ — 3

Звонок из Люксембурга

Спустя некоторое время, раздается опять звонок. Я опять не беру, без толку мычать что-то в трубку не понимая вопросов. В почте письмо, по-русски, от некоторого чувака, который отвечает за европейский сегмент, с вопросом когда можно созвониться и поговорить. Я обрадовался, наконец можно с русскоговорящим человеком пообщаться и узнать перспективы. Прошу перезвонить мне.
Чувак представляется менеджером по продажам, интересуется что у меня за проект, который потребовал столько мощности и не нужна ли мне скидка или какая-то помощь. Я объяснил ситуацию, рассказал что меня взломали, дал номер кейса. Человек на том конце с пониманием отнесся к проблеме, посочувствовал и сказал обращаться по любым вопросам. Приятно когда у компании человеческое лицо.

Продолжение следует…

Из полезного, я уже включил двухфакторную авторизацию везде где только смог, помучал свой MacBook разными антивирусами, которые ничего не нашли.

Прошло около 5 дней, пока никаких новостей нет, сумма долга висит за мной, 4 апреля расчетный день…