网络安全是一个好的专业吗

本人信息安全专业毕业,在甲方互联网大厂安全部与安全乙方大厂都工作过,有一些经验可以供对安全行业感兴趣的人参考。 

或许是因为韩商言让更多人知道了CTF,也或许是因为网络安全越来越受国家重视,安全最近愈加火爆了。当然,不论是什么让你决定选择这条路,你都应该仔细想想,自己对于安全的兴趣有多大,对于技术的狂热程度决定了你能否在这个非常靠自学的专业走下去。

 1.始于大学

选择学校确实是高考后永恒不变的关注点,同样的一个人,待在两所不同的学校里成长四年,一定会活成完全不同的样子。 其实院校排名、专业排名都是不值得参考的,至少在信息安全这个领域,它代表不了毕业后你的成就更高,代表不了你成长的环境更好。 信息安全是一个非常需要氛围的专业,学校内有一个活跃的安全社团极为重要。如果学校在各大CTF比赛中名列前茅,那么基本可以说这个学校的安全氛围不错。虽然安全不全是CTF,但氛围这种东西暂时只有CTF的排名能反应出来。说白了,由于安全主要要『自学』,传承很重要,有学长带你可以少走很多弯路。这里也推荐一些在安全圈内经常刷脸的学校,仅凭回忆,一定有遗漏:

985:清华、复旦、上交、浙大、北航、成电

211:北邮、西电

双非:南邮、杭电、成信大

研究生不建议直接参考上述名单。另外城市也很重要,来北京、上海会更好,离安全企业、互联网大厂近决定了你能否提前实习,何时入行。 

你会发现网络安全行业虽然与黑客、漏洞、网络攻防密不可分,但这些老师都不会教你,就算是有所涉及也仅仅是泛泛而谈。学校内的一切都是在教你基础,不然你一不小心把你教成了一个黑客怎么办? 

想要学习工程领域上那些有趣又危险的东西,需要极高的主动性,当然,带你入门为你指路的学长是少不了的,这也是为何之前我强调氛围的重要性了。一个人想要学习编程很简单,但想要学习网络安全却很难,因为它发展的速度太快了,如果你安逸度过本科阶段,可以说临近毕业是大概率是一事无成的。不说活成高三,起码也该活成高中。

 另外,会有些人有网络安全会不会歧视专科,会不会歧视双非的疑问。其实学历和学校出身之所以在计算机行业的影响力相对较弱,是因为我们很容易判断出一个人编程水平的高低,而编程水平的高低又可以决定他能否胜任工作。在网络安全领域,强者对弱者更是碾压性的,强者有资格手握0day,知晓一些独家tips;弱者可能只有纸上谈兵的实力,这种差距是学历的壁垒很难挡住的。但如果实力一般且相同的来自985、双非的两个人,还是985的会混的更好,并且好学校意味着更多的选择(比如你只会纸上谈兵,你也可以当一个文档工程师呀)。 

2.一路成长

每个人的成长轨迹都不尽相同,安全也分很多方向,方向之间是大相径庭的。如果为你的毕业找工作时做一张简历,我希望你在下面的每一点都有所建树: 

  • 学科基础

            计算机基础知识(科班所有重要专业课)

            编程能力(至少会PHP/Java/Python/Js)

            安全基础知识(各大常见/不常见漏洞)

  • 专业技能

            渗透测试

            代码审计

            内网渗透

            应急响应

  • 项目经验(来自实习&外包)

            XX渗透项目经验

            XX代码审计项目经验

            XX应急经验

            XX护网经验

            XX安全开发经验

  • 开源项目(个人)

           常发漏洞分析的个人博客

           有一些复杂度的常规开发项目

           扫描器/监控/白盒审计等安全开发项目

          一些简单好用的安全小工具/exp

  • 比赛获奖

          CTF比赛奖

          国赛作品赛奖

          其他让简历看起来不骨感的奖

  • 圈内荣誉

          漏洞平台排行榜排名

          SRC排行榜排名

          CVE漏洞

          几篇高质量文章的作者

          安全会议(非学术)分享人

当然里面有些是比较难的,如果都完成是真大佬了,尽力就好。另外给一些建议: 

  • 不要以为编程能力不重要,计算机基础不重要,只有安全知识重要——我只能说,都很重要。编程能力和计算机基础决定了你的上限,真上限。一个数学只有高中水平并且考试勉强及格的人,写业务代码手到擒来;一个编程能力和计算机基础缺失的人,看任何安全知识如看天书。
  • 多挖洞,现在环境下多参与众测,挖SRC,这些对将来找工作帮助都挺大的。不要搞其他任何网站,不要做没有授权的渗透测试。有质量的CVE很重要,现在github都成刷CVE的重灾区了,其实很多CVE太水没有价值。如果有一两个有质量的CVE,在圈内水几篇文章,去大厂很轻松。
  • 如果热衷于CTF,可以多搞搞,虽然实战意义有限,但是用来收集tips是极好的。当然,如果有条件可以去体验一下护网,红蓝对抗的那种快乐又是夺旗赛无法给予你的,也更实用(一个招安全工程师的企业可能不会参加CTF比赛,但很少会不参加护网)。

3.工作or考研

本科毕业后是工作还是考研?这个问题相信很多人大一都有明确的答案:考研,到了大二大三就会比较迷茫。这是因为刚刚大一的时候什么也不懂,只知道学习这一条路可走。其实安全的实践性是非常强的,从安全技术的成长来看,业界三年经验>研究生三年学习的作用,所以不是必须考研的,但也不意味着应该不考研,因为有些方向在本科阶段的确是难以触及的。总体来说,安全学术界和工业界差别还是不小的。

  其实我一直主张做一件事前先要弄明白它的收益在哪里,考研尤其如此。

不考研的好处如下: 

  • 多三年业界实战经验,实战对于安全来说至关重要,在学校中鲜有实战机会。
  • 三年工作经验,对于同一个人,工作三年比读研三年安全技术的成长性更高。
  • 学历对于起薪、晋升的影响不大,因此工作三年薪资更高,几年后这个差距将缩小。
  • 信息安全现在越来越热,入行越早其实红利越高。
  • 对于实力不错的师傅,本科出来可以去顶级大厂,读三年出来后还是去顶级大厂,性价比太低(并且本科时去的已经可以做读研时去的leader或者导师了,从晋升体系来看,一般是无法逾越的)

考研的好处如下: 

  • 本科学校不好可以换学校,比如双非->985,对名校十分憧憬
  • 提升学历,很多优惠政策只给研究生,有些国家单位只招研究生
  • 本科过的浑浑噩噩(或者实力不强),读研三年获得一个改过自新的机会,校招进大厂(校招比社招更容易进大厂)
  • 不想一辈子掉头发,研究生退路更多
  • 就是不想工作
  • 憧憬学术圈,舍不得校园生活,觉得没有研究生生活体验是一种遗憾
  • 研究的方向决定了需要读研究生

在上面列出的好处对比中,大家可以自由寻找符合自己利益的来决定。另外,就我个人观点来说,如果你是个搞渗透攻防,纯Web侧安全的,不是很建议读研,本科出来去大厂是比较好的选择;搞二进制漏洞、病毒、数据安全&AI安全,可以继续深造。当然这是个人观点,大家还是根据自身情况决定。 

4.找工作

此处只讨论技术类工作。安全行业基本上可以分为甲方和乙方。 

甲方主要是互联网大厂、银行证券等,它们的安全部基本上只负责自己公司的安全,为公司业务保驾护航。主要的工作一般是对公司业务进行代码审计、渗透测试、应急响应,搞安全监控、自动化扫描,做src等,一般来说是安全工程师最好的去处。缺点:招人少,能不能进主要看技术是否牛逼以及运气是否好(正好缺人)。 

乙方就是大大小小的安全公司了,公司的主要业务是为gov、其他公司提供安全产品、安全服务等。主要的工作一般要么是安全研发,要么是安全服务(包括护网),要么是安全研究。目前的形式,最不推荐的是安全服务,天天挖垃圾洞,驻场还有背锅,没什么成长性。我类比一下你们就懂了:一个每天写增删改查的程序员,你觉得他的技术能有多大提升?以前安全研究还是比较舒服的,现在已经几乎没有纯安全研究的职位了。大家也知道现在整个计算机行业寒冬,公司不可能养一个不创造价值的人,现在一般安全研究的团队都要出去要么是高级的安服,要么是产品商业化。 

推荐一些公司吧,让大家有个目标。甲方的话,一般国内知名三线以上互联网公司的安全部都是值得去的。乙方的话,推荐知道创宇(背靠腾讯),长亭科技(背靠阿里),这两个技术氛围可谓是乙方中最好的了。老牌强势乙方还有启明星辰、神州绿盟、深信服,都是银行等行业最喜欢的,很好跳槽过去。你们猜我是哪个乙方出来的?嘻嘻 

甲方钱多,乙方钱少。爆一下北京的安全行业的应届生薪资,注意是应届哦:乙方8k-12k,甲方13k-20k。当然这是一个普遍的范围,特别优秀的表哥就不要爆薪资让我羡慕了。 

5.转行安全

其实这个问题有很多人问我,非科班出身行不行?没接触过编程,去培训班培训几个月行不行?30岁了想从传统行业转行过来从事信息安全行不行?其实从我前面的描述大家也能看出来,安全行业其实对出身不是很看重,但这也并不意味着随随便便就能转行过来。 

我们不说个例,只谈适用于大部分人的情况: 

  • 一个从事与计算机无关工作的人想要转行网络安全,不推荐
  • 一个本科与计算机无关的人,考研想要跨考网络空间安全专业,看你有多大决心和毅力,会特别吃力
  • 一个本科学习过计算机基础+编程水平还不错的人,考研想要跨考网络空间安全专业,可以
  • 一个刚上大学但本科专业与安全无关的人,特别喜欢网络安全,想要自学进入行业,可以,应付本专业的时候稍麻烦
  • 想要通过培训班就业:我劝你别浪费钱

从上面的例子也可以看出,安全其实是需要时间去沉淀的,它建立在计算机科学、计算机技术之上,一个连代码都写不好的人,其实是没办法学好安全的。想要通过集中培训强行将知识倾泻在大脑中,更是不可取的方式,好像什么都会了,但其实稍微深入一些就到了盲区,因为对底层的知识是一知半解的。 

我举一个简单的例子,大部分初级教程都会教SQL注入的判定方式and 1=1,那么: 

  • 你能简述SQL注入漏洞的本质是什么吗?根据漏洞场景的不同都有哪些类型?根据利用方式的不同又有那些类型?它们中哪些跑数据最快,哪些几乎适用于所有情况?报错注入的原理是什么?联合查询注入又有哪些要点?
  • 黑盒测试中如何快速寻找SQL注入漏洞?白盒审计呢?根据经验,哪些位置可能出现SQL注入漏洞?
  • 如果你发现了一个SQL注入,你会如何利用?一个盲注如何快速跑数据?前置条件有哪些?如果有WAF,你知道几种过WAF的方式?如何通过SQL注入得到一个shell?你知道几种提权方式?他们的前置条件又是怎么样的?
  • 你了解宽字节注入吗?二次注入呢?它们的原理又都是什么?如何防治?你知道几种修复SQL注入的方式?它们各自有什么优点?哪种最快?哪种最彻底?预编译为什么能防止SQL注入?它的底层原理是怎样的?预编译一定能防止所有SQL注入吗?如果不能请举例说明?
  • 你了解ORM吗?他们一般如何防御SQL注入漏洞?PHP使用PDO一定没有SQL注入吗?Java使用Mybatis一定没有SQL注入漏洞吗?如果有举例说明?
  • 如何自动化挖掘SQL注入漏洞?如何保证以尽可能少的发包量得到尽可能准确的结果?

暂时写到这里,当然,可以深挖的点还有很多,甚至可以直接列举一个实际场景,问你下一步有何思路。而这些点,确实是需要对基础知识、漏洞原理有透彻的理解后,再加上实战经验与深入研究才能储备的。 

因此,学习安全其实需要极大的兴趣、不差的计算机基础和编程能力,然后用至少一两年的时间去实践、研究与沉淀的。个人认为学生时代做这件事是比较好的,工作了反而会变难,根本不能通过短时间的培训来达成。 

6.结语

由于是入门贴,就不继续深入下去了,最后我在这里也整理了一些网络安全学习资料(工具包),有需要的可以评论“求分享”,我挨个发

猜你喜欢

转载自blog.csdn.net/xv7676/article/details/130851199
今日推荐