Хакер #305. Многошаговые SQL-инъекции
В начале текущей недели известный ИБ-эксперт и основатель сайта Have I Been Pwned? Трой Хант (Troy Hunt) рассказал о вопиющем случае халатного отношения к безопасности пользователей со стороны компании-производителя игрушек Spiral Toys.
Оказалось, что компания хранила данные своих пользователей в незащищенной базе MongoDB, которую, по данным специалистов, взламывали как минимум трижды. Хуже того, более двух миллионов аудиосообщений, которыми владельцы игрушек CloudPets обменивались со своими детьми, оказались доступны злоумышленникам в облаке AWS. Напомню, что при этом представители компании Spiral Toys отрицают абсолютно все, начиная от взломов БД и заканчивая тем, что кто-то мог прослушать и похитить аудиозаписи пользователей. Но об этом речь пойдет немного ниже.
После того как Трой Хант обнародовал свои изыскания, другие эксперты тоже заинтересовались игрушками CloudPets. Как оказалось, производитель плюшевых животных «забыл» защитить не только базу MongoDB, но и сами детские гаджеты. Сотрудник компании Context Пол Стоун (Paul Stone) изучил работу CloudPets и пришел к выводу, что перехватить контроль над игрушкой, заставив ее воспроизводить любые аудиопослания, может практически любой желающий. Для такого «взлома» нужно будет соблюсти всего два условия: нужно находиться на расстоянии 10-30 метров от игрушки и иметь при себе смартфон (также подойдет ноутбук или планшет).
Стоун выяснил, что CloudPets не используют даже стандартные защитные механизмы Bluetooth, к примеру, pairing encryption. Любой, кто находится в зоне досягаемости сигнала, может воспользоваться Bluetooth Web API, соединиться с игрушкой, передать на нее сообщение или обманом «перехватить» сообщение, записанное ребенком. Стоун записал демонстрацию атаки на видео:
Исследователь отмечает, что полноценный шпионский гаджет из игрушек CloudPets вряд ли получится, так как они способны записывать и хранить лишь пять сообщений, каждое длиной не более 40 секунд. Кроме того, атакующий должен находиться в зоне действия Bluetooth. Однако в теории эти лимиты можно обойти, так как прошивка игрушек не подписана и не шифруется: валидация осуществляется через контрольную сумму CRC16. То есть внести изменения в код вполне возможно. Также исследователь создал proof-of-concept специальной страницы, при помощи которой попробовать «взломать» CloudPets может каждый.
Интересно, что Стоун пытался связаться с представителями Spiral Toys с октября прошлого года, чтобы сообщить о проблеме, однако так и не получил ответа от компании. Напомню, что Трой Хант и еще один ИБ-исследователь, Виктор Геверс (Victor Gevers), который с самого начала отслеживает вымогательские атаки на незащищенные базы данных, тоже писали о том, что им не удалось выйти на контакт с представителями Spiral Toys. Эксперты пытались писать, звонить, перепробовали все социальные сети, где представлена компания, но так и не добились никакого эффекта.
Единственный комментарий представители Spiral Toys дали изданию NetworkWorld. В этом интервью глава компании Марк Майерс (Mark Myers) лично отрицает абсолютно все обвинения, начиная от взломов БД и требований выкупа и заканчивая тем, что кто-то мог прослушать и похитить аудиозаписи пользователей. Кроме того, Майерс заявил, что Spiral Toys не получала от исследователей ни единого предупреждения.
В своем блоге Трой Хант пошагово, с предъявлением доказательств опровергает все заявления Марка Майерса. Более того, недавно исследователь обновил запись, сообщив, что представители Spiral Toys обратились в калифорнийское представительство Генеральной прокуратуры США. В письме компании (PDF) содержится множество неточностей и даже искажений фактов. Трой Хант уже опубликовал детальный разбор этого послания, из которого мы приведем наиболее интересные отрывки. В скобках Хант приводит отрывок из документа, далее следует его комментарий.
«Spiral Toys уведомили о потенциальной бреши 22 февраля». Нет, им говорили об этом еще 31 декабря, вот заявка в ZenDesk.
«После получения письма [от журналиста издания Vice Motherboard] мы инициировали внутреннее расследование». Нет, они просто дословно заявили: «мы не реагируем на каких-то случайных людей, говорящих об утечках данных».
«Мы провели внутреннее расследование и обнаружили проблему на migration-сервере MongoDB». Нет, сервер, который сливал данные – это 45.79.147.159, этот IP-адрес ведет на spiraltoys.s.mready.net.
«Утечка данных была частью массовой кибератаки на MongoDB, которая затронула более 28 000 установок по всему миру». Давайте проясним: речь идет не о 0-day уязвимости в продукте, каковой была Heartbleed, они просто не установили пароль для базы данных и оставили ее «смотреть» в интернет, вместо того, чтобы держать в приватном сегменте сети.
«Так как существует вероятность того, что хакеры смогут подобрать пароли и получить доступ к информации пользователей [аудиозаписям, хранящимся в AWS], мы аннулировали все текущие пароли». Я все еще могу войти с тем же паролем, который использовал для создания аккаунта на прошлой неделе (пароль «abc»).
«На связь со Spiral Toys не выходили ни специалисты по кибербезопасности, ни хакеры, требующие выкуп». Да, выходили, все это задокументировано выше. И хотя требование выкупа не подразумевало прямого выхода на связь, просто в базе данных было оставлено требование оплатить выкуп в биткоинах за возвращение информации, это большой красный флаг.