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
Несколько дней назад было обнаружено , что в js-библиотеку polyfill.js на cdn.polyfill.io внедрен вредоносный код. Библиотека из этого CDN подключена на более чем 100 000 сайтах. Говорят, что проект выкупила некая китайская компания, после чего был внедрен код, который динамически подгружал вредоносный скрипт с поддельного домена Google Analytics (www.googie-anaiytics.com), который осуществлял редирект пользователей через на сайты онлайн-букмекеров.

Примечательно, что вредоносное воздействие выполнялось по разному в зависимости от времени, устройства пользователя, наличия на страницах скриптов аналитики. Сейчас репозиторий помечен как вредоносный; регистратор доменных имен Namecheap заморозил домен, чтобы остановить раздачу вредоносной библиотеки. Атаки на цепочки поставок для frontend-приложений более чем актуальны. Регулярная инвентаризация скриптов и сетевых запросов frontend-приложения позволяет обнаружить такие атаки.

@FrontSecOps
Компрометация polyfill.js затронула и российские компании. Прямо сейчас на сайте www.fontanka.ru, пострадавшем от компрометации стороннего js-сервиса в марте 2022 года, при условии открытия в старых версиях Internet Explorer, на страницы сайта динамически загружается скрипт с cdn.polyfill.io. Если у кого-то есть контакты, сообщите коллегам.

@FrontSecOps