高级安全工程师 Alessandro Gario 的一天:开源项目与安全工程的深度实践

本文深入探讨了高级安全工程师 Alessandro Gario 在 Trail of Bits 的日常工作,涵盖 osquery 项目开发、CMake 代码优化、eBPF 技术整合、跨时区协作挑战以及开源安全工具贡献,为安全工程领域从业者提供宝贵经验。

高级安全工程师 Alessandro Gario 的一天 - Trail of Bits 博客

Mike Myers | 2019年8月9日
engineering-practice, people

对加入 Trail of Bits 感兴趣的人经常询问我们在工程服务团队工作的体验。我们认为最好的答案是展示团队中一些优秀成员的简介,让他们用自己的话语描述在 Trail of Bits 的经历。

今天,我们重点介绍工程团队成员 Alessandro Gario,他居住在意大利。Alessandro 致力于开源项目,实现新功能、减少技术债务并整体提升性能。

你是如何加入 Trail of Bits 的?

我最初是在 Twitter 信息流中了解到 Trail of Bits 的。当时我正在寻找新机会,于是开始深入了解这家公司及其众多开源项目。我从 McSema 开始入手,这是一个将编译后的可执行文件提升为 LLVM IR 的项目。最初我只是想试用这个软件,但我想与开发者交流,于是加入了 Empire Hacking 的 Slack 频道,Trail of Bits 的工程师在那里回答关于其开源工作的问题。我在该项目中的主要贡献是改进 CMake 代码,提升构建体验并实现更好的依赖管理。

Trail of Bits 的 CEO Dan Guido 注意到了我对 McSema 的贡献,当时正好急需有人处理 osquery 的问题,于是他向我发出了邀约。Dan 给我发送了一份处理单个任务的合同,我正式成为了 Trail of Bits 的合同工!我非常享受这段经历,这是我第一次在项目中拥有如此大的自由度——无论是工作时间还是任务方向都可以自主安排。

当我完成 osquery 任务后,合同结束了。有了更多空闲时间,这是与社区更深入互动、处理用户提交的 bug 修复和功能请求的绝佳机会。最终,Trail of Bits 收到了足够多的 osquery 工作请求,他们向我提供了全职工作机会,剩下的就是历史了。

你目前正在从事哪些项目?

我主要参与 osquery 项目,投入了大量时间,甚至被接纳为五人维护者委员会的成员!该项目,尤其是其构建工具链,目前正在进行改造,以独立于其在 Facebook 的旧有环境运行。

我还为一个内部项目提供 Qt SDK UI 工作,我们正在为安全审计员创建一个强大的源代码导航和交叉引用工具。除此之外,我偶尔会帮助其他项目解决与 CMake 相关的问题。

在业余时间,我继续尝试将 eBPF 整合到 osquery 中,这是持续努力提升 osquery 在 Linux 上事件驱动检测能力的一部分。我最近在 QueryCon 上就这一主题进行了演讲。

你如何安排工作日?

当我不需要单独工作时,任何类型的协作都需要我将日程与团队其他成员对齐。由于时区差异,我必须灵活安排。如果我坚持严格的上午9点到下午6点的工作班次,这实际上行不通。我根据自己的偏好日程以及位于美国的 Trail of Bits 员工和客户的日程来组织工作日,他们比我这里(意大利)晚6到9小时。当纽约是傍晚时,米兰已是夜晚。我的大多数会议都在我的时间下午5点或6点左右,这很适合我。从未成为问题;我非常喜欢这个日程安排。

你工作中最具挑战性的方面是什么?

有时任务的要求,至少最初设想的方式,由于技术或设计的硬性约束而难以实现。这很困难,因为你必须找到一个对所有人都有效的创造性折衷方案。

在极少数情况下,当我遇到困难时,我会寻求团队的帮助。我们的 Slack 频道就像一个小型 StackOverflow 网站:你可以直接提问,并立即得到专家的答案。这是在这里工作的伟大之处之一。

当为任何有外部维护者的开源项目做贡献时,你最终必须与公司外部的人员合作完成任务,并将工作整合到下一个版本中。有时,在你认为任务“完成”后,还必须额外工作一些,因为你仍然需要与上游项目合作,让每个人都满意。

在 Trail of Bits 工作最有回报的方面是什么?

我一直对信息安全感兴趣。我会看 Twitter,看到所有这些会议、活动以及正在构建伟大事物的人们。我终于能够参加这些活动并见到这些人。我甚至在上个月的 QueryCon 上进行了我的第一次会议演讲!

我接触到具有挑战性的问题,这让我学习,尤其是当我让公司的其他人参与时。与一群有才华的经验丰富的工程师合作并从中学习的能力本身就是一种回报。

当我被赋予一项任务时,我被信任有责任将其进行到底,并独立完成。当我被这样信任时,我会尽力工作并感到最有动力。

对于想加入我们的人,有什么职业建议?

每当我寻找安全工程领域的职位时,它们似乎大多是针对外部渗透测试 Web 服务的,这对我来说并不特别有趣。我做过一些逆向工程和 CTF,但漏洞研究也不是我的领域。我喜欢将我的工程技能应用于构建软件的项目。我决定你必须主动寻找挑战并激发你兴趣的事物,并开创自己的机会。

我的建议是找到一个你想支持的相关项目,寻找容易解决的问题,或者甚至只是审查一个开放的 Pull Request,或改进文档。一旦你了解了项目,开始贡献酷炫的变更就会变得更容易。

这正是我个人成功的方法。我知道这很难,因为大多数人没有时间进行业余工作。而且不能保证你会被雇佣。但选择本质上能激励你的项目,并在业余时间尽可能多地做酷炫的事情。享受乐趣,最终你会被注意到。

工程服务团队正在招聘

我们感谢 Alessandro 从他的项目中抽出时间谈论在这里工作的体验。我们的工程服务团队分布在全球各地,每位工程师都带来独特的技能和贡献。我们的工作是面向公众、开源和客户驱动的。与客户紧密合作,我们不断扩展和改进终端安全解决方案,如 osquery、Santa 和 gVisor。我们最近的工作包括在 Python 包管理系统 PyPI 中实现 2FA 支持。我们为安全事件警报管道项目如 StreamAlert 或 Carbon Black API 做贡献,并始终努力改进我们自己的安全分析工具,如 McSema 和 Remill。我们的客户依赖我们解决他们的开源安全软件挑战。

我们目前正在招聘另一名高级安全工程师。如果你感兴趣并认为自己合格,请申请!

如果你喜欢这篇文章,请分享:
Twitter | LinkedIn | GitHub | Mastodon | Hacker News

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计