安全人员发展方向杂谈

杜绝写人类看不懂的语言和PPT是我毕生的追求,希望此文能对大家有所帮助

这篇是我的一篇职业总体的方法论规划文,毕竟从业也就3年时间左右,经验远不及行业内大佬,但得益于“弊端"跳槽频繁,目前进入了大型互联网企业的孵化企业,同时积累了大厂和小厂两份技术视野,本文核心是以我的职业规划为主线,根据自身经验论述我眼中的甲方安全人员发展方向,现在希望本文对各位能有所帮助。

技能点分析:

  • 个人发展方向--互联网企业安全建设方向(红方,技术非硬核方向)

阅读指南:如果看到一半感觉这搞的太杂或者太没技术含量或者这根本不是搞安全啊,请移步标题(安全硬核方向)。如果觉得搞的太高大上觉得自己能力搞不定,请移步标题(非强技术相关方向)

1、胶水能力必备--推荐python,go。

甲方大量的扫描器开发,平台效率开发,堡垒机维护等工作需要大量的粘连现有轮子或者开源框架,传统的开源框架不经过粘连或二次开发很难在企业内部达成最大化效应,如大家熟知的ELK,很多企业只是把ELK部署了,但从来不去考虑ELK能带来的价值是啥,可能最多就是去K里面去搜搜日志,还不是每天。GO语言则更倾向于在高性能和高并发场景上的应用,如线上实时的风控系统,waf的agent联动后端,对于万级以上的QPS场景python的性能是非常吃力的,GO和C和JAVA是比较好的选择,但其对于开发功底要求更深,想理解现代互联网的线上开发的世界观和方法论需要更多的时间,如果时间有限优先学习python。

如果目前日常工作无法让你积累到python的开发能力,建议如下:

  • 写一个crud系统,代表是blog系统。
  • 写个效率低安全轮子,如端口扫描,重构下开源项目gruadscan,熟悉一些sqlmapapi

如果目前日常工作无法让你积累到GO的开发能力,建议如下:

  • 学习RPC原理,RPC方法论以及微服务的概念,试着写一个rpc的客户端和服务端,如通过RPC从远程。理解RPC和REST之间的技术选型。
  • 写一个信息采集的agent,控制并发量,如基于管道输入输出,收集/var/log/secure下面的日志信息,控制核数,控制内存性能。


2、海量数据处理能力--spark,strom,flink

大中型互联网的扫描器和日志分析的流量都在TB乃至PB级别,不具备海量数据的工具处理能力会无法胜任互联网开发流程工作,如扫描器的被动流量去重,海量日志的流量挖掘,设备指纹用户的提取分析。

如果目前日常工作无法让你积累到大数据能力,建议如下:

  • 了解hadoop、spark、hdfs、hive、hbase、kafka,Flume,ELK是啥,适用场景是啥,组合之间的原理是啥。重点关注组合关系和shell使用,运维和搭建调优以及二次开发是数据平台部门的工作。
  • 以strom和spark和flink框架api三选一学习,优先级建议spark>strom>flink(blink),若java基础好推荐学习strom,对于日志处理和实时报警有非常好的性能,大厂HIDS实时的报警基本以Strom为主。而spark功能非常广,对python支持较好,目前大量大型互联网的商业系统的BI和ETL工作是基于spark的,如海量WAF的日志分析,态势感知,聚合ETL抽取都是Spark结合Hive来实现。
  • spark具体技能点,sparksql,hiveudf,rdd算子的操作如map,reducebykey,filter,groupbykey等操作。
  • hive的海量数据抽取能力(如果你看到点上,估计sql能力会指数级别增强)


3、机器学习能力

这块是我还没踩的坑,但迟早要学习,在风控领域通过ML进行训练集学习打点十分重要。这块留个坑。以及NLP等在spam领域和攻击语义分析领域的应用,目前可能视野对于机器学习的理解还是,机器学习只是工具,安全工程师核心是通过调参解决工业和公司实际问题。

  • 上述能力是可能一些安全岗位在工作过程中不太能接触到的能力,可以作为长线的投资方向,在干好企业安全如渗透测试或者SRC运营本职工作的同时如果对于发展感到迷茫可以参照上述路线,以上的技术能力和获得的技术视野能让各位获得更好的平台借此将所学知识应用获取更好的技术视野。


  • 安全硬核方向

这个方向对于我而言非常的艰难,需要有非常强大的钻研能力,可能是安全层面大家接触最多的方向,通常是大家说的挖漏洞,代码审计,APT等。在这个基础上,本块主要想表达的意思是,能提供安全硬核方向的公司不多,部门也很有限,所以从事此方向的同学选取工作一定要慎重。

1、通用型研究部门,BAT>乙方各实验室。研究部门往往能给各位提供非常自由的研究和学习环境,但弊端也非常明显,对于公司的短期营收没有太大的改观,很容易成为裁员和缩减HC的第一批对象,可能会对大家的职业稳定性和长期研究有影响。

2、进大型互联网的非实验室部门的安全研究岗,但务必与公司业务发展一致。如选择逆向破解方向去一个以Web安全为主移动安全为辅的公司就不是个好选择。比如兴趣是基带安全合理的应该去华为等5G公司,具体意思相信大家也可以理解。至于APT方向的公司没有选择,懂得同学都懂,不懂的同学问问圈内人吧。

有此方向发展的同学推荐尝试顺序 3BAT实验室>行业领军企业实验室>民间知名安全团队


  • 非强技术相关方向

如果你看到这个标题,不代表没有发展。但客观而言,短期内的工资和晋升可能相比较强技术方向要稍慢一些,但放长久而看技术视野和方法与技术方向成长没有本质差异,毕竟安全方向竞争是打30岁以后的职业发展。我能想到的几个方向如下:

1、安全管理方向--体系化方向(非常重要)

很多技术人员一听到ISO27000和等保经常会一脸鄙视,但我持相反态度。做体系方向一定要选好公司,体系对于公司平台的要求是更高的,没有跨国业务意味着你们公司可能Leader意识不到要投入人力的GDPR,公司初创期可能leader意识不到等保的重要性 。如GDPR和ISO27000在公司要能有声音的话选择的一定是一个跨国有海外业务的公司。代表企业就是外企、金融、大型互联网。这些体系和合规是企业运营和跨国业务的基本庇护伞,也是很多小企业容易忽略或者外包的方向。


2、商务方向--项目运作与管理

这是传统三大厂和乙方的百分之80以上从业人员的方向,如项目经理,售前,售后工程师,销售等。凭良心讲,从我的认知这个方向的中高位的财富积累速度远快于技术方向我认识一位创宇的销售我打心底里佩服,我觉得能和这样的销售配合是我个人的荣幸。而且随着云计算的大量推广,传统乙方与甲方的关系在模糊化,大型互联网往往关注于技术本身而非项目运作,所以类似阿里云,腾讯云等大型甲方的对B服务的商务方向需求量飞速激增,毕竟写代码相对容易的,把有价值的技术用别人能听懂的语言讲述给别人,乃至管理好别人对项目的期望和期待着往往是更难的,这更加要求人员的综合素质,同时政企类的项目管理和新技术接受程度与 互联网也不同,他与互联网企业做安全是两个维度的安全思维。


3、技术运营方向

在互联网公司,再智能的自动化,再厉害的系统,都要有1-2个人定点去维护,不能出WAF性能监控报警了,没人管。扫描器写好了,没人更新POC。白帽子漏洞提上了,没人跟修复流程(懂得大家都懂)。但此方向的弊端主要是竞争人员太大,往往去大厂和平台基本上会有3-5个候选人跟你竞争同一个岗位,而且很多校招生经过一段实习培养也能很快胜任相关工作。能如果在已有从事此方向的同学已经在稳定岗位上,一定要有足够长时间的技术积累,同事关注安全部门的发展,人员配比,方向战略与方法论。在长线发展也能谋取一个不错的leader岗位,毕竟管理和技术是两个类型的游戏,管理者的技术能力其实往往是其次的,代表人物就是我们的马爸爸。


以上是我个人的一些拙见,欢迎评论拍砖,私信拍砖,微信拍砖,更好的促进行业交流与发展。谢谢

编辑于 2019-01-22