晓查 发自 凹非寺
量子位 | 公众号 QbitAI

今天,GitHub更新一项实验版新功能。

用上机器学习后,新版CodeQL代码扫描服务可以帮开发者发现更多安全漏洞。

目前在JavaScriptTypeScript存储库上开发测试,以后会逐步增加各种语言支持。

在测试期间,CodeQL已经从12,000个存储库中发现了超过20,000个安全问题,包括远程代码执行(RCE)、SQL 注入和跨站脚本(XSS)漏洞。

如何使用

GitHub的CodeQL代码扫描对于公共存储库是免费的。

目前,新的JavaScript/TypeScript分析工具,已向security-extended和security-and-quality分析套件的所有用户推出。

如果你已经在使用这些套件,那么将自动使用新的机器学习技术进行分析。

如果你之前没使用过,可按照以下步骤启用CodeQL。

1、在你的存储库主页下,单击Security

3、在Code scanning alerts右侧,点击Set up code scanning。如果缺少这一项,需要由存储库管理员启用GitHub高级安全性。

4、在“Get started with code scanning”下,单击在CodeQL Analysis中的Set up this workflow

5、使用Start commit下拉菜单,输入文件名并提交。

6、选择直接提交到默认分支,还是创建一个新分支并启动拉取请求。

8、单击提交新文件。

代码扫描分析成功后,用户将在“Security”选项卡中看到安全警报信息。

为何用ML能产生更好效果

为了检测存储库中的漏洞,CodeQL引擎首先构建了一个数据库,对代码的特殊关系表示进行编码,然后在数据库上执行一系列CodeQL查询。

但随着开源生态系统的快速发展,长尾效应越来越明显。

安全专家不断扩展和改进这些查询,对其他常见库和已知模式进行建模。然而,手动建模很耗时,而且总会有一些无法手动建模的不太常见的库和私有代码。

这时候机器学习就派上了用场。

通过给定大量训练代码片段,每个查询都标记为正面或负面样本,为每个片段提取特征,并训练深度学习模型对新示例进行分类。

GitHub不是将每个代码片段简单地视为一串单词或字符,直接应用标准NLP技术对这些字符串进行分类,而是利用CodeQL访问有关底层源代码的大量信息,为每个代码片段生成一组丰富的feature,然后像NLP那样对它们进行标记和子标记。

由此从训练数据中生成一个词汇表,并将索引列表输入到深度学习分类器中,输出当前样本是每种漏洞的概率。

虽然现在基于ML的漏洞扫描仅适用于JavaScript/TypeScript,但GitHub承诺未来会支持更多语言,现在CodeQL已经支持了Python、Go、C/C++在内的多种流行语言。

最后,GitHub还强调,虽然全新工具可以发现更多漏洞,但也有可能提高误报率(召回率约为 80%,精度约为 60%)。未来这项功能会随着时间推移而改善。

参考链接:
[1]https://github.blog/2022-02-17-code-scanning-finds-vulnerabilities-using-machine-learning/
[2]https://github.blog/2022-02-17-leveraging-machine-learning-find-security-vulnerabilities/
[3]https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository

GitHub免费提供机器学习扫描代码漏洞,现已支持JavaScript/TypeScript相关推荐

  1. 中国地铁换乘网——免费提供地铁查询代码下载

    中国地铁换乘网免费提供地铁换乘查询代码下载,通过网页嵌入代码的方式,在您的网站轻松快捷实现对中国城市地铁换乘的在线查询,提供最优地铁换乘路线.时刻表.票价及站点周边相关信息.并提供了多语言选择,包括中 ...

  2. GitHub官方代码扫描工具上线,免费查找代码漏洞 !

    本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载 作者:蛋酱 机器之心整理 在 GitHub 发布项目之前,你可以用免费的官方代码扫描程序来检查 Bug 了. 编程很 ...

  3. 开源免费 低代码平台开源_行动透明:免费代码营现已开源

    开源免费 低代码平台开源 by freeCodeCamp 通过freeCodeCamp 行动透明:免费代码营现已开源 (Transparency in Action: Free Code Camp i ...

  4. GitHub Copilot 被爆存在安全漏洞,涉及四成代码

    近日研究人员发现,GitHub Copilot 提供的代码中有接近40%存在 bug.研究人员创建了 89 个测试场景以考查其代码质量,编写出了 1600 多个程序,经过全面审查,证实了 GitHub ...

  5. 代码漏洞扫描常见漏洞

    代码漏洞扫描常见漏洞 1.日志注入(Log Forging漏洞) 漏洞描述 将未经验证的用户输入写入日志文件可致使攻击者伪造日志条目或将恶意信息内容注入日志. 在以下情况下会发生日志伪造的漏洞: 数据 ...

  6. GitHub为所有人免费提供了所有核心功能-这就是您应该关心的原因

    Just a couple of days ago, GitHub wrote a blog article stating that it is now free for teams. Here's ...

  7. 扫描代码重大漏洞 java_超过 75% 的开源软件安全漏洞存在于间接依赖中 | Linux 中国...

    本文字数:2323,阅读时长大约:3分钟导读:JavaScript.Ruby 和 Java 是间接依赖中存在缺陷最多的生态系统.https://linux.cn/article-12360-1.htm ...

  8. 免费提供自己买的秀动网 正在现场 大麦网等购票网站的代码和脚本

    免费提供自己购买的秀动网  正在现场  大麦网等购票网站的代码和脚本 上述这些都是我从一个外行商家那里买来的(自动化专栏99.9元),本文目的是为了揭发骗局,防止更多人上当受骗. 如果只想要脚本和代码 ...

  9. 收藏 | 10本免费的机器学习和数据科学书籍(附链接)

    来源:云栖社区 本文约2500字,建议阅读6分钟. 本文为大家介绍了免费学习机器学习和数据科学方面的书籍. 听说,最近大家都开学了?不对,是学生们都已经开学了,开学第一件事是什么?发新书!发新书!发新 ...

最新文章

  1. 【算法学习】堆排序建立最大堆
  2. 全球最大规模学术不端调查显示,53%的博士生会从事有问题的研究
  3. ASP编程学习的28个观点
  4. 教师课堂教学必备的100个妙招,总有一个适合你!
  5. 算法---------数组-----------两数相加
  6. Java小程序—录屏小程序(上半场)
  7. 什么是命名空间 为什么C++需要使用命名空间
  8. 获取电脑和操作系统信息-uname
  9. 如果估算IT的测试Pattern数
  10. iPhone SDK开发基础之 OpenFlow编程
  11. JS兼容性问题:window.locatin.href is not a function
  12. .so文件移动游戏破解范例
  13. 微信小程序漏洞:可下载任意微信小游戏源代码
  14. 贾扬清:如何看待人工智能方向的重要问题?【相辅相成不可或缺的两位“大数据和AI”】
  15. 【nodeJS】从nodejs原生的博客网站搭建到 koa框架实现个人博客网站搭建
  16. linux resin 内存溢出,Resin服务器内存修改
  17. 【ArcGIS Pro微课1000例】0020:ArcGIS Pro中河流(曲线)、湖泊(水体色)图例制作案例教程
  18. 基于BCIduino脑电模组和OpenVibe的P300意念打字系统搭建
  19. 你听说过哪些坑人 or 赚钱的歪点子?真是骗局太多,傻子都不够用啊!
  20. 定制化ROM采坑之路(1):魔趣8.1版本源码下载和编译过程

热门文章

  1. 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)
  2. iOS内存管理知识点
  3. 解决莫名其妙出现connection closed的错误
  4. 生产环境一个like模糊匹配SQL优化
  5. 关于某些域环境下Windows Hello无法使用的解决方法
  6. JS魔法堂:不完全国际化本地化手册 之 拓展篇
  7. PYTHON高级全栈开发工程师-老男孩教育
  8. c语言基础 验证ascii 码表
  9. Windows Phone 模拟器(Emulator) 加载程序一闪而过就自动退出的解决办法
  10. Ajax[Mount]