怎样使用js-x-ray检测JavaScript和Node.js中的常见恶意行为

发布时间:2021-09-30 10:26:35 作者:柒染
来源:亿速云 阅读:124

本篇文章给大家分享的是有关怎样使用js-x-ray检测JavaScript和Node.js中的常见恶意行为,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

js-x-ray

js-x-ray是一款功能强大的开源SAST扫描工具,其本质上是一个静态分析工具,可以帮助广大研究人员检测JavaScript和Node.js中的常见恶意行为&模式。

该工具可以执行JavaScript AST分析,其目的是导出Node-Secure AST Analysis以实现更好的代码演化,并允许开发人员和研究人员更好地访问。该工具的主要目标是为了帮助开发人员和安全研究人员快速识别危险的代码和模式。不过,想要完全解析该工具的输出结果,还是要求我们具备一定的安全知识。

该项目的目标是成功检测所有可疑的JavaScript代码,即那些显然是出于恶意目的添加或注入的代码。大多数时候,网络攻击者会尽量隐藏他们代码的行为,以避免触发检测引擎或增加分析人员的分析难度。而js-x-ray的任务就是理解和分析这些模式,以帮助我们检测到恶意代码。

功能介绍

工具安装

js-x-ray包可以直接从Node包代码库中直接获取,或者使用npm或yarn来进行在线安装:

$ npm i js-x-ray

# or

$ yarn add js-x-ray

工具使用

使用下列内容创建一个本地.js文件:

try  {
    require("http");
}
catch (err) {
    // do nothing
}
const lib = "crypto";
require(lib);
require("util");
require(Buffer.from("6673", "hex").toString());

接下来,使用“js-x-ray”命令来对目标JavaScript代码进行分析:

const { runASTAnalysis } = require("js-x-ray");
const { readFileSync } = require("fs");
const str = readFileSync("./file.js", "utf-8");
const { warnings, dependencies } = runASTAnalysis(str);
const dependenciesName = [...dependencies];
const inTryDeps = [...dependencies.getDependenciesInTryStatement()];
console.log(dependenciesName);
console.log(inTryDeps);
console.log(warnings);

分析将返回http、crypto、util和fs。

在该项目的cases目录下还提供了很多可以分析的可疑代码示例,感兴趣的同学可以使用js-x-ray来对它们进行分析。

返回的警告

名称

描述

parsing-error

使用meriyah解析JavaScript代码时出错。这意味着从string到AST的转换失败了。

unsafe-import

无法跟踪导入 (require, require.resolve) statement/expr。

unsafe-regex

正则表达式已被检测为不安全,可能被用于ReDoS攻击。

unsafe-stmt

使用了危险的语句,例如 eval()或Function("")。

unsafe-assign

分配了一个受保护的全局进程。

encoded-literal

检测到已编码的文本(可以是六进制值、unicode序列、Base64字符串等)。

short-identifiers

这意味着所有标识符的平均长度都低于1.5。仅当文件包含5个以上标识符时才可能返回。

suspicious-literal

这意味着所有文字的可疑分数之和大于3。

obfuscated-code (experimental)

代码可能经过了混淆处理。

API

runASTAnalysis

interface RuntimeOptions {

    module?: boolean;

    isMinified?: boolean;

}

该方法接收的第一个参数就是我们需要分析的代码,它将返回一个Report对象:

interface Report {

    dependencies: ASTDeps;

    warnings: Warning<BaseWarning>[];

    idsLengthAvg: number;

    stringScore: number;

    isOneLineRequire: boolean;

}

generateWarning

interface WarningOptions {

    location: Location;

    file?: string;

    value?: string;

}

rootLocation()

返回一个默认的SourceLocation,并包含下列内容:

{ start: { line: 0, column: 0 }, end: { line: 0, column: 0 } }

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

以上就是怎样使用js-x-ray检测JavaScript和Node.js中的常见恶意行为,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. php中什么是行为和事件
  2. 安装Linux恶意软件检测程序的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript node.js

上一篇:怎么用vbs实现服务器文件备份办法压缩文件名自动按日期命名

下一篇:vbs如何实现右键菜单中添加CMD HERE

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》