
Недавно я завершил аудит своего SaaS-клиента. Его история достойна рассказа. Это история о жадности, лжи и красоте хакинга.
Это история о том, как благодаря мой клиент снизил свои ежемесячные траты на AWS на 90 тысяч долларов благодаря таинственному разработчику, который исчез, как толь��о работа была сделана.
Когда спустя полгода затраты на AWS снова взлетели примерно до 120 тысяч в месяц, этот клиент попросил меня разобраться, что же произошло на самом деле.
И разгадка оказалась совершенно сумасшедшей!
Исходные данные
Из соображений NDA я не могу раскрывать имя клиента или отрасль, в которой он работает. Но это SaaS-компания, предоставляющая продукт на очень нишевом промышленном рынке. Её продукт можно описать как AI-модель, использующую данные от различных сторонних приложений и создающую ценные прогнозы.
В этой истории важную роль сыграют два аспекта.
Данные распределены по множеству сторонних приложений без API (промышленные машины), поэтому мой клиент разработал расширение для Chrome, которое собирает их (наподобие RPA) и отправляет в инстансы AWS для потребления.
Работа AI-модели стоит достаточно дорого, из-за чего в среднем затраты на вычислительные ресурсы составляли около 100 тысяч долларов в месяц.
Злодей
Почти год назад с директором по ИТ моего клиента связался фриланс-разработчик, заявивший, что поможет сэкономить 90% от затрат на облачные сервисы. Его предложение отклонили.
Однако спустя несколько месяцев был назначен новый директор по ИТ, которому необходимо было продемонстрировать руководству свои успехи. Тем временем, разработчик продолжал настаивать и даже сделал предложение, от которого невозможно отказаться: ему выписывают один чек на 50 тысяч, если удастся выполнить обещанное, или ничего не платят.
Для нового директора по ИТ это был дешёвый способ показать себя с лучшей стороны перед руководством. Он дал разработчику добро.
Трюк
С этого началось моё расследование. Первым делом я увидел, что разработчик не вносил никаких коммитов, кроме как в расширение Chrome. Оно было довольно простым: скрейпило интерфейсы разных приложений, извлекало данные, отправляло их в облако и запускало обработку.
После того, как над ним потрудился разработчик, объём его кодовой базы удвоился. Появились сотни новых файлов. В частности, моё внимание привлёк один из них, большой файл «accounts.yaml», содержавший примерно 1 миллион аккаунтов Google.
Какого чёрта здесь происходит? Все аккаунты казались фальшивыми, похоже, их купили в даркнете за сотню баксов.
Этот файл позволил мне разрешить головоломку.
Разработчик больше не загружал данные в облако клиента. Он создавал пробные аккаунты GCP при помощи одного из миллиона аккаунтов Google, затем загружал туда модель, данные, запускал выполнение, и завершал работу после получения результата.
Это было возможно только благодаря… расширению Chrome, которое не позволяло сработать проверке безопасности Google и отказать в создании аккаунта.
Разработкой ПО для клиента в основном занимались сторонние партнёры, поэтому труд разработчика никто не контролировал. Он отчитывался напрямую перед директором по ИТ, поэтому никто не оспаривал его работу и даже не проверял код.
Как и было обещано, затраты упали на 90%. Ему заплатили 50 тысяч долларов. А потом он пропал. Полностью.
Счастливый директор по ИТ хотел дать этому гению новые задачи. Но тот испарился. Не отвечал на электронные письма и голосовые сообщения по телефону, удалил аккаунт в LinkedIn. Исчез.
Провал
Несколько месяцев спустя затраты снова начали расти. Каждый раз, когда бесплатный аккаунт GCP не срабатывал, данные отправлялись старой системе AWS. Похоже, что у кода закончились валидные аккаунты Google и/или Google начал лучше справляться с отловом автоматизированного создания аккаунтов.
