Новый баг в Telegram'e

    После ознакомления с постом и другим постом.
    Захотелось узнать о Телеграме побольше.
    Машинально вбивая хэштег Телеграма в Twitter, наткнулся на блог одной ИБ компании…


    Как НЕ следует разрабатывать Ваше приложение.


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

    Инструменты для теста

    Android 4.3 in Virtual Box
    Wireshark запущенный на локальной машине.
    HTC One with Android 4.0.3
    Telegram 1.3.800 (in virtual box)


    Методика

    Для начала давайте установим Telegram, а пользователей, к примеру, назовем Алиса и Боб. После этого, создаем аккаунты в Telegram и добавляем друг друга в друзья:


    Теперь создаем секретный чат:



    Отправляем тестовое сообщение:



    Как мы можем видеть в Wireshark, все данные проходят через SSL и выглядят зашифрованными.

    Но...

    Что, если мы постараемся отправить какое-нибудь вложение? К примеру, геолокацию?





    Ага! Открыта незашифрованная TCP-сессия. Давайте взглянем поближе:



    По умолчанию для загрузки фрагмента карты, Telegram использует Google-Maps API в незашифрованном виде.
    С точки зрения безопасности и анонимности это полный провал…

    Человек, который контролирует канал, может перехватывать все геолокационные вложения, обходя секретный чат с двух сторон.

    На практике, если Сноуден отправит кому-нибудь, кто находится под прослушкой АНБ, свое географическое положение через Телеграм… томагавка будет достаточно, чтобы удовлетворитьГенерала Александра.

    Bug fix.

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

    Если я не ошибаюсь, то фикс выглядит так.

    Любопытно, сколько же заплатят авторам за найденный баг.

    Источник.
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну, и что?
    Реклама
    Комментарии 43
    • +1
      А для пущей надежности можно жестко прописать сертификат Google Maps API и кричать, если он не совпадает. И тогда никакой MITM не страшен.
      • +3
        классная мысль, но только потом google сменит сертификат и фича развалится.
        • –1
          Поэтому и кричать, а не отвергать сразу. Ну и изменить прошитый сертификат — дело 5 минут, да и меняются они не так часто.
      • +4
        Если этот баг будет достойно оплачен, а ребята оперативно внесут фикс, то думаю ко 2-ой версии мы сможем получить действительно достойный протокол.
        • +23
          Им следовало бы эту версию назвать нулевой, а вместо «Telegram» использовать какое-нибудь кодовое название типа «Project T». Иначе ко второй версии может не остаться пользователей.
          • +6
            Обращу внимание, что обращение к Google Maps не является частью протокола. Это уязвимость клиента, причем я пока еще сомневаюсь, можно ли считать это уязвимостью…
          • +25
            Ну просто вау. Какого чёрта там вообще используются незащищённые сессии? Зачем?
            • +69
              Да как ты смеешь, смерд, катить бочку на самого Дурова и его брата-гения, победителя математических олимпиад, обладателя каких-то там премий и вообще!
            • +15
              Павел Дуров:
              Во всяком случае, это очень сложно назвать багом. Фактически равносильно тому, что Вы переслали ссылку в секретном чате. Если Вы параноик, любые ссылки (включая геолокационные) вообще лучше не пересылать и не открывать.
              • +58
                Лолшто? То есть их мессенджер может переслать текст в зашифрованном виде, но вот зашифрованность ссылок обеспечить не может? Или он всё же имел в виду то, что ходить по этим ссылкам нужно с осторожностью? Почему это параноик не может переслать ссылку, именно переслать, а не открыть? Потому что мессенджер может ошибиться при пересылке ссылки и не зашифровать её? Может, это всё же проблема мессенджера?
                И как объяснить то, что у них есть поддерживаемый тип вложения «геолокационные данные», но нет возможности обработать это вложение безопасно, сохраняя удобство для пользователя? Может, не надо было разрешать небезопасные вложения или надо было хотя бы предупреждать?
                • +9
                  Всё, в общем-то, ясно: бабло за баги — пиар мессенджера, выплачивать деньги никто не собирается. К первому случаю, когда вознаграждение якобы было, есть серьезные вопросы.
                  • –16
                    Всё это было ясно изначально. Только недалёкие люди могли повестись на глючную самоделку от дурова.
                    С безопасностью этот продукт не имеет ничего общего, один сплошной пиар. Но миллионы простачков они всё-таки поимеют, это факт.
                    • +7
                      омг,
                      вашей зависти нет предела…
                    • +2
                      Кстати, насчёт первого пункта — Вы забыли упомянуть о том, что автор опубликовал топик в песочнице, что уже выглядит довольно странно для баг-репорта. Получается, если бы никто не подарил автору инвайт, он так и остался без награды, а про уязвимость «никто бы не догадался». Хотя, возможен и другой вариант — первый кто увидел пост, мог бы написать разработчикам, что, якобы он нашёл уязвимость.

                      Единственное что оправдывает эту странность — так это то, что автор даже не подразумевал насколько опасна уязвимость и не подумал что ему заплатят.
                    • +1
                      Не совсем так. Мессенджер передаёт ссылку в зашифрованном виде, но потом, когда пользователь её открывает, она может оказаться обычной http-ссылкой и данные по ссылке будут загружены без шифрования.
                  • +3
                    АНБ придется раскошелиться на новый бэкдор
                    • +25
                      Мне кажется не будет с этим проблем.
                      Но спасибо за идею, Петрик Дмитрий, Россия, Томск. Передайте привет Ксении, Марии, и своему научному руководителю из ТПУ.
                      Ваши ICQ 2***12 и телефон 7952*****72

                      Пожалуйста, продолжайте пользоваться интернетом, который изобрела наша великая страна.
                      • +41
                        Ну хоть звякните, с новым годом поздравьте :)
                        • 0
                          И в тоже самое время вы публикуете сообщения в Twitter, чтобы не пользоваться этим самым интернетом, да?
                          • 0
                            Это сейчас Томск. До этого Волгодонск был. Страшная штука — интернет. Сам грешен.
                            • 0
                              Забыли день рождения xD 15 августа 1984
                              • 0
                                Нужно быть настоящим шерлоком, чтобы найти то, что человек о себе никогда не скрывал :).
                            • +2
                              Я понимаю, что про «Томагавк» было сказано для красного словца. Но «Томагавка» было бы достаточно скройся Сноуден в Эквадоре, он же «волей случая» оказался совсем в другом месте и одиноким «Томагавкам» там ничего хорошего не светит.
                              • +43
                                • 0
                                  блог одной ИБ компании

                                  Так и не смог в описании сервиса найти слов про то, что это компания.
                                  Откуда автор информацию брал?
                                • 0
                                  Из кода видно, что кусок карты подгружается из клиента телеграма, но сами координаты не передаются в открытом виде. Чтобы это стало уязвимостью, надо сперва расшифровать трафик телеграма чтобы узнать от кого пришли координаты. Ну а если расшифровали, то тут и линк на гуглокарты уже не нужен.
                                  • +1
                                    проблема а том, что телеграм, получив координаты по шифрованному каналу, сразу же отправляет их гуглу, чтоб получить карту. то есть, если у нас есть 2 собеседника, и трафик первого мы слушаем (без расшифровки). То чтоб определить местоположения второго, достаточно подождать, когда второй отправит свое местонахождение первому.
                                    • +5
                                      Вот мне тут прислали координаты, я их открыл. Угадайте, кто прислал
                                      Скрытый текст
                                      GET http://maps.googleapis.com:80/maps/api/staticmap?center=55.754165%2C37.620464&zoom=13&size=100x100&maptype=roadmap&scale=%25d&markers=color%3Ared%7Csize%3Abig%7C%25f%2C%25f&sensor=false HTTP/1.1
                                      Accept: */*
                                      Cache-Control: no-cache
                                      Host: maps.googleapis.com
                                      Proxy-Connection: Keep-Alive
                                      
                                      HTTP/1.1 200 OK
                                      Content-Type: image/png
                                      Date: Thu, 26 Dec 2013 10:14:57 GMT
                                      Expires: Fri, 27 Dec 2013 10:14:57 GMT
                                      Cache-Control: public, max-age=86400
                                      Vary: Accept-Language
                                      Access-Control-Allow-Origin: *
                                      Server: staticmap
                                      Content-length: 5773
                                      X-XSS-Protection: 1; mode=block
                                      X-Frame-Options: SAMEORIGIN
                                      Alternate-Protocol: 80:quic


                                      Я не оправдываю разработчиков телеграма, но по моему истерика излишняя.
                                      И не стоит забывать, что (как минимум) АНБ имеет доступ к данным гугла без необходимости расшифровывать клиентский https
                                      • 0
                                        тем не менее, гугл предлагает использовать SSL для всех своих сервисов, чтобы хотя бы провайдеру и соседям не было известно содержимое.
                                        Ну, то есть, если мы хотим удобный мессенджер, нам придется доверять сервисам хотя бы ограниченно.
                                        • +4
                                          Какой-то пассажир с красной площади, 55.754165, 37.620464
                                          было это в Thu, 26 Dec 2013 10:14:57 GMT

                                          Осталось посчитать московское время и поднять запись камер наблюдения.
                                      • +1
                                        Сервер телеграма знает кто, когда и кому отправлял сообщения. Анонимности тут нет, более того, похоже, что клиент телеграма во время работы сливает с телефона вашу адресную книгу на сервер, потому ему известны даже те ваши контакты, которые телеграмом не пользуются.
                                      • +2
                                        Прочитав вашу статью, я вспомнил об одном своем комментарии к посту о конкурсе на реализацию клиента MTProto. И вот выдержка из него:
                                        Кстати да, они описали как работает их новый протокол, но нигде не предоставили информации почему его можно считать защищенным. Или найти уязвимости будет вторым заданием?
                                        И я смотрю что так оно и есть. Забавно получается: мы придумали протокол — реализуйте нам его, вот наш клиент — найдите нам уязвимости. И несмотря на то, что они платят деньги, они платят тем, кто добился результата. А все те, кто потратил много времени, но ничего не нашел, ушли с пустыми руками.
                                        • +2
                                          Одним словом — краудсорсинг. :)
                                          • +1
                                            «Я не терпел поражений. Я просто нашёл 10 000 способов, которые не работают. » (с) Томас Эдисон
                                            • 0
                                              Собственно Дуров и Ко уже с год подобным разрабатывают приложения под разные платформы. Это выгодно — не надо парится об управлении команды программистов, просто можно выбрать результат и заплатить деньги. Никаких нервов, срывов сроков, багов, увольнений, зарплаты и т.д.
                                              • 0
                                                Не туда написал комментарий.
                                            • 0
                                              Интересно, а в официальном приложении (которое под iOS) тоже подобный баг воспроизводится?
                                              • +7
                                                Ну хз, по-моему с натягом это можно «отказом дизайна» назвать. Основная суть претензии в том, что одна из реализаций клиента загружала данные из интернета без спроса. Сам протокол тут никак не скомпрометирован.
                                                Так можно скатиться в, «вот смотрите, алиса отправляет бобу ссылку http://nsa.gov/UniqIdentifier123654 боб щелкает по ссылке… Опа, пативен уже подъехал».
                                                • 0
                                                  Надеюсь, на картинках фейковая локация?
                                                  А то вдруг кто за вами в Мавританию приедет :-)

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

                                                  Самое читаемое