如何使用NodeSecurityShield保障NodeJS应用程序安全
关于NodeSecurityShield
NodeSecurityShield简称为NSS,是一款对开发人员和安全工程师十分友好的安全工具,该工具旨在帮助广大开发人员更好地保护NodeJS应用程序的安全。
该工具受到了log4J漏洞(CVE-2021-44228)的启发,一旦应用程序可以进行任意网络调用,那么攻击者就有可能利用该漏洞来实施入侵攻击。因此,我们认为有必要让应用程序声明它可以拥有哪些权限,以便增加这些漏洞的利用难度。为了实现这个目标,NodeSecurityShield实现了自己的资源访问策略。
功能介绍
攻击监控:带外网络调用
攻击屏蔽:带外网络调用
资源访问策略(RAP)
该工具所实现的资源访问策略类似于内容安全策略(CSP)。
NodeSecurityShield将允许开发人员/安全工程师声明应用程序应该访问哪些资源,NodeSecurityShield也将强制执行其资源访问策略(RAP)。
工具安装
该工具主要针对的是NodeJS应用程序,因此我们首先要在本地设备上安装并配置好NodeJS环境。接下来,使用npm命令直接下载和安装NodeSecurityShield即可:
npm install nodesecurityshield
工具使用
// 使用require引入'nodesecurityshield' let nodeSecurityShield = require('nodesecurityshield'); // 启用攻击监控或屏蔽功能 nodeSecurityShield.enableAttackMonitoring(resourceAccessPolicy ,callbackFunction);
资源访问策略(RAP)样例
const resourceAccessPolicy = { "outBoundRequest" : { "blockedDomains" : ["*.123.com", "stats.abc.com", 'xyz.com'], "allowedDomains" : ["*.domdog.io"] } };
注意,blockedDomains的优先级高于allowedDomains,比如说,工具首先会根据blockedDomains检查请求,然后再根据allowedDomains检查请求。
callbackFunction样例(攻击屏蔽)
var callbackFunction = function (violationEvent) { throw new Error("Request Blocked. It violates declared Resource Access Policy.") }
violationEvent样例
{ "violationtType": "Outbound Request", "message": "Outbound request to 'www.malicious.com' violates declared 'Resource Access Policy (RAP)'.", "policy": { "outBoundRequest" : { "blockedDomains" : ["*.123.com", "stats.abc.com", 'xyz.com'], "allowedDomains" : ["*.domdog.io"] } }
结合Sentry使用
结合Sentry的resourceAccessPolicyto样例
const resourceAccessPolicy = { "reportUriHosts" : ["ingest.sentry.io"], "outBoundRequest" : { "blockedDomains" : ["*.123.com", "stats.abc.com", 'xyz.com'], "allowedDomains" : ["*.domdog.io"] } };
结合Sentry的callbackFunction样例
var callbackFunction = function (violationEvent) { var e = new Error(); e.name = 'Resource Access Policy Violation'; e.message = JSON.stringify(violationEvent); Sentry.captureException(e); }
许可证协议
该项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
NodeSecurityShield:【GitHub传送门】
参考资料
https://nvd.nist.gov/vuln/detail/CVE-2021-44228
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录
请登录/注册后在FreeBuf发布内容哦