# Фишинг через «Установить как приложение»: когда сайт притворяется программой

> Chrome позволяет любому сайту установиться как отдельное приложение. Задокументированная техника использует это, чтобы подделать целое окно входа вместе с адресной строкой. Что она может скрыть, а что нет, и как проверить установленное.

HisnLabs Security & Research Team · Published 2026-09-25
Canonical: https://hisnlabs.com/ru/blog/pwa-phishing-install-as-app-security-nightmare

Браузеры на основе Chromium позволяют превратить почти любую веб-страницу в нечто похожее на нативное приложение: собственное окно, собственная иконка в Dock, без видимого браузерного интерфейса. Эта функция предназначена для легитимных сайтов, которыми вы часто пользуетесь. Исследователь безопасности mr.d0x [задокументировал](https://mrd0x.com/progressive-web-apps-pwa-phishing/) 11 июня 2024 года, как тот же механизм можно превратить в набор для фишинга: установить страницу как приложение, а затем нарисовать поддельное окно браузера прямо внутри HTML самого приложения — вплоть до адресной строки.

## Как строится иллюзия установленного приложения

В задокументированной технике жертву приводят на страницу, предлагающую установить её как приложение, причём сам запрос на установку показывает поддельное имя, например «Microsoft Login». После установки приложение открывается в собственном окне без интерфейса браузера. Поскольку настоящей адресной строки, которую можно было бы подделать, там нет, страница рисует собственную с помощью CSS: убедительную подделку, размещённую ровно там, где была бы адресная строка браузера, показывающую любой URL, какой захочет атакующий. Для того, кого приучили «проверять адресную строку», приложение как будто проходит эту проверку, потому что то, на что он смотрит, вообще не является адресной строкой браузера.

> **Note:** У этого есть реальный предел, о котором говорит сам исследователь: «окно PWA ненадолго показывает настоящее доменное имя в верхнем правом углу» при первом открытии. Эта вспышка настоящего источника — единственный честный сигнал, который техника не может полностью подавить. Его легко пропустить, но он есть.

## Что на самом деле делает это убедительным

- Устанавливается как обычное ПО: иконка в Dock или папке Приложений, собственное окно, иногда push-уведомления — и всё это не требует выхода из обычного процесса установки в браузере.
- Имя и иконка в запросе на установку — это то, что объявит манифест атакующего. Ничто на этапе установки не проверяет, соответствует ли имя реальному сайту.
- После запуска поддельный интерфейс сохраняется на протяжении всей сессии: нет вкладок браузера, панели закладок или иконок расширений, которые могли бы разрушить иллюзию.

## Проверяем, что реально установлено, из терминала

На macOS Chrome и браузеры на основе Chromium устанавливают такие «приложения» как обычные бандлы приложений, и каждый из них записывает настоящий URL, с которого был установлен, внутри собственного `Info.plist` — независимо от того, какое имя показывает Finder. Мы проверили это на реальном, установленном на данный момент приложении на этом Mac (установленном через браузер ярлыке на панель Cloudflare):

*Терминал*

```console
$ ls ~/Applications/*.localized/
Cloudflare.app

$ plutil -p ~/Applications/"Brave Browser Apps.localized"/Cloudflare.app/Contents/Info.plist | grep -i CrAppMode
  "CrAppModeShortcutName" => "Cloudflare"
  "CrAppModeShortcutURL" => "https://dash.cloudflare.com/"
```

Поле `CrAppModeShortcutURL` — это факт, который поддельная адресная строка не может изменить: оно устанавливается один раз, во время установки, на основе собственного манифеста страницы, и именно его приложение реально открывает при каждом запуске. Приложение под названием «Bank Login», чей `CrAppModeShortcutURL` указывает не на настоящий домен вашего банка, само себя выдало.

1. Выведите список всех установленных веб-приложений: `ls ~/Applications/*.localized/*/`, для каждого используемого вами браузера на основе Chromium (`Chrome Apps.localized`, `Brave Browser Apps.localized`, `Edge Apps.localized` и аналогичных).
2. Для всего, установку чего вы чётко не помните, или что работает со входом в систему, проверьте настоящий URL: `plutil -p "<путь>/Contents/Info.plist" | grep -i CrAppMode`.
3. Следите за настоящим источником, который Chromium ненадолго показывает при открытии приложения, и читайте именно его, а не собственный нарисованный интерфейс приложения.

## Почему это сетевая проблема, а не только проблема интерфейса

Как бы ни выглядело окно, странице для сбора учётных данных всё равно нужно отправить собранное куда-то по сети, с процесса, работающего на вашем Mac. Файрвол, который спрашивает только «подписан ли и доверен ли бинарник этого приложения», здесь не поможет: установленный PWA работает внутри собственного подписанного, доверенного исполняемого файла браузера. Что может помочь — это наблюдение за самим соединением: какой процесс его устанавливает и куда оно реально идёт, независимо от того, чем себя выдаёт окно на экране.

## Какое место здесь занимают FireAI и HisnLabs

Whatever a fake login screen looks like, it still has to send the password it captured somewhere; FireAI shows you exactly which process is trying to phone home and to what destination, installed web app or not, and lets you say no before anything leaves your Mac.

FireAI — это собственный продукт HisnLabs: ИИ-файрвол, работающий прямо на вашем Mac. Он показывает простым языком каждое соединение, которое устанавливают ваши приложения, и позволяет вам решать, что покидает ваш Mac, — его ИИ работает локально, поэтому ваш трафик никогда не отправляется ни нам, ни кому-либо ещё. Команда исследователей безопасности HisnLabs — это те, кто поддерживает точность этих решений: они каталогизируют, какие домены являются обычной телеметрией, а какие — реальным сервисом, отслеживают страну и сеть, стоящие за соединением, и обучают локальную модель (функцию FireAI Pilot) на реальных шаблонах трафика — и ничего из этого не покидает ваш Mac.

Вы можете прочитать о технических решениях, лежащих в его основе, или попробовать FireAI в течение 17 дней на странице [FireAI от HisnLabs](https://hisnlabs.com/fireai/ru/download).

## Sources

- [mr.d0x: Progressive Web Apps (PWAs) Phishing](https://mrd0x.com/progressive-web-apps-pwa-phishing/)
- [MDN: Progressive web apps](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
- [web.dev: What makes a good PWA](https://web.dev/explore/progressive-web-apps)
