Прошло два дня этой недели, а крупных скандалов еще нет. Болото стало затягиваться ряской. Давайте поговорим о Bluestacks, эмуляторе Android. Разработчики утверждают, что его установили 90 000 000 человек. Ну давайте я попробую кинуть в Bluestacks грязью.

image

Однажды я искал свой файл с паролями на диске. Ввел пароль, который помнил, и задал поиск в свежих файлах. Нашлось 2 файла: файл паролей и файл в папке “\BlueStacks\Android\Data.sparsefs\”.

Помолившись Афине, чтобы дала мне мудрости и терпения, я приступил к препарированию. Результат: BlueStacks перехватывает и записывает к себе клавиатурные операции, обращенные не к нему.

Я сделал несколько Ctrl+C в Windows-блокноте. Затем нужно закрыть главное окно эмулятора обычным крестиком (иначе эмулятор не запишет результаты перехвата в файл). Затем нужно убить ВСЕ его процессы тасккиллером. Что я нашел в “\BlueStacks\Android\Data.sparsefs\ ”? Правильно. Там же были 20-символьные пароли, которыми я подписываю APK и прочие “Ctrl+C” из прошлого. Может быть там есть не только буфер обмена, но и просто поток с клавиатуры, только зашифрованный? Не знаю как проверить.

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

Сделал видео по теме:
yadi.sk/i/G4mLHmMniptzD

Если копнуть глубже, то вы увидите в BlueStacks перехват страниц и данных из Internet Explorer и Firefox. Вероятно есть метки времени и можно сопоставить буфер обмена и URL.

Хвала Меркурию, богу коммуникаций и воров! Я обнаружил еще одну приятную неожиданность: если в компьютер воткнуть USB флэшку – в файлы BlueStacks запишется ее структура (как минимум имена файлов и папок, а может и даты в бинарном виде).

Компоненты BlueStacks требуют доступ в интернет. И еще Bluestacks запускает процесс “svhost/протокол HTTP SSL/HTTPFilter”. К кому и что утекает? Я не разбираюсь в сетевых протоколах, кто знаком с Fiddler/Wireshark просьба сообщить чего там передается. На поверхности — свежеустановленный эмуль общается с десятком диапазонов IP.

Эмуль может работать с микрофоном и видеокамерой компьютера, как знать, может Bluestacks переплюнет Windows 10 и эта неделя войдет в анналы истории.

image

Ликбез для жертв ЕГЭ: “Я кончил” – формула окончания речи древнеримских сенаторов. А не то, что вы подумали. Как же испохабился русский язык за эти 15 лет!

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


  1. EminH
    02.09.2015 11:09
    +4

    Bluestacks лоханулись, им надо отправлять все данные напрямую на сервера не записывая в локальную папку.
    Если так, никто не просечёт, кроме тех кто «разбирается в сетевых протоколах… и знаком с Fiddler/Wireshark»


    1. VBKesha
      02.09.2015 11:21

      Ну или хотя бы проксорить данные.


  1. Mangalore
    02.09.2015 11:22

    Рядом с записанными данными есть тег standalone='yes'. Возможно это тег, что данные не были отправлены сразу.


    1. Ganster41
      02.09.2015 11:50
      +2

      Это часть стандарта XML, и означает что в документе не используются никакие внешние определения «сущностей».


  1. PaulZi
    02.09.2015 12:38
    +1

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


    1. questor
      02.09.2015 13:51

      Отдельно стоящая виртуалка для подобных экспериментов. Идеологию докер — в массы!


      1. stychos
        08.09.2015 19:39

        Вот майкрософт и несёт.


  1. xpert13
    02.09.2015 12:54

    У меня в папке “\BlueStacks\Android\Data.sparsefs\” 2 файла:
    1. Map — 513 Кб
    2. Store — 918 Мб

    Своих паролей я там не нашел.


    1. 2sexy2lazy
      02.09.2015 14:30

      Аналогично.


      1. Mangalore
        02.09.2015 15:11
        +1

        Использую Bluestacks версии 0.8.х.
        Не может быть, чтобы я один был Д'Артаньяном!
        Пока не прибьете процессы эмулятора — к содержимому файла Store нет доступа. Тупо попробуйте нажать F3 для его просмотра.
        В конце файла (на 99%) найдете строки:

        text=TEXTFROMBUFFER

        в окружении нулей. Не используйте кириллицу для копируемого текста, может там ASCII а может UTF, я пробовал только латиницу.


        1. FeNUMe
          02.09.2015 16:05
          +4

          Проверил у себя 4 «образа» блюстака 0.9+, в трех обнаружились строки из буфера обмена и похоже запросы к гуглу. Так что вы не один.


        1. EminH
          02.09.2015 16:08
          -1

          Ничего не нашел,
          а что за папка “\BlueStacks\Android\Data.sparsefs\"? Какой полный путь?


  1. justabaka
    02.09.2015 13:43
    +6

    На самом деле «dixi» переводится, как «я сказал».


    1. Mangalore
      02.09.2015 14:53

      Да ради бога/богов!

      dic.academic.ru/dic.nsf/dic_fwords/52154/dixi


      1. xenohunter
        02.09.2015 18:47
        -2

        Google.Translate: Dixi. Без пунктуации неверно переводит.


        1. quantum
          03.09.2015 03:48
          +3

          В спорах лучше не приводить в качестве аргумента гугл транслейт. И википедию.


          1. xenohunter
            03.09.2015 11:40
            +2

            Согласен, был не прав. Исправляюсь: dico 1, dico 2.


  1. dom1n1k
    02.09.2015 14:54
    +1

    Статью надо переводить на английский и куда-то типа Медмума. Иначе болото не сдвинется.


    1. mifki
      02.09.2015 14:56
      +5

      Для начала надо убедиться, что это именно их рук дело — кейлоггер в 90 млн. установок — это серьезное обвинение.


  1. mifki
    02.09.2015 14:54
    -5

    То есть вы храните пароли просто в файле на диске…


    1. pvasili
      02.09.2015 15:06
      +4

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


      1. mifki
        02.09.2015 15:08
        -6

        То есть (безотносительно к ситуации с кейлоггером) так делать норм?


    1. KorDen32
      02.09.2015 17:13
      +3

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


  1. Mangalore
    02.09.2015 17:43
    +1

    Сделал видео по теме:
    yadi.sk/i/G4mLHmMniptzD


    1. Idot
      02.09.2015 18:21

      На youtube обязательно залей! И с английским комментариями (хотя бы субтитрами).


      1. Mangalore
        02.09.2015 18:38
        +1

        Залейте кто-нибудь на youtube со ссылкой на хабр.
        Mangalore — мой мусорный аккаунт на почте.ру. Не хочу светить основной gmail на ютубе.


  1. zone1508
    02.09.2015 18:42

    Только позавчера установил себе эмуль а тут такое.
    Проверка показала что буффер обмена оно пишет когда запущена основная программа.
    Т.е. если ее закрыть а остальное не убивать из процессов буфер не пишется.
    Скорее это таки бага.


    1. Mangalore
      02.09.2015 19:46

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

      Давайте дружно позовем фотку Д. Киселева со знаменитым «Совпадение? Не думаю!»


      1. DoctorChaos
        02.09.2015 20:22
        -5

        Если BS позволяет копировать что-то из основной системы внутрь эмулятора через виндовый буфер обмена, это действительно может оказаться особенностью реализации/багом/фичей/чем угодно. Общение с десятком IP может тоже оказаться фичей андроида, например. Это эмулятор, приложения из него могут ходить во внешнюю сеть и для этого вполне может быть нужен “svhost/протокол HTTP SSL/HTTPFilter”.
        На мой взгляд, вы поспешили с выводами и зря подняли панику, не разобравшись.


        1. Idot
          02.09.2015 21:05
          +5

          это действительно может оказаться особенностью реализации/багом/фичей/чем угодно

          Если Вы вернувшись домой обнаружили, что в Вашей запертой квартире шарится по ящикам и полкам какой-то незнакомый Вам мужик, то весьма вероятно, что он просто ошибся домом и квартирой — «Иронию судьбы» ведь все смотрели.


          1. DoctorChaos
            02.09.2015 21:59
            -4

            Доведение до абсурда и ложные аналогии – отличные приемы черной риторики.


            1. gaelpa
              03.09.2015 01:15
              +2

              Почему же? Отличная параллель: покуда мужик не сможет доказать что он с друзьями парился в бане, у вас все основания считать его вором/грабителем.


              1. DoctorChaos
                03.09.2015 01:49
                -1

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


                1. rPman
                  03.09.2015 11:21

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


                  1. DoctorChaos
                    03.09.2015 11:31

                    Если файл зашифровать, никто факт сбора не найдет.
                    А на второй вопрос ответ? :)


                    1. rPman
                      03.09.2015 11:52

                      эффективность сбора? тем более та же причина
                      Тем более объяснить зачем приложению с окном буфер обмена легко, а зачем тоже самое приложению в фоне — другое.


                      1. DoctorChaos
                        03.09.2015 12:06

                        Кому объяснять-то? Зашифровал файл, в фоне запустил сборщик — никто не догадается.
                        А если догадается, то точно так же несложно объяснить особенностями реализации. Продукт закрытый, работает давно, множество довольных пользователей, доказательств умысла ноль.


    1. msincster
      08.09.2015 15:02

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


  1. ComodoHacker
    03.09.2015 11:56

    Обязательно напишите статью на английском.


  1. Solovej
    06.09.2015 09:34

    Получается так что не зря Bitdefender считает эту программу зловредом? У самого производителя написанно что программа не может быть установленна с этим антивирусом.


  1. prozhar
    08.09.2015 11:07

    У себя по адресу C:\Program Files (x86)\BluesStacks\BlueStacks\Logs\Core.log в файле нашел такие строки:

    2015-09-01 11:41:06.066000 HD-SharedFolder( 1152:  824): Opened log file
    2015-09-01 11:41:06.067000 HD-SharedFolder( 1152:  824): Starting shared folder helper process
    2015-09-01 11:41:06.067000 HD-SharedFolder( 1152:  824): Configuring shared folders:
    2015-09-01 11:41:06.068000 HD-SharedFolder( 1152:  824):      0 BstSharedFolder -> C:\Program Files (x86)\BluesStacks\BlueStacks\UserData\SharedFolder\ - 1
    2015-09-01 11:41:06.068000 HD-SharedFolder( 1152:  824):      1 Pictures -> C:\Users\<username>\Pictures - 1
    2015-09-01 11:41:06.068000 HD-SharedFolder( 1152:  824):      2 PublicPictures -> C:\Users\Public\Pictures - 1
    2015-09-01 11:41:06.068000 HD-SharedFolder( 1152:  824):      3 Documents -> C:\Users\<username>\Documents - 1
    2015-09-01 11:41:06.068000 HD-SharedFolder( 1152:  824):      4 PublicDocuments -> C:\Users\Public\Documents - 1
    2015-09-01 11:41:06.068000 HD-SharedFolder( 1152:  824):      5 InputMapper -> C:\Program Files (x86)\BluesStacks\BlueStacks\UserData\InputMapper\ - 1
    

    Это что получается, блустакс расшаривает владельца и общие изображения и картинки?


    1. mayorovp
      08.09.2015 12:28

      Да, между хост-системой и эмулируемым андроидом.


  1. beststream
    08.09.2015 13:40

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


  1. Antispammer
    08.09.2015 13:59

    А чем заменить? Какие есть хорошие эмуляторы? Такие, чтобы не стопицот баксов стоили.


    1. 1eqinfinity
      08.09.2015 14:13

      В Android Studio входит виртуалка.


    1. Ganster41
      08.09.2015 15:15

      Смотря что с ним делать. Бесплатной версии Genymotion хватает для большинства задач, и работает оно попроворней эмуляторов из Android SDK. Ну правда «For personal use only», да.


      1. Antispammer
        08.09.2015 15:59

        Для игр интересует.


        1. Ganster41
          08.09.2015 16:31

          С 3D-ускорением там конечно все не очень радужно, а без 3D все довольно хорошо там. Если еще ARM-трансляцию от Intel прикрутить, так даже игры без поддержки x86 будут работать некоторые. Правда в образах Android 4.4+ ей уже никто не занимался, и оно, к сожалению, отвалилось.


  1. sidorvm
    09.09.2015 04:22

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


  1. zone1508
    10.09.2015 17:20

    Написал им в саппорт неделю назад. Пришел стандартный ответ типа укажите пошагово как воспроизвести проблему.
    Расписал — в ответ тишина.
    Может мало обращений что б они обратили внимание на явный косяк? Запустить бы это хотя б в реддит чтоб поштормило.