В сентябре 2018 года стало известно о крупной утечке данных клиентов в авиакомпании British Airways. Злоумышленники скомпрометировали сервер web-приложения для бронирования авиабилетов и добавили в код JavaScript-библиотеки Modernizr код js-сниффера. js-сниффер перехватывал персональные данные и данные банковских карт пользователей, введенных в формы при бронировании авиабилетов, и отправлял на сервер злоумышленников. Несанкционированное изменение кода обнаружили через 10 дней, за это время были похищены данные 380 000 клиентов.
Злоумышленник не имел доступа к хранилищам данных с скомпрометированного сервера, поэтому перехватывал данные на уровне frontend-приложения. В большинстве случаев критичные данные отображаются либо вводятся пользователем на страницах frontend-приложения, а существующие средства защиты не обнаруживают утечки на стороне браузера и не могут отличить действия js-сниффера от легитимного поведения js-приложения.
Теоретически от отправки данных на сервер злоумышленника могла защитить Content Security Policy (CSP), но в случае скомпрометированного сервера, злоумышленник имел возможность изменить и конфигурацию CSP. Также важно отменить, что CSP позволяет ограничить не все предоставляемые браузерами каналы передачи информации.
Вектор: взлом через уязвимость.
Канал отправки данных в браузере: window.XMLHttpRequest.
Время присутствия: 10 дней.
Ущерб: 2 280 000 000 £ (компенсации пострадавшим) + 20 000 000 £ штраф по GDPR.
@FrontSecOps
Злоумышленник не имел доступа к хранилищам данных с скомпрометированного сервера, поэтому перехватывал данные на уровне frontend-приложения. В большинстве случаев критичные данные отображаются либо вводятся пользователем на страницах frontend-приложения, а существующие средства защиты не обнаруживают утечки на стороне браузера и не могут отличить действия js-сниффера от легитимного поведения js-приложения.
Теоретически от отправки данных на сервер злоумышленника могла защитить Content Security Policy (CSP), но в случае скомпрометированного сервера, злоумышленник имел возможность изменить и конфигурацию CSP. Также важно отменить, что CSP позволяет ограничить не все предоставляемые браузерами каналы передачи информации.
Вектор: взлом через уязвимость.
Канал отправки данных в браузере: window.XMLHttpRequest.
Время присутствия: 10 дней.
Ущерб: 2 280 000 000 £ (компенсации пострадавшим) + 20 000 000 £ штраф по GDPR.
@FrontSecOps
В конце февраля 2022 года был скомпрометирован один из сервисов маркетинговой аналитики для сайтов, сервис работал по принципу подключения внешнего js-скрипта. Злоумышленники добавили вредоносный код к этому скрипту, в результате был произведен "дефейс" сайтов всех компаний, использующих данный сервис, в частности многих российских интернет-СМИ. На сайтах были размещены политические лозунги.
С другой стороны, злоумышленники с иной мотивацией могли незаметно собирать данные пользователей, установить js-майнер криптовалюты, показывать пользователям мошеннические баннеры, производить заражение устройств пользователей через уязвимости браузеров с целью монетизации взлома и длительного незаметного присутствия.
После этой и других атак НКЦКИ выпустил "Рекомендации по повышению уровня защищенности российских web-приложений" от 11 марта 2022 г., содержащие следующие меры для безопасности frontend-приложений:
🔸Перед использованием на web-ресурсах JavaScript-кода, подгружаемого со сторонних ресурсов,
осуществлять его проверку на предмет вредоносного воздействия на отображаемую в браузерах пользователя
информацию и возможность кражи аутентификационных данных и файлов-cookie пользователей.
🔸Осуществлять периодическую проверку хэш-сумм используемых JavaScript. В случае изменения
хэш-сумм отключать использование JavaScript на сайте и выполнять повторную проверку функциональности.
🔸Отказаться от использования динамически формируемых кодов JavaScript на web-ресурсе.
🔸Отдавать предпочтение загрузке внешних зависимостей (JavaScript, CSS и др. из контролируемых источников).
@FrontSecOps
С другой стороны, злоумышленники с иной мотивацией могли незаметно собирать данные пользователей, установить js-майнер криптовалюты, показывать пользователям мошеннические баннеры, производить заражение устройств пользователей через уязвимости браузеров с целью монетизации взлома и длительного незаметного присутствия.
После этой и других атак НКЦКИ выпустил "Рекомендации по повышению уровня защищенности российских web-приложений" от 11 марта 2022 г., содержащие следующие меры для безопасности frontend-приложений:
🔸Перед использованием на web-ресурсах JavaScript-кода, подгружаемого со сторонних ресурсов,
осуществлять его проверку на предмет вредоносного воздействия на отображаемую в браузерах пользователя
информацию и возможность кражи аутентификационных данных и файлов-cookie пользователей.
🔸Осуществлять периодическую проверку хэш-сумм используемых JavaScript. В случае изменения
хэш-сумм отключать использование JavaScript на сайте и выполнять повторную проверку функциональности.
🔸Отказаться от использования динамически формируемых кодов JavaScript на web-ресурсе.
🔸Отдавать предпочтение загрузке внешних зависимостей (JavaScript, CSS и др. из контролируемых источников).
@FrontSecOps
Всем привет! Сегодня в 15:00 (МСК) на PHDays 2 буду рассказывать о концепции Frontend Application Security Testing (FAST). Обсудим задачи FAST-анализаторов и наиболее эффективные точки для встраивания в процесс безопасной разработки. Приходите в зал Фобос (трек Secure Development) или подключайтесь к трансляции на сайте https://phdays.com/forum/
Запись доклада про FAST-анализатор на PHD2 доступна по ссылке. @FrontSecOps
Опубликовано исследование от ProofPoint об атаке зафиксированной в марте 2024 года.
Злоумышленники размещали на взломанных сайтах JavaScript, показывающий всплывающие окна в стиле сообщений об ошибках Chrome, MS Office, One Drive. В данном случае пользователей убеждали для "устранения ошибки" выполнить в PowerShell вредоносный код, который скрипт злоумышленников записал в буфер обмена. JavaScript на веб-страницах имеет право читать/записывать данные в буфер.
Подобный фишинг в frontend-приложениях - один из способов монетизации взлома серверов. Злоумышленники могли предложить пользователю скачать документ с эксплойтом, запросить данные банковской карты, ввести учетные данные, пользуясь авторитетом взломанного сайта.
Контроль целостности и регулярная глубокая инвентаризация скриптов, iframe и других активных элементов позволят оперативно выявлять факт компрометации собственных или партнерских js-сервисов.
@FrontSecOps
Злоумышленники размещали на взломанных сайтах JavaScript, показывающий всплывающие окна в стиле сообщений об ошибках Chrome, MS Office, One Drive. В данном случае пользователей убеждали для "устранения ошибки" выполнить в PowerShell вредоносный код, который скрипт злоумышленников записал в буфер обмена. JavaScript на веб-страницах имеет право читать/записывать данные в буфер.
Подобный фишинг в frontend-приложениях - один из способов монетизации взлома серверов. Злоумышленники могли предложить пользователю скачать документ с эксплойтом, запросить данные банковской карты, ввести учетные данные, пользуясь авторитетом взломанного сайта.
Контроль целостности и регулярная глубокая инвентаризация скриптов, iframe и других активных элементов позволят оперативно выявлять факт компрометации собственных или партнерских js-сервисов.
@FrontSecOps