Поддельное окно авторизации, чтобы выманить пароль пользователя
Современные средства HTML/CSS позволяют сгенерировать фрейм, практически неотличимый от настоящего браузера, как на скриншоте вверху. Более того, можно нарисовать в нём «адресную строку» с любым URL. Это открывает двери для нового класса атак, который получил название BitB (браузер внутри браузера).
Насколько реальны такие атаки и что можно противопоставить в качестве защиты?
BitB
Уже как минимум 20 лет для фишинга применяются всплывающие окна, в которых подгружается фальшивая копия целевого сайта. В атаке BITB мы видим усовершенствованную технику такого рода. Здесь подделывается не только интерфейс целевого сайта, но и его URL.
Например, в фишинговом окне демонстрируется адрес вроде https://facebook.com или https://accounts.google.com.
Демонстрация:
Специалист по безопасности mr.d0x опубликовал примеры простого HTML-кода, который генерирует всплывающие окна с произвольным URL и заголовком окна.
Опубликованы примеры для браузера Chrome под MacOS и Windows (светлая и тёмная тема).
Например, вот index.html, script.js и style.css для светлой темы Chrome под Windows:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div id="window">
<!-- Title bar start -->
<div id="title-bar-width">
<div id="title-bar">
<div style="margin-top:5px;">
<img src="./logo.svg" width="20px" height="15px" id="logo">
<span id="logo-description">XX-TITLE-XX</span>
</div>
<div>
<span id="minimize">—</span>
<span id="square">□</span>
<span id="exit">✕</span>
</div>
</div>
<div id="url-bar">
<img src="./ssl.svg" width="20px" height="20px" id="ssl-padlock">
<span id="domain-name">XX-DOMAIN-NAME-XX</span>
<span id="domain-path">XX-DOMAIN-PATH-XX</span>
</div>
</div>
<!-- Content start -->
<iframe id="content" src="XX-PHISHING-LINK-XX" frameBorder="0"></iframe>
</div>
</body>
<script src="script.js"></script>
</html>
В опубликованном коде index.html четыре изменяемых параметра:
- XX-TITLE-XX — заголовок страницы;
- XX-DOMAIN-NAME-XX — доменное имя (например, gmail.com);
- XX-DOMAIN-PATH-XX — путь (например, /auth/google/login);
- XX-PHISHING-LINK-XX — фишерская ссылка, которая внедряется во фрейм (например, https://example.com).
Как видим, поддельный URL просто прописывается в url-bar.
По мнению независимых экспертов, это вполне действенный вектор атаки, в том числе через традиционные рекламные сети.
Загрузка вредоносного кода в рекламную сеть через стороннюю платформу (supply-side platform, SSP) вроде FreeWheel, OpenX или Pubmatic
Хотя Google и другие используют автоматизированные сканеры для обнаружения такого рода вредоносного кода, эти проверки можно обойти. Например, с помощью таймера, когда вредоносный скрипт на сервере срабатывает только при определённых условиях:
- через 45 или 60 дней;
- при запросе только с конкретных IP-адресов;
- при обнаружении движения; изменения положения девайса (с акселерометра), прикосновения и др.
Скрипт может сработать при сочетании нескольких перечисленных факторов. Это позволяет надёжно защитить вредоносный код от сканеров рекламной платформы.
Защита
В качестве защитных мер можно рекомендовать следующее:
- использование нестандартных тем оформления в браузере, нестандартных браузеров, нестандартных ОС и др.;
- использование менеджеров паролей (защита от поддельного URL);
- обновление блоклистов uBlock Origin/Adblock и других блокировщиков.
Чтобы сработала атака BitB, пользователь должен сначала зайти на сайт злоумышленника. Уже оттуда запускается поддельное окно браузера. Таким образом, для защиты от BitB следует изначально избегать подозрительных сайтов.
Ещё один нюанс. Поскольку BitB труднее монетизировать в массовом масштабе, эту атаку могут применять в таргетированном варианте против конкретных целей. Например, чтобы узнать пароль пользователя от MetaMask или другого кошелька.
Атака «Браузер внутри браузера». Как защититься
Поддельное окно авторизации, чтобы выманить пароль пользователя Современные средства HTML/CSS позволяют сгенерировать фрейм, практически неотличимый от настоящего браузера, как на скриншоте вверху....
habr.com