Pull to refresh

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

Reading time 2 min
Views 44K

Последние три дня примечательны тем, что в сеть попали три больших базы аккаунтов пользователей почты Яндекса, 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 года.

В любом случае, хотелось бы напомнить – будьте предельно внимательны, это основа вашей безопасности в сети.
Tags:
Hubs:
+86
Comments 49
Comments Comments 49

Articles