Несколько дней назад со мной произошло ровно то, что написано в заголовке. В далеком 2014 году (а именно 28 декабря в 17:00) мы с женой и друзьями играли в перформанс-квест «Коллекционер» от «Клаустрафобии» и уже давно про это забыли, но «Клаустрафобия» напомнила о себе самым неожиданным образом.



А собственно вот и наша фотография, которая нашлась в открытом доступе (я спиной, остальные лица искажены для этой статьи)…


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

База данных Elasticsearch с двумя индексами, предположительно принадлежащая «Клаустрафобии» (claustrophobia.com), была найдена в открытом доступе.


index          docs.count store.size 
phobia-master  1068927      3.2gb
phobia-sandbox 55           2.9mb

Кто угодно, зная IP-адрес, мог беспрепятственно получить доступ к данным через обычный браузер, используя базовый язык запросов Elasticsearch.


Судя по данным поисковика Shodan, база впервые была обнаружена 03.02.2019 03:09:00. Доступ к ней был закрыт 31.03.2019, после моего уведомления (по электронной почте и через Facebook), в промежутке между 12:00 и 16:30 (МСК).


Всего Shodan фиксировал эту базу 6 раз:


03.02.2019 03:09:00
03.02.2019 19:39:00
01.03.2019 12:10:00
03.03.2019 19:55:00
09.03.2019 05:41:00
23.03.2019 13:07:00

Про то, как обнаруживают открытые базы данных Elasticsearch, я писал отдельную статью.



В базе содержались данные (всего чуть более 1 млн. записей) по заказам:


  • Дата заказа
  • Дата и время квеста
  • Название квеста
  • Место (страна и город) квеста
  • Имя, телефон и адрес электронной почты человека, делавшего заказ
  • Стоимость (включая предоплату, скидки и промокоды), валюта платежа и тип оплаты (наличные, карта)
  • Время прохождения квеста
  • Количество игроков
  • Ссылка на совместную фотографию участников квеста

Информация, за период с 2013 по 2019 гг., была из разных стран:


  • Россия
  • Украина
  • Белоруссия
  • Эстония
  • Германия
  • Испания
  • Франция
  • Голландия
  • Италия
  • и т.д.

Например, по Германии нашлось более 10 тыс. записей.


"Наш" квест 2014 года выглядел так:


  {
        "_index": "phobia-master",
        "_type": "model-Game",
        "_id": "105352",
        "_score": 10.159659,
        "_source": {
          "comment": "",
          "suspicious_cancellation": false,
          "promo_code": "",
          "photo": "https://.../.../.../28.12-17.jpg",
          "book_source": {
            "ru": "Сайт",
            "fr": "Site internet",
            "en": "Web-site",
            "nl": "Сайт",
            "be": "Сайт",
            "tr": "Сайт",
            "ca": "Pagina web",
            "de": "Internetseite",
            "db": "site",
            "it": "Сайт",
            "sk": "Сайт",
            "ar": "Сайт",
            "th": "Сайт",
            "sl": "Сайт",
            "cs": "Сайт",
            "et": "Lehekulg",
            "az": "Sayt",
            "ua": "Сайт",
            "es": "Pagina web"
          },
          "client_tickets_count": null,
          "currency": "₽",
          "result": null,
          "language_code": null,
          "owner": {
            "phone": "+7…",
            "nickname": "А… Л…",
            "id": 38284,
            "profile_type": "everyone",
            "email": "…@gmail.com"
          },
          "id": 105352,
          "refused_to_photo": null,
          "not_completed": null,
          "confirmed": false,
          "extra_price": 0,
          "branded_photo": null,
          "booking_price": 12000,
          "call_center_comment": null,
          "cert_id": 0,
          "status": {
            "ru": "Пройдена",
            "fr": "Reussi",
            "en": "Completed",
            "nl": "Пройдена",
            "be": "Пройдена",
            "tr": "Пройдена",
            "ca": "Сompletat",
            "de": "Absolviert",
            "db": "completed",
            "it": "Пройдена",
            "sk": "Пройдена",
            "ar": "Пройдена",
            "th": "Пройдена",
            "sl": "Пройдена",
            "cs": "Пройдена",
            "et": "Labitud",
            "az": "Kecilmisdir",
            "ua": "Пройдена",
            "es": "Completado"
          },
          "booked_by": null,
          "investigated": "no",
          "brand_logo": {
            "ru": "",
            "fr": "",
            "en": "",
            "nl": "",
            "be": "",
            "db": null,
            "ca": "",
            "de": "",
            "tr": "",
            "it": "",
            "sk": "",
            "ar": "",
            "th": "",
            "sl": "",
            "cs": "",
            "et": "",
            "az": "",
            "ua": "",
            "es": ""
          },
          "gamers_count": 4,
          "tickets_count": 0,
          "partial_prepay": true,
          "payment": {
            "ru": "онлайн",
            "fr": "en ligne ",
            "en": "online",
            "nl": "online",
            "be": "онлайн",
            "tr": "Online",
            "ca": "Online ",
            "de": "Online-Zahlung",
            "db": "online",
            "it": "online",
            "sk": "online",
            "ar": "??? ????????",
            "th": "???????",
            "sl": "онлайн",
            "cs": "онлайн",
            "et": "Online",
            "az": "onlayn",
            "ua": "онлайн",
            "es": "Online"
          },
          "promocode_type": null,
          "lacking_sum_paid": false,
          "prepay_price": 3000,
          "booking_time_local": "28.12.2014 12:36",
          "hints_count": null,
          "booking_id": "PER 14 54 814",
          "booking_time": "2014-12-28T09:36:13+00:00",
          "timeslot": {
            "start": "2014-12-28T14:00:00+00:00",
            "price": 6000,
            "start_local_date": "28 декабря",
            "id": 95759,
            "caption": "Коллекционер: 28.12.2014, 17:00",
            "es_start_local_date": "2014-12-28",
            "quest": {
              "rating_positions": [
                486,
                486
              ],
              "id": 108,
              "name": {
                "ru": "Коллекционер",
                "fr": "",
                "en": "The Collector",
                "nl": "",
                "be": "",
                "db": "Коллекционер",
                "ca": "",
                "de": "",
                "tr": "",
                "it": "",
                "sk": "",
                "ar": "",
                "th": "",
                "sl": "",
                "cs": "",
                "et": "",
                "az": null,
                "ua": "",
                "es": ""
              },
              "location": {
                "city": {
                  "timezone": "Europe/Moscow",
                  "country": {
                    "iso_code": "ru",
                    "id": 1,
                    "name": {
                      "ru": "Россия",
                      "fr": "",
                      "en": "Russia",
                      "nl": "Rusland",
                      "be": "",
                      "db": "Россия",
                      "ca": "",
                      "de": "Russland",
                      "tr": "",
                      "it": "",
                      "sk": "",
                      "ar": "",
                      "th": "",
                      "sl": "",
                      "cs": "",
                      "et": "",
                      "az": null,
                      "ua": "",
                      "es": ""
                    }
                  },
                  "id": 1,
                  "name": {
                    "ru": "Москва",
                    "fr": "",
                    "en": "Moscow",
                    "nl": "",
                    "be": "",
                    "db": "Москва",
                    "ca": "",
                    "de": "Moskau",
                    "tr": "",
                    "it": "",
                    "sk": "",
                    "ar": "",
                    "th": "",
                    "sl": "",
                    "cs": "",
                    "et": "",
                    "az": "",
                    "ua": "Москва",
                    "es": ""
                  }
                },
                "id": 55,
                "name": {
                  "ru": "Поварская",
                  "fr": "",
                  "en": "",
                  "nl": "",
                  "be": "",
                  "db": "Поварская",
                  "ca": "",
                  "de": "",
                  "tr": "",
                  "it": "",
                  "sk": "",
                  "ar": "",
                  "th": "",
                  "sl": "",
                  "cs": "",
                  "et": "",
                  "az": null,
                  "ua": "",
                  "es": ""
                }
              }
            },
            "prices_by_tickets_count": null,
            "start_local_dt": "2014-12-28T17:00:00+03:00",
            "start_local": "28.12.2014, 17:00"
          },
          "cancellation_reason": null,
          "cancellation": {
            "ru": "нет",
            "fr": "non",
            "en": "no",
            "nl": "nee",
            "be": "нет",
            "tr": "hay?r",
            "ca": "No",
            "de": "nein",
            "db": "no",
            "it": "no",
            "sk": "nie",
            "ar": "??",
            "th": "???",
            "sl": "нет",
            "cs": "нет",
            "et": "pole",
            "az": "нет",
            "ua": "немає",
            "es": "no"
          }
        }
      }

К чести «Клаустрафобии» надо сказать, что они оказались в числе того незначительного количества компаний, которые отвечают на сообщения о потенциальной утечке данных и благодарят исследователей:


Добрый день! Пишу вам из известной уже вам компании Клаустрофобия. Мы получили ваше сообщение в Фейсбуке по поводу риска утечки данных, за что отдельно хочу вас поблагодарить! В знак благодарности приглашаем вас стать одним из тестировщиков наших будущих игр. Если вы согласны, то пришлите мне, пожалуйста, ваши контактные данные: email и телефон. Мы пригласим вас, когда будут проводиться тесты! Еще раз благодарим за вашу помощь ;)

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

Комментарии (18)


  1. KennyGin
    02.04.2019 10:25

    Где теперь можно найти дамп этой базы данных?


    1. ashotog Автор
      02.04.2019 12:38

      надеюсь, что нигде ;)


      1. WebMonet
        02.04.2019 13:37
        -2

        Наверное это вопрос больше ко всем читателям этого поста / блога.
        Не считаете ли вы, что сообщения об утечках без дампа попахивают информационным агентством «ОБС»? Я понимаю, что распространение такой информации на этом сайте не приветствуется, но уверен, что людям, связанным с ИБ будет полезно ознакомиться с причиной и результатом утечки в учебных и познавательных целях.


        1. ashotog Автор
          02.04.2019 13:45
          +1

          пример дампа в статье. изучайте ;)


          1. WebMonet
            02.04.2019 14:22
            -1

            Это примерно как анализировать прорыв трубы по пробирке с водой…
            Просто я недавно провел аналитику «Mega Collection», в которой львиная доля инфы — мусор. Поэтому у меня складывается ощущение, что значимость утечек сильно преувеличена и истерия вокруг них создается искусственно.


            1. ashotog Автор
              02.04.2019 14:29

              ясно. т.е. надо в паблик сливать все данные, чтобы было больше веры. прекрасное предложение, но нет ;)


  1. opanas
    02.04.2019 12:47
    +2

    В знак благодарности приглашаем вас стать одним из тестировщиков наших будущих игр.

    Извиниться за ошибку? Сообщить о принятых мерах? Вознаградить сейчас за уже найденное? Быть более конкретными касательно будущих задач и вознаграждения? — нет, не слышали. Поверхностный и неконкретный ответ компании, хорошо хоть оперативный.


    1. UnrealQW
      02.04.2019 18:54
      +1

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


  1. Pro-invader
    02.04.2019 14:06
    +2

    Картинка, похожая на КДПВ
    image


  1. RussDragon
    02.04.2019 14:27

    Кажется, утечка не очень критичная, нет?

    Большая часть данных весьма бесполезна и угрозы как таковой не несёт (если только самой Клаустрофобии).

    Разве что, наверное, номер телефона может быть проблемой – но я уже привык думать о нём как о чем-то, что давным давно уже гуляет по сети в разных дампах БД операторов.


    1. ashotog Автор
      02.04.2019 14:31

      ну как — это база клиентов, для конкурентов и всяких маркетологов весьма полезная. а так-то конечно не так критично, как база кредитов или медицинские данные ;)


      1. RussDragon
        02.04.2019 14:49

        > как база кредитов или медицинские данные ;)
        Ну вы тёплое с мягким-то не сравнивайте. Базу кредитов или медицинские данные можно использовать против человека и/или использовать в корыстных целях, в них действительно содержатся sensitive-данные.

        Что можно сделать с точки зрения немаркетолога/конкурента с данными КФ – я не знаю. Раскроете мне тайну?


        1. Nexus7
          02.04.2019 17:10
          +2

          Например, может поискать телефонный номер Василия Пупкина в этой базе, найти клёвую фотку «Вася за решёткой» и заказать статью желтушной газете:
          ШОК! Кандидат в депутаты Василий Пупкин в 2014 году попал в спецприёмник за ношение противогаза на улице. <фото>

          Василий потом будет долго отвечать на вопросы своих избирателей и «осадочек останется».

          Как говаривал Брюс Шнайер (в моей вольной интерпретации): не храните данные пользователей, это им может навредить, и вы даже не знаете, как именно.


  1. MaxVetrov
    03.04.2019 08:58

    А каким образом вы наткнулись на свои фотографии?


    1. ashotog Автор
      03.04.2019 09:59

      первична база, сначала наткнулся на нее. а потом найти свою фотку уже просто ;)


  1. Zel
    03.04.2019 12:47

    Клаустрофобия есть и в Украине? Ну, то есть, я думал, что это российская контора


  1. transcengopher
    03.04.2019 14:20

    Что за странная избыточность с локализацией значений? Это нормально для подобных баз данных? Какие есть полезные эффекты в таком отсутствии нормализации?


    1. zim32
      03.04.2019 15:39

      Удобнее читать тем кто слил наверное )