GitHub开放源代码分析引擎CodeQL同时推出3000美元的漏洞奖励计划

GitHub安全实验室的使命是激励和授权全球安全研究团体,并保护全球代码的安全。意大利将进一步解决代码安全问题,改善开源社区的不足,并为高质量代码在开源社区中的贡献打下良好的基础。该计划也得到了许多大型丹尼尔企业代表的支持,包括微软、谷歌、英特尔等。现在雷锋网的人工智能开发者已经把这个社区的具体内容汇编如下

机构代码查询

安全漏洞的金眼代码QL

代码Ql是GitHub刚刚发布的一个新的开源工具。这是一个语义代码分析引擎,旨在从大量代码中发现同一漏洞的不同版本。

CodeQL可以帮助我们发现代码库中的漏洞;它允许我们查询代码,编写查询以发现所有漏洞的变体,如查询数据,并永久消除它们。共享查询结果以帮助他人消除漏洞

,其中QL是查询语言和CodeQL的基础,CodeQL致力于分析代码。这是一种逻辑编程语言,所以它由逻辑公式组成QL使用常见的逻辑连接词、量词和其他重要的逻辑概念查询语句的示例如下:

import Java

from method access调用。方法add

where

call . GetMethod()。覆盖*和

add.hasName和

add.getDeclaringType()。getSourceDeclaration()。hasqualified name和

call . getanargment()实例的null literal

select call

QL也支持递归和聚合,这允许我们使用简单的语法编写复杂的递归查询,并直接使用诸如count、sum和average之类的函数库

因此,使用CodeQL编写的查询可以发现漏洞和重要安全漏洞的变体除了GitHub平台,CodeQL还被应用于其他平台上的漏洞静态代码分析活动,例如Mozilla

更多关于QL

https://help . semele . com/QL/learn-QL/

codeql如何使用它?

在线查询

我们可以使用LGTM平台上的CodeQL查询控制台直接在流行的开放源代码库上运行实际查询

LGTM平台接口直接编写需要查询的代码

。当我们知道发现漏洞的模式时,我们可以在整个代码库中发现类似的情况。在下面的示例中,我们使用内置的CodeQL库来编码数据流和污点跟踪的不安全反序列化模式。

UnSafedeSerialization . QL

from数据流::路径节点源,数据流::路径节点接收器,UnSafedeSerializationConfig conf . HasFlowPath

select接收器. getNode()..getMethodAccess(),源,接收器,

“$ @”的不安全反序列化。”

机构代码查询

在Visual Studio中编写并运行查询代码

并安装CodeQL扩展后,具体操作步骤如下:

1。获取CodeQL数据库

,在LGTM.com搜索要研究的开源项目,然后导入项目页面;

将下载的和项目自己的CodeQL数据库添加到VS代码中,以实现这些指令的使用。

2。查询代码并找到漏洞

复制CodeQL初学者工作区并在VS代码中打开它;

通过右键单击查询并选择运行查询来运行查询;

有关更多信息,请参考文档:

https://help.semele.com/CodeQL/codeql-for-vscode.html

查询开源代码库

根据OSI批准的开源许可的相关规定,我们可以为任何符合条件的项目创建codeql数据库。

CodeQL分析依赖于从代码中提取关系数据,并使用它来构建一个CodeQL数据库——一个包含对代码运行查询所需的所有数据的目录在生成代码库数据库之前,您需要:

来安装和设置代码库命令行界面

移出要分析的代码库版本该目录应该准备好创建和所有的依赖项安装

机构代码查询

查询开放源代码库示例

,但是应该注意的是,GitHub CodeQL只能用于根据开放源码软件互连协议批准的开放源代码许可证发布的代码库,或者用于执行学术研究。它不能用于自动分析、连续集成或连续交付,无论是作为正常软件工程过程的一部分还是其他

CodeQL扩展详细信息:

https://help . semele . com/CodeQl/CodeQl-for-vscode . html

https://market . visualstudio . com/items?itemname = github . vscode-CodeQL

CodeQL CLI入门:

https://help . semele . com/CodeQL/CodeQL-CLI/procedures/get-start . html

CodeQL " capture flag " challenges

如果您想挑战漏洞搜索技能并快速学习Semmle CodeQL,可以尝试使用CodeQl-来完成给定的查找jQuery插件变体的任务

具体来说,jQuery是一个非常流行但非常古老的开源JavaScript库,旨在简化HTML文档遍历和操作、事件处理、动画、Ajax等截至2019年5月,jQuery在1000万个最受欢迎网站中的使用率为73%jQuery库支持模块化插件,世界各地的开发人员已经实现了数千个插件,无缝地扩展了jQuery的功能

机构代码查询

,而引导程序是一个流行的库,它广泛使用jQuery插件机制。但是,引导数据库中的jQuery插件过去是以不安全的方式实现的,这可能会使引导数据库用户容易受到跨站点脚本攻击。

这意味着攻击者使用网络应用程序向其他最终用户发送恶意代码;这些恶意脚本可以访问浏览器保留的任何cookie、会话令牌或其他敏感信息,并与网站一起使用。

因此,在整个搜索过程中,您需要使用一步一步的指令来编写查询,以找到在引导中没有安全实现的jQuery插件。当答案发给ctf@github.com时,你将有机会获奖。GitHub将选择2019年12月31日之前收到的两个最佳CodeQL查询,以赢得大奖;十个额外的CodeQL查询也将被选中以赢得其他奖项。

查看以前的挑战:

https://securitylab。GitHub.com/CTF/jquery

增强安全性的更广泛计划

此外,github最近已成为授权的CVE号码发行商,也就是说,它可以针对漏洞发行CVE号码该功能已添加到“安全建议”服务功能中在bug被修复后,项目所有者可以发布一个安全公告,GitHub会向所有上游项目所有者发送原始维护者代码的易受攻击版本。然而,在发布安全公告之前,项目业主可以直接请求GitHub并同时接收CVE号码。

当然,除了代表荣誉的CVE外,佳通还推出了奖金机制。使用代码库开发新漏洞的安全研究人员最多可以获得2500美元的奖励。如果编写的代码查询代码质量高,甚至可以获得3000美元的奖励。

奖励细则:

https://securitylab.github.com/bounties

除了新推出的安全实验室外,GitHub还推出了“GitHub安全公告数据库”,用于收集平台上可以找到的所有安全公告,为每个人提供更方便的空间来跟踪在GitHub管理的项目中发现的安全漏洞。

最后,GitHub还更新了令牌扫描自己的服务。它可以扫描用户项目中意外遗留在源代码中的API密钥和令牌该服务以前能够检测20个服务的应用编程接口标记,而新版本可以检测另外四种格式:无卡、哈希公司、邮递员和滕循

https://security lab . github . com/tools/codeql/

大家都在看

相关专题