Doyensec实习体验:网络安全实战与工具开发全记录

两位实习生分享在Doyensec的实习经历,包括渗透测试实战、安全工具开发、Tsunami插件编写等技术内容,涵盖从招聘流程到实际项目参与的完整技术成长路径。

实习经历在Doyensec

2024年3月22日 - 作者:Aleandro Prudenzano和Leonardo Giovannini

以下博客文章分享了我们2023年实习生的经历。

Aleandro

在我高中最后一年,我参加了Cyberchallenge.it项目,该项目旨在通过课程和CTF比赛向年轻学生介绍攻击性网络安全世界。在那次经历之后,我和一些朋友创立了r00tstici CTF团队,试图将网络安全文化带到意大利南部。我们还在萨伦托大学组织了各种研讨会和活动。

当我从意大利南部搬到比萨上大学时,我加入了fibonhack CTF团队。然后我开始在大学内外的小型项目中担任开发人员和渗透测试员。

招聘过程 2023年4月,Doyensec的Twitter账号发布了夏季实习生的招聘通知。自从在No Hat 2022会议上听到Luca的演讲后,我关注Doyensec已有数月,因此提交了申请。这既是因为我对大学的日常感到厌倦,也是因为我想尝试研究领域的工作。这是一个很好的选择,因为我来自一个开发和自由职业渗透测试的环境,同时参与CTF比赛。

我经历的选拔过程在很大程度上已经由Robert在他之前关于实习经历的文章中描述过。基本上包括:

  • 与实践经理的面试
  • 关于Web和移动主题的技术挑战
  • 最后,与两位不同的安全工程师进行技术面试

面试涉及应用安全的各个方面,从Web安全到低级内容如汇编甚至CPU内部结构。

最初几周 实际的实习开始于几周的研究,我研究了一些Rust的Web应用框架。完成该研究后,我转向为客户进行实际的渗透测试。我记得第一周感觉非常不同且具有挑战性。代码库如此庞大,功能如此丰富,我感到被要测试的东西、要尝试的想法和要复现的场景淹没了。尽管规模和复杂性都很高,但最初没有发现任何漏洞。冒名顶替综合症开始发作。

最终,在那次任务的第二周情况开始改善。虽然我们是一家100%远程公司,但有时我们会组成小团队一起工作。那一周,我与Luca进行了现场工作。他帮助我理解,有时软件只是从安全角度编写和架构得很好。对于这些情况,我需要学会如何处理没有立即成功的情况、测试所需的专注度,以及如何在只有低严重性发现的情况下为客户提供价值。幸运的是,我们最终在那个代码库中找到了好的漏洞:)

研究周 我实习经历的主要研究主题是关于开发内部工具。虽然这个项目主要不是关于安全的,但我非常喜欢它。开发应用程序、修复错误和对不存在的文档发牢骚是我自从购买第一台个人电脑以来一直在做的事情。

责任 需要注意的是,即使你是最后加入公司且经验有限的人,所有Doyensec团队成员都会像对待所有其他员工一样对待你。你可能负责在实际评估期间与客户交谈,你将必须编写并可能同行评审报告,你将必须评估并分配你发现的漏洞的严重性,你的名字将出现在报告上,等等。当然,你会被分配与更有经验的工程师一起工作,他们会指导你完成整个过程(在我的案例中是Lorenzo - 我想感谢他帮助我管理灵活的时间表以及他给我的所有其他建议)。然而,你通过实际做事和就如何继续做出自己的决定,当然还有犯错,学到最多。

对我来说,这是一种令人震撼的感觉,我没有期望能完全成为团队的一部分,也没有期望我的意见会被重视。我认为这真是一个好方法。我花了一段时间才完全适应这个角色,但之后整个过程都很有趣。

Leonardo

大家好,我的名字是Leonardo,你们中的一些人可能更熟悉我的名字是maitai,这是我从旅程开始就在CTF场景中使用的代号。我在攻读计算机科学学士学位期间遇到了网络安全。从第一刻起,我就对它感到惊讶。所以我决定更深入地研究黑客技术,从PortSwigger Academy开始,这彻底改变了我的生活。

招聘过程 如果你读过这篇博客文章的前一部分,你已经认识了Aleandro。在加入Doyensec之前我就认识他,因为我们一起在同一个CTF团队:fibonhack玩。当我在进行之前的实习时,Aleandro和我谈了很多关于我们的工作以及近期要做什么。一天他告诉我Doyensec在冬季会有一个开放的实习职位。起初我有点害怕,只是因为对我来说接受这样的挑战将是一个巨大的步骤。当Doyensec开放这个职位时,我之前的实习已经结束。虽然我正在考虑攻读硕士学位,但我一直在思考这个机会。我不想错过如此好的机会,所以我决定提交申请。毕竟,我有什么损失呢?我把它作为真正挑战自己的一种方式。

在与实践经理进行快速面试后,我了解了面试过程的后续步骤。首先,过程中使用的技术挑战是全新的。实践经理告诉我Doyensec已经用一个全新的平台和新的挑战完全更新了挑战。我基本上是第一个使用这个新平台的候选人。

挑战的主题主要是几种不同语言的Web应用程序,有不同的漏洞要发现, alongside 涉及使用最新技术的移动挑战。我有2小时的时间完成尽可能多的挑战,从8个挑战池中。时间限制在我看来是合适的。每个挑战大约有15分钟,这是一个合理的时间量。尽管我对移动黑客没有经验,但我将自己推向极限,以便发现尽可能多的漏洞,并最终通过面试过程的下一步。后来他们向我解释说,在有限时间框架内审查大量(但简短)代码快照的目的是模拟在数周时间内审查更大代码库的复杂性。

技术挑战几天后,我收到了Doyensec的电子邮件,祝贺我通过了技术挑战。那时我激动不已!我简直等不及接下来会发生什么!邮件说明下一步是与Luca的技术通话。我在他的日历上预留了一个位置,等待面试的日子。

Luca问了我几个问题,从威胁建模到如何利用某些漏洞,再到如何修补易受攻击的代码。这是一个360度的面试。它还包括一些实时代码审查。面试持续了一个小时左右,最后Luca说他会评估我的表现并通知我。

第二天,另一封邮件到了。我已经进入了最后一步,与Doyensec的另一位联合创始人John的面试。在这次面试中,他问了我不同的事情,不严格限于应用安全世界。正如我之前所说,他们从多个角度考察了我。与John的会议也持续了一个小时。

此时,我已经完成了整个过程。我只需要等待他们的回应,这并没有花太长时间。

他们向我提供了实习职位。我做到了!我很高兴克服了我为自己设定的挑战。我迅速接受了这个职位,以便直接投入行动!

最初几周 在我的最初几周,我做了许多不同的事情,包括重新测试Web和网络级别的漏洞,以确保其他工程师之前发现的所有漏洞都得到适当修复。我还进行了标准的Web应用渗透测试。应用程序本身非常有趣且足够复杂,让我的眼睛粘在屏幕上,不会失去兴趣。另一位出色的工程师被分配与我一起参与上述项目,所以我在测试期间并不孤单。

由于Doyensec是一家完全远程的公司,我们还需要在白天举行一些会议,以便就渗透测试期间可能发生的不同事情进行同步。沟通是Doyensec的关键部分,从良好的沟通中产生伟大的漏洞。

研究周 在实习期间,你还会获得50%的时间进行应用安全研发。在我的研究周期间,我被分配到一个开源项目。实际上,我的任务是为谷歌的Web安全扫描器Tsunami编写一些插件。这是一个通用网络安全扫描器,具有可扩展的插件系统,用于高置信度地检测高严重性漏洞。本质上,为Tsunami编写插件需要理解产品中的某个漏洞并为其编写利用程序,该利用程序可用于在扫描时确认其存在。我被分配编写两个插件,用于检测RabbitMQ管理门户和RStudio服务器上的弱凭据。插件是用Java编写的,由于我在学士学位课程期间做过一些Java编程,我对此相当自信。

我真的很喜欢编写这些插件,并且还被要求编写单元测试和一个测试平台,用于实际复现这些漏洞。这是一次非常有趣的经历!

责任 正如Aleandro已经解释的那样,在Doyensec,实习生被赋予了很多责任以及巨大的自由感。我只想补充一件事,关于时间管理。这对我来说是最困难的事情之一。在一家远程公司,你没有时间钟或类似的东西,所以你可以选择以你更喜欢的方式工作。Luca多次告诉我,在Doyensec,输出是被评估的东西。这对我来说是一件大事,因为我习惯了固定时间表的工作。Doyensec给了我以我更喜欢的方式工作的灵活性,这对我来说是无价的。也就是说,这些活动足够复杂,让你每天忙碌数小时,但它们非常令人愉快。

结论

在Doyensec做实习生是一次极好的经历,因为它让你无需广泛的工作经验就能跳入应用安全的世界。只要你有技能和知识,无论你如何获得它们,你都可以成功。

此外,在这三个月中,你将能够测试你的技能并在各种目标的不同技术上学习新的技能。你还将认识热情且技术娴熟的人,如果你足够幸运,参加公司 retreat 并获得一些独家周边商品。

最后,如果你符合以下条件,你应该考虑申请下一批实习生:

  • 对应用安全充满热情
  • 已经具备良好的Web安全技能
  • 具备组织能力
  • 想要灵活的时间安排
  • 能够管理远程工作

如果你对这个角色感兴趣并认为自己是合适人选,请通过我们的招聘页面申请:https://www.careers-page.com/doyensec-llc。我们现在正在接受2024夏季实习生的候选人。

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