文章摘要:代码泄露对于软件开发企业来说并不是陌生的事情,团队加班加点写出的代码被别有用心的员工一键转出,给企业带来极大的被动,今天我们就来聊一聊关于代码泄露的一些事情。关于代码泄露代码泄露一般有SVN代码泄露及GIT代码泄露。例如在使用SVN管理本地代码过程中,会自动生成一个名为SVN的隐藏文件夹,其中包含重要的代码信息。但一些开发者在发布代码的时候,直接复制代码文件夹到Web服务器,这就使SVN隐藏文件夹
代码泄露对于软件开发企业来说并不是陌生的事情,团队加班加点写出的代码被别有用心的员工一键转出,给企业带来极大的被动,今天我们就来聊一聊关于代码泄露的一些事情。
关于代码泄露
代码泄露一般有SVN代码泄露及GIT代码泄露。例如在使用SVN管理本地代码过程中,会自动生成一个名为SVN的隐藏文件夹,其中包含重要的代码信息。但一些开发者在发布代码的时候,直接复制代码文件夹到Web服务器,这就使SVN隐藏文件夹暴露于外网。攻击者可利用该漏洞下载网站的代码,再从代码里获得数据库的连接密码或者通过代码分析出新的系统漏洞,进一步入侵系统。
另外,也有大量的开发者使用GIT进行版本控制及对站点进行自动部署。如果配置不当,可能会将GIT文件夹直接部署到线上环境,这就引起了GIT文件泄露。攻击者可直接从泄露的代码中获取敏感配置信息(如邮箱及数据库等),也可以进一步审计代码,挖掘文件上传及SQL注入等安全漏洞。
总体来讲,代码泄露是开发者安全意识不到位造成的。
例1:某站存在SVN代码泄露。开启浏览器,输入某站主域名/.svn/entries,Web服务器返回信息如图1所示。
图1 SVN代码泄露
由图1可见,这里可能存在SVN代码泄露。攻击者继续使用SVN代码泄露利用工具,如图2所示。
图2 SVN代码泄露利用工具
我们可以看到,Web目录结构已经出来了,如图3所示。
图3 Web目录结构
几分钟后,代码就下载完成,打开index.php文件,可以看到是服务器代码而非HTML代码,如图4所示。
图4 服务器代码
由图4可见,这里确实存在SVN代码泄露。此时,攻击者就可以对该站点进行目录结构分析、敏感信息收集(如数据库链接文件)或者代码审计,试图寻找SQL注入、文件上传等漏洞实施进一步的渗透测试。
例2:某站存在GIT文件泄露。开启浏览器,输入某站主域名/.gitignore,Web服务器返回信息如图5所示。
图5 代码泄露 GIT文件下载
下载GIT文件,如图6所示。
图6 GIT文件泄露
可以看到,GIT文件中的内容其实已经泄露了Web站点的代码的目录结构。访问robots.txt文件,Web服务器返回信息如图7所示。
图7 GIT文件泄露
由图7可见,这里确实存在GIT文件泄露。如果想通过该GIT文件下载该Web站点的代码,可以使用GitHack这个工具。
以上内容来源于 计算机与网络安全公众号
我们该如何防止代码泄露呢?
目前主流研发平台会采用文件加密系统代码保密系统实现对开发代码的保护,实现效果:员工编辑保保代码时自动加密保护,经过授权加密的代码只能在企业内部环境中编辑使用。未经允许,如果代码被泄露到企业外部,打开时会显示为乱码,无法编辑使用。这种代码保护方案是从数据源头进行保护,任何企业通过拷贝,转发等泄露代码的行为都将无法得逞。