官网地址:https://cloud.tencent.com/product/tcap
官方开源仓库:(点击最下方【阅读原文】可直接跳转)https://github.com/Tencent/CodeAnalysis
国内工蜂镜像地址:https://git.code.tencent.com/Tencent_Open_Source/CodeAnalysis
TCA支持针对Java语言中常见的安全漏洞,如XSS跨站脚本攻击漏洞,命令行注入漏洞等进行专项分析。本系列安全规则主要有“致命”和“错误”级别,针对这些安全漏洞,TCA可以准确识别漏洞所在位置并提供修复建议。
支持语言:Java
注:该规则包由TCA独立工具支持,需申请授权免费使用,申请传送门:
《CLS使用文档》:https://tencent.github.io/CodeAnalysis/zh/quickStarted/enhanceDeploy.html
分析方案 -> 代码检查 -> 【Java】强化安全规则 -> 启用/查看规则
SQL注入
命令行注入漏洞
当使用 childprocess 等模块执行命令时,拼接了用户可控的输入,会导致命令执行漏洞。攻击者利用漏洞可以控制目标主机或者容器。
void bad(HttpServletRequest req, HttpServletResponse resp){ String cmd = req.getParameter("cmd"); Runtime rt = Runtime.getRuntime(); rt.exec(cmd); // 触发规则}
修复建议:
需要评估 childprocess 等模块执行命令的使用,应限定或校验命令和参数的内容。
路径穿越漏洞
操作文件时,应该限定文件的路径范围,如果拼接用户输入到文件路径,可能导致路径穿越漏洞。攻击者利用漏洞可以访问到文件系统上的任意文件,这可能导致信息泄漏等问题。
void bad(HttpServletRequest req, HttpServletResponse resp){ String image = req.getParameter("image"); File file = new File("resources/images/", image); // 触发规则
if (!file.exists()) { return Response.status(Status.NOT_FOUND).build(); }
return Response.ok().entity(new FileInputStream(file)).build();}
修复建议:
按业务需求,使用白名单限定后缀范围,校验并限定文件路径范围。
更多内容请参考帮助文档
【Java】强化安全规则包-使用手册 https://tencent.github.io/CodeAnalysis/zh/guide/%E4%BB%A3%E7%A0%81%E6%A3%80%E6%9F%A5/%E8%A7%84%E5%88%99%E5%8C%85/enhanced_safety_java.html