Сокращатели ссылок вроде bit.ly, goo.gl и другие генерируют ссылки с токеном из 5, 6 или 7 символов. Как выяснилось, этого слишком мало, так что всё адресное пространство можно сбрутфорсить. Профессор Виталий Шматиков из Корнелльского технологического университета с коллегой, независимым исследователем Мартином Георгиевым, просканировали адресное пространство сокращённых ссылок — и нашли немало документов на облачных хостингах.

Казалось бы, что такого? Но выяснилось, что предсказуемая структура длинного URL иногда позволяет по одному найденному документу получить доступ к другим документам на хостинге или всообще ко всем документам!

В частности, до марта 2016 года такая структура длинного URL была на хостинге Microsoft OneDrive (она описана ниже), но схожий принцип может быть на других сервисах.

Сокращатель ссылок встроен в OneDrive и другие облачные сервисы, так что короткий адрес автоматически присваивается каждому документу, даже с секретной информацией. Ну а если кто-то подберёт этот адрес, то может получить доступ к аккаунту, отредактировать документы, внедрить загрузчик трояна и т.д.

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

Как видно из доклада, авторы сконцентрировались на двух сокращателях, которые встроены в OneDrive и Google Maps.

OneDrive


Здесь адреса документов и папок кодируются в адреса домена 1drv.ms, обслуживаются оператором Bitly и им присваиваются те же токены, что и на bit.ly. Другими словами, любое сканирование токенов bit.ly автоматически находит и адреса 1drv.ms. Во время пробного сканирования 100 000 000 URL в домене bit.ly со случайно выбранными 6-символьными токенами 42% оказались активными URL. Из них 19 524 вели к документам и папкам на хостинге OneDrive/SkyDrive. Но это не всё.

Как выяснилось, адреса OneDrive имеют предсказуемую структуру. Зная полный URL одного документа, можно сконструировать корневой URL и автоматически перейти в аккаунт, открыть все файлы и папки.

Например, брутфорсом вы обнаружили URL http://1drv.ms/1xNOWV7, который резолвится в https://onedrive.live.com/?cid=485bef1a80539148&id=485BEF1A80539148!115&ithint=folder,xlsx&authkey=!AOOp2TqTTSMT5q4.

Из длинного URL мы извлекаем параметры cid и authkey, с помощью которых конструируем корневой URL для аккаунта: https://onedrive.live.com/?cid=485bef1a80539148&authkey=!AOOp2TqTTSMT5q4.

Для получения доступа к конкретному документу, нужно в исходном коде страницы на облачном хостинге найти элементы с атрибутами href, содержащие &app=, &v=, /download.aspx? или /survey? (этот конкретный способ вроде бы не работает с марта 2016 года).



Для поиска других папок нужно искать ссылки, которые начинаются с onedrive.live.com и содержат cid аккаунта.

Таким методом авторы исследования выявили ещё 227 276 документов на хостинге OneDrive.

Что характерно, около 7% найденных папок были открыты на запись. Не нужно объяснять, что это значит, учитывая, насколько легко обойти встроенный антивирус OneDrive.

Google Maps


До сентября 2015 года у адресов goo.gl/maps были токены из 5 символов. Сканирование случайной выборки выявило 23 965 718 активных ссылок, из которых 10% оказались картами с маршрутами движения, в том числе к больницам для больных раком и с психическими расстройствами, центры для алкоголиков и наркоманов, центры абортов, тюрьмы. В общем, деликатная информация. Например, маршрут от центра абортов до определённого адреса, в принципе, позволяет предположить место проживания человека. Если это дом, где живёт одна женщина, то и предположить личность. Затем, составить карту со всеми адресами, где этот адрес был начальной или конечной точкой движения. Вот такая карта для одного человека.



Как отреагировали компании


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

Компания Google отреагировала немедленно, перешла на токены 11-12 символов и ограничила возможности сканирования URL.

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


  1. djhox
    16.04.2016 00:40
    +1

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


  1. tmin10
    16.04.2016 00:44
    +1

    Интересно, зачем эти люди сохраняли в картаз гугла свои маршруты и получали на них короткую ссылку?


    1. Mear
      16.04.2016 00:53

      Что бы потом вбить в навигатор на машине? Или… может при формировании своей карты (например создал и сохранил её) короткие ссылки у гугломепа генерятся автоматом как и у onedrive?


      1. tmin10
        16.04.2016 00:58

        Сомнительно, что машина сама не может построить маршрут, но сможет открыть гуглокарту через короткую ссылку…

        Проверил с картами гугла: создал новую карту и тыкнул поделиться, гугл выдал длинную ссылку вида https://www.google.com/maps/d/edit?mid=zla1dZHd1kro.kirluZEjefqE&usp=sharing (ссылка не валидная, просто образец)

        Хотя первая часть map id как раз 12 символов, может это и есть токен для сокращалки. Но всё равно непонятно, зачем нужно создавать карту с точкмаи пути от дома до клиники.


        1. Mear
          16.04.2016 08:39
          +1

          Сомнительно, что машина сама не может построить маршрут, но сможет открыть гуглокарту через короткую ссылку…

          Вопрос не в том, что не сможет. Тот же маршрут, но например, сложно-сочлененный проще составить на компе и потом просто открыть на телефоне или навигатор. По той же логике и делают всякие фишки типа Send To Car или они по вашему тоже ерундой занимаются, ведь маршрут же сразу можно в машине построить?


        1. black_semargl
          18.04.2016 11:23

          Навигатор-то может и может, но для этого надо вбить в него название/адрес клиники.
          Без ошибок, длинную строчку.
          А в компе её получают из гугля или ещё каким копипастом.


    1. Punkero
      16.04.2016 12:56
      +5

      Я так делал, когда нужно было поделиться составленным маршрутом с другим человеком. Копировать полную километровую ссылку — не по фен-шую


  1. tunelix
    16.04.2016 01:29

    goo.gl до сих пор выдает 7и символьные ссылки. Старые ссылки, кстати, ищутся очень легко на сотню случайных выпадает парочка рабочих ссылок.


  1. Darth_Biomech
    16.04.2016 06:40
    +6

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


    1. CyberCore
      16.04.2016 12:01
      -3

      Вот интересная статья на эту тему


    1. MartinX
      16.04.2016 16:26
      +1

      Некоторые используют сокращатели чтобы посчитать количество переходов по ссылке (в аккаунте сокращателя обычно пишется сколько раз перешли). Ну или специально делают, чтобы те же реф ссылки не палить :).


  1. EndUser
    16.04.2016 06:50

    (вместо «чувствительный» (sensitive documents/data), наверное, лучше использовать «деликатный» в общем понимании или просто «тайный» на политическом диалекте)


    1. ssneg
      16.04.2016 12:13
      +3

      «конфиденциальный» будет наиболее близко


  1. gene4000
    16.04.2016 09:45

    А всего лишь нужно использовать удлинители :) которые перебором получить невозможно.
    http://www.5z8.info/cats-being-dropped-into-the-sea_k5p9cm_mercenary
    Вот только непонятно, зачем огромное количество сервисов стали массово использовать сокращатели ссылок, которые изначально делали для твиттера. Нужно просто упрощать структуру, а не радикально уменьшать.


    1. Giriia
      16.04.2016 15:52

      Использовать стали потому, что не все понимают, что такое «разметка» и как её приготовить. И вместо вставки ссылки, используют тупо копипаст, как здесь: " https://www.google.by/search?q=%D1%82%D0%B5%D1%81%D1%82&ie=utf-8&oe=utf-8&gws_rd=cr&ei=HjQSV7KuIce2swGB74jwCA ". А это захламляет сообщение и делает его нечитабельным. Ну и не все соцсети вообще поддерживают вёрстку.
      Да и если к примеру печатать ссылку(или указывать её в презентации и етс), то использование сокращателей просто необходимо, ибо перепечатать такое большое количество символов без ошибки крайне трудная задача.


      1. gene4000
        16.04.2016 16:04
        +1

        Запомнить из презентации http://tr.im/cRs93z как мне кажется не намного проще, чем http://site.com/article/about-links


        1. Lobey
          16.04.2016 19:18
          +1

          Запомнить — да. А записать? А отправить через SMS/твиттер? Да и пример у вас кособокий: конечно же, есть случаи, когда сокращать бесполезно. Но есть и миллионы случаев, когда без этого не обойтись. Сравните:
          https://goo.gl/VzQCNJ
          и
          https://www.google.ru/maps/place/%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9+%D0%9A%D1%80%D0%B5%D0%BC%D0%BB%D1%8C/@55.7520233,37.6153054,17z/data=!3m1!4b1!4m2!3m1!1s0x46b54a50b315e573:0xa886bf5a3d9b2e68


  1. gena_glot
    16.04.2016 10:17
    -3

    На самом деле можно и собственно, и 40 символьные адреса брутфорснуть. Можно сидеть и для сайта строки перебирать подряд. Как правило надо посмотреть внимательно на схему url-ования и можно прокверить какой-то сайт и написать скрипд который будет кверить, дизайн в большинстве случаев url-схемы, очень простой. Такие дела.


    1. ssneg
      16.04.2016 12:14
      +2

      решение: на стороне сервера ограничивать кол-во запросов по IP, вроде защиты от ддос, добавлять капчу и т.п. Тогда придется ботнеты подключать, что на порядок сложнее.


      1. EvgeniD
        16.04.2016 15:20

        Ограничение по IP отлично решается IP v6 :)
        Капча сразу убивает всю идею сокращателей…
        GUID интереснее, либо хэш… даже примитивный md5, соленый к примеру timestamp'ом и/или ip (без возможности восстановить их)


        1. tmin10
          16.04.2016 19:36
          +1

          Так IPv6 адреса просто банить не по конкретному IP, а по большим подсетям, которые обычно выдают провайдеры одному абоненту.


          1. click0
            17.04.2016 23:40

            А как вы определите маску подсети абонента? /64, /56, /48 или вообще /32?


  1. green_tree
    16.04.2016 12:56

    пропустим вопрос о том, почему же вообще кто-то шарит документы короткими ссылками…
    ведь у всех этих сервисов (onedrive, dropbox, etc...) есть шаринг для конкретного пользователя, вбиваем email и готово, файл расшарен с нужными людьми
    а если уж нужна ссылка для неопределенного круга людей, то какой это конфиденциальный документ?)

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


    1. Zavtramen
      16.04.2016 17:02

      но на генерацию ссылки на залитый файл уходит какое-то время

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


      1. green_tree
        16.04.2016 17:04

        я имел в виду это:
        > Сокращатель ссылок встроен в OneDrive и другие облачные сервисы, так что короткий адрес автоматически присваивается каждому документу, даже с секретной информацией

        что на залитые файлы это делается вручную, а не автоматически


        1. Zavtramen
          16.04.2016 17:06

          Возможно они все равное всегда делают эту ссылку, просто если пользователь просит — показывают ее, а если не просит — не показывают.


          1. green_tree
            16.04.2016 17:27

            всё может быть, но как-то нелогично делать короткую ссылку, а отдавать её только по запросу… хотя это только моя логика))


  1. MikeKosulin
    16.04.2016 16:57
    +1

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


    1. tendium
      17.04.2016 00:07
      +1

      Ну, так во время брута можно сбрутить те ссылки, которые туда сунули 10 минут назад. Проблема-то явно не в сервисе сокращения ссылок, а в том, что юзеры шарят там то, что шарить таким образом в принципе нельзя.


  1. Zavtramen
    16.04.2016 17:00
    +3

    Уж сколько раз твердили миру, security throught obscurity никогда к добру не приводит, если есть хоть сколько-нибудь секретные данные. Но пользователи тоже отличились: «около 7% найденных папок были открыты на запись», тут медицина бессильна.


  1. saboteur_kiev
    16.04.2016 17:01

    То есть вместо сервиса-шорткатера теперь вполне может взлететь сервис-удлинитель?