【事故】记一次意外把企业项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
阅读原文时间:2023年07月09日阅读:3

缘由

在一个月黑风高的夜晚,正准备休息的我突然接到之前外包老总的亲切问候。一顿输出才知道三年前为了搭建流程化部署,将甲方的测试代码放到github上后忘记删除。现在被甲方的代码扫描机制扫到,并且检查到代码已经被其他用户fork,虽没有造成损失,但要求清除github所有数据及被fork的代码。以此为戒,特来跟大家分享一下处理流程,重点是GitHub的DMCA 下架通知提交指南


⏲️本文阅读时长

约10分钟


主要目标

  1. 熟悉GitHub的DMCA 下架通知提交指南
  2. 代码涉密别人fork如何在GitHub安全下架
  3. 掌握申诉流程申诉时间点把控

1.判断政策分类

DMCA 下架政策包含如下两种,根据自己情况如是选择。

1.GitHub 私人信息删除政策

“私人信息”是指符合以下条件的内容:应该保密,并且一旦公开,会对您或您的组织造成特定安全风险。

白话:通俗来讲就是没有版权,涉及到个人私密的文件。如果想删除库中单个文件审核比较轻松,若是想删除整个库可能难度较大。所需材料如下:

  1. 可访问您组织的服务器、网络或域的访问凭据,例如用户名与密码组合、访问令牌或其他敏感密钥
  2. 可代表您访问第三方的 AWS 令牌和其他类似访问凭据。 您必须能够证明该令牌确实属于您。
  3. 对组织构成特定安全风险的文档(例如网络图或架构)。
  4. 与您个人相关并对您构成安全风险的信息(如社会保障号码或其他政府身份号码)。

2.GitHub 商标政策

在使用企业或企业名称、徽标或其他受商标保护的材料时,如果使用方式可能使他人对品牌或业务从属关系产生误解或感到困惑,则此类使用可能被视为违反商标政策。

白话:通俗来讲就是侵犯到版权,被人举报侵权等,此审核所需材料较多,如下:

  1. 被举报帐户的用户名
  2. 贵企业名称
  3. 您的企业 GitHub 帐户(如果有)
  4. 企业网站
  5. 您商标中使用的词语、符号等。
  6. 商标注册号
  7. ……等等

2.处理步骤

GitHub 私人信息删除政策

1.访问GitHub 私人信息删除政策申请地址

https://support.github.com/contact/private-information

2.解析每条问题如何选择及回复
  1. Company GitHub account (if applicable)

    ️‍翻译:企业 GitHub 帐户(如果适用)

此处选择【Not Applicable/Other】(不适用/其他)

  1. Is the content you're reporting copyrighted work that you own?

    ️‍翻译:您报告的内容是您拥有的受版权保护的作品吗?

此处选择【No】(不是)。此处也可选择YES,如果有版权保护可以直接通过【GitHub 商标政策】申请即可

  1. Is your request related to a full repository or a specific file(s)?

    ️‍翻译:您的请求与完整存储库或特定文件相关吗?

此处根据个人情况选择,若要删除整个库可能审核费劲,若选择删除单独文件则比较好通过。

  1. Please identify the content you are reporting. Select all that apply.

    ️‍翻译:请指明您举报的内容。 选择所有符合条件的。

此处根据个人情况选择,其中包含如下5种选项,切记如果勾选,请把项目中涉及的敏感内容具体分布及多少行写清楚,有助于审核通过

  • Access Credentials.【访问凭证】
  • AWS tokens and other similar access credentials.【AWS 令牌和其他类似的访问凭证】
  • Documentation (such as network diagrams or architecture) that poses a specific security risk for an organization. 【对组织构成特定安全风险的文档】
  • Information related to, and posing a security risk to, you as an individual (such as social security numbers or other government identification numbers).【与您个人相关并构成安全风险的信息(例如社会安全号码或其他政府身份证号码)】

举个本狗申请例子,本人勾选了Access Credentials,然后填写了具体内容

It contains a lot of private information.
For example, the application-prod.yml configuration file under the path /src/main/resources/contains personal private database configuration information (address, account, password). For example, the sixth line of the application-prod.yml file contains the url of the database, and the seventh and eighth lines contain the database account password username: hrgc, password: xxx xxx. For another example, line 70 contains the key information of my bug component apikey: xxx.Also, in/src/main/java/com/xxx/user/api/XXXApi.java, line 12 and 13 contain the KEY and SECRET required by the user center, completely exposing private information. Others can break my server and database information through the information in the application-prod.yml file, which involves personal privacy and constitutes a security risk.

All contents of the following repository have been deleted.
https://github.com/xxxx/xxxx

However, the content can still be found in the link below. If personal information is involved, please delete it.
https://github.com/xxx/xxxxx-trunk
https://github.com/xxx/xxxxx-trunk

翻译如下

它包含很多私人信息。
例如/src/main/resources/路径下的application-prod.yml配置文件包含个人私有数据库配置信息(地址、账号、密码)。 例如application-prod.yml文件第六行包含数据库的url,第七行和第八行包含数据库账号密码username:hrgc,password:xxx xxx。 再比如,第70行包含了我的bug组件apikey的关键信息:xxx.另外,在/src/main/java/com/xxx/user/api/XXXApi.java中,第12行和13行包含了需要的KEY和SECRET 通过用户中心,彻底暴露隐私信息。 其他人可以通过application-prod.yml文件中的信息破解我的服务器和数据库信息,涉及个人隐私,存在安全隐患。

以下存储库的所有内容已被删除。
https://github.com/xxxx/xxxx

但是,仍然可以在下面的链接中找到内容。 如涉及个人信息,请删除。
https://github.com/xxx/xxxxx-trunk
https://github.com/xxx/xxxxx-trunk
  1. Have you attempted to contact the GitHub user(s) who uploaded the sensitive data?

    ️‍翻译:您是否尝试联系上传敏感数据的 GitHub 用户?

此处根据个人情况选择,询问是否自己尝试联系过fork自己代码的GitHub用户,无关紧要,本狗选择【No】

  1. Is the request particularly time-sensitive?

    ️‍翻译:该请求是否对时间特别敏感?

询问是否着急,对时间要求紧。本狗选择【No】如果写Yes还需要描述:报告的数据暴露了多长时间? 您是否可以分享任何您认为会使此请求特别紧迫的信息?

  1. Are you a third party acting as an agent for an organization facing a security risk?

    ️‍翻译:您是作为面临安全风险的组织的代理的第三方吗?

本狗选择【No】如果写Yes还需要描述:请附上一份声明,说明您有合法权利代表该组织行事。

  1. How long has the reported content been publicly available?

    ️‍翻译:举报的内容公开多久了?

本狗选择【24+ months】因为是三年前项目了,公开了3年之久了。此处可根据自己实际情况选择即可。

  1. I confirm that I have read the GitHub Private Information Removal Policy

    ️‍翻译:我确认我已阅读 GitHub 私人信息删除政策

此处勾选同意即可

3.申请总览图

4.点击【发送请求】

如果成功GitHub会回执一分邮件,告知你已经接受到


GitHub 商标政策

1.访问GitHub 商标政策申请地址

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

2.解析每条问题如何选择及回复
  1. Are you the copyright holder or authorized to act on the copyright owner's behalf?

    ️‍翻译:您是版权所有者或授权代表版权所有者行事吗?

此处选择【Yes, I am the copyright holder.】是的,我是版权所有者。

  1. Are you submitting a revised DMCA notice after GitHub Trust & Safety requested you make changes to your original notice?

    ️‍翻译:在 GitHub Trust & Safety 要求您更改原始通知后,您是否提交了修订后的 DMCA 通知?

此处选择【No】

  1. Does your claim involve content on GitHub or npm.js?

    ️‍翻译:您的声明是否涉及 GitHub 或 npm.js 上的内容?

此处选择【GitHub】,如果有其他情况可根据实际情况选择

  1. Please describe the nature of your copyright ownership or authorization to act on the owner's behalf.

    ️‍翻译:请描述您的版权所有权或授权代表所有者行事的性质。

此处进行填入自己版权所属权的相关信息,如下包含示例及翻译

We have software(https://github.com/xxxx/xxxx) that was developed in-house and one of our developers uploaded it to GitHub and made it public. We notified this former employee who promptly deleted the content, but anothers has a copy. We made contact for deletion, but he did not respond to our messages.It contains a lot of private information. For example, the application-prod.yml configuration file under the path/src/main/resources/contains personal private database configuration information (address, account, password). For example, the sixth line of the application-prod.yml file contains the url of the database, and the seventh and eighth lines contain the database account password username: hrgc, password: xxx 123. For another example, line 70 contains the key information of my bug component apikey: xxxx.Also, in/src/main/java/com/xxxx/user/api/ProductsApi.java, line 12 and 13 contain the KEY and SECRET required by the user center, completely exposing private information. Others can break my server and database information through the information in the application-prod.yml file, which involves company privacy and constitutes a security risk.

我们有内部开发的软件(https://github.com/xxxx/xxxx),我们的一位开发人员将其上传到 GitHub 并公开。 我们通知了这位前雇员,他立即删除了内容,但其他人有一份副本。 我们联系删除,他没有回复我们的消息,里面有很多隐私信息。 比如路径/src/main/resources/下的application-prod.yml配置文件包含个人私有数据库配置信息(地址、账号、密码)。 例如application-prod.yml文件第六行包含数据库的url,第七行和第八行包含数据库账号密码用户名:hrgc,密码:xxx 123。再比如第70行包含key 我的bug组件apikey的信息:xxxx.另外,在/src/main/java/com/xxxx/user/api/ProductsApi.java中,第12行和第13行包含了用户中心需要的KEY和SECRET,完全暴露了隐私信息 . 其他人可以通过application-prod.yml文件中的信息破解我的服务器和数据库信息,涉及企业隐私,存在安全隐患。

  1. Please provide a detailed description of the original copyrighted work that has allegedly been infringed. If possible, include a URL to where it is posted online.

    ️‍翻译:请提供涉嫌侵权的原始版权作品的详细描述。 如果可能,包括在线发布的 URL。

此处进行填入自己代码仓库地址及别人fork之后的地址清单,如下包含示例及翻译

All contents of the following repository have been deleted.

https://github.com/xxxx/xxxx-trunk

However, the content can still be found in the link below. If personal information is involved, please delete it.

https://github.com/xxxx/xxxx-trunk

https://github.com/xxxx/xxxx-trunk

下列储存库的所有内容已被删除。

https://github.com/xxxx/xxxx

不过,内容还是可以在下面的链接中找到。如涉及个人信息,请及时删除。

https://github.com/xxxx/xxxx

https://github.com/xxxx/xxxx

  1. What files should be taken down? Please provide URLs for each file, or if the entire repository, the repository’s URL.

    ️‍翻译:应该删除哪些文件? 请提供每个文件的 URL,或者如果是整个存储库,请提供存储库的 URL。

此处填入想要删除的分支或者被fork的仓库的路径,若想删除单独文件,可提供单独文件的URL

All repository content.

https://github.com/xxxx/xxxx

https://github.com/xxxx/xxxx

所有存储库内容。

https://github.com/xxxx/xxxx

https://github.com/xxxx/xxxx

  1. Do you claim to have any technological measures in place to control access to your copyrighted content? Please see our Complaints about Anti-Circumvention Technology if you are unsure.

    ️‍翻译:您是否声称已采取任何技术措施来控制对您受版权保护的内容的访问? 如果您不确定,请参阅我们关于反规避技术的投诉。

此处填入【No】

  1. Have you searched for any forks of the allegedly infringing files or repositories? Each fork is a distinct repository and must be identified separately if you believe it is infringing and wish to have it taken down.

    ️‍翻译:您是否搜索过涉嫌侵权的文件或存储库的任何分支? 每个分支都是一个不同的存储库,如果您认为它侵权并希望将其删除,则必须单独标识。

此处填入你搜索过想要删除的其他分支及fork侵权的仓库地址

No forks have been identified other than the one below.

https://github.com/xxxx/xxxx-trunk

https://github.com/xxxx/xxxx-trunk

除下面的fork外,没有发现其他fork。

https://github.com/xxxx/xxxx

https://github.com/xxxx/xxxxx

  1. Is the work licensed under an open source license?

    ️‍翻译:该作品是否在开源许可下获得许可?

此处填入【No】

  1. What would be the best solution for the alleged infringement?

    ️‍翻译:对于涉嫌侵权的最佳解决方案是什么?

此处选择【Reported content must be removed】必须删除举报的内容

  1. Do you have the alleged infringer’s contact information? If so, please provide it.

    ️‍翻译:您有涉嫌侵权人的联系方式吗? 如果有,请提供。

此处填入【No】

  1. 勾选确认如下4条信息

我真诚地相信,在侵权网页上使用上述受版权保护的材料未经版权所有者或其代理人或法律授权。

我发誓,根据伪证处罚,本通知中的信息准确无误,并且我是涉嫌侵权的专有权的版权所有者,或被授权代表所有者行事。

我已经考虑了合理使用。

我已阅读并理解 GitHub 的提交 DMCA 删除通知指南。

  1. So that we can get back to you, please provide either your telephone number or physical address.

    ️‍翻译:为了便于我们回复您,请提供您的电话号码或实际地址。

此处填入自己的邮箱或者电话号码

  1. Please type your full legal name below to sign this request.

    ️‍翻译:请在下方输入您的法定全名以签署此请求。

此处填入自己的真实名字

3.申请总览图

4.点击【发送请求】

如果成功GitHub会回执一分邮件,告知你已经接受到


3.发送时间

因GitHub是漂亮国所属,人工审核按照他们上班时间处理,与咱们时间相差十个小时左右,所以建议晚上八点后发送,如运气好则会24点前收到回复,再根据回复内容修改不符合要求内容。若不想熬夜则第二天再次查看即可,切勿着急!!!着急也没用,运气好一般审核的时间差在4个小时左右。

程序员删库跑路单干,结局大概是要吃牢饭!

通过此次的意外事故,学习到项目隐私及版权相关知识,并熟悉了DMCA下架政策保障隐私。希望大家以此为戒,永远都用不到这些。

JavaDog

狗屋地址

个人博客

https://blog.javadog.net

公众号

https://mp.weixin.qq.com/s/_vgnXoQ8FSobD3OfRAf5gw

CSDN

https://blog.csdn.net/baidu_25986059

掘金

https://juejin.cn/user/2172290706716775

知乎

https://www.zhihu.com/people/JavaDog

简书

https://www.jianshu.com/u/1ff9c6bdb916

gitee

https://gitee.com/javadog-net

GitHub

https://github.com/javadog-net