欢迎访问 快意信息网,社会信息中心 mobile mip

当前位置:快意信息网 > 国际 >

GitHub 开源代码分析引擎 CodeQL,同步启动 3000 美元漏洞奖励计划 ... 国际

国际     来源:网络     标签:[db:词语]     发布:2020-10-18 00:20     手机版     MIP

[db:词语]

雷锋网 AI 开发者按:近日,GitHub 在全球开发者大会上,宣布启动了一个名为「安全实验室 (Security Lab)」的新社区计划。该计划中,GitHub 不仅开源了代码分析引擎 CodeQL,还设置了奖励金最高为 3000 美元的漏洞奖励计划。

GitHub 安全实验室的任务是启发并赋能全球安全研究社区,保护全球代码的安全;意将进一步解决代码安全难题,完善开源社区不足,为开源社区的优质代码贡献打下良好基础。这一计划也得到了很多大牛企业为代表的支持,包括 Microsoft,Google,Intel 等,现雷锋网(公众号:雷锋网) AI 开发者将这一社区具体内容整理编辑如下。


安全漏洞的火眼金睛>CodeQL 是 GitHub 刚推出的一款新开源工具。这是一款语义代码分析引擎,旨在查找大量代码中同一漏洞的不同版本。

CodeQL 可以帮助我们跨代码库发现漏洞;允许我们像查询数据一样查询代码、编写查询以查找漏洞的所有变体,并将其永久消除;共享该查询结果以帮助其他人消除漏洞。

其中,QL>

import java


from MethodAccess call, Method add

where

   call.getMethod().overrides*(add) and

   add.hasName( add ) and

   add.getDeclaringType().getSourceDeclaration().hasQualifiedName( java.util , Collection ) and

   call.getAnArgument() instanceof NullLiteral

select call

QL 还支持递归和聚合,这允许我们可以使用简单的语法编写复杂的递归查询并直接使用函数库,比如:count,sum 和 average。

因此,使用 CodeQL 编写的查询可以发现漏洞及重要安全漏洞的变体。而除了 GitHub 平台外,CodeQL 也已经应用于其它平台的漏洞代码扫描活动中,如 Mozilla。

更多关于>

https://help.semmle.com/QL/learn-ql/ 

CodeQL 该如何使用?

在线查询

我们可以使用 LGTM 平台(https://lgtm.com/query/rule:1823453799/lang:java/)上的 CodeQL 查询控制台,在流行的开源代码库上直接运行实际查询。

LGTM>

当了解发现有漏洞的模式后,我们就能在整个代码库中查找出类似的情况。在下面的示例中,我们使用了内置的 CodeQL 库对不安全的反序列化模式进行编码,以进行数据流和污点跟踪。

UnsafeDeserialization.ql

from DataFlow::PathNode source, DataFlow::PathNode sink, UnsafeDeserializationConfig conf

where conf.hasFlowPath(source, sink)

select sink.getNode().(UnsafeDeserializationSink).getMethodAccess(), source, sink,

    Unsafe deserialization of $@. , source.getNode(), user input

本地查询

如果需要在本地编写和运行查询,可以通过安装 Visual Studio Code 的 CodeQL 扩展而实现。

在>

安装 CodeQL 扩展后,具体操作步骤为:

1. 获取 CodeQL 数据库

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

将所下载的和项目本身的 CodeQL 数据库添加到 VS 代码中,实现对这些指令的使用;

2. 查询代码并查找漏洞

复制 CodeQL starter 工作区并在 VS Code 中打开它;

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

有关详细信息,请参阅文档:

https://help.semmle.com/codeql/codeql-for-vscode.html 

查询开源代码库

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

CodeQL 分析依赖于从代码中提取关系数据,并使用它来构建 CodeQL 数据库(https://help.semmle.com/codeql/glossary.html#codeql-data )——该目录包含在代码上运行查询所需的所有数据。

在生成 CodeQL 数据库之前,您需要:

安装并设置 CodeQL CLI。(有关更多信息,参见下面的 CodeQL CLI 入门)

迁出要分析的代码库的版本。该目录应已准备好建立,并已安装所有依赖项。

查询开源代码库示例

但需要注意的是,GitHub>

CodeQL 扩展详细文档:

https://help.semmle.com/codeql/codeql-for-vscode.html 

本地查询下载地址:

https://marketplace.visualstudio.com/items?itemName=github.vscode-codeql 

CodeQL CLI 入门:

https://help.semmle.com/codeql/codeql-cli/procedures/get-started.html 

CodeQL「捕获标志」挑战

如果你想挑战漏洞搜索技能并快速学习 Semmle CodeQL,可以尝试完成给出的任务,即通过使用 CodeQL 来找到 jQuery 插件的变体——这些变体会使客户机暴露于未记录的 XSS(跨站点脚本)漏洞。

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

而>

这是指攻击者使用 web 应用程序向其他最终用户发送恶意代码(通常是以浏览器端脚本的形式);而这些恶意脚本可以访问浏览器保留并与该站点一起使用的任何 cookie、会话标记或其他敏感信息。

因此,在整个查找过程中,你需要使用分步指南编写查询,从而查找引导中未安全实现的>

查看以前的挑战:

https://securitylab.github.com/ctf/jquery 

提升安全的更广泛计划

另外,最近 GitHub 还成为授权的 CVE 编号发布机构,即它能够为漏洞发布 CVE 编号。这一功能已经增加至「安全建议」服务功能中。漏洞修复后,项目所有人就可以发布安全公告,而 GitHub 将向所有使用原来维护人员的代码的易受攻击版本的上游项目所有人;但在发布安全公告前,项目所有人同时可以直接向 GitHub 请求并收到 CVE 编号。

当然,除了代表荣誉的 CVE 之外,Github 也发起了奖金机制,使用 CodeQL 进行挖掘新漏洞的安全研究员可以最高获得 2500 美元的赏金;如果编写的 CodeQL 查询代码质量够高,甚至还能被授予 3000 美元的奖励。

赏金详细规则:

https://securitylab.github.com/bounties 

除了新推出的安全实验室外,GitHub 还推出了「GitHub 安全公告数据库」,用于收集平台上能找到的所有安全公告,可以为大家追踪在 GitHub 托管项目中找到的安全漏洞问题提供更大的便利空间。

最后,GitHub 还更新了 Token Scanning 自有服务。它能够扫描用户项目中不慎在源代码中遗留的 API 密钥和令牌。该服务此前能够为 20 种服务检测 API 令牌,而新版本能够检测的格式又增加四个厂商:GoCardless、HashiCorp、Postman 和腾讯云。

Github>

https://securitylab.github.com/tools/codeql/ 

雷锋网 AI 开发者


雷锋网原创文章,未经授权禁止转载。详情见转载须知。

>

本文标签:[db:词语]

本文地址:http://www.k0358.com/guoji/gykmjlnmr.html 转载请注明出处

上一篇: 猎豹移动:微软发布8月例行更新 Windows 10亦受影响
下一篇: 数据库的同步模式

本站所有文章均来自搜索引擎和其他站点公开内容,如有侵权或表述不当,请联系并标明身份和情况后立即删除,E-mail:ainba_cn@163.com
copyright © 2012-2019 www.k0358.com 快意信息网 - 快意信息网,社会信息中心 移动版 MIP