该存储库包含DIMVA'18论文的代码:“ JAST:恶意(混淆)JavaScript的完全句法检测”。
请注意,在当前状态下,该代码是POC,而不是由成熟的生产就绪的API。
我们的实施旨在检测恶意的JavaScript样本,分为具有不同功能的几个软件包:
检测JavaScript样本尊重由ECMA-International定义的语法,损坏JavaScript定义的语法以及未用JavaScript编写的文件。
要使用此工具: Python3 <js/is_js.py> - 螺旋。
可以对基于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%。
这是一项研究工作,其打算是发布结果,以使结果可验证并促进信息安全。它不一定反映了德国国民党(BSI)中德国人Sicherheit的官方政策或立场。尽管作者已竭尽全力确保本出版物中的信息正确,但作者并不承担任何责任,无论是由于疏忽,事故或任何其他原因而导致的错误或遗漏所造成的任何损失,损害或中断的任何责任。
Die von dem benutzer auf github bereitgestelten inhalte spiegeln nicht die meinung des bsi ver。
Die verwendung der bereitgestelten inhalte geschieht auf特征gefahr des anwenders。 Eine haftungfürDie richtigkeit,vollständigkeitundaktualitätdieser inhalte kann seitens des bsi nichtnichtübernommenwerden。
das bsi ist nicht verantwortlich和übernimmtkeinerlei haftungfürSchäden,UnterAnderemFürDirekte,Indirekte,Zufällige,Zufällige,vorab konkreab konkret zu zu zu zu bestimmmende oder oderfolgeschäden
由Ariya Hidayat创建和维护的Esprima已用于对JavaScript文件进行词汇和句法分析。
“版权JS基金会和其他贡献者,https://js.foundation/
如果满足以下条件:
该软件由版权所有者和贡献者“按原样”提供,任何明示或暗示的保证,包括但不限于对适销性和特定目的适合性的隐含保证。在任何情况下,任何直接,间接,偶然,特殊,特殊,示例性或结果损失(包括但不限于替代商品或服务的采购,损失,数据或利润的损失,数据或损失,或企业中断)和责任理论,无论是在合同,严格的责任,包括责任或其他情况下(如果有任何可能的软件)(包括negligence of negnigence of negrigence nofe),是否有任何责任(包括否定),或者在任何情况下(如果是否定的)。 损害。”