首先说一说方向这个东西
搞安全这个东西,最让人难受的不是哪个点不会,而是不知道自己该学啥,或者自己学了这点东西有啥用,前进的方向是最让人迷的东西。
那我就先分享一下,我们之后的方向是个什么东西。
首先请大家忘记渗透和逆向这两个东西,因为安全是一体的,上面两种只是我们小菜的划分,在企业中基本上就分为这么三种:
- 安全服务部门
- 安全实验室
- 研发部门
安服部门
国内安服部门(老板)一般都是做乙方测试,就是第三方测试,也就是通常所说的渗透测试,也是授权测试。
简单点说,利用除DDOS的攻击方式,检测网站WEB安全,并将这些问题汇总为渗透测试文档。
通常大家熟悉的各大SRC,可以说就是一种面向互联网的乙方测试。只不过公司中会接收到定向的业务罢了。
平时会有全国各地的应急响应,所以说出差的事件可能会比较多。在没有应急响应的时候,就可以自己做自己的事情。
在大部分安全企业中,安服部门直接就变成了渗透部门,里面的人的工作包括乙方测试,漏洞研究,漏洞挖掘。所以说,现在需求比较大的,还是安服部门。
安全实验室
在一些企业中,安服部门与安全试验室是分开的,比如腾讯、阿里、360。
各个企业中安全实验室的工作都是不一样的。我这边用创宇的为例。
创宇的404是做实时web漏洞分析的,也就是最近爆出了什么样的漏洞,就立刻进行漏洞复现、分析、与poc的编写。比如说这次的Str-2,安全实验室的工作就是第一时间出漏洞检测工具,并给出漏洞防护措施。
说实话,安全实验室才是分类更为细致的部门:
- Web漏洞研究与挖掘
- 二进制漏洞分析与挖掘
- 移动安全
- 硬件安全
- 物联网安全
- 云安全
- 机器学习与安全防护软件
- 大数据的收集与大数据分析
- 工控安全
其中由各个部门所衍生出来的复合型实验室也很好玩,比如说破解ps4啦,搞特斯拉汽车啦。
研发部门
现在安全企业中的研发部门,一般要求的语言有这么几种:Python、C、C++、C#、java。最流行的是Python,用于大数据的分析。
重点来了
所以说,说了这么多的废话,总结如下:
-
现在搞渗透的童靴,要么,你就去研究漏洞利用的新姿势,要么,你就去挖洞。
也就是对应着两个方向渗透测试、web漏洞挖掘。
更简单的来说,要么你去搞站(最好是src),要么你去挖洞。
-
那么搞逆向的童靴呢?我不是搞逆向的,不能给出明确的答复,但是据我了解,你们可以往这个方向走:
- 二进制方向:
- 这个又分为win与linux,现在多数招的是linux,所以往linux方向靠,肯定没问题。
- 接着往底层走,汇编、0day2和漏洞战争好好看。
-
安卓逆向:
最近最火的方向之一,这个方向也是可以的。
- 二进制方向:
其他的东西,可以和德全交流。
-
想做安全编程的童靴,Python是必备技能,重要性不多说了。
-
做渗透的童靴要学会向二进制走,学二进制的童靴,要懂web,这个是很关键的。
有点啥公司推荐
这个其实很多余,但还是说一说。
-
川内:
- 启明星辰:川内最近成了ADlab成都分部,主要方向是物联网安全、工控安全。偏向于二进制,做web的同学主要是著名cms(wordpress下载量超十万还是百万的插件)的漏洞挖掘。
- 无声(pkav):算是唯一总部在川内的安全公司,二进制和web都有招,二进制偏向于二进制漏洞挖掘,web偏向乙方测试、漏洞挖掘、ctf
- 360:360在成都是有一个实验室的,主要偏向是移动端安全,要求很高,一般只招正式员工。
-
川外(北京):
- 360企业安全部:和360不一样,要求更高,偏向于企业安全,主要为乙方测试,和漏洞研究与漏洞挖掘。
- 360:每年这个时候有360校招,工位蛮多的,应该是有3-4面。
- 知道创宇(去过这边实习后,再去其他地方实习就不怕了):404实验室,主要是做业务,进行漏洞分析漏洞测试poc漏洞文档,工作强度还是可以的,也从事漏洞挖掘。
- 长亭科技:phithon在的公司,主要是乙方测试。
- 绿盟:甲方测试和乙方测试
- 天融信、华为:硬件防火墙
- 启明星辰的总部:不多说了
- 深圳: 腾讯:腾讯6面….嗯
- 杭州:
- 阿里:阿里6面还是4面…..
- 安恒
- 武汉: 安天
- 还有各地国安
简历写点啥
- 会什么语言
- 学校有什么项目(你看上去不重要,其实他们蛮重视的)
- 有木有实战经历(乙方很重视)
- 比赛(今年的SCTF比赛很重要)
- 你的博客,你的博客,你的博客,重要的说三遍
- 学习经历,挖洞经历,分析经历
- 实习经历,更重要
还有啥要注意的
- 使用非Win系统很重要,公司中只要和技术相关的岗位,在工作上都是不允许使用Win的….所以养成工作时用linux是一个好习惯
- 注重总结,有博客的记在博客中,有笔记的记在笔记中,不过更推荐博客一点,企业在看简历的时候,对于你博客的注重程度很高,有加分
- 代码的编写能力很重要,能利用python写工具、写poc。代码最好管理在Github上,同样,方便自己,也能展示自己。
- 紧接上一点,git的使用也是非常重要的,一般团队都有自己的git,如果不会git,也是有点烦的。
- 保持自己不断学习的状态,企业其实在招收实习生的时候,没有对你的技术抱有多大的期待,无论你怎么怎么厉害,到了企业还是得继续学习,所以企业对你的学习能力更加看重,如何在较短的时间进行学习,并将之运用到工作中。企业怎么看你的学习能力呢?一个是你的比赛经历,一个是你发表paper的质量,最后一个就是你的博客更新频率和GitHub频率,可能有点玄学,但就是这样。
- 关注安全圈子里面的事情,关注最新的安全咨询,这个也很重要。
关于面试什么的
- 首先摆正自己的位置,残酷点说,你现在还没实力选择公司去实习,更不要说选择地方了,而且实习绝对是要额外花钱的,所以想好了,哪里要你,去哪里。
- 就像前面说的一样,公司招实习生,一般对你的能力要求没那么高(春招除外,春招的要求蛮高的),别怕,勇敢投简历就行了,反正我就抱着哪里招我哪里倒霉的想法,在大二暑假混到了实习。
- 还是要提升自己。只有在写简历的时候,才会正视自己到底做了点什么事情,时常反思,对于知识保持饥饿感。
- 对于面试官而言,你是一个入门者,所以尽你所能的答,打错了,不要慌,面试官都是老司机,你尽管说,考到我了,算我输。
最后,你在实习前起码要有的技能树
- Python3,注意是Python3,Python2随着Django放弃支持Python2而没落,而且不管是渗透、逆向、开发,这是确实是基本的技能。
- 基本的代码阅读能力。只要你进实验室,别管你是干什么的,看代码是肯定的,而且不是我们平时简简单单的单页面六七十行的代码。最简单的就是一个插件的代码,可以尝试去看一下wp的插件代码,逻辑简单,目录也够清晰。复杂的话,就会涉及到框架,一天几千行是算简单的= =。
- 文档能力。不管你是做什么的,写文档都是逃不过的,而在公司中,除了正式的产品式文档,技术人员使用的都是markdown。
- git能力。
Web童靴要有的
-
PHP能力,看PHP代码总比你看Spring Boot的代码好,相信我
- 起码得会写一点PHP吧(比如连接数据库什么的)
- 也起码得知道PHP的一些运作原理吧(比如文件上传的过程)
- 起码得积累点漏洞触发函数吧
- MVC的基本运行思路
- PHP的类要熟练
- 能看一下框架就看一下框架,Symfony对应着Drupal,Laravel的强大还有YII等
- 了解基本漏洞产生的原理(SQL注入、XSS、CSRF、SSRF等)
- 基本Web环境配置方式
- Linux的使用能力
- Docker能力
- Python能力,起码得会写个poc。
- 实时关注安全动态的能力
- 写文档的能力
以上的如果展开说,就太多了,有的我也没有掌握,大家自行理解。