开发者的诟病之Github敏感信息泄露

开发者的诟病之Github敏感信息泄露

一、什么是Git

git是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools(一个类似Norton Commander界面的文件管理器)有所不同。


git最初的开发动力来自于BitKeeper和Monotone。git最初只是作为一个可以被其他前端(比如Cogito或Stgit)包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制。很多著名的软件都使用git进行版本控制,其中包括Linux内核、X.Org服务器和OLPC内核等项目的开发流程。


GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。


二、一些“正常”的git操作

2.1、“正常”?


一个正常的项目结构如下:

├── config.php

├── controller
│   └── User.php

├── index.php

├── module
│   └── user.php

└── view
   └── login.html

若将其上传至github上,需要进行如下操作: 


1、增加ssh-key

参考此文章:http://www.jianshu.com/p/ddd3122cb351


2、在github上添加一个新的项目 点击上方导航栏的+按钮,选择下方的New repository

开发者的诟病之Github敏感信息泄露


然后在Repository name 处输入一个项目名称,最后点击Creat repository,就会跳转到你创建项目仓库的页面,至此你的项目仓库创建完毕.它的页面内容如下

开发者的诟病之Github敏感信息泄露



3、初始化git项目,这个命令会在项目目录下生成一个.git的目录,这里面存放的就是项目的版本库和git配置文件

git init

开发者的诟病之Github敏感信息泄露


4、添加项目更新

git add *


5、提交项目更新

git commit -m “初始化项目”

开发者的诟病之Github敏感信息泄露


6、建立远程仓库

git remote add origin https://github.com/xxxx/test111.git 【xxxx换成你的github用户名】


7、执行push,将本地更新的代码提交到github的仓库

git push -u origin master

以上的操作看起来毫无问题,但是最重要的信息也就可能因此而泄露


2.2、隐患


关于2.1中的一些隐患操作


 ● config.php文件中可能配置了数据库连接信息

 ● config.php文件中可能配置了一些第三方api的key

 ● config.php文件中可能配置了邮件配置信息

 ● mac系统下可能还会将.DS_Store文件进行上传

 ●………… 这些列举的隐患在github上随处可见,通常很多黑客,在信息收集阶段,就会从一些版本控制网站上去寻找各自泄露的信息,以此来达到入侵的目的。


三、信息泄露真实案例(截图、危害描述)


 1、邮箱密码泄露案例 


开发者的诟病之Github敏感信息泄露
开发者的诟病之Github敏感信息泄露
开发者的诟病之Github敏感信息泄露

可能造成的危害:


 ● 从邮箱里获取到了公司的内部文件

 ● 从邮箱里获取到了个人的信用卡账单地址

 ● 从邮箱里面获取到了个人注册的一些网站信息

● 利用邮箱进行对一些网站进行找回密码的操作

 ● …………


2、 一些api开发key的泄露案例


开发者的诟病之Github敏感信息泄露
开发者的诟病之Github敏感信息泄露

可能造成的危害:


 ● 利用短信接口进行垃圾短信攻击


3、 当成网盘使用上传敏感信息的案例


开发者的诟病之Github敏感信息泄露
开发者的诟病之Github敏感信息泄露
开发者的诟病之Github敏感信息泄露

可能造成的危害:


 ● 个人信息造成泄漏

 ● 将公司的一些配置上传上去,可能会造成公司的数据泄漏

 ● …………


4、 网站源码泄露案例


开发者的诟病之Github敏感信息泄露
开发者的诟病之Github敏感信息泄露

可能造成的危害:


 ● 攻击者可以对网站的源码进行代码审计,从而找到黑掉网站的方法

 ● 源码中包含其他敏感信息,例如:邮箱、数据库等

 ●…………


5、 公司内部vpn账户密码泄露案例


开发者的诟病之Github敏感信息泄露

可能造成的危害:


 ● 攻击者利用vpn进入内网进行黑客攻击

 ● 内网敏感信息存在泄漏的风险

 ● 部署在内网的数据库存在脱裤的风险

 ● …………


6、 历史曝光过的信息泄露案例


 ● YY运维不当导致(可内网/jumserver/新机房交换机帐号密码等/其他重要敏感信息泄露)

 ● 京东商城某员工邮箱到1091名员工企业邮箱账号泄露(存在撞库和社工风险)

  ●bilibili安卓客户端源码泄露(2016年1月的版本)

 ● 自如网某漏洞涉及各种敏感信息(数据库配置/邮箱/mongoDB等)

 ● 百度移动游戏内部邮箱账号泄露

 ● 阿里巴巴少量内部敏感信息泄漏

 ● …………


四、如何避免这些问题

 ● 代码中尽量不写敏感信息

 ● 使用.gitignore配置文件

 ● 重要信息不进行公开

 ● …………


五、【附录】github 高级搜索技巧 


基本搜索

 

默认搜索是从master分支搜索代码 搜索语句不能有特殊字符如

. , : ; / ` ’ ” = * ! ? # $ & + ^ | ~ < > ( ) { } [ ].


高级搜索


 ●按文件搜索

Keywords in:file

 ● 按照路径检索

Keywords in:path

 ● 按照语言检索

Keywords language:java

 ● 按照文件大小

Keywords size:>100

 ● 按照后缀名检索

Keywords extention:php

 ● 按照地域检索

Keywords location:beijing

 ● 按照是否被fork过

Keywords fork:true

 ● 从名字或者描述中匹配

Keywords  in:name,description

 ● 按照创建时间

Keywords  created:<2011-01-01

 ● 按照推送时间

Keywords  pushed:<2013-02-01

 ● 按照用户(组织)来搜索

user:Keywords

 ● 按照标签(topic)来搜索

topic:Keywords

 ● 按照标签(topic)大于几来搜索

topics:>number

 ● 按照用户邮箱来搜索

Keywords in:email

 ● 按照登录名来搜索

Keywords  in:login

 ● 按照真实名字来搜索

Keywords  in:fullname

 ● 按照关键字搜索并加入组织的人

Keywords type:org


参考来源:

https://help.github.com/articles/searching-repositories/
https://github.com/search/advanced
https://help.github.com/categories/search/
https://zh.wikipedia.org/wiki/GitHub
https://zh.wikipedia.org/wiki/Git

开发者的诟病之Github敏感信息泄露

原文始发于微信公众号(安百科技):

原创文章,作者:absec,如若转载,请注明出处:http://absec.cn/?p=352

发表评论

登录后才能评论

联系我们

010-61943626

在线咨询:点击这里给我发消息

邮件:marketing@anbai.com

工作时间:电话:周一至周五,10:00-18:30,节假日休息,邮件随时发哦~