风哥,你们安全研发岗位,是不是工资很高?想多了!

文摘   科技   2024-10-28 08:50   四川  

大家好,我是轩辕。

很多朋友都在微信或者知识星球上问我:轩辕,你到底是搞开发的还是搞安全的,咋感觉两头都在搞的样子?安全和开发哪个方向更好?

今天就跟大家聊聊这个问题。

准确来说,我从毕业至今一直从事的都是安全研发这个岗位。顾名思义,就是既有安全,也有研发。但如果非要有一个重心的话,那还得是研发,安全只是一个形容词,研发才是落脚点。

所以说,轩辕本质上还是一个程序员。

但因为自己对安全技术很感兴趣,再加上一直身在网络安全行业,开发的软件产品也都是网络安全行业的,所以免不了比普通程序员又多接触了很多网络安全相关的知识,所以让大家感觉我好像两头都在搞的样子。

接下来,我跟大家简单聊聊安全、研发以及安全研发到底是怎么一回事儿,新入行的朋友又该怎么选择。

1、安全

网络安全里面又有很多细分方向,比较大的两个方向就是网络渗透方向和二进制安全方向,二进制方向又进一步分了搞逆向的、搞破解的、搞内核的、搞漏洞的等等。

除了这两个大方向,还有一些其他的,比如云安全、AI安全、工控安全、可信计算、身份认证等等。

安全方向的同学,主要精力是放在自己领域的安全技术研究上。比如搞渗透的就专注各种渗透技术、各种漏洞的利用、横向移动等等。搞逆向的就专注汇编语言、加解密、加脱壳、调试与反调试等等。搞木马的就专注系统编程、免杀技术、隐藏技术等等。

安全方向的岗位呢,也会涉及到编程,这里面的编程,主要是写一些工具软件、EXP、POC、WebShell、木马之类的东西,他的落脚点是在安全业务上,而对编程语言、数据结构与算法、软件架构、设计模式这些玩意儿相对来说不那么在意。所以如果你看一些安全大佬写的代码,如果从纯编程的角度去看,可能会觉得很烂,软件界面也丑的不忍直视。但人家烂归烂,写出来的东西也确实牛逼。

当然了,也不是所有安全大佬都像上面这样,也有不少大佬不仅安全技术牛逼,代码写的也是那叫一个漂亮,数据结构与算法运用的也是非常娴熟。

2、研发

研发大家应该就很熟悉了,就是咱搬砖的程序员。

咱程序员专注的就是编程和开发技术了。比如Java程序员专注在Java、JVM、Spring框架、数据库、缓存Redis、消息队列等等这些东西,C++程序员专注在C++11、C++14、C++17、C++20···哈哈哈,开个玩笑,又黑了一把C++。

还有数据结构与算法、操作系统原理、软件架构、设计模式等等这些东西都是咱程序员经常要打交道的东西。

搞研发的同学,走的是专业的软件研发工程师的路子,从基本的编程语言,到开发框架,再到软件架构设计。

3、安全研发

安全和研发都知道了,那安全研发是个什么鬼?

其实就是做跟网络安全业务相关的研发工作,开发跟网络安全业务相关的软件产品。

那安全行业有那些软件产品呢?

我大概列举一些常见的:

  • WAF(Web网站应用防火墙)
  • 数据库网关
  • 防火墙、IDS、IPS
  • NTA(网络流量分析)
  • SIEM(安全事件分析中心、态势感知、大数据安全分析)
  • EDR(终端设备上的安全软件)
  • DLP(数据泄漏防护)
  • UBA(用户行为分析)
  • 杀毒软件
  • 安全检测沙箱

比如网络流量分析,就是将网络中的通信数据采集下来,实时分析检测,发现其中的安全攻击行为,并产生告警。

比如某一家大型企业部署一台这样的软硬件设备,将整个企业的网络数据采集下来分析,一旦发现有针对该企业的网络攻击行为(比如窃密、安装木马、漏洞渗透等等),就及时告警和防护,减少企业损失。

那要做成这么一个产品,首先就对软件研发本身提出了很高的要求。

比如超大的网络数据流量如何采集、存储、过滤和分析。这里面就要用到数据包采集技术(比如DPDK)、多线程编程技术、高性能存储与索引,也会用到软件架构的设计。

而另一方面,作为一个安全产品,如何定义好的检测模型和算法规则,才能检测出真实的攻击,不假报、不漏报也至关重要。比如我要检测SYN Flood行为,如果只会编程,而对什么是SYN Flood都不知道,那肯定是无法实现的。

同样的,开发一个WAF,如果连SQL注入都不懂,那肯定也不行。

看到了吗,安全研发,需要同时具备安全和研发两方面的能力。

不过现实情况大部分都是,搞开发的不怎么懂安全技术,搞安全的也不怎么懂开发。我说这话可能很多搞安全的人不服,会写代码和会写大型工程软件这是两码事。

所以一家做网络安全产品研发的公司,一般都是有两拨人,一拨搞安全的,一拨搞开发的。甚至有些公司两拨人互相看不起,搞安全的觉得成绩都是自己出的,你们开发的产品跟💩一样。搞开发的觉得公司的收入都是靠自己开发的产品卖出来的,但风头都被你们搞安全的出了。

说到这,扣一下题,很多人可能很好奇,安全研发岗位,既要懂研发,又要懂安全,薪资是不是很高?

然而事实是国内的网络安全产品同质化太严重,导致大家都在低价竞争内卷,网安公司年年亏损,根本挣不到钱,哪里有钱给员工高工资呢?

而且很多网安产品都是靠开源包装出来的,根本不需要你掌握太高深的技术,因为核心技术都在开源项目里面了(当然也不是都没有,大公司还是会有一些自主研发,核心引擎之类的,这部分人的待遇还是不错)。

反而是一些互联网大厂,他们不靠安全直接挣钱,一些安全研发岗位薪资更高一些。

关于这一点,之前写过一篇文章, 大家可以看看:

国内一大波网安公司产品都是靠开源包装出来的!

4、怎么选?

说了这么多,接下来说说新手萌新们,你们选哪条路呢?

先说说我吧。

我很早的时候就对安全感兴趣,但随着了解的深入,越发的觉得,这一行太难了。

当年通宵学习二进制漏洞攻击的时候,我就清晰的认识到,这一行太累太苦,没有很多年的浸淫根本成不了大牛,而且即便是花上很多年时间,也未必能学出头,而且漏洞这东西是很需要天赋的,我觉得自己并没有,而再考虑到就业市场的实际情况,如果只是学的普普通通,可能饭碗都不是那么好找,所以就没有在这条路继续走下去,或者说走这条路我赌不起。

相反,软件编程就要容易得多,就业机会也多,即便是我不能做到顶尖水平,只是中游水平也足够我吃饱喝足了,再加上自己不那么笨,在中游水平再往上游靠靠,做一个优秀一点的程序员并不难。

再加上自己又学了一些安全技术,所以在安全行业找开发工作也是一个很不错的加分项,所以这么多年就一直从事着安全研发的工作。

那对于新入行的朋友该怎么选择呢?

以下是个人建议,仅供参考。

如果是对网络攻击、安全技术非常痴迷,那就走纯安全的这条路,选择一个自己喜欢的子方向,一直学习下去。

如果是对程序设计很喜欢,喜欢折腾代码,开发东西出来的那种成就感,那就走研发这条路。

如果是比较迷茫,不知道以后要做什么的话,选择编程相对来说也是一条比较稳妥的路。

当然如果你像我一样,喜欢编程,但也喜欢安全技术,可以从事安全研发岗。

以上就是今天文章的全部内容了,我是轩辕,求个关注,我们下期见。

往期推荐

轩辕的编程宇宙
《趣话计算机底层技术》的作者轩辕之风,前百度、360、奇安信高级安全研发工程师
 最新文章