(本文将简略解答如何防御针对GitHub的安全维护防御策略)
下面简单介绍GitHub被攻击的几种方式:
源代码
- 存储在GitHub上的软件是很有价值的知识产权。将这些代码复制下来有可能让其他公司甚至民族国家快速研发出派生应用,节省几年甚至几十年的研发时间,或者不付版权费就利用了别人的商业秘密。黑客还可以盗取源代码转卖到暗网。
攻击方法
- 源代码可能为黑客提供攻击生产环境中软件的思路。盗取源代码能赋予他们时间去研究和查找漏洞,比通过渗透要简单得多。他们甚至可以在生产环境中运行代码并尝试攻击,不断精炼攻击,提升攻击速度、隐蔽性和有效性。
登录凭证
- 提交到GitHub上的代码和支持文件有时候一不小心就包含了登录其他服务的凭证,比如登录AWS的。黑客获取到这些代码,也就获得了相关服务的访问权,有了盗取更多数据和中断运营的机会。
未授权访问
- 开发人员通常都会有以个人邮箱账户登录公司代码库的权限。这些账户就是漏洞,尤其是在开发人员离职后。另外,开发人员手里的权限往往还是公司所有代码库的,而不仅仅是自己负责的项目的,这就留下了巨大的攻击界面。
内部人威胁
- 主动监视的缺乏可使得恶意内部人易于隐藏异常行为。某个开发人员访问几十个代码库就是内部人威胁的征兆,而此类行为应被检测并标记。
- 2016年Uber托管在GitHub上的源码库被渗透时,黑客收获的赃物中有一部分就是登录凭证。攻击者不仅仅拿到了先进的知识产权;还挖到了内含700万Uber司机和5000万客户个人信息的AWS凭证。这些个人数据中包括了姓名、地址、驾照等等信息。
下面简单介绍GitHub安全防御的几种方式:
清理登录凭证
- 提醒开发人员留心自己的GitHub登录凭证。项目的访问权限只对参与项目的开发人员开放。当开发人员脱离项目,凭证应被撤销。
反复检查代码库设置
- GitHub背后的软件——软件版本控制程序Git,原本是用来管理Linux内核开发的。无论Git还是GitHub,在开源项目中的应用都很广。一些开发人员,尤其是那些开源项目贡献者,基本将所有GitHub代码库都当成公共的,也不管项目是否真的开源。最好反复检查一下公司的GitHub配置,确保项目访问权是否超出了所需范围。
公开代码中不混入秘密
- 提醒开发人员不要将登录凭证和其他高度敏感的信息混入了代码、GitHub项目介绍页或其他外部人可以访问的GitHub内容。自Uber数据泄露事件之后,GitHub就敦促开发人员小心对待此事,但来自安全运营团队的定期提醒永远不多余。
监测GitHub上的可疑行为
- 哪些行为是可疑的?代码提交的激增、授权某人下载超大量源代码、不正常位置的登录、公司外部用户的登录或请求等等。
收集GitHub日志
- 持续监视GitHub的最佳方式,是收集公司代码库GitHub数据的日志。从现在开始收集也为时不晚。
对GitHub行为做个基线安全评估
- 可以用工具分析GitHub日志中报告的行为,定义出正常行为的基线,让未来的异常行为检测更加容易。
自动化GitHub日志监视
- 你会想要持续监视GitHub行为以确保公司源代码安全,保证外部人没有渗透你的代码库。写脚本来自动化这一工作,或者找个预置了自动化的解决方案都可以。
本文虽然不能百分百防御被攻击的风险,但是也能有效的增加对于此平台的安全防护等级。