安全研发安全研发,怎么选?

Posted MachineGunJoe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全研发安全研发,怎么选?相关的知识,希望对你有一定的参考价值。

大家好,我是周杰伦。

今天是国庆假期的最后一天,不得不说这时间过得是真快啊。

这个假期我就做了几件事,看书、写文章、做视频、逛了一个古镇,哦对了,稍微摆了一下烂,把《怪奇物语·第四季》终于看完了,还没看过的朋友强烈推荐一下这部美剧,剧情稍微有点惊悚,提前做好心理建设哦。

今天这篇文章说点什么呢?

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

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

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

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

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

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(用户行为分析)

  • 杀毒软件

  • 安全检测沙箱

以我现在正在做的NTA——网络流量分析来展开细说一下。

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

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

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

而另一方面,作为一个安全产品,如何定义好的检测模型和算法规则,才能检测出真实的攻击,不假报、不漏报也至关重要。比如我要

检测SYN Flood行为,如果只会编程,而对什么是SYN Flood都不知道,那肯定是无法实现的。

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

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

不过现实情况大部分都是,搞开发的不怎么懂安全技术,搞安全的也不怎么懂开发。

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

【网络安全资料领取】

4、怎么选?

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

先说说我吧。

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

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

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

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

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

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

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

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

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

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

【网络安全资料领取】

以上是关于安全研发安全研发,怎么选?的主要内容,如果未能解决你的问题,请参考以下文章

安全研发安全研发,怎么选?

网络安全怎么学?

无纸化自动化考评系统,专为企业研发安全稳定

无纸化自动化考评系统,专为企业研发安全稳定

无纸化自动化考评系统,专为企业研发安全稳定

软件嵌入式研发行业源代码安全管理方案概要