Этот репозиторий содержит код для бумаги Dimva'18: «Jast: полностью синтаксическое обнаружение злонамеренного (запутанного) JavaScript».
Обратите внимание, что в своем текущем состоянии код представляет собой POC, а не полностью подготовленный к производству API.
Наша реализация, которая направлена на обнаружение вредоносных образцов JavaScript, разделена на несколько пакетов с различными функциями:
Обнаружение образцов JavaScript, относящихся к грамматике, определенной ECMA-International, обнаружением сломанного JavaScript и файлов, не записанных в JavaScript.
Чтобы использовать этот инструмент: python3 <path-of-js/is_js.py>-help .
Можно выполнить анализ на основе AST образцов JavaScript. Это исследование основано на частотном анализе N-граммов, присутствующих в рассмотренных файлах.
Если вы используете Jast для академических исследований, вам настоятельно рекомендуется цитировать следующую статью:
@inproceedings{fass2018jast,
author="Fass, Aurore and Krawczyk, Robert P. and Backes, Michael and Stock, Ben",
title="{textsc{JaSt}: Fully Syntactic Detection of Malicious (Obfuscated) JavaScript}",
booktitle="Proceedings of the International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment~(DIMVA)",
year="2018"
}
JavaScript-это язык сценариев браузера, первоначально созданный для улучшения интерактивности веб-сайтов и улучшения их удобства для пользователя. Однако, поскольку он разгружает работу в браузер пользователя, ее можно использовать для участия в вредоносных действиях, таких как крипто-майнинга, атаки для загрузки привода или перенаправления на веб-сайты, размещающие вредоносное программное обеспечение. Учитывая распространенность таких гнусных сценариев, антивирусная промышленность увеличила внимание к их обнаружению. Злоумышленники, в свою очередь, все больше используют методы запутывания, чтобы препятствовать анализу и созданию соответствующих подписей. Тем не менее, эти вредоносные образцы разделяют синтаксические сходства на абстрактном уровне, что позволяет обходить запутывание и обнаруживать даже неизвестные варианты вредоносных программ.
В этой статье мы представляем Jast, раствор с низким воздействием, который сочетает в себе извлечение признаков из абстрактного синтаксического дерева со случайным классификатором леса для обнаружения злонамеренных экземпляров JavaScript. Он основан на частотном анализе конкретных закономерностей, которые либо предсказывают доброкачественные или вредоносные образцы. Несмотря на то, что анализ полностью статичен, он дает высокую точность обнаружения почти 99,5% и имеет низкую ложную негативную скорость 0,54%.
Это исследовательская работа, и ее намерение состоит в том, чтобы опубликовать результаты, сделать проверенные результаты и содействовать информационной безопасности. Это не обязательно отражает официальную политику или позицию Bundesamt für Sicherheit в Der Informationstechnik (BSI). Хотя автор предпринял все усилия, чтобы гарантировать, что информация в этой публикации была правильной, автор не предполагает и тем самым отказывается от какой -либо ответственности перед какой -либо стороной за любые убытки, ущерб или нарушения, вызванные ошибками или упущениями, независимо от того, являются ли такие ошибки или упущения из -за небрежности, несчастного случая или любой другой причины.
Die von dem benutzer auf github bereitgestellten inhalte spiegeln nicht die meinung des bsi шире.
Die Verwendung der Bereitgestellten Inhalte Geschieht auf Eigene Gefahr des Anwenders. Eine Haftung für Die Richtigkeit, Vollständigkeit und aktualität dieser inhalte kann seitens des bsi nicht übernommen werden.
Das BSI IST NICHT VERANTWORTLICH UND üBERNIMMT KEINERLEI HAFTUNG Für Schäden, Unter Anderem für Direkte, Indirekte, Zufällige, Vorab Konkret Zu Bestimmende Oder Folgeshenden, Die Angeblich Dreck Der inhalte au au aufgetletnemen.
ESPRIMA, созданная и поддерживаемая Ariya Hidayat, использовалась для выполнения как лексического, так и синтаксического анализа файлов JavaScript.
"Copyright JS Foundation и другие участники, https://js.foundation/
Перераспределение и использование в исходных и бинарных формах, с изменением или без них разрешены при условии, что следующие условия выполняются:
Это программное обеспечение предоставляется владельцами авторского права и участниками «как есть», и любые явные или подразумеваемые гарантии, включая, но не ограничиваясь, подразумеваемые гарантии товарной пригодности и пригодности для определенной цели, отказаны. Ни в коем случае не несет ответственности за любые прямые, косвенные, случайные, особые, примерные или косвенные убытки (включая, но не ограничиваясь, закупку заместителей товаров или услуг; потеря использования, данные или прибыль; или перерыва в бизнесе), однако, вызвали и в какой -либо теории ответственности, независимо от того, в контракте, строгой ответственности, в том числе (в том числе нераствоваемости или в других отношениях, в том числе и в других условиях, что и в других отношениях, в том числе и в других условиях, что и в других условиях, в том числе иначе, что иначе, что -то в любом случае. ПОВРЕЖДАТЬ."