我们问了老GitLab。安全工程师Andrew Kelly介绍了他正在从事的项目,他从InfoSec所犯的错误中学到了什么,以及为什么为意外事件编写单元测试如此重要。
我与GitLab团队和HackerOne记者一起工作,以确保GitLab产品的安全。这包括执行应用程序安全审查、验证和确定漏洞的影响严重程度、与开发和产品团队协作解决方案,以及各种其他与应用程序安全相关的任务。
我发现我的角色中最有价值的一个方面是与我们的HackerOne记者一起工作。GitLab漏洞赏金计划收到来自世界各地各种黑客的报告,我真的很喜欢调查和分类他们的发现的过程。这些报告描述了影响许多不同GitLab应用程序和系统的潜在漏洞。通常,在重新创建漏洞或调查报告时,我最终了解到一些关于应用程序安全或GitLab本身的新知识。
我是Growth和Enablement团队的应用程序安全稳定对应者。应用程序安全稳定伙伴在整个软件开发生命周期中与团队协作,评估风险、审查代码,并以其他方式帮助推动注重安全的结果。这让我有机会与一群令人惊叹、才华横溢的人在许多不同的项目上合作,而且比其他方式更深入。
此外,我最近一直在帮助在我们的几个主要产品库中启用GitLab的安全工具。这项工作涉及团队间的协调、代码审查和使用CI/CD配置。这影响了大量的GitLab存储库,我对它将提供的覆盖面感到兴奋。我还参与了GitLab容器扫描工具的配置和启用,以分析某些码头图像。
您可以向同事或朋友提供的最重要的安全建议是什么?
编写涵盖意外情况的单元测试。通常,在编写软件时,我们会将重点放在预期的用例上,而我们的规范往往会反映出这种偏见。为了提高应用程序的安全性,我建议花时间考虑用户控制的输入可能被滥用的创造性和恶意方式。这是值得的,因为您将不可避免地发现代码没有按照您预期的方式运行的情况,这将帮助您在发布之前防止一些安全问题。
在我的成长过程中,我花了很多时间在互联网上。我在网上的经历和流行文化中对黑客的描绘在很小的时候就激发了我对安全的兴趣。直到我进入软件开发职业生涯的几年后,我才意识到这是我有能力做的事情,也是可以专业地做的事情。我从了解常见的Web漏洞开始,并在我作为开发人员贡献的代码库中寻找它们。随着时间的推移,我继续学习和建立我的信息安全知识,无论是在工作中还是在空闲时间。
从您的角色角度来看,GitLab在安全方面比其他任何人做得更好的是什么?
我不敢说我们在这方面做得比其他任何人都好,但我为GitLab对透明度的承诺感到非常自豪。我们的团队非常致力于在内部以及与我们的客户和社区成员进行清晰、开放的沟通。在安全方面尤其如此--透明度融入了我们的程序和进程,始终是我们考虑的首要问题。从安全的角度来看,这可能是一个棘手的平衡行动,但我很高兴我们非常认真地对待这件事。我认为Dominic Couture在最近的一篇博客文章(“迭代增强了安全性和透明度”)中很好地阐述了这一点,我推荐阅读。
几年前,我想使用特定平台的API构建应用程序,所以我搜索并访问了我认为正确的网站,并尝试登录。由于某些原因,我的密码不起作用,所以我又试了几次,最终放弃了。几个小时后,我收到警报,发现有人试图从数千英里以外的地方登录到真正的网站。在这一点上,我意识到我犯了一个错误。在匆忙中,我没有注意到,我把我的证书放到的网站实际上是用同形异形来欺骗那些像我一样注意力分散的人,让他们交出密码。幸运的是,我启用了双因素身份验证,因此我的帐户仍然受到保护,但那天我学习并强化了一些非常重要的经验:
在输入任何凭据之前,请放慢速度并花时间验证您正在访问的网站的地址。
更好的做法是,将重要的站点设置为书签,而不是搜索您要登录的网站。
你会从许多安全专业人士那里听到最后两条建议,包括我的一些同事-就像在这篇帖子中所说的,天不会塌下来:避免FUD并在网上保护自己的小贴士。
我希望看到漏洞管理集成到整个技术行业的软件开发生命周期中。大大小小的组织通常都在构建与数十个(如果不是数百个)依赖项和第三方库捆绑在一起的应用程序,所有这些都有可能成为安全问题。工具和警报已经有很长的路要走了,但它仍然需要组织纪律和相当可观的时间投入。这可能是一项耗时的任务,通常涉及代表工程和产品团队的大量协作,但值得付出每一点努力。
我相信你必须为这项工作选择合适的工具。只是碰巧通常是VIM,至少对我来说是这样。
我家拥有的第一台计算机是一台准将64。我在这台电脑和其他早期消费电脑上玩视频游戏的经历为我一生对技术的兴趣铺平了道路。
给我们看看你经常使用的懒散表情符号列表。你觉得这能说明你什么?
我目前经常使用的表情符号告诉我,我可能在#狗狗频道😆上花的时间有点太多了。表情符号似乎也是我最喜欢的表达感谢的方式。
注册GitLab每月两次的时事通讯,探索即将到来的网络广播、操作博客,并随时了解每月发布的令人兴奋的新功能:
GitLab不仅仅是源代码管理或CI/CD。它是一个完整的软件开发生命周期&在单个应用程序中的DevOps工具。
免费试用GitLab。
Git是软件自由保护协会的商标,我们对GitLab的使用正在获得许可