Невнимательность может обойтись в несколько тысяч долларов
Рождество (которое в США и ряде других стран отмечается 25 декабря) — это выходной, то есть отличный повод изучить новую технологию, на которую в рабочие дни времени не хватает.
Именно так считал Эндрю Хоффман, который решил ознакомиться с основами Ruby on Rails. Но результат небольшой ошибки во время работы над тестовым проектом чуть не стоил ему 2375 доллларов.
Вообще, ничего особенно нового не произошло: Amazon Web Services ещё в марте прошлого года предупреждал пользователей о необходимости тщательней относиться к приватности секретных ключей облачных сервисов при выгрузке исходных кодов своих проектов на GitHub.
При регистрации на AWS пользователи получают приватные ключи для того, чтобы их приложения могли управлять параметрами аккаунта. «Амазон» неоднократно напоминает в интерфейсе сайта, что эти ключи нужно хранить в защищённой среде, поскольку любой, владеющий этой информацией, может получать доступ к ресурсам и файлам частного «облака». Злоумышленник в состоянии удалять файлы и очищать целые аккаунты.
Ещё несколько месяцев назад головотяпы оставили на «Гитхабе» тысячи этих ключей. Разработчики в лучших традициях мира открытого программного обеспечения публиковали код своих проектов, чтобы с ними мог ознакомиться любой желающий, но забывали удалить из них приватные ключи Amazon Web Services. Многие из ключей, впрочем, ещё тогда могли быть нерабочими — «Амазон» учитывает рассеянность клиентов и следит за использованием аккаунтов.
Энди Хоффман прошёл небольшой курс Ruby on Rails на сайте Lynda, а затем решил опробовать полученные навыки в действии. Он спроектировал простой клон сервиса обзоров ресторанов и других мелких предприятий сферы услуг Yelp.
Сайт писался под Heroku на основе Rails и СУБД PostgreSQL. В процессе работы Хоффман столкнулся с необходимостью хранить пользовательские изображения. Выбор пал на бесплатное годовое предложение теста AWS, в нём были лишь некоторые ограничения на выгрузку. Подключение файлового
Разработчик положился на гем Figaro для защиты приватных ключей при выгрузке кода. Но они всё равно попали на GitHub. При проверке Хоффман быстро заметил неладное и немедленно удалил любые следы важных данных. Всего до удаления прошло порядка 5 минут.
На следующее утро Хоффман обнаружил 4 электронных письма, 1 пропущенный звонок от AWS и счёт на 2375 долларов. Оказалось, что с помощью украденного ключа можно запускать инстансы EC2 — необходимых ограничений по правам доступа задано не было. Всего с аккаунта Хоффмана было создано 140 серверов.
Судя по тому, что случилось с ключом Хоффмана, злоумышленники уже автоматизировали процесс сбора и использования этих ключей. Боты круглосуточно сканируют GitHub на предмет наличия API-ключей. После нахождения запускаются сервера EC2 и начинается майнинг криптовалюты Bitcoin.
Хорошая новость заключается в том, что «Амазон» часто в свойственной ему щедрой манере возмещает убытки.
Это уже давняя практика: в декабре 2013 года Люк Чадвик получил счёт на 3,5 тыс. долларов — неизвестный майнил лайткойны с его аккаунта AWS. По запросу техподдержка аннулировала эти расходы. Так случилось и со счётом Хоффмана.
Стоит отметить, что любых неприятностей можно было избежать с помощью повторной генерации приватных ключей при первом подозрении на утечку данных. Или же можно было использовать ключи с ограниченными привилегиями.
Автор: FakeFactFelis