长亭百川云 - 文章详情

CodeQL检测SpringBoot应用敏感信息的返回

楼兰学习网络安全

36

2024-07-13

1、背景描述

2、必要信息的配置

3、匹配出包含敏感字段的类

4、检测Map类型的变量

5、检测ReturnType

6、检测ReturnStmt

7、查询展示

8、完整代码

1、背景描述

用CodeQL检测响应包是否包含敏感信息的想法最开始是我的同学haoran分享给我的。

之前已经实现了SQLi跟XSS的检测,在翻阅SOC中的漏洞时感觉我也需要实现这样的一个功能,对安全漏洞以及隐私合规都会有用处。

文后附有完整代码。

2、必要信息的配置

首先需要根据自己项目的实际情况,配置关心的敏感字段的名称,后面会校验变量名、Map的key、类里面的字段名是否是这些值,如果是则认为是敏感的变量、类。

当然你也可以改用正则或者通配符的形式进行限制。

根据自己的情况,配置项目中映射URL的标注名,只关心可以通过URL直接访问到的方法

对于一些没有编译进CodeQL数据库的类,无法进入到类的内部比对字段名,可以手动配置这个类的类名

3、匹配出包含敏感字段的类

1)判断一个字段的字段名是否是敏感的

2)字段的类型是源码中定义的项目类型时,则进行递归校验

4、检测Map类型的变量

1)key是敏感字段时

2)valueType是敏感的类时

3)valueType是泛型,内嵌敏感的类时

5、检测ReturnType

通过检测ReturnType来判断是否包含敏感字段

1)ReturnType是敏感的类时

2)ReturnType是泛型,内嵌敏感的类时,支持上面这种多重嵌套的形式

6、检测ReturnStmt

有时ReturnType中只是一个像ArrayList的类型,所以还需要检测ReturnStmt
1)检测Return语句中的是否包含了敏感类

2)返回值是Map类型时,校验Map类型的变量

7、查询展示

8、完整代码

在公众号内回复:CodeQL001,即可获得下载链接。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2