Tabnabbing: экстравагантный фишинг


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

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

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

    В 2010 году Аза Раскин, сын Джефа Раскина, поделился в своем блоге очень интересным, как мне кажется, методом фишинга, который он назвал Tabnabbing.

    Его суть в следующем:

    1. Атакующий привлекает пользователя на страницу своего сайта, которая выглядит абсолютно нормальной и такой, какой пользователь ожидает её увидеть.
    2. Атакующий определяет, что пользователь длительное время не взаимодействовал со страницей, или вообще переключился на другую вкладку.
    3. Пока страница неактивна – подменяется ее favicon на иконку сайта, под который она будет маскироваться.
    4. Контент страницы меняется на контент фейковой формы логина сайта, под который она маскируется.
    5. С определенной достаточно большой долей вероятности пользователь, вернувшись ко вкладке – не задумываясь, автоматически введет свои логин и пароль.
    6. После перехвата данных авторизации – пользователя можно просто переадресовать на атакуемый сайт, ведь вероятнее всего он на нем уже авторизован и именно этого поведения он и будет ожидать.

    Реализация

    Прототип кода, который отслеживает поведение пользователя может выглядеть как-то так:

    window.onblur = function(){
      TIMER = setTimeout(time_to_change, 5000);
    }  
    
    window.onfocus = function(){
      if(TIMER) clearTimeout(TIMER);
    }
    
    function time_to_change() {
      if( HAS_SWITCHED == false ){
        change_content();
        change_title( "Gmail: Email from Google");    
        set_favicon("https://mail.google.com/favicon.ico");
        HAS_SWITCHED = true;    
      }
    }
    


    То есть, сам перехват поведения пользователя – достаточно тривиален, и не замысловат. Далее, функция change_content() отвечает за создание новых элементов DOM-дерева, которые будут отображены поверх оригинального контента страницы.

    А если вы любите поностальгировать:

    Аза Раскин в своем посте, посвященному этой теме, реализовал пример этого поведения, и если вы переключите вкладку с постом – вернувшись в нее вы получите скриншот страницы авторизации Gmail образца 2010 года.

    В любом случае, хотелось бы напомнить – будьте предельно внимательны, это основа вашей безопасности в сети.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 49

      –14
      Теперь Петя из 7 «Б» знает как получить доступ к почте одноклассницы Лены.
        +16
        Опасность атаки в настоящее время значительно выше, чем на момент публикации. Связано с ростом числа мобильных устройств, на которых, как правило, неактивные вкладки скрыты от пользователя, в отличие от десктопных браузеров.
          +4
          тот же айос очень быстро выгружает неактивные вкладки из памяти, отображая только их скриншоты
            –14
            да, нам очень важно мнение об iOS, спасибо, 8% рынка дескопов «защищены». Вот только это всего 8%. С остальными то что делать? (окей, или около 20% телефонов).
            • UFO just landed and posted this here
                0
                Самоирония, она такая.
                0
                iOS на десктопах? Интересненько.
              –11
              Я вообще редко авторизуюсь на сайтах в браузере телефона и планшета. Для популярных сервисов есть мобильные приложения. Сайты, на которых мне приходится авторизовываться через мобильный браузер малопригодны для фишинга из-за низкой популярности.
              +4
              Ещё один довод использовать менеджер паролей.
              Менеджеры в виде плагинов к браузеру смотрят на url страницы, и показывают те пароли, которые относятся к url.
              Кстати, AVG сработал на страничку с примером.
                0
                Сомнительные доводы. Я вот до сих пор им не доверяю, и думаю не зря. Т.к. склад всех паролей в одном месте это куда более опасно.
                  +1
                  Вы ставите под сомнение мои доводы, но выдвигаете сомнительные доводы против)
                  Вообще вы можете поднять свой личный сервис хранения паролей на своем хостинге.
                  Хотя ещё не встречал безопасной реализации.
                  Например, свой сервер для mozilla sync — хорошо, но хранение паролей в браузере в открытом виде небезопасно.
                  Или вы можете использовать программу типа keepass, чтобы хранить их только на своем компьютере.
                  Но тогда не будет проверки, тот ли это url.
                    +1
                    Но тогда не будет проверки, тот ли это url.

                    Будет. Для keepass есть плагин под названием WebAutoType.
                    Нажимаете на сайте Ctrl+Alt+A и срабатывает автозаполнение на основе url.
                      0
                      Действительно. Их там, оказывается, много — плагинов для браузеров.
                      KeeForm, KeeFox, PassIFox, ChromeIPass, KeePasser.
                      +1
                      Речь идет не о фишинге, а скорее о вирусах. Просто хранить все пароли в одном месте — плохо. Встроеные в браузеры решения — сомнительны. Андроид же хранит пароли от wi-fi в не зашифрованном виде, почему Chrome(код которого закрыт) не имеет подобных уязвимостей? Про плагины я вообще молчу. Да, keepass это вроде как выход, но с другой стороны облегчать злоумышленнику задачу, складывая все пароли воедино мне не очень хочется. Это не паранойя, а здравый смысл.
                        +1
                        Злоумышленнику нужно ещё как-то взломать файл паролей.
                        А если у вас надежный пароль на нем, это можно считать невыполнимой задачей.
                        Ещё я бы рекомендовал посмотреть разницу между доступом к сайту с вашим аккаунтом и к вашему компьютеру.
                        Сайт более доступен, чем ваш компьютер.
                        Адрес сайта известен, там есть форма «логин-пароль», которую можно атаковать.
                        А ваш компьютер неизвестно где и ещё и за NAT.
                        Плюс, на самом компьютере все может быть нормально с безопасностью.

                        Менеджер паролей позволяет держать для каждого сервиса свой пароль, длинный и сложный.
                        Без него человеку трудно запомнить разные сложные пароли для сотни сервисов.
                        Особенно не специалисту в IT.

                        Кстати, почему речь о вирусах?
                        В посте речь именно о фишинге.
                          +1
                          Потому что в случае заражения вирусом, очень велик шанс остаться без всех паролей, лежащих в сборщике паролей.
                          Вы пытаетесь из двух зол выбрать меньшее, а я просто не пытаюсь создавать зло.
                          Да, безусловно вы правы, на тему атак посредством сайта. Но у меня же не смогут украсть пароль с компьютера, если его там нет? (кейлогеры в обиход не берем).

                          К слову:
                          blog.q-protex.com/2010/03/14/keepass-self-bruteforce/
                          И того, все мои пароли в одном файле под SHA256. Это так надежно…
                            +2
                            Я даже лучше ссылку дам:
                            www.antoine-cervoise.fr/2013/02/12/bruteforce-a-keepass-file/?lang=en
                            Но там, в лучшем случае, быстродействие 500 паролей в секунду.
                            Это очень мало.
                            Даже пароль в 10 символов [a-z0-9] будет подбираться 115 млн лет (36^10/86400/365).
                            Даже увеличение скорости на 3-6 порядков не решит проблему.
                              0
                              И так. Rainbow SHA-256, зачем 115 млн лет, все давно сделано до нас.
                                +2
                                Можно конкретный пример?
                                А то я стараюсь перевести в область конкретики, а вы — в область домыслов.
                                Вот тут человек пробовал ломать файл keepass, включая rainbow tables.
                                www.excivity.com/ComputeCycle/cracking-keepass-passwords/
                                И написал про rainbow tables:
                                > Rainbow tables work well against plain text passwords that are poorly encrypted. They don’t work well against files.
                                А так же пришел к выводам насчет сотни миллионов лет.
                                  0
                                  Я теоретик, а не практик. Практика запрещена законом:)
                                  Но, как показывает практика, рано или поздно обнаружится уязвимость, и не обязательно ломать для этого файл. Думаю вполне реально и просто перехватывать обмен паролями между keepass и браузером. В реальности способов масса, было бы желание.
                                  В конце концов потерять один пароль и из-за него потерять все, куда хуже, чем просто потерять один пароль.
                            0
                            > А ваш компьютер неизвестно где и ещё и за NAT.

                            > Менеджер паролей позволяет держать для каждого сервиса свой пароль, длинный и сложный.

                            Шифрованный файл со всеми сверхсложными паролями на секретном компе — столько возможностей потерять все пароли сразу! Особенно не специалисту в IT.

                            Последнее приложение, которое у меня хранило пароли благополучно уронило свои сервера почти одновременно с выпуском версии, которая стабильно падала при логине. Я к этому исходу был готов, а много таких?
                              0
                              Как называется приложение, если не секрет?
                                0
                                SafeWallet
                                +1
                                Шифрованный файл со всеми сверхсложными паролями на секретном компе — столько возможностей потерять все пароли сразу!

                                Как правило этот файл присутствует ещё и на мобильном устройстве, синхронизируясь через облако. Это относительно безопасно, шифрование там хорошее, да и размер файла в несколько килобайт не доставляет проблем.

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

                                      Не говоря о всяких мелочах, вроде того что именно синхронизируется по всем устройствам, когда с диска файл считается с ошибкой.
                                        +1
                                        Главное мастер-пароль не забыть.

                                        Один пароль всё-же запомнить проще, чем сотню.
                                        Просто для себя не вижу больше решения, где удобство+безопасность выше.
                          0
                          В IE, кстати, замена иконки работать не будет.
                            +2
                            location.replace решает эту проблему. Заодно и домен можно сменить на более соответствующий фейковой странице.
                              0
                              У меня в IE 11 меняется (тестировал по ссылке в посте)
                              +3
                              Меня честно говоря всегда настораживает тот факт, что я почему-то вдруг перестал быть авторизованным в сервисе почты или еще где-либо если сам не нажимал на выход, по этому всегда обращаю внимание на адресную строку в тех случая, когда авторизация почему-то слетает.
                                +15
                                Вывод: не убирайте адресную строку! Не убирайте, сволочи!
                                  +1
                                  И используйте HTTPS. Желательно — с верифицированным сертификатом.
                                    +1
                                    Что мешает организовать эту атаку через HTTPS? И да, в наши дни сертификат можно получить совершенно бесплатно (обычный, конечно).
                                      0
                                      У хороших сертификатов (не знаю, как это правильно назвать) есть картинка с замочком и названием организации.
                                        0
                                        Я вот зашёл на gmail.com и такого значка не увидел. Видимо, не везде используются хорошие сертификаты.
                                          0
                                          У www.mozilla.org/en-US/, например, такое есть. В начале адресной строки. Есть и у пейпала, и у многих зарубежных банков (например, www.dnb.no/).
                                            0
                                            Я не спорю, это где-то есть. Но пока что пользователи не приучены видеть на страницах логина зелёные значки.
                                              0
                                              Если их не учить, то они никогда и не приучатся.
                                            • UFO just landed and posted this here
                                                0
                                                Дык разве это хорошо?
                                                • UFO just landed and posted this here
                                                    0
                                                    Получить EV сертификат намного сложнее и дороже, так как центр сертификации запрашивает кучу документов у компании и проводит мини-аудит. Многим это просто не по карману.
                                                    Уж гугл-то мог его получить?
                                                    С точки зрения уровня криптографической защиты никакой разницы нет.
                                                    А с точки зрения пользователя неважно, есть криптография или нет, если внешний вид можно подделать.
                                                    • UFO just landed and posted this here
                                              0
                                              Видимо, ваш трафик уже идет через соседский charles.
                                      +9
                                      Интернет дикое место, последние несколько лет посещаю его через линукс вируталку с плагинами NoScript+RequestPolicy в браузере и все-равно боюсь :)
                                        0
                                        В сафари на iPad указанный пример не сработал. Ради интереса надо будет попробовать на жесткое с разными антивирусами.
                                          0
                                          Новый Safari от таких атак хорошо защищён: он не показывает favicon вместе с title, а в строке заголовка — только домен сайта и значок, защищённое ли соединение.

                                          Only users with full accounts can post comments. Log in, please.