github/securitylab
GitHub: github/securitylab
GitHub Security Lab 官方维护的 CodeQL 安全研究资源仓库,汇集了针对真实漏洞的查询示例、概念验证代码和学习资料。
Stars: 1587 | Forks: 284
# GitHub Security Lab
这是 [GitHub Security Lab](https://securitylab.github.com/) 的主要 git 仓库。
我们将其用于以下主要目的:
* 我们在我们的 [文档](/docs) 中与社区分享有关安全研究和漏洞披露的一些最佳实践。
* 我们使用 [此仓库的 issues](https://github.com/github/securitylab/issues?q=is%3Aissue+is%3Aopen+label%3A%22All+For+One%22) 来追踪 CodeQL [赏金请求](https://securitylab.github.com/bounties)。
* 我们用它来发布我们的一些概念验证漏洞利用(在漏洞修复之后)。这些 PoC 可以在 [SecurityExploits](SecurityExploits) 子目录中找到。
* CodeQL 查询示例,可以在 [CodeQL_Queries](CodeQL_Queries) 子目录中找到。
## CodeQL 资源
**这一部分属于你!** 你想与社区分享一个很酷的 CodeQL 查询吗?或者是一个很棒的教程或视频,或者一些有用的工具?欢迎你的贡献。请提交一个 pull request。请参阅下面的 [贡献](#Contributing) 部分。
### 官方资源
* [CodeQL 文档](https://codeql.github.com/docs/)
* [CodeQL GitHub 仓库](https://github.com/github/codeql)
### 示例查询
* Java
* [Apache Struts CVE-2018-11776](CodeQL_Queries/java/Apache_Struts_CVE-2018-11776)
* [Spring 应用中的不安全 JMS 反序列化](https://github.com/silentsignal/jms-codeql/)
* C/C++
* [Apple XNU icmp_error CVE-2018-4407](CodeQL_Queries/cpp/XNU_icmp_error_CVE-2018-4407)
* [Facebook Fizz 整数溢出漏洞 (CVE-2019-3560)](CodeQL_Queries/cpp/Facebook_Fizz_CVE-2019-3560)
* [libssh2 中的错误码丢失问题](CodeQL_Queries/cpp/libssh2_eating_error_codes)
* [Itergator](https://github.com/trailofbits/itergator) - 用于迭代器失效的库和查询([博客文章](https://blog.trailofbits.com/2020/10/09/detecting-iterator-invalidation-with-codeql/))
* Javascript
* [Etherpad CVE-2018-6835](CodeQL_Queries/javascript/Etherpad_CVE-2018-6835)
* C#
* [C# Zip Slip 演示](CodeQL_Queries/csharp/ZipSlip)
* GitHub Actions:
* [带有显式 PR checkout 的 pull_request_target](https://github.com/github/codeql/blob/main/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.ql)
* [来自用户控制的 Actions 上下文的命令注入](https://github.com/github/codeql/blob/main/javascript/ql/src/experimental/Security/CWE-094/ExpressionInjection.ql)
### 文章
* [CodeQL 实战入门](https://jorgectf.gitlab.io/blog/post/practical-codeql-introduction/)
### 视频
* 会议演讲/研讨会:
* [使用 CodeQL 发现 JavaScript 中的安全漏洞 - GitHub Satellite 2020](https://www.youtube.com/watch?v=pYzfGaLTqC0)
* [使用 CodeQL 发现 Java 中的安全漏洞 - GitHub Satellite 2020](https://www.youtube.com/watch?v=nvCd0Ee4FgE)
* [CodeQL 作为审计预言机 - POC 2020](https://www.youtube.com/watch?v=XmAEgl8bVhg)
* [mbuf-oflow:在 iOS/MacOS 网络代码中发现漏洞](https://www.youtube.com/watch?v=0EHP2gzwVAY)
* Semmle 时代的 CodeQL 演示(简短的 Youtube 视频):
* [PII 数据泄露:使用 CodeQL 识别日志中的个人信息](https://www.youtube.com/watch?v=hHaOxbyqy44)
* [漏洞狩猎:使用 QL 寻找漏洞利用](https://www.youtube.com/watch?v=irrYp3wdtsw)
* [在 Java 中发现不安全的反序列化](https://www.youtube.com/watch?v=XsUcSd75K00)
* [在 Libssh2 中发现整数溢出](https://www.youtube.com/watch?v=czXicfULOfk)
### 工具
* 编辑器插件
* [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) (官方)
* [Neovim](https://github.com/pwntester/codeql.nvim)
* [Emacs](https://github.com/anticomputer/emacs-codeql)
* 代码生成
* [cqlgen](https://github.com/gagliardetto/cqlgen) — 一个用 Go 编写的 codeql 生成库。
* [codemill](https://github.com/gagliardetto/codemill) — 一个带有 Web UI 的 Go 语言 codeql 模型生成器。
## 免责声明
GitHub Security Lab 提供的建议是善意的,是否应用这些建议最终由接收者自行决定。这适用于通过我们的书面或音频内容、我们的会议、我们在社区空间的回答,或我们的非正式办公时间给出的建议。
## 贡献
我们欢迎对本 README 的 [CodeQL_Queries](CodeQL_Queries) 子目录和 [CodeQL 资源](#codeql-resources) 部分进行贡献。
如果你编写了一个很酷的 CodeQL 查询并希望与社区分享,请提交一个 pull request 将其添加到 [CodeQL_Queries](CodeQL_Queries) 子目录中。将你的查询放在它自己的新子目录中。例如:`CodeQL_Queries/cpp/mynewsubdir/mycoolquery.ql`。当然,如果你认为你的查询可能有资格获得 [赏金](https://securitylab.github.com/bounties),那么你应该向 [codeql](https://github.com/github/codeql) 仓库提交 pull request,因为对于提交到本仓库的查询,我们不提供赏金。本仓库中的查询通常是仅对特定代码库有意义的高度专业化查询,例如专门针对 [Chrome](CodeQL_Queries/cpp/Chrome) 或 [Apache Struts](CodeQL_Queries/java/Apache_Struts_CVE-2018-11776) 的查询,或者是帮助你探索代码而不一定非要发现漏洞的实用查询。此类查询不适合 [codeql](https://github.com/github/codeql) 仓库,该仓库仅用于通用查询。
如果你想在 README 的 [CodeQL 资源](#codeql-resources) 部分添加链接,以分享一个不错的视频或很棒的工具,只需在相应部分添加另一个要点即可。
* 每个要点应包含一个带超链接的标题和一个简短的描述。如果标题本身已经不言自明,则简短描述是可选的。
* 请在列表底部添加新要点。将来,我们可能会选择其他排序方式(例如按字母顺序),但目前只是一个顺序列表。
有关我们的贡献指南和许可的更多信息,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)、[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) 和 [LICENSE.md](LICENSE.md)。
标签:CISA项目, CodeQL, CSharp安全, CVE分析, C++安全, DevSecOps, GHAS, GitHub Security Lab, JavaScript安全, Java安全, JS文件枚举, PoC验证代码, UML, 上游代理, 云安全监控, 云资产清单, 安全专业人员, 安全实验室, 安全评估工具, 客户端加密, 客户端加密, 数据可视化, 文档安全, 漏洞披露, 网络安全, 逆向工程, 隐私保护, 静态分析