在Trail of Bits担任区块链实习生的经历
我是谁?
我是印度RGUKT Nuzvid大学计算机科学专业的本科应届生。在2021年冬季加入Trail of Bits实习之前,我的行业经验仅限于完成一个计算机科学项目(Monkey Interpreter,用Python重写的Golang实现)和参加夺旗(CTF)比赛。我从大一开始以S3v3ru5为用户名参加CTF比赛,最初专注于密码学相关挑战,2021年8月开始接触区块链挑战,在ALLES CTF中完成了一个简单的Solana区块链挑战,并在Ethernaut CTF中完成了所有基于web3/Solidity的以太坊挑战。
申请实习
2021年底,我开始寻找网络安全实习机会,重点关注密码学和区块链方向。虽然缺乏项目经验,但我发现Trail of Bits的冬季实习计划(winternship)允许学生在导师指导下参与实际项目。我申请了三个项目:
- Manticore:用于分析以太坊智能合约和Linux ELF二进制文件的符号执行工具
- Solana区块链研究项目
- Tealer:用于Algorand区块链的Teal语言静态分析器(最终选择)
面试过程包含30分钟的技术电话筛查和5分钟的入职沟通,全程氛围轻松,更像技术交流而非严格面试。
实习准备
由于缺乏Algorand区块链和静态分析经验,我在实习开始前(2021年12月1日)投入10天时间学习:
- 静态分析原理
- Algorand区块链技术栈
- Git和GitHub协作流程 在实习开始前,我通过对比开发者文档发现了Tealer的Teal代码解析问题,验证了准备工作的有效性。
实习期间的技术工作
在Tealer项目中我完成了以下技术贡献:
- 修复Teal代码解析问题:根据官方文档修正语法解析逻辑
- 改进控制流图(CFG)构建:识别并修复CFG构建过程中的错误
- 增强安全检测能力:
- 添加3个新的漏洞检测器
- 实现3个新的结果输出器(printer)
- 完善代码文档:为大部分代码添加注释,提升可读性
所有代码都经过开源审查流程,获得积极反馈和合并。通过参与工具设计的主动讨论,最终凭借实习表现获得了全职区块链安全分析师的offer。
技术建议与收获
- 无需满足所有要求:即使不完全符合岗位要求也应勇敢申请
- 学习能力重于现有知识:实习的核心是学习过程,雇主更看重学习能力
- 积极寻求帮助:充分利用导师资源,不必独自解决所有问题
- 语言不是障碍:非英语母语者只需确保有效沟通,不必追求完美
为什么选择Trail of Bits实习?
- 自由的技术探索:可以自主选择改进工具的方法
- 灵活的工作安排:无固定工作时间限制,可按自身节奏推进
- 实质性的技术贡献:代码直接合并到主项目,获得CEO亲自认可
致谢
感谢Felipe Manzano和Josselin Feist导师给予的项目自主权,以及Trail of Bits提供的全职工作机会。这段经历证明了只要把握机会,任何人都能获得非凡的技术成长体验。
欢迎关注Trail of Bits的未来实习机会,创造属于你的技术故事。