前段时间看了一个大哥写的程序员的职业发展,感触很深,这几天晚上就参考大哥的思路结合自身的经历写一下渗透工程师的职业发展之路,顺便也让迷茫中的小伙伴们有个参考。
很多干渗透、安全服务、安全运维的人在干了3-5年后面对迷茫期,最近也是很多小伙伴在讨论这个事情,下面我就来写一下我认为一个职业发展,这里只讨论在本专业内的发展,不讨论(抬杠)干了两年回家继承家业,干了两年去创业(卖红薯)了等。
如果是在一个企业一直朝着这个方向发展,个人觉得要分为三个阶段,一技之长、独立做事、寻找使命。
第一阶段:一技之长
这里的一技之长不单单指的是你完成你工作对应的技术,而是一个大的范围,一技之长包括:栈内技术、栈外技术、工程经验、带人做事、业内发声。
这里我用了一个饼状图来表示每部分占比,每个阶段不同比例不一样,这里大家根据自己情况仅做参考吧。
栈内技术
栈内技术指的是你专业领域的技术,比如你是渗透测试工程师,那web渗透,app测试,小程序测试等这些常规的渗透测试就是你的立命之本。当然了也有人会说渗透测试也会衍生出来一些其他的工作,比如应急响应,溯源分析,甚至还有些代码审计等技术类工作,确实是这样的,但是如果你不会渗透后面衍生的技术种类就不用想了,你根本就不会,所以要把本职渗透类做好,而这部分工作一定是占据你日常工作的大部分。
如果你是刚入行,那么渗透工作基本是你的全部工作,因为你很多渗透理论、技巧都要补充,还要不断地输出渗透报告。
如果你已经入行近2年,那你的工作可能会有百分之20或更多的的时间来做应急响应,溯源分析等技术类工作。
当然了,如果你除了前面说的渗透,溯源等技能外如果你还会写代码,甚至说是底层的二进制,那你可能还会做一些代码审计、二进制逆向面杀类的工作,但是这一类比较少,一半也不是渗透测试工程师必须要求的,但是如果你会了那你一定能从渗透工程师中凸显出来。
栈内技术是安身立命之本,不要轻易的换“方向”
栈外技术
栈外技术是指的是栈内技术上下游的技术,领域相关的技术,安全毕竟是涉及开发、运维、网络等it相关的行业,这里写的包括但不限于安全设备(防守相关),安全设备运维、开发相关的知识等。扩展你栈内技术领域,你要充分理解你的工作在整个技术体系内的角色,以及和你工作相关联的技术,下面我就分方向说几个渗透的栈外技术。
安全防守(安全加固):这里的安全防守包括对常见安全设备的理解,比如防火墙、IPS、IDS、流量监控、态势感知等等,你要知道这些设备的主要功能以及常见的防护方法。
安全设备运维:这里说的设备运维并不是说你要真的去做一下运维,你要知道一些运维的设备,这些设备的特点,比如说堡垒机,那这些堡垒机在整个安全中是什么角色,如果失陷会照成什么样的安全危害。
开发相关知识:这里呢就是需要了解一下不同语言的特点,安全框架、数据库配置等等,毕竟照成安全的根本原因还是代码照成的,所以很多开发相关的还是要了解的。
工程经验(项目经验)
这里说的工程经验也称之为项目经验,这里的工程经验包括两个方面:
1、根据用户需求提出的“解决方案”,通俗的来讲就是客户讲自己的安全现状给你,你根据客户目前存在的安全风险以及客户的预算(也要考虑自家安全设备及服务)来提出解决方案,这个解决方案不仅能够解决客户现存的安全问题,也能够匹配上自家安全产品或服务。
2、根据合同约定完成超预期交付,这里说的交付其实主要是站在项目的角度上来说的,比如一场攻防演习,作为项目负责人如何才能协同用户指挥下面技术获得更多的分值,让客户更加来认可我们呢,那这里你就要关注用户举办这场活动的目的,是为了发现更多互联网漏洞,还是为了找到更多的互联网口子,这都是站在项目交付上需要关注的。
可能有些渗透工程师会说,每天我都在干渗透,一个网站接着一个网站的干,根本没有时间去研究新的东西,那你一个个的测试是不是在项目中呢?那你为啥没思考过能在项目方案或者项目实施过程中有一些突出的表现呢?
很多渗透工程师没有总结过自己的工程经验(项目经验),特别是干了多年的技术之后,总觉得自己的技术在走下坡路,而决定你是否比别人更有专业价值往往是工程经验,如果你没有真正的写过方案,带过项目那你可能是真正缺乏工程经验,可以在项目中多多争取,先从一些短平快的渗透项目下手,把从启动会到交付过程再到项目验收都走一遍。
带人做事
带人做事之前是对个人专业技能方面的深度有要求的,带人做事是对团队协作能力的要求,我第一次带徒弟的时候经常会感觉到要经常的沟通,渗透如何做,什么样的业务系统不能扫,报告中的修复建议,漏洞描述如何写等,要多次的跟他沟通报告如何写。
这个阶段的带人做事,是把自己擅长的东西沉淀下来,传递出去,是一种传承,实现1+1>2的生产力,让整个团队的产出高于自己的产出。
这个阶段一定要注意“带”和“管”的区别,“带“则是带领的意思,是我特别懂这个领域,我知道你不懂,我会教你如何来做,有点授之以渔的意思,而”管“则是这个东西我不一定很懂,但是我知道你懂,所以我安排你去。
业内发声
如果你前面做的非常好了,那你把自己的工作经验总结对外发布,与他人进行交流,思想进行碰撞,看到更高的山峰,然后修正自己的想法,日益完善,是能走的更远的一种方式。
其实网络安全有很多发生的机会和场合,技术类的你可以挖SRC,如果你常年霸据百度、阿里等大厂的top5,我相信过不了2年你拿出你的ID圈内都会知道。
如果你说你技术还达不到top5,但是你的表达沟通很强,那很多论坛或者圆桌会议都可以参加,发表你对安全某领域的看法、观点,通过这些会议,不断听取别人对你观点的意见,这样你再回来不断地论证自己的观点是否不够全面,是否还需要继续加强某一方面知识的摄入,这样不断地循环也是不断地进步。
获取某SRC的top5或者参加圆桌会议,并不是说让你来show某项东西,而更多的是能把自己的观点发表出去,和其他人的观点进行碰撞,然后来思考自己是否存在不足,还需继续努力。永远不要放弃自己的一技之长,没有所谓的转型或者转行,永远坚持你最初的领域,然后进行不断地扩充你的外延,最终达成比较全面的能力,坚持才是走向成功的最高方式。
第二阶段:独立做事
第二个阶段也是目前我一直在做的事情,在不断的尝试,不断地试错中,我将独立做事分为了,独立交付、独立带人、独立带团队、独立做业务、独立活下来。独立不等于独自,这个要搞清楚,独立是指在公司给你配套的资源下,你能够完成公司给你的项目,或者说你能用公司配给你的资源给公司拉来更多的活并完成交付,当然了这个俗称”带团队“。
独立交付
独立交付,其实可以说是在独立做事中最简单的,一个项目销售拿下来后能够保质保量的完成交付,当然我给这里的交付定义为两个方向,1、项目管理能力,能够保质保量的完成交付,让客户满意,客户认可,不能因某些低级错误而引起客户投诉。2、客户把控度及后期商机挖掘能力,把客户当做一种资源来处,而不单单是甲方,如果客户能够给你坦然心扉的聊天崔牛,那说明你这个项目没白做,毕竟到了这种关系后如果后面客户再有类似的活的时候总会想到你,无论你去了哪家公司,这个客户是认可你的,这种资源会伴随你的职业生涯的。
独立带人/带团队
进入到独立带人/带团队阶段,要关注的更多,整个团队的氛围、工作效率,运用你一技之长的工程经验带领团队高效优质的产出成果,实现1+1>2,做好两张大图,业务大图和技术大图,让团队的同学摘掉自身的发展主线,工作要开心,团队才稳定。
独立做业务/独立生存
这里的独立做业务并不是值得真的自己去跑客户,去签单子,而是由独立交付衍生出来的,举个例子,之前我在某金融项目做项目经理的时候客户很认可,因为跟用户合作时总是为用户着想,无论是否在合同内的,能帮用户解决的问题都会帮他解决,客户很认可,慢慢的和客户也成了技术上的朋友,偶尔也会约着吃吃饭啥的(没有商业上利益,当然就靠我们技术这点工资也不可能会有),后来我跳槽去了另外一家公司,这个客户不知道怎么了解到了,直接给我打电话让我来参与下,我带着销售直奔而去,不用想单子肯定拿下了。其实这就是技术反哺市场的一个方式。
当你独立带团队了,身上自然要背着团队的业绩,你就要思考技术如何完成本职交付工作外协助前端市场了,只有这样你才能不断的了解商业是怎么玩的,你们做的事情在整个商业环节中的比重和玩法。
独立做事的每个阶段,都是一次比较大的跨越,需要思考和多种软素质发生较大的变化,抛开技术人的身份不说,独立做事的几个阶段也是一个人逐渐成熟的过程,如果有扎实的一技之长,又能独立活下来,我认为是可以消除35岁危机的。
第三阶段:寻找使命
寻找使命,其实是实现自我价值的过程,是创业还是跳槽?是生活还是工作?如何平衡?这个过程其实不在单单考虑薪资如何了,更多的是一个综合性的问题,目前也是我目前面临的问题,也是我自己每天不断寻找的答案,这里就留一个开放性话题放到评论区吧。
最后用莫泊桑的话来结尾:“生活不可能像你想象得那么好,但也不会像你想象得那么糟。我觉得人的脆弱和坚强都超乎自己的想象。有时,我可能脆弱得一句话就泪流满面,有时,也发现自己咬着牙走了很长的路”。在这里工作就是这样,但我坚信明天会更好。