专栏首页FreeBufGithub敏感数据分析

Github敏感数据分析

很少有数据存储库可以比GitHub更广泛地应用于代码开发生产,然而,正如老话所说的“速度越快,风险越大”。研究人员发现公共GitHub帐户具有极高泄露敏感信息的可能,数据丢失和持续泄露事件风险增加。通过适当的DevSecOps和使用GitHub事件API扫描器,组织可以大大降低泄露信息的风险。

主要发现

研究人员分析了24000多个通过GitHubs Event API上传的公共GitHub数据,发现了数千个包含敏感信息的文件,其中包括:

GitHub’s Event API

GitHub为开发人员提供了API搜索功能,可以实时地列出发布到GitHub服务器的文件和代码。每个帐户每小时限制5000个请求,API允许研究人员查看和扫描推送到Github的任何公共域内可用的文件,例如公共共享文件。有几种工具可以利用此功能,GitHub本身操作和维护GitHub令牌扫描器,可检查文件中的令牌字符串以防止欺诈和滥用。AWS的git secrets可用来扫描用户名和密码,以及其他关键字符串以防暴露。还有开源的GitHub API扫描器,如gitrob和trugglehog等,测试人员和恶意用户都可使用它们来识别潜在的敏感信息。

ShhGit Live

研究人员使用eth0izzle的shhgit来实时读取GitHub,并试图解决以下三个问题。

1、是否在文件中找到潜在的敏感数据? 2、能追踪到组织吗? 3、安全预防措施是否可以防止潜在敏感数据的不必要暴露?

简单地说,这三个问题的答案都是肯定的。研究人员发现并分析了24000多个GitHub文件,这些文件触发了shhgit的120个规则以及研究人员自定义的规则。研究人员发现一些潜在的敏感数据,包括:

4109配置文件、2464个API密钥、2328硬编码用户名和密码、2144私钥文件、1089 OAuth令牌

研究人员确认了这些数据的有效性,并能够识别文件所有者、项目名称,发布这些信息的商业公司的名称。

结果分析

硬编码密码

最关键的发现是硬编码密码,总共发现2328个用户名和密码,包括880个唯一密码,797个唯一用户名。这些密码在服务URL API和SSH配置文件中找到。研究人员指出只有18%的密码与前10个最常见的密码相关。密码“password”以72个居首,密码“secret”以51个居第二,前10个最常见密码见表1。

880个唯一密码中有817个出现了3次或更少,665个密码只出现了1次。以下是对10个密码项的采样:

p4ssW0rde P@##w0rd Password! qwerty123456789 simplepass123 sqluser2019 supersecret wilson1234567 xxxxxxxxxxxxxxxxxxxx Z*NsqgS5$@jHsF2

从主观的角度来看一些密码是公司企业常见密码,大多数密码都符合最低密码要求,而且很容易记住,例如前两个“password”密码。然而这些密码很容易被攻击者猜到,并且经常出现在bruteforce字典列表中。示例中的其他条目是非常简单的密码,只有小写和数字组合,甚至只是字母“x”重复20次。这些密码都是“高可能性的合法密码”,因为他们展示的伪复杂性说明可能是工程师在生产环境中使用的密码。此外,由于这些密码出现在对云服务(如Redis、PostgreSQL、MongoDB和AMPQ)URL API请求中的频率很高,因此这些相同的伪复杂密码也很有可能在云环境中使用。

相比之下,研究人员只发现了27个使用可变密码的唯一实例。例如,$password,{password},或%password%。这27个唯一的密码实例只占识别出的2328个密码中的67个,不到3%。

硬编码API Key和认证令牌

研究人员在24000多个GitHub文件中识别出2464个API密钥和1998个OAuth令牌。所有发现均是唯一的,只有15个key或令牌重复4次以上,并且在所有GitHub文件中只有一个重复了12次,见表2。

由于API key和OAuth令牌为用户提供对指定云环境的直接访问,如果API密钥或OAuth令牌落入其他人手中,攻击者可能会模拟登陆并获得对环境的控制。如果在云环境中创建了具有管理权限的API密钥,使用该API密钥的任何人都可以完全访问云帐户。曾经也发生过API密钥泄漏事件,以UpGuard报告为例,攻击者通过GitHub公开了将近1GB的数据,包括AWS API密钥、日志文件等。

密钥和令牌,就像密码一样,必须加以保护和控制,确保它们只为合法用户所知。任何丢失或泄漏的API密钥和OAuth令牌都应立即撤销并重新发布。表3显示了标识的2464个API密钥和1098个OAuth令牌以及它们关联的环境。

配置和私钥文件

配置文件是规则识别最高的文件类别,在24000个文件中占了近17%。最常见的配置文件类型是Django配置文件,它包占所有配置文件类型的三分之一以上,见表4。Django是一个基于python的web框架。PHP也是web设计中常见的脚本语言,位居第三。这些基于web的配置文件可能会公开组织的云基础设施,使攻击者能够轻松访问云服务器内部。

研究人员发Shell、SSH、profile和Git配置文件也出现在标识的配置文件前十个列表中。近80%的配置文件包含用户名或密码、API密钥或OAuth令牌。

总结

研究人员发现用户将敏感数据上传到GitHub,这些敏感数据包括:

硬编码用户名和密码、硬编码的API密钥、硬编码OAuth令牌、内部服务和环境配置

研究人员强烈建议,彻底扫描从公共存储库(如GitHub)中提取的每个IaC模板是否存在漏洞。几乎一半的扫描包含一个潜在的易受攻击的配置,用户部署易受攻击的云模板的可能性很大。此外,应使用GitHub API扫描器来防止在GitHub公开敏感的内部信息。

补救措施

研究人员建议采用以下缓解措施,确保配置文件不会公开泄漏敏感信息:

1、实现基于变量和CLI参数的代码,从代码中删除硬编码的用户名和密码、API密钥和OAuth令牌。 2、实施密码安全策略,强制使用复杂密码 3、执行发布政策,规范和防止从外部共享内部敏感数据。 4、使用GitHub的企业帐户功能,确保公共共享安全。 5、使用AWS git secrets、GitHub的TokenScanner、gitrob或trugglehog等工具来识别和删除公开发布的令牌等敏感信息。

*参考来源:unit42,由Kriston编译,转载请注明来自FreeBuf.COM

本文分享自微信公众号 - FreeBuf(freebuf),作者:Kriston

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微软:暴力破解面前,增强密码复杂性基本没用

    我们都痛恨密码,然而不幸的是在当下及可以看见的未来里,账户登录等在线认证操作的主要方法还是需要使用密码的。密码认证有时确实比较烦人,尤其是一些网站为了密码安全性...

    FB客服
  • Linux SSH密码暴力破解技术及攻防实战

    对于Linux操作系统来说,一般通过VNC、Teamviewer和SSH等工具来进行远程管理,SSH是 Secure Shell的缩写,由IETF的网络小组(N...

    FB客服
  • 近期曝光的针对银行SWIFT系统攻击事件综合分析

    概述 2016年2月孟加拉国央行被黑客攻击导致8100万美元被窃取的事件被曝光后,如越南先锋银行、厄瓜多尔银行等,针对银行SWIFT系统的其他网络攻击事件逐一被...

    FB客服
  • 想学王者荣耀最高阶技术?看这款小程序就够了

    玩累了,又想看看最近的王者比赛放松放松,可用电脑太麻烦,又不想点开手机 app 去找直播。

    知晓君
  • 实现无刷新的进度条功能(采用xmlhttp技术)

    我这里采用xml技术来实现进度条的功能,我这里假设加上有几个运行量非常大的存储过程,执行每一个所需要消耗的时间都很久,这里在页面上显示进度条功能,每执行完一个存...

    源哥
  • 如何在 Debian服务器 上启用双因子身份验证

    双因子身份验证就是指,需要两种身份验证才能完成账号有效性的验证,可以是密码、SSH 密钥,也可以是第三方服务,比如 Google Authenticator。这...

    Debian社区
  • 一键下载无水印小视频,不用其他APP,腻害了

    橙c发现这两年的小视频特别火爆,比如抖音、快手、火山、秒拍、小咖秀、美拍都是大家经常喜欢看的平台。有的时候看到一些好看或者好玩的小视频就想把它下载下来另作它用。...

    IT小侠公社
  • 札记:Fragment基础

    Fragment概述 在Fragment出现之前,Activity是app中界面的基本组成单位,值得一提的是,作为四大组件之一,它是需要“注册”的。组件的特性使...

    用户1172465
  • 2019 CODING DevOps 业务总结

    在过去的一年里,CODING 的产品和用户体验历经了全新升级,让我们一起来对 2019 年 CODING DevOps 的业务进行一个复盘吧。

    CODING研发管理系统
  • 让git不再跟踪配置文件的变化

    liulun

扫码关注云+社区

领取腾讯云代金券