Ce référentiel contient le code du papier DIMVA'18: "Jast: détection entièrement syntaxique de JavaScript malveillant (obscurci)".
Veuillez noter que dans son état actuel, le code est un POC et non une API à part entière pour la production.
Notre implémentation, qui vise à détecter les échantillons de JavaScript malveillants, est divisé en plusieurs packages avec des fonctionnalités distinctes:
Détection d'échantillons JavaScript concernant la grammaire définie par ECMA-International, détection de JavaScript cassé et fichiers non écrits en JavaScript.
Pour utiliser cet outil: Python3 <Path-of-JS / IS_JS.PY> --Help .
Une analyse basée sur AST d'échantillons JavaScript peut être effectuée. Cette étude est basée sur une analyse de fréquence des n-grammes présents dans les fichiers considérés.
Si vous utilisez Jast pour la recherche universitaire, vous êtes fortement encouragé à citer l'article suivant:
@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 est un langage de script de navigateur initialement créé pour améliorer l'interactivité des sites Web et améliorer leur convivialité. Cependant, alors qu'il décharge le travail au navigateur de l'utilisateur, il peut être utilisé pour s'engager dans des activités malveillantes telles que l'exploitation de crypto, les attaques de téléchargement en voiture ou les redirections vers des sites Web hébergeant des logiciels malveillants. Compte tenu de la prévalence de ces scripts néfastes, l'industrie antivirus a accru l'accent mis sur leur détection. Les attaquants, à leur tour, utilisent de plus en plus des techniques d'obscurcissement, afin d'entraver l'analyse et la création de signatures correspondantes. Pourtant, ces échantillons malveillants partagent des similitudes syntaxiques à un niveau abstrait, ce qui permet de contourner l'obscurcissement et de détecter même des variantes de logiciels malveillants inconnus.
Dans cet article, nous présentons Jast, une solution à faible échelle qui combine l'extraction des caractéristiques de l'arbre de syntaxe abstrait avec un classificateur de forêt aléatoire pour détecter les instances de JavaScript malveillant. Il est basé sur une analyse de fréquence de modèles spécifiques, qui sont soit prédictifs des échantillons bénins ou malveillants. Même si l'analyse est entièrement statique, elle donne une précision de détection élevée de près de 99,5% et a un faible taux de faux négatifs de 0,54%.
Il s'agit d'un travail de recherche et son intention est de publier les résultats, de rendre les résultats vérifiables et de promouvoir la sécurité de l'information. Il ne reflète pas nécessairement la politique ou la position officielle du Bundesamt Für Sicherheit dans Der InformationStechnik (BSI). Bien que l'auteur ait fait tout son possible pour s'assurer que les informations dans cette publication étaient correctes, l'auteur ne suppose pas et décline par la présente toute responsabilité envers toute partie pour toute perte, dommage ou perturbation causée par des erreurs ou des omissions, que ces erreurs ou omissions résultent d'une négligence, d'un accident ou d'une autre cause.
Die von dem Benutzer auf github Bereittegellten inhalte spiegeln nicht die meinung des bsi large.
Die Verwendung der Bereittentellten inhalte geschieht auf eigene gefahr des anwenders. Eine haftung für die Richtigkeit, vollständigkeit und aktutuitä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 best -mmend oder folgeschäden, die angeblich durch die verwentung der inhalte aufgetreten sind.
Esprima, créé et maintenu par Ariya Hidayat a été utilisé pour effectuer une analyse lexicale et syntaxique des fichiers JavaScript.
"Copyright JS Foundation et autres contributeurs, https://js.foundation/
La redistribution et l'utilisation dans les formulaires source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies:
Ce logiciel est fourni par les détenteurs de droits d'auteur et les contributeurs "tels quels" et toutes les garanties expresses ou implicites, y compris, mais sans s'y limiter, les garanties implicites de qualité marchande et d'adéquation à un usage particulier sont déclinées. En aucun cas, il ne sera pas responsable des dommages directs, indirects, accidentels, spéciaux, exemplaires ou consécutifs (y compris, mais sans s'y limiter DOMMAGE."