Зомби-проекты – сливают данные пользователей даже после своей смерти

    Я снова про утечки персональных данных, но на этот раз расскажу немного про загробный мир ИТ-проектов на примере двух недавних находок.



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


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

    Начнем с проекта с громким названием «Команда Путина» (putinteam.ru).


    Сервер с открытой MongoDB был обнаружен 19.04.2019.



    Как можно заметить, первым до этой базы добрался «вымогатель»:



    В базе нет особо ценных персональных данных, но есть адреса электронной почты (менее 1000), имена/фамилии, хешированные пароли, GPS-координаты (видимо при регистрации со смартфонов), города проживания и фотографии пользователей сайта, создавших на нем свой личный кабинет.


    { 
        "_id" : ObjectId("5c99c5d08000ec500c21d7e1"), 
        "role" : "USER", 
        "avatar" : "https://fs.putinteam.ru/******sLnzZokZK75V45-1553581654386.jpeg", 
        "firstName" : "Вадим", 
        "lastName" : "", 
        "city" : "Санкт-Петербург", 
        "about" : "", 
        "mapMessage" : "", 
        "isMapMessageVerify" : "0", 
        "pushIds" : [
    
        ], 
        "username" : "5c99c5d08000ec500c21d7e1", 
        "__v" : NumberInt(0), 
        "coordinates" : {
            "lng" : 30.315868, 
            "lat" : 59.939095
        }
    }
    
    { 
        "_id" : ObjectId("5cb64b361f82ec4fdc7b7e9f"), 
        "type" : "BASE", 
        "email" : "***@yandex.ru", 
        "password" : "c62e11464d1f5fbd54485f120ef1bd2206c2e426", 
        "user" : ObjectId("5cb64b361f82ec4fdc7b7e9e"), 
        "__v" : NumberInt(0)
    }

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



    Судя по копирайту на сайте, проект заброшен в 2018 году. Все попытки связаться с представителями проекта были неудачными. Однако, редкие регистрации на сайте идут – налицо имитация жизни.


    Второй зомби-проект в моем сегодняшнем разборе это латвийский стартап «Roamer» (roamerapp.com/ru).


    21.04.2019 на сервере в Германии была обнаружена открытая база данных MongoDB мобильного приложения «Roamer».



    База, размером 207 Мб, находится в открытом доступе с 24.11.2018 (по данным Shodan)!


    По всем внешним признакам (не работающий адрес электронной почты технической поддержки, битые ссылки на магазин Google Play, копирайт на сайте 2016 года и т.п.) – приложение давно заброшено.



    В свое время про этот стартап написали практически все тематические СМИ:


    • VC: «Латвийский стартап Roamer — убийца роуминга»
    • the-village: «Roamer: Приложение, снижающее стоимость звонков из-за рубежа»
    • lifehacker: «Как сократить расходы на связь в роуминге в 10 раз: Roamer»

    «Убийца» кажется убился сам, но даже мертвым продолжает разглашать персональные данные своих пользователей...


    Судя по анализу информации в базе, многие пользователи продолжают использовать это мобильное приложение. За несколько часов наблюдения появилось 94 новых записи. А за период с 27.03.2019 по 10.04.2019 в приложении зарегистрировалось 66 новых пользователей.


    В открытом доступе находятся логи (более 100 тыс. записей) приложения с такой информацией как:


    • телефон пользователя
    • токены доступа к истории звонков (доступны по ссылкам вида: api3.roamerapp.com/call/history/1553XXXXXX)
    • история звонков (номера, входящий или исходящий звонок, стоимость звонка, продолжительность, время звонка)
    • мобильный оператор пользователя
    • IP-адреса пользователя
    • модель телефона пользователя и версия мобильных OS на нем (например, iPhone 7 12.1.4)
    • адрес электронной почты пользователя
    • баланс и валюта счета пользователя
    • страна пользователя
    • текущее местоположение (страна) пользователя
    • промокоды
    • и многое другое.

    { 
        "_id" : ObjectId("5c9a49b2a1f7da01398b4569"), 
        "url" : "api3.roamerapp.com/call/history/*******5049", 
        "ip" : "67.80.1.6", 
        "method" : NumberLong(1), 
        "response" : {
            "calls" : [
                {
                    "start_time" : NumberLong(1553615276), 
                    "number" : "7495*******", 
                    "accepted" : false, 
                    "incoming" : false, 
                    "internet" : true, 
                    "duration" : NumberLong(0), 
                    "cost" : 0.0, 
                    "call_id" : NumberLong(18869601)
                }, 
                {
                    "start_time" : NumberLong(1553615172), 
                    "number" : "7499*******", 
                    "accepted" : true, 
                    "incoming" : false, 
                    "internet" : true, 
                    "duration" : NumberLong(63), 
                    "cost" : 0.03, 
                    "call_id" : NumberLong(18869600)
                }, 
                {
                    "start_time" : NumberLong(1553615050), 
                    "number" : "7985*******", 
                    "accepted" : false, 
                    "incoming" : false, 
                    "internet" : true, 
                    "duration" : NumberLong(0), 
                    "cost" : 0.0, 
                    "call_id" : NumberLong(18869599)
                }
            ]
        }, 
        "response_code" : NumberLong(200), 
        "post" : [
    
        ], 
        "headers" : {
            "Host" : "api3.roamerapp.com", 
            "X-App-Id" : "a9ee0beb8a2f6e6ef3ab77501e54fb7e", 
            "Accept" : "application/json", 
            "X-Sim-Operator" : "311480", 
            "X-Wsse" : "UsernameToken Username=\"/******S19a2RzV9cqY7b/RXPA=\", PasswordDigest=\"******NTA4MDhkYzQ5YTVlZWI5NWJkODc5NjQyMzU2MjRjZmIzOWNjYzY3MzViMTY1ODY4NDBjMWRkYjdiZTQxOGI4ZDcwNWJmOThlMTA1N2ExZjI=\", Nonce=\"******c1MzE1NTM2MTUyODIuNDk2NDEz\", Created=\"Tue, 26 Mar 2019 15:48:01 GMT\"", 
            "Accept-Encoding" : "gzip, deflate", 
            "Accept-Language" : "en-us", 
            "Content-Type" : "application/json", 
            "X-Request-Id" : "FB103646-1B56-4030-BF3A-82A40E0828CC", 
            "User-Agent" : "Roamer;iOS;511;en;iPhone 7;12.1.4", 
            "Connection" : "keep-alive", 
            "X-App-Build" : "511", 
            "X-Lang" : "EN", 
            "X-Connection" : "WiFi"
        }, 
        "created_at" : ISODate("2019-03-26T15:48:02.583+0000"), 
        "user_id" : "888689"
    }

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


    В Apple App Store приложение по-прежнему доступно (itunes.apple.com/app/roamer-roaming-killer/id646368973).


    Новости про утечки информации и инсайдеров всегда можно найти на моем Telegram-канале «Утечки информации»: https://t.me/dataleak.

    • +16
    • 9,9k
    • 5
    Поделиться публикацией

    Комментарии 5

      0
      Думаю, тут уже к хостеру нужно обращаться. Пусть сам связывается с владельцами (кто-то же платит за хостинг) или удаляет файлы БД с сервера. В Германии должны быть особенно щепетильны.
        0
        Наверное хостер сам блокирует ресурсы, если за них не платят хозяева. Но не удаляет.
          +1
          если «за час появились новые записи» — то это не заблокированный ресурс.
            0
            Как-то раз у меня на свежеподнятом сервере на одном проекте оказался memcached с торчащим наружу портом (конфиги не поправили вовремя). В течении 2х дней кто-то написал абузу хостеру, а тот уже мне — потребовали исправить или выключат. Так то! :)
          +2
          И опять же повторюсь как и в прошлых подобных темах — что такое наверчено в конфигах монгодб по дефолту, что они торчат наружу как грибы после дождя, а мускул и иже с ними попадается разве что в случаях особо кривых рук?

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.