Github提交删除代码请求的申诉总结

  Github 是目前相对最大的、使用人数最多的“男性交友平台”,呸!说错了,是“代码托管交流平台”,上面充斥着各种各样的代码和信息,可谓“宝藏平台”。对于渗透测试人员来说,Github 最大的价值是在于渗透测试时利用其进行信息搜集工作,比如查找目标系统的源码、数据库地址、用户名口令等等敏感信息。但是对于工作在甲方或者说担任安全工作的各工程师、负责人来说,这无疑是最痛苦的和需要投入大量人力、物力的地方。

  很多介绍企业安全建设或者安全架构体系之类的文章和书籍都会讲到关于 Github 监控的事情,越来越多的安全人员开始去关注 Github 上面是否有自己单位业务的相关代码和信息被泄露,监控和巡检形式多种多样,如人工登录按照关键字筛查,也可以利用开源工具进行自动化监控巡检,如 VIPKID 的 Github Monitor 以及 Hell0W0rld0 的 Github-Hunter 等等。但是难点和痛点其实不是前面说的这些工作,而是发现泄露后的排查分析和人员定位,如果泄露的内容中有上传者的相关信息那还好办,能够联系上,让其删掉。但是对于任何上传者信息都找不到的情况怎么办呢?

  这时候我们就要另辟蹊径了,如果花费了很多时间后仍然找不到上传者本人信息,无法联系进行删除,那么就需要联系 Github 官方进行申诉了,让 Github 官方进行核实和删除,避免信息被大范围的泄露。

  01

  首先,Github 官方提供了一些列删除政策的说明。这里我介绍下我常用的两种 DMCA 删除政策和敏感数据删除政策。链接如下:

  https://docs.github.com/cn/github/site-policy/dmca-takedown-policy

  https://docs.github.com/cn/github/site-policy/github-sensitive-data-removal-policy

  什么是 DMCA?

  DMCA 为托管用户生成内容的服务提供商提供了安全港。 仅仅一项侵犯版权的索赔就可能导致高达 150,000 美元的法定赔偿,因此,对用户生成的内容承担责任可能对服务提供商非常不利。 如果面向数以百万计的用户,这种潜在损失将不可估量,可以说,假如没有 DMCA,则 YouTube、Facebook 或 GitHub 等云计算和用户生成内容的网站可能就不会存在或者至少会将部分成本转嫁给用户)。

  DMCA 通过为托管涉嫌侵权用户生成内容的互联网服务提供商建立版权责任安全港,解决了这一问题。 从本质上讲,只要服务提供商遵守 DMCA 的通知和删除规则,就不会对基于用户生成内容的侵权行为承担责任。 因此,对 GitHub 而言,保持其 DMCA 安全港状态非常重要。

  什么是敏感数据?

  就本文档而言,“敏感数据”是指符合以下条件的内容:应该保密,并且一旦公开,会对您或您的组织造成特定安全风险。

  敏感数据删除请求适用于:

  • 可访问您组织的服务器、网络或域的访问凭据,例如用户名与密码组合、访问令牌或其他敏感密钥。
  • 可代表您访问第三方的 AWS 令牌和其他类似访问凭据。 您必须能够证明该令牌确实属于您。
  • 对组织构成特定安全风险的文档(例如网络图)。 内部服务器名称、IP 地址和 URL 本身不够敏感;您必须能够证明内部服务器名称在特定文件或代码段中的使用构成了安全威胁。

  两者的区别是:DMCA 删除政策偏向于涉嫌版权侵权的申诉,只接受针对受版权保护的作品并且标识出具体版权,涉及面可能是整个仓库,而敏感数据删除政策偏向于一些应该保密但是被公开且易造成安全风险的信息,比如用户名和密码、网络拓扑图等,基本上是一些代码片段和部分内容,很少会涉及整个仓库。

  02

  如果内部员工或者外部恶意人员上传了本组织内部拥有版权的一些产品或者系统的源代码,在无法定位的情况下可以通过向 Github 官方提交 DMCA 删除的请求。

  流程:

  DMCA 框架有点像课堂上传纸条。 版权所有者向 GitHub 提交对某个用户的投诉。 如果书写正确,我们会将该投诉转达给用户。 如果用户对投诉有异议,他们可以回传“纸条”表达异议。 除了确定通知是否符合 DMCA 的最低要求外,GitHub 在此过程中几乎不行使酌处权。 当事方(及其律师)应负责评估其投诉的合理性,并注意,此类通知受伪证处罚条款约束。

  流程步骤:

  • 版权所有者调查

  版权的所有者即代码被泄露的组织必须要进行初步调查,确保 github 上的内容是未经授权的且侵权的内容。

  • 版权所有者发送通知

  在进行初步调查后,需要编写删除通知并发送到 Github 官方。如果符合法律要求并且内容填写足够详细,将会将该通知发布到公共仓库 https://github.com/github/dmca,同时将连接发给受影响的用户(上传者)。之前 Github 提供了两种发送通知的方式:邮件和在线提交,但是目前邮件发送的方式取消了,不再支持了,所以只有在线提交删除通知这一种形式了。后面会详细介绍如何提交这些内容。

  • Github 要求上传者进行更改

  如果删除通知指明整个仓库内容都涉及侵权,那么将会直接到步骤 6 迅速禁用整个仓库。否则会联系上传人,给其 1 个工作日的时间来删除或修改删除通知中指定的内容,同时通知版权所有者。

  • 上传者向 Github 通知更改

  上传者如果选择进行制定内容的更改,必须要在 1 个工作日内告知 githuba 官方,否则会禁用整个仓库,如果上传者更改了,也会发送通知给版权所有者。

  • 版权所有者修改或撤回通知

  上传者进行更改后,版权所有者必须进行审查,如果认为更改不充分,可以重申或者修改删除通知。除非版权所有者联系 github 重申或修改通知,否则 github 不会采取任何进一步的动作。如果版权所有者对更改感到满意,可以提交正式的撤回声明,或者什么都不做,静默期超过两周,github 将默认撤回删除通知。

  • Github 可能禁止访问内容

  在以下情况下,Github 将会禁用上传者的内容:(1)版权所有者生成对整个仓库拥有版权;(2)上传者在收到整改通知后并没有进行任何更改;(3)版权所有者在上传者更改后重申了删除通知。

  • 上传者可发送反通知

  上传者收到整改通知后如果认为错误指认而被禁用,可以向 Github 发起反通知,当然内容也要最够详细。也会发布到 github 官方的公共仓库,并且通知给版权所有者。

  • 版权所有者可提出法律诉讼

  如果版权所有者在收到反通知后,如果希望继续删除或禁用该内容,则可以发起法律诉讼,需求法律帮助制止上传者从事的相关侵权互动。如果版权所有者 10-14 天内没有想 Github 发出通知(向法院提交的诉讼副本),Github 将重新启用被禁用的内容。

  03

  按照 02 章节的流程步骤,我们进行初步调查后,确定是自己组织内产品或系统的代码或者相关信息后,就可以向 Github 官方提出申诉了。Github 对于提交 DMCA 删除有以下要求指南:

  开始前…….

  • 说实话

  这个很重要。DMCA 要求对版权投诉中陈述的事实宣誓,捏造事实会受到伪证处罚。在宣誓中故意说谎是一种违反联邦法律的罪行。提交虚假信息还可能导致民事责任,也就是说可能被起诉经济赔偿。所以在进行 DMCA 删除申诉前一定要认真核实代码等信息,百分百确定是被侵权的内容且有相关版权的证明。

  • 调查

  DMCA 投诉是一种严重的法律质控,所以在提交删除申诉前一定要认真调查。

  • 先问清

  在发送删除申诉前尝试直接联系用户,是一个良好的开端。当然,在没有上传者信息的情况下,可以在仓库中新建 issue,取得联系。这个不是强制要求,但是却很有效果,如果没有提前联系,官方处理时间会延迟 10 天左右,不会优先处理。

  • 发送正确请求

  只接受针对受版权保护的作品并标识出具体版权作品的 DMCA 删除通知。如果要投诉商标滥用、删除敏感信息请参考其对应的政策要求。

  • 代码不同于其他创意内容

  Github 是软件代码写作的平台。因此,在这里识别有效的版权行为,比识别照片、音乐或视频等方面的版权侵权行为要复杂的多。

  • 不要使用自动程序

  应该让专业人员来评估发送的每个删除通知申诉的内容。也不要使用自动化程序和工具进行批量申诉提交,这些提交往往是无效的。

  • 版权问题难以确定

  比如一些字词短语、URL 和域名通常不受版权保护,所以提交之前建议咨询下律师等专业人士,给出一些参考意见。

  • 你可能会收到反通知

  前面第 02 章节提到,如果上传者认为是被错误指认的,可以提出反通知,也会发送给版权所有者

  • 你的投诉将被公布

  投诉被接受后,会将投诉公布在 https://github.com/github/dmca 这个仓库中。

  • Github 不是法官

  Github 在整个过程中,除了确定是否符合 DMCA 最低要求外,几乎不行使酌处权。当事方(及其律师)应负责评估其投诉的合理性,并注意,此类通知受伪证处罚条款约束。

  投诉必须包括如下内容:

  • 包括以下声明:“我已阅读并理解 Github 的《提交 DMCA 通知指南》。”如果申诉未包括此声明,但是其他内容完整,Github 不会拒绝处理,但是会要求先完成阅读指南。
  • 标识出被侵权的作品。这条就是说版权所有者要把自己的版权信息具体标识出来,如果是已经发布的,需要将链接发出来,如果是尚未发布的专有信息,可以对其进行详细描述并说明他是专有信息。如果已经在版权局注册,则应提供注册号。当然了如果托管的内容完全是直接复制作品,也可以只阐述这一事实,但如果只写这一句话,处理时间估计会延长。
  • 标识声称侵犯了上述第 2 条中所列版权作品的材料。这一步就是说要详细的把侵权的内容标识出来,要让 Github 官方能够找到所指的内容。比如应该包括涉嫌侵权的 URL。如果不是整个仓库都侵权,需要标识出具体的文件或者文件中的行号和具体信息。当然,如果所有该 URL 的所有内容都侵权也需要明确说明。需要注意的是,Github 在禁用父仓库时,不会禁用 fork 的内容,如果调查分析了 fork 的内容也涉嫌侵权,需要明确标识出涉嫌侵权的 fork。
  • 说明侵权用户需要采取哪些补救措施。这个就是一旦查明上传者侵权属实,那我们版权所有者需要上传者做的动作和要求。比如,用户只需添加归属声明、删除代码中的某些行、删除整个仓库等都需要明确说明。
  • 提供申诉人的联系信息。包括电子邮件地址、姓名、电话号码和实际地址。
  • 提供涉嫌版权者的联系信息(如果知道)。一般是通过提供上传者的 Github 用户名来满足要求,当然如果知道更多的信息也可以提供出来。
  • 最后声明:“我坚信,在侵权网页上使用上述版权材料,未经版权所有者、其代理人或法律的授权。我已考虑合理使用的情况。”以及宣誓:“本人谨此宣誓,本通知中的信息准确无误,对于涉嫌受到侵犯之专有权,本人是所有者或者所有者的授权代表,如有不实,愿接受伪证处罚。”
  • 提供手写或电子签名。

  04

  之前,Github 还接受邮件申诉,但是现在不支持了,前几天发了一封申诉邮件,发完立刻收到回信,表示邮件方式已经不再受理了。

  所以,只能使用在线申诉。。

  地址:https://support.github.com/contact/dmca-takedown

  这里面的内容和第 03 章节中投诉必须包括如下内容:是一致的,可能顺序稍微有点不太一样,但是影响不大,只要按照每个标题提示输入相应的内容即可,在这里明确一点,我提供的截图是翻译成中文版的,原始页面是英文,而且大家在申诉填写相关内容时也要填写英文,不能输入中文,毕竟老美看不懂。遇到不会的词或句子可以通过翻译工具翻译后贴上。

  成功提交后,很快会收到 Github 的回信。类似这样:

  然后等着就行了。

  05

  接下来,再总结下敏感数据删除的一些过程内容。

  敏感数据删除主要指的是一些保密铭感信息,比如组织的网络拓扑图、系统的用户名和密码等等,如果这些信息数据被上传者上传到了 Github,无法定位上传人员的情况下,可以向 Github 官方发起敏感数据删除申诉。敏感数据的删除要求和流程步骤基本上和 DMCA 删除的差不多,也是调查分析、发起请求、不能使用自动程序、用户整改等等,但是比 DMCA 的稍微简单点,这里不再赘述,详细了解可参考 https://docs.github.com/cn/github/site-policy/github-sensitive-data-removal-policy。

  敏感数据删除请求需要包括如下内容:

  1. 每个包含敏感数据文件的可点击的有效链接。不能是搜索的结果、示例或者截图。
  2. 每个文件中包含敏感数据的具体行号。
  3. 描述每条敏感信息对你或者组织构成的安全风险。不仅要指出敏感数据,还要解释这些数据如何构成安全风险,这个很重要。
  4. 如果您是代表面临安全风险之组织行事的第三方,需要附上声明,表面具有代表该组织行事的合法权利。
  5. 可选:如果请求非常急迫,需要说明原因。

  在线删除请求的地址 https://support.github.com/contact

  根据要求在输入框中输入敏感数据要求包括的内容和期望的动作即可。同样也是必须要使用英文填写的。

  以上就是在处理 Github 代码和信息泄露时,如果定位不到上传人时,经常用到的两个删除申诉的过程要求和一些需要注意的点。如果不按官方的要求来,要么会拒绝处理,要么是等待时间很长很长,所以一定要把申诉内容准备的充分一点。希望我总结分享能够帮助到有需要的人。

  最后,也希望大家积极和我交流,共同提高!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注