抄袭Github:搜索要开发的“秘密”

图片

在开发软件产品或基于云的SaaS服务时,很难跟踪参与开发过程的所有专家的第三方活动。 只需打开Github,在搜索中输入“ <company_domain_name.com>通过”,然后评估结果。 如果Github在交付过程中突然显示出一些有趣的东西,那么我们将考虑可以帮助攻击者破坏您公司业务流程的场景。 如果Github仍然保持沉默,那么我们将考虑攻击产品开发周期的替代方法,在这些方法中,不仅开发人员,甚至安全工程师都可以成为基础结构的切入点。

GitHub报废


通过正确的搜索查询,您可以找到包含用于连接到公司基础结构的凭据的各种代码段,这些代码段可供开发人员和质量检查工程师使用。 但是,不仅可以检查Github的秘密。 研究公用存储库中的机密信息(帐户数据,私钥等)的技术使您甚至可以在开始直接安全分析之前就打开对应用程序中有趣位置的访问。

考虑到许多成熟度完全不同的产品IT公司(从初创企业到企业业务)在开发周期中涉及到不同的承包商,因此有价值数据泄漏到公共存储库的可能性越来越大。 任何参与开发周期的专家都会对该产品承担某些风险。

因此,例如,在搜索包含SaaS产品域的源代码片段的过程中,可以找到包含用于连接到平台的特权凭据的自动测试的片段。 为了确保该示例不是假设的,而是真实的,只需转到Techcrunch,找到提供SaaS产品的某家公司的名称,然后在github上查找其域。

我们打开有关初创企业的新闻,看到很多区块链钱包和区块链平台,选择一个名字奇特的初创企业,然后在github上查找其域名。 我们在使用不同的脚本连接平台时遇到了许多秘密。

图片
在Github上搜索正确的查询会打开许多​​有趣的带有秘密的脚本

最常见的是,在以下存储库中找到机密:

  • 代码自动测试,以确保质量检查工程师备份到其个人公共存储库;
  • 负责将客户与产品集成的签约组织的资料库;
  • 备份其内部工具的开发人员的个人存储库;
  • 负责安装和维护产品(运营)的承包商使用的产品安装脚本和框架微服务文件。

图片
代码中保留的一个秘密示例:连接到SaaS平台的私钥

帮助攻击者破坏产品或其用户的机密示例:

  • 连接凭证(搜索查询的示例:“ product_name + pass”,“ domain_name + login”);
  • 私钥和证书(搜索查询示例:“域名+私有”)。

安全工程师的秘密


现在,来自安全专家的人大声疾呼:“但是,如果开发人员使用了Hashicorp Vault,那么这些问题就不会发生!” 是的,在某些条件下,这种秘密管理解决方案是有效的。 但是,有时甚至安全专家也会犯错。

选择用于漏洞静态代码分析(SAST)的顶级商业解决方案。 在此顶级产品中,可能会有大型且昂贵的产品,这些产品代表了集成到CI / CD开发过程的完整平台,并且具有用于第三方自动化脚本的API。

SonarQube是代码质量和安全性分析平台的示例。 单个请求中可以在Shodan中找到安装数量,从而表明其受欢迎程度:
通讯埠:9000 sonarqube

图片
SonarQube平台可用安装的地理位置

图片
按国家划分的SonarQube安装数量

如果您查看Github中与SonarQube有关的所有秘密,则可以找到用于连接和控制扫描的小脚本。

图片
脚本(可能)包含用于连接到平台的机密

如果您查看SonarQube官方文档,则可以在CLI中找到有关启动任务的格式的说明。 特别是,其中一个键负责传输有关帐户的数据,将代表该帐户执行命令。

图片
负责在平台中传输帐户信息的密钥

使用此信息,您可以获得更多相关的搜索结果。 包含“ sonar +登录”或“ sonar +密码”的搜索查询使您可以查找不仅由开发人员使用,而且由安全命令直接使用的自动化脚本。

图片
我们阅读了文档,提出了新要求,收到了更多相关问题

秘密搜索自动化


您可以在公司的官方存储库中,或在其员工或承包商(或用户)的非正式存储库中查找秘密泄漏。 在Github或其他存储库中查找秘密的过程可以说明如下:

图片
机密搜寻程序

要自动执行这些操作,有许多实用程序和脚本,因此建议不要重新发明轮子。 例如,您可以使用以下工具:

  • gitGrabber(https://github.com/hisxo/gitGraber)-允许实时监控Github和其他服务的秘密。 适用于监视给定搜索查询的机密出现的任务。
  • gitLeaks(https://github.com/zricethezav/gitleaks)-用于监视特定存储库中机密泄露的工具。 非常适合执行监视公司官方存储库的任务。

将这些实用程序与与其用途相关的查询一起使用,将使您能够组织一个系统来监视机密泄漏到公共存储库中。 同时,正如AppSec同事在Twitter上的评论中正确指出的那样,为了将秘密保密,您需要实现和使用秘密管理解决方案。 例如,专门用于单独物料的 Hashicorp Vault。

研究者,成功搜索! 对于开发人员,安全提交!

Source: https://habr.com/ru/post/zh-CN484462/


All Articles