Skip to content

DeBankDeFi/prscan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NPM依赖检查

检测规则

使用最新且近期发布的NPM包

描述

如果使用的NPM包是最新版,且发布时间小于1个月,则报异常

依据

攻击者获取NPM包发布权限后,需要发布一个新NPM包以植入恶意代码,但安全社区往往能在一段时间内发现并发布安全通告

访问危险的全局变量

描述

使用babel解析js文件,并提取出js文件访问的所有全局变量。对于操作DOM、发起网络请求的全局变量发出告警,需要手工检查这些敏感调用点是否正常

依据

从过往的恶意代码Payload来看,攻击者外带信息都是通过fetch,还没有做什么隐藏手段

混淆代码

描述

如果js文件内出现了被混淆代码的特征,则告警

依据

过往的恶意代码中大部分经过了 obfsucator.io 这一JS混淆器处理,该混淆器产生的代码有明显特征,可以识别

关键字检查

描述

如果js文件内出现 ethereum 等关键字,则直接告警

依据

非Crypto领域的NPM包不应该出现这类关键字,但从过往的恶意代码Payload看,有时会通过 ethereum 这一全局变量窃取信息

使用

目前支持PNPM, YARN等包管理工具,不支持处理默认的NPM包管理工具

CLI

在本地GIT仓库内使用

通过对比2个分支的差异,确定NPM依赖变更,并做扫描

npx prscan branch <基础分支> <变更分支> -o <报告输出文件名, 默认输出到stdout> -r <仓库路径, 默认为当前路径>

在远程GitHub仓库使用

npx prscan github <PR链接> -o <报告输出文件名, 默认输出到stdout> -t <GitHub TOKEN, 公开项目不需要>

About

检查PR引入的NPM依赖变更是否存在风险

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published