В ЧЕМ ИДЕЯ

Фишинговая атака позволяет завладеть конфиденциальными данными жертвы, заманив ее на сайт, контролируемый атакующим. Обычно делается копия сайта банка, социальной сети, известной компании и регистрируется URL, похожий на настоящий. Например, micr0soft.com.

Слабое место фишинга именно неправильный URL. Пользователь всегда может посмотреть на адресную строку браузера и убедиться, что там указан неверный адрес и отсутствует защищенное соединение с зеленым значком HTTPS. Идея фишинга через HTML5 Fullscreen API заключается в том, что злоумышленник переключает браузер пользователя в полноэкранный режим и заменяет реальный интерфейс браузера предзагруженной картинкой с изображением интерфейса браузера. При этом в «адресной строке» можно указать любое называние сайта и нарисовать значок защищенного соединения — это ведь не настоящая адресная строка, а просто картинка с текстовым полем.

Идея не нова. Аналогичные фишинговые атаки осуществлялись десять лет назад в браузере Internet Explorer, но не через полноэкранный режим, а через полноэкранные всплывающие окна путем вызова функции window.createPopup() в DHTML, но суть та же. Уязвимость была исправлена в 2004 году с выходом Windows XP Service Pack 2 (www.kb.cert.org/vuls/id/490708).

 

ТЕОРЕТИЧЕСКАЯ БАЗА

Спецификации HTML5 Fullscreen API позволяют инициировать переход браузера в полноэкранный режим. Это делается простым кодом на веб-странице:

elementToMakeFullscreen.requestFullScreen();

Главное ограничение, которое накладывают API на веб-разработчика, — полноэкранный режим вызывается только в результате действия пользователя: нажатия клавиши на клавиатуре или кнопки мыши. Так что сайт не может просто загрузиться в полноэкранном режиме с самого начала. Поэтому вызов полноэкранного режима по щелчку мыши выглядит примерно так:

$('#fullscreen-button').on('click', function() {
  var doc = document.documentElement;
  if (doc.requestFullScreen) {
doc.requestFullScreen();
  }
});

На практике требуется обращение к функциям mozRequestFullScreen() и webkitRequestFullScreen(). Поскольку спецификации HTML5 Fullscreen API еще не утверждены, эти функции в браузерах на движках Mozilla и WebKit снабжены соответствующими префиксами.

 

КАК ПРОИСХОДИТ АТАКА

Атака начинается с того, что пользователю на веб-странице показывают ссылку такого вида:

Зайди на сайт <a href="https://www.bankofamerica.com">Bank of America</a> и получи 100 долларов

URL выглядит нормально. Если навести курсор на эту ссылку, то в статусной строке браузера отразится адрес настоящего сайта www.bankofamerica.com. Но при нажатии происходит вызов события event.preventDefault(), которое предотвращает стандартное поведение браузера, а вместо этого использует нажатие пользователя по ссылке как триггер для вызова полноэкранного режима (см. выше) и загружает в браузер пользователя другой сайт.

$('html').on('click keypress', 'a', function(event) {

  // Предотвращаем переход по нажатой ссылке
  event.preventDefault();
  event.stopPropagation();

  // Вызываем полноэкранный режим
  if (elementPrototype.requestFullscreen) {
document.documentElement.requestFullscreen();
  } else if (elementPrototype.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
  } else if (elementPrototype.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
  } else {
// fail silently
  }

  // Показываем фальшивый интерфейс ОС и браузера
  $('#menu, #browser').show();

  // Загружаем фишинговый сайт
  $('#target-site').show();
});

Фишинговая страница распознает браузер и ОС жертвы и подсовывает ему соответствующее изображение. В верхней части страницы отрисовывается интерфейс браузера c указанием URL настоящего сайта и со значком защищенного соединения. Средства HTML5 позволяют даже использовать эту картинку как настоящую адресную строку, реагировать на наведение курсора мыши, вводить адрес, нажимать кнопки и так далее.

Студент из Стэнфордского университета, независимый исследователь в области информационной безопасности и веб-дизайнер Феросс Абухадижи (Feross Aboukhadijeh) создал демонстрацию с поддельным сайтом Bank of America: feross.org/html5-fullscreen-api-attack. Автор отрисовал интерфейсы браузеров Chrome, Firefox и Safari. Код демки:github.com/feross/fullscreen-api-attack.

Фишинговый сайт Bank of America в полноэкранном режиме
Фишинговый сайт Bank of America в полноэкранном режиме

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

 

Оставить мнение

Check Also

Хакер ищет авторов. Читатель? Хакер? Программист? Безопасник? Мы тебе рады!

Восемнадцать лет мы делаем лучшее во всем русскоязычном пространстве издание по IT и инфор…