关于信息安全的方向

Posted by Waldo on September 3, 2018

首先说一说方向这个东西

搞安全这个东西,最让人难受的不是哪个点不会,而是不知道自己该学啥,或者自己学了这点东西有啥用,前进的方向是最让人迷的东西。

那我就先分享一下,我们之后的方向是个什么东西。

首先请大家忘记渗透和逆向这两个东西,因为安全是一体的,上面两种只是我们小菜的划分,在企业中基本上就分为这么三种:

  • 安全服务部门
  • 安全实验室
  • 研发部门

安服部门

国内安服部门(老板)一般都是做乙方测试,就是第三方测试,也就是通常所说的渗透测试,也是授权测试。

简单点说,利用除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面…..
    • 安恒
  • 武汉: 安天
  • 还有各地国安

简历写点啥

  1. 会什么语言
  2. 学校有什么项目(你看上去不重要,其实他们蛮重视的)
  3. 有木有实战经历(乙方很重视)
  4. 比赛(今年的SCTF比赛很重要)
  5. 你的博客,你的博客,你的博客,重要的说三遍
  6. 学习经历,挖洞经历,分析经历
  7. 实习经历,更重要

还有啥要注意的

  • 使用非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。
  • 实时关注安全动态的能力
  • 写文档的能力

以上的如果展开说,就太多了,有的我也没有掌握,大家自行理解。