CodeQL
使用 CodeQL(我们行业领先的语义代码分析引擎)发现整个代码库中的漏洞。CodeQL 允许您像查询数据一样查询代码。编写查询以查找漏洞的所有变体,永远消除它。然后分享您的查询以帮助其他人做同样的事情。
CodeQL 对研究和开源免费。
UnsafeDeserialization.ql
import TaintTracking::Global<UnsafeDeserializationConfig>
from PathNode source, PathNode sink
where flowPath(source, sink)
select sink.getNode().(UnsafeDeserializationSink).getMethodAccess(), source, sink,
"Unsafe deserialization of $@.", source.getNode(), "user input"
了解 CodeQL
使用 适用于 Visual Studio Code 的 CodeQL 在流行的开源代码库上运行真实查询。了解发现错误模式并随后在整个代码库中查找类似出现情况的强大功能。
在以下位置编写和运行查询:
Visual Studio Code
安装适用于 Visual Studio Code 的 CodeQL
通过下载,您同意 GitHub CodeQL 条款和条件。
安装扩展后
步骤 1:获取 CodeQL 数据库
- 在 GitHub.com 上搜索您想研究的开源项目。
- 下载并使用 这些说明 将项目的 CodeQL 数据库添加到 VS Code 中,或者使用 CodeQL CLI 创建 CodeQL 数据库。
步骤 2:查询代码并查找漏洞
- 克隆 CodeQL 初学者工作区 并在 VS Code 中打开它。
- 通过右键单击查询并选择运行查询来运行查询。
$ # Clone the project $ git clone https://github.com/m-y-mo/struts_9805 $ # Create a CodeQL database $ codeql database create ./struts_db -s ./struts_9805 \ -j 0 -l java --command "mvn -B -DskipTests \ -DskipAssembly"
查询开源代码库
您可以为任何在 OSI 批准的开源许可下发布的项目创建自己的 CodeQL 数据库。要下载 CodeQL 并开始使用,请访问 CodeQL CLI 文档。
GitHub CodeQL 只能用于在 OSI 批准的开源许可下发布的代码库,或用于进行学术研究,或在以下情况下为自动分析、持续集成 (CI) 或持续交付 (CD) 生成 CodeQL 数据库:(1) 在托管在 GitHub.com 上的任何开源代码库上,以及 (2) 用于测试您在 OSI 批准的开源软件许可下发布的 CodeQL 查询。它不能用于自动分析、持续集成或持续交付,无论是在正常的软件工程流程中还是其他情况,除了本文中明确规定的情况。对于这些用途,请 联系销售团队。