Dieses Repository enthält den Code für das Dimva'18 -Papier: "JAST: Vollsyntaktischer Erkennung von böswilligen (verschleierten) JavaScript".
Bitte beachten Sie, dass der Code in seinem aktuellen Zustand ein POC und keine vollwertige Produktions-API ist.
Unsere Implementierung, die darauf abzielt, böswillige JavaScript -Stichproben zu erkennen, ist in mehrere Pakete mit unterschiedlichen Funktionen unterteilt:
Erkennung von JavaScript-Stichproben, die die Grammatik respektieren, die durch ECMA-International, Erkennung von zerbrochenem JavaScript und Dateien, die nicht in JavaScript geschrieben wurden, definiert.
Um dieses Tool zu verwenden: Python3 <Pfad-of-js/is_js.py>-Help .
Eine AST-basierte Analyse von JavaScript-Proben kann durchgeführt werden. Diese Studie basiert auf einer Frequenzanalyse der in den betrachteten Dateien vorhandenen N-Gramm.
Wenn Sie JAST für die akademische Forschung verwenden, werden Sie sehr empfohlen, das folgende Papier zu zitieren:
@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 ist eine Browser-Skriptsprache, die ursprünglich erstellt wurde, um die Interaktivität von Websites zu verbessern und ihre Benutzerfreundlichkeit zu verbessern. Da es die Arbeit jedoch in den Browser des Benutzers lädt, kann es verwendet werden, um böswillige Aktivitäten wie Crypto Mining, Drive-by-Download-Angriffe oder Umleitungen zu Websites zu vermitteln, auf denen bösartige Software gehostet wird. Angesichts der Prävalenz solcher schändlichen Skripte hat die Antivirenindustrie den Fokus auf ihre Erkennung verstärkt. Die Angreifer machen wiederum zunehmend Einsatz von Verschleierungstechniken, um die Analyse und die Erstellung entsprechender Signaturen zu behindern. Diese böswilligen Stichproben teilen jedoch syntaktische Ähnlichkeiten auf abstrakter Ebene, die es ermöglicht, verschleiert zu umgehen und auch unbekannte Malware -Varianten zu erkennen.
In diesem Artikel präsentieren wir Jast, eine Lösung mit niedriger Überhead, die die Extraktion von Merkmalen aus dem abstrakten Syntaxbaum mit einem zufälligen Waldklassifizierer kombiniert, um böswillige JavaScript-Instanzen zu erkennen. Es basiert auf einer Frequenzanalyse spezifischer Muster, die entweder gutartige oder böswillige Proben vorhersagen. Obwohl die Analyse völlig statisch ist, ergibt sie eine hohe Erkennungsgenauigkeit von fast 99,5% und hat eine niedrige falsch negative Rate von 0,54%.
Dies ist eine Forschungsarbeit, und es ist beabsichtigt, die Ergebnisse zu veröffentlichen, die Ergebnisse überprüfbar zu machen und die Informationssicherheit zu fördern. Es spiegelt nicht unbedingt die offizielle Richtlinie oder Position des Bundesamts für Sicherheit in der InformationStechnik (BSI) wider. Obwohl der Autor alle Anstrengungen unternommen hat, um sicherzustellen, dass die Informationen in dieser Veröffentlichung korrekt waren, nimmt der Autor nicht an und lehnt hiermit einer Haftung gegenüber einer Partei wegen Verlust, Schäden oder Störungen ab, die durch Fehler oder Unterlassungen verursacht werden, unabhängig davon, ob solche Fehler oder Ausfälle aus Nachlässigkeit, Unfall oder einer anderen Ursache zurückzuführen sind.
Die von dem Benzutzer auf Github Bereitgestellten inhalte spiegeln nick die meinung des bsi breiter.
Die Verwendung der Bereitgestellten Inhalte Geschieht Auf Eigene Gefahr des Anwenders. Eine Haftung für die Richtigeit, Vollständigit und aKTualität Dieder inhalte Kanne Seitens des Bsi NickT übersmmen Werden.
Das Bsi ist Nick Verantwortlich und übernimmt Keinei Haftung für Schäden, Uner Anderem für Direkte, IndireKte, Aufäller, Vorab Konkret Zu Bestimmende oder
Esprima, erstellt und gewartet von Ariya Hidayat wurde verwendet, um sowohl die lexikalische als auch die syntaktische Analyse von JavaScript -Dateien durchzuführen.
"Copyright JS Foundation und andere Mitwirkende, https://js.foundation/
Umverteilung und Verwendung in Quellen- und Binärformen mit oder ohne Modifikation sind zulässig, sofern die folgenden Bedingungen erfüllt sind:
Diese Software wird von den Inhabern und Mitwirkenden des Urheberrechts "wie sie" bereitgestellt, und alle ausdrücklichen oder impliziten Garantien, einschließlich, aber nicht beschränkt auf die impliziten Garantien für Handelsfähigkeit und Eignung für einen bestimmten Zweck, werden abgelehnt. In keinem Fall haftet für direkte, indirekte, zufällige, spezielle, vorbildliche oder Folgeschäden (einschließlich,, aber nicht beschränkt auf die Beschaffung von Ersatzwaren oder -dienstleistungen; Verlust von Nutzung, Daten oder Gewinne; oder geschäftliche Unterbrechung). SCHADEN."