ARTICLE · 1138895
震惊!百度开源这款安全工具,让RASP插件开发效率提升1000%
震惊!百度开源这款安全工具,让RASP插件开发效率提升1000%
免责声明:本文仅做技术分享,使用该工具时请遵守相关安全法规及授权范围。
重点导读简介
OpenRASP插件开发工具是百度安全团队开源的JavaScript插件开发和测试命令行工具。该工具为OpenRASP安全防护平台的插件开发者提供完整的语法校验、测试用例运行能力,大幅提升插件开发效率。
重点导读核心功能
PART 01安装
支持Node.js 4.x及以上版本,通过npm全局安装:
bashnpm install -g openrasp
PART 02命令
提供两个核心命令:rasp和rasp-check。
rasp命令用于插件语法检查和测试:
bashrasp check -d <测试用例目录> -p <插件文件路径>
测试用例采用JSON格式,包含检测参数、上下文信息和预期响应动作。
重点导读架构
PART 03测试框架
基于Mocha测试框架,支持批量执行测试用例。每个测试用例定义检测点名称、参数、上下文和预期动作,通过RASP.checkPoints接口调用插件逻辑。
PART 04检测点类型
工具模拟以下检测点类型:
- command:命令执行
- directory:目录访问
- fileUpload:文件上传
- readFile:文件读取
- request:HTTP请求
- sql:SQL操作
- writeFile:文件写入
- xxe:XML外部实体
- ognl:OGNL表达式
- deserialization:反序列化
- reflection:反射调用
- webdav:WebDAV操作
- ssrf:服务端请求伪造
- include:文件包含
- copy:文件复制
- rename:文件重命名
PART 05环境模拟
提供完整的运行时环境模拟,包括:
- RASP插件注册机制
- 检测点参数构造
- SQL解析能力
- 攻击异常处理
重点导读插件开发流程
PART 06编写插件
定义RASP插件实例,注册各检测点处理函数:
javascriptvar plugin = new RASP('plugin-name');
plugin.register('sql', function(params) {
if (sqlRegex.test(params.query)) {
return { action: 'block', message: 'SQL注入攻击' };
}
return { action: 'ignore', message: '无风险' };
});
PART 07编写测试用例
创建JSON格式测试用例文件:
json[
{
"description": "SQL注入检测",
"name": "sql",
"params": { "query": "SELECT * FROM users WHERE id=1" },
"context": {},
"action": "ignore"
}
]
PART 08执行测试
运行测试验证插件逻辑:
bashrasp check -d ~/testcases/ -p ~/plugin.js
重点导读技术实现
PART 09核心模块
lib/check.js:测试用例加载和执行逻辑lib/buildenv.js:测试环境初始化lib/case/json_cases.js:Mocha测试用例构造器lib/environment/checkpoint.js:检测点类定义lib/environment/rasp.js:RASP核心类实现lib/environment/sql_tokenize.js:SQL解析模块
PART 10依赖
- commander:命令行参数解析
- mocha:测试框架
- chai:断言库
- eslint:代码检查
重点导读应用场景
- OpenRASP官方插件开发
- 企业内部安全插件定制
- 插件逻辑自动化测试
- 检测规则验证
本文介绍的项目开源地址如下:
texthttps://github.com/baidu-security/openrasp-plugin-devtool
本公众号非项目作者,仅做技术分享。
广告时间
低价考证包括但不限于CISP系列、PMP等等国内网安证书、网络安全交流群请关注公众号后点菜单栏的找棉花糖。
糖心会员站,网络安全必备网站,包括在线内网靶场、web靶场、src靶场、应急响应靶场,以及各种网安资料、教程、方案模版、以及超级多在线工具,99元包年!详细介绍:棉花糖会员站介绍(26年4月26日版本) :在线内网靶场、网安资料方案、在线工具全能资源站,看完介绍百分百心动!