- 官方插件定制
- 我的业务有执行命令需求,如何允许应用执行命令?
- 通过文件函数写入 webshell,OpenRASP 不会拦截?
- SQLi 常量对比算法 存在误报?
- 其他参考
- 官方插件无法拦截攻击,我应该如何调试
- 官方插件无法拦截攻击,我应该如何调试
官方插件定制
不同的研发人员,编码的习惯可能会不同;不同的业务,应用场景也不同。根据QQ群里用户的反馈,我们进行了整理。如果还有没覆盖的情况,请联系QQ群主,我们会给出方案,并更新文档。
我的业务有执行命令需求,如何允许应用执行命令?
某内网登录业务需要执行命令,以获取 mac 地址等等。这种情况我们不能拦截所有的命令执行,e.g
nbtstat -A 192.168.100.30
解决方法是定位到 algorithmConfig,修改算法开关:
var algorithmConfig = {...command_other: {action: 'block' // 改为 log 或者 ignore},...}
在未来,我们会引入 bash/cmd 的语义解析器,帮助你更好的白名单化要执行的命令、并检测命令注入攻击,请耐心等待。
通过文件函数写入 webshell,OpenRASP 不会拦截?
我们发现,有的业务需要能够写 PHP 脚本,e.g
wp_config.php - wordpress 安装时需要写配置文件,如果是安装好的可忽略201704_cplog.php - discuz 错误日志,经常更新
由于这类情况较多,官方插件已经默认不再拦截写脚本文件的操作,而是打印日志。如果你没有这样的业务,我们强烈建议你将默认的 log 改为 block。若要这么做,请定位到 algorithmConfig,修改算法开关:
var algorithmConfig = {...writeFile_script: {action: 'log' // 改为 block 即可},...}
开启后,如果应用尝试写入后缀为 php/jsp/asp/… 的文件,将会被判定为木马上传,并拦截 aka 尝试写入脚本文件
SQLi 常量对比算法 存在误报?
某后台结算业务,反馈 SQLi常量对比 算法存在误报。经过检查,我们发现这其实是编码不规范,使用了 1=1、0=0 这样的写法,e.g
WHERE 1=1AND ('2018-03-22'='' OR a.SUCC_TIME>='2018-03-22' )AND ('2018-03-22'='' OR a.SUCC_TIME<=DATE_ADD('2018-03-22', INTERVAL 1 DAY))AND (0=0 OR a.DEAL_ID=0)
解决方法是定位到 algorithmConfig,修改算法开关
var algorithmConfig = {...sqli_policy: {feature: {constant_compare: true, // 改为 false 即可},...},...}
当然,如果有能力的话,我们建议你不要禁用这个算法,而是推动开发进行改造。
其他参考
官方插件无法拦截攻击,我应该如何调试
有的时候,你会发现官方插件无法拦截攻击,你可以参考 999-event-logger.js 这个插件,将插件收到的内容打印出来,并观察官方插件的检测算法是不是不够完善?
有问题请到QQ群里反馈,我们会尽快解决。
原文: https://rasp.baidu.com/doc/dev/official.html
