FrontSecOps – Telegram
FrontSecOps
781 subscribers
52 photos
7 videos
1 file
42 links
Безопасность и безопасная разработка frontend-приложений. Актуальные риски и методы защиты современных js-приложений.

По всем вопросам @mkparfenov
Download Telegram
Channel created
В сентябре 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
В конце февраля 2022 года был скомпрометирован один из сервисов маркетинговой аналитики для сайтов, сервис работал по принципу подключения внешнего js-скрипта. Злоумышленники добавили вредоносный код к этому скрипту, в результате был произведен "дефейс" сайтов всех компаний, использующих данный сервис, в частности многих российских интернет-СМИ. На сайтах были размещены политические лозунги.

С другой стороны, злоумышленники с иной мотивацией могли незаметно собирать данные пользователей, установить 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