Институциональное принятие Налоги и криптовалюта

Статический анализ JavaScript для обнаружения HTTP эндпоинтов: как Relwarc меняет подход к безопасности веб-приложений

Институциональное принятие Налоги и криптовалюта
Relwarc: Mining HTTP endpoints from client-side JavaScript with static analysis

Узнайте, как современные методы статического анализа клиентского JavaScript помогают находить скрытые HTTP запросы и уязвимые серверные эндпоинты, улучшая безопасность веб-приложений без доступа к исходному коду сервера.

В современном мире веб-приложения играют ключевую роль во многих сферах — от электронной коммерции до социальных сетей и образовательных платформ. Однако с ростом их сложности растут и риски безопасности. Часто именно клиентский JavaScript становится источником неожиданной информации об уязвимых серверных эндпоинтах, которые не видны напрямую через пользовательский интерфейс. В условиях, когда доступ к серверному исходному коду ограничен или отсутствует, аналитика клиентской части становится критически важным инструментом для выявления потенциальных угроз. Одним из таких эффективных инструментов является статический анализ JavaScript, который применяется в исследовательском проекте Relwarc, разрабатываемом в Security Lab Московского государственного университета имени Ломоносова.

Статический анализ – это метод исследования исходного кода без его запуска. Это значит, что алгоритм просматривает весь код целиком, не завися от того, как программа ведет себя во время выполнения. Такой подход идеально подходит для поиска скрытых вызовов HTTP запросов, которые могут привести к несанкционированным действиям, если сервер плохо защищен. Relwarc использует этот подход для инспектирования клиентских скриптов и выявления всех возможных HTTP вызовов, включая те, которые не доступны через интерфейс пользователя. В чем заключаются сложности? JavaScript – язык с динамической природой, позволяющий создавать и изменять код во время выполнения.

Это усложняет анализ, особенно если попытаться применять классические методы статического анализа, характерные для языков со статической типизацией. Популярные академические инструменты анализа JavaScript, такие как TAJS, SAFE или WALA, часто испытывают трудности с обработкой реальных веб-страниц — они могут зависать или вызывать ошибки даже на простых библиотеках вроде jQuery. А инструменты типа Semgrep или CodeQL оказываются недостаточно гибкими для детального анализа вызываемых HTTP запросов. В своих исследованиях специалисты Security Lab решили пойти иным, более адаптированным путем: они построили собственный статический анализатор, который максимально учитывает реалии веб-разработки и особенности JavaScript. Для начала они используют возможности headless браузера, например Headless Chrome с библиотекой puppeteer, чтобы собрать все загруженные и выполненные на странице JavaScript-коды.

За счет интеграции с Debugger API и Chrome DevTools Protocol они получают полный стек исполняемых скриптов, включая динамически созданный и eval-скрытый код. Такой способ гарантирует получение максимально аутентичных данных для анализа, без искажений, характерных для обычных парсеров. После сбора исходников они преобразуют их в абстрактное синтаксическое дерево (AST) с помощью мощного парсера @babel/parser. Работа с AST позволяет структурировано просматривать код и искать интересующие элементы, такие как вызовы функций fetch или $.ajax, отвечающих за отправку AJAX запросов.

Путем рекурсивного обхода дерева анализатор выявляет каждую точку, где может выполняться HTTP-вызов. Одной из серьезных проблем является понимание параметров этих вызовов. Часто адреса эндпоинтов и другие данные передаются не напрямую строками, а через переменные или выражения, которые формируют URL динамически. В ответ разработчики Relwarc реализовали алгоритмы вычисления значений выражений и связывания переменных с их значениями с учетом областей видимости (scope). Это особенно важно в условиях сложного браузерного кода, где одни и те же имена переменных могут иметь разный смысл в разных функциях или замыканиях.

Интересно, что Relwarc учитывает и ограничения классического анализа, например, циклы в коде рассматриваются как одна итерация — это компромисс между полнотой и производительностью. Собственный подход к ведению памяти (memory map) переменных через объекты Binding из Babel позволяет найти правильные соответствия, даже если переменные переопределяются на разных уровнях вложенности. Отдельно стоит отметить расширяемость инструмента: в логику анализа можно добавлять поддержу различных методов отправки запросов, включая стандартный fetch, функции jQuery и потенциально другие, специфичные для целевых веб-приложений. Это делает Relwarc универсальным решением для веб-безопасности. Зачем все это нужно? При проведении пентестов (penetration testing) зачастую выявляется, что админские или чувствительные API эндпоинты доступны в клиентском JS, но скрыты от пользовательского интерфейса.

Это создает риск обхода авторизации или других мер безопасности. Статический анализ помогает в автоматическом режиме выявлять такие «темные» пути, по которым можно отправить запросы на сервер, что повышает эффективность сканера безопасности SolidPoint, разработанного той же командой. Преимущество Relwarc в сравнении с динамическим анализом и краулерами заключается в том, что он не зависит от взаимодействия с интерфейсом. Динамические краулеры могут пропустить вызовы, которые зависят от сложных последовательностей действий пользователя или вовсе не имеют публичных интерфейсов. Статический анализ обеспечивает полный охват клиентского кода, увеличивая шансы обнаружить все возможные HTTP вызовы.

Текущие результаты и перспективы развития Relwarc впечатляют. Исследования показывают, что такой подход увеличивает покрытие найденных эндпоинтов, выявляет скрытые слабые места и способствует улучшению общей безопасности веб-приложений. Одновременно, открытый исходный код анализатора и постоянное развитие инструмента позволяют сообществу расширять его функционал и адаптировать под новые вызовы. Для разработки комплекса использовались современные JavaScript технологии и передовые знания в области анализов кода. Relwarc — пример того, как научные достижения совместно с практическими задачами по безопасности формируют прогрессивные инструменты для защиты пользователей и организаций.

В будущем планируется усовершенствовать алгоритмы интерпретации вызовов с передачей значений между функциями, улучшить поддержку различных форм инициализации XMLHttpRequest, а также добавить возможности анализа реактивного и асинхронного кода, что особенно актуально для современных SPA (single-page applications). Подводя итог, можно сказать, что статический анализ клиентского JavaScript с помощью таких инструментов как Relwarc становится новым стандартом в сфере безопасности веб-приложений. Его применение позволяет находить скрытые HTTP эндпоинты, уменьшает риск атак, связанных с недочетами в авторизационных механизмах и помогает создавать более надежные сервисы в интернете. Разработка и интеграция таких технологий — важный шаг к более защищенному и прозрачному цифровому будущему.

Автоматическая торговля на криптовалютных биржах Покупайте и продавайте криптовалюты по лучшим курсам Privatejetfinder.com (RU)

Далее
Valve conquered PC gaming. What comes next?
Вторник, 07 Октябрь 2025 Valve: Завоевание мира ПК-гейминга и будущее игровой индустрии

Обзор истории успеха Valve в области ПК-гейминга и анализ перспектив компании в стремительно развивающемся мире игр и технологий.

Why BigBear.ai's Impressive Backlog Comes With a Big Asterisk
Вторник, 07 Октябрь 2025 Почему внушительный заказной портфель BigBear.ai сопровождается значительной оговоркой

Разбор особенностей заказного портфеля компании BigBear. ai и факторов, влияющих на его реальную ценность в условиях государственного финансирования и неопределённости выполнения контрактов в сфере искусственного интеллекта.

DVY Is a Popular Dividend ETF for Passive Income. But Is It the Best?
Вторник, 07 Октябрь 2025 DVY — популярный дивидендный ETF для пассивного дохода: достоинства и альтернативы

Обзор ETF iShares Select Dividend (DVY) с его основными характеристиками, преимуществами и недостатками, а также сравнение с альтернативными фондами для выбора оптимального инструмента пассивного дохода на российском и мировом рынках.

TotalEnergies buys stake in AES’ renewables and divests Portugal assets
Вторник, 07 Октябрь 2025 TotalEnergies укрепляет позиции в возобновляемой энергетике Карибского региона и оптимизирует портфель в Португалии

TotalEnergies расширяет свое присутствие в возобновляемой энергетике за счет приобретения доли в проекте AES Dominicana, а также осуществляет стратегическую продажу части активов в Португалии, укрепляя позиции на европейском рынке и в Карибском регионе.

XRP Ledger logs 34% in RWA monthly growth, eyes bigger boost from Mercado Bitcoin partnership
Вторник, 07 Октябрь 2025 Рост XRP Ledger на 34% в токенизации реальных активов и перспективы сотрудничества с Mercado Bitcoin

XRP Ledger демонстрирует впечатляющий рост токенизированных реальных активов, поддерживаемый перспективным партнерством с бразильской платформой Mercado Bitcoin. Развитие технологии и расширение рынка RWA открывают новые возможности для пользователей и инвесторов по всему миру.

The Novelty of the Arpanet
Вторник, 07 Октябрь 2025 АРПАНЕТ: Инновация, изменившая мир компьютерных сетей навсегда

Погружение в уникальное значение и технологические прорывы ARPANET, раскрывающие, почему эта сеть стала не просто первым шагом к интернету, а настоящим прорывом в объединении компьютерных систем и создании современных стандартов коммуникаций.

Why Prompt Libraries Are Quietly Becoming the Frameworks of AI Coding (2025)
Вторник, 07 Октябрь 2025 Почему библиотеки промптов становятся основой программирования ИИ в 2025 году

Рассмотрение ключевой роли библиотек промптов в современной разработке искусственного интеллекта, их влияние на эффективное создание и масштабирование ИИ-приложений в 2025 году.