91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣使用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所需的依賴項和文件;

  • 檢測不安全的正則表達式;

  • 當AST分析出現問題或無法遵循語句時獲取警告;

  • 突出顯示常見的攻擊模式和API調用;

  • 能夠跟蹤并分析危險的js全局使用;

  • 檢測經過混淆處理的代碼,并在可能的情況下檢測已使用的工具;

工具安裝

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中的常見惡意行為,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

成安县| 望都县| 微博| 新巴尔虎左旗| 合江县| 文登市| 拜城县| 旌德县| 容城县| 九龙县| 高邮市| 松滋市| 镇宁| 饶阳县| 青海省| 驻马店市| 什邡市| 苗栗市| 海晏县| 隆林| 黑山县| 乌拉特后旗| 石城县| 罗山县| 新丰县| 咸宁市| 龙南县| 松桃| 安远县| 滦南县| 商南县| 龙川县| 晋江市| 龙陵县| 锡林浩特市| 巴林右旗| 华坪县| 洪洞县| 桃源县| 浮山县| 宁津县|