Node.js I';恐怕我';我们安装了一个scam npm包:如何分析Wasm?
我已经安装并执行了npm的一个包(使用nodejs): 不知何故,我没有意识到它的声誉不好(在twitter、github上几乎没有活动/明星)。现在我担心这是个骗局。最坏的情况是窃取/加密我的数据或类似的东西 我在活动监视器中检查了流程、I/O和网络,但没有什么有趣的内容。 但我想有更多的信心,一切都很好 因为它是一个Wasm文件,所以我不能只检查源代码。 我曾尝试使用此工具进行反编译:但它为该项目中的所有二进制文件提供了以下错误:Node.js I';恐怕我';我们安装了一个scam npm包:如何分析Wasm?,node.js,webassembly,honeypot,Node.js,Webassembly,Honeypot,我已经安装并执行了npm的一个包(使用nodejs): 不知何故,我没有意识到它的声誉不好(在twitter、github上几乎没有活动/明星)。现在我担心这是个骗局。最坏的情况是窃取/加密我的数据或类似的东西 我在活动监视器中检查了流程、I/O和网络,但没有什么有趣的内容。 但我想有更多的信心,一切都很好 因为它是一个Wasm文件,所以我不能只检查源代码。 我曾尝试使用此工具进行反编译:但它为该项目中的所有二进制文件提供了以下错误:错误:@0x00000004:bad magic value
错误:@0x00000004:bad magic value
也许是因为在openssl.js包的自述文件中,他们声称它是用wasienv工具链构建的
另一个想法是安装一个蜜罐并在蜜罐中运行相同的命令。但是哪个蜜罐适合这个呢
//编辑
我能够在这个文件上运行wasm2c:src/raw wasm/openssl.wasm。
但我如何确保没有网络互动?以下是输出的第一行:作者提到它仍然是一个测试项目。无论如何,它应该像从项目中删除任何npm包一样简单,因为这些编译是根据项目完成的。启动npm卸载openssl.js,它将删除程序包对您的项目所做的任何更改。@MaulikParmar我不确定这是否正确-这如何撤消命令的执行?只要您不全局包含二进制文件,它将按项目编译。您可以通过转到供应商软件包目录dist文件夹进行检查。您可以找到在运行时加载的已编译二进制文件和已编译节点绑定。这是一种沙箱包的方法,可以防止它们滥用包管理器权限,破坏其他项目,并将应用程序保持在安全上下文中。当您安装node sass、node dart或任何其他具有C库绑定的包时,也会执行相同的操作。它执行Cmake为您的平台编译二进制文件,然后包括它。我没有全局安装它。但即使是在当地:最坏的情况是什么?我在没有sudo的情况下(在mac上)运行该命令。所以在运行期间,任何代码都可以正确执行?所以我的用户文件可以被扫描(不是系统文件),但足够访问我的私有RSA密钥并将它们发送到某处,对吗?顺便说一句,wasm的一个很好的特性是wasm模块本身不能进行任何系统调用。它所能做的(无论如何在节点上下文中)就是调用您提供给它的JS函数。如果你想知道它在做什么,一种方法是注释你传递给它的所有导入。作者提到它仍然是一个测试项目。无论如何,它应该像从项目中删除任何npm包一样简单,因为这些编译是根据项目完成的。启动npm卸载openssl.js,它将删除程序包对您的项目所做的任何更改。@MaulikParmar我不确定这是否正确-这如何撤消命令的执行?只要您不全局包含二进制文件,它将按项目编译。您可以通过转到供应商软件包目录dist文件夹进行检查。您可以找到在运行时加载的已编译二进制文件和已编译节点绑定。这是一种沙箱包的方法,可以防止它们滥用包管理器权限,破坏其他项目,并将应用程序保持在安全上下文中。当您安装node sass、node dart或任何其他具有C库绑定的包时,也会执行相同的操作。它执行Cmake为您的平台编译二进制文件,然后包括它。我没有全局安装它。但即使是在当地:最坏的情况是什么?我在没有sudo的情况下(在mac上)运行该命令。所以在运行期间,任何代码都可以正确执行?所以我的用户文件可以被扫描(不是系统文件),但足够访问我的私有RSA密钥并将它们发送到某处,对吗?顺便说一句,wasm的一个很好的特性是wasm模块本身不能进行任何系统调用。它所能做的(无论如何在节点上下文中)就是调用您提供给它的JS函数。如果您想知道它在做什么,一种方法是对传递给它的所有导入进行注释。