安全招聘

Feei <feei#feei.cn> 2015

1 安全招聘现状

1.1 薪酬最高

互联网是计算机行业中薪酬最高的,而技术工程师是互联网中薪酬最高的,而安全工程师又是技术工程师中最高的。安全行业井喷式的爆发,使得每家互联网企业的安全部门成为标配并逐渐蔓延开来,而由于高校的安全专业才开始普及,安全从业人员紧缺且入门门槛较高从而导致了薪酬水涨船高。

1.2 良莠不齐

好处是会有更多的人投身于安全,当然坏处也很明显,着急的岗位和紧缺人员导致存在大量良莠不齐的人在其中浑水摸鱼,明显的特征是你跟他聊技术细节他跟你聊推进落地,你跟他聊推进落地他跟你聊方向把控,你跟他聊方向把控他跟你聊团队管理,你跟他聊团队管理他跟你聊行业空间,如果这些方面都能聊一点那也行,更多的人是答非所问又或者句句有理但空洞没有屁用,又或者是今天这里听到一个理论还没弄明白呢明天就来跟你拽个概念,虽然这么说会得罪一部分人。

1.3 圈子文化

安全是一个小圈子,圈内的事情传播的非常快,比如谁家数据库泄露了、谁家被薅羊毛了、谁被抓了、谁被处罚了,这也是小圈子最大的好处,圈内的人很快能知道这个行业的新技术、新方向、新政策。你也可以很容易的知道每家公司的安全建设情况,比如你可以和阿里的人聊他们的线下配合公安的手段有多强,也可以和腾讯的人聊他们的SRC如何运营的这么好,也可以和百度的安全人聊如何让机器学习赋能安全产品的,这一切在安全圈内非常的容易。也有很多的安全会议可以学习到每家公司的经验,不用所有的事情都自己摸索也用闭门造车。

弊端也很明显,搞所谓的”圈子文化“,混迹于各种会议去主动认识各种圈内的人(当然这里不是指各家SRC运营的同学,这些是运营同学的工作一部分),认识的各种人如果是交流技术那也行,加了微信除了打招呼的自我介绍那句话就再也没说过有意义的东西,以为这样就进入了圈中心,可笑可悲。

2 安全从业人员的必要素质

具备基础的工程师素质是一切的基础,在这个基础之上如果在攻防渗透和软件开发、兴趣驱动和适应能力上比较亮眼,则能很好的适应工作挑战。

2.1 攻防渗透和软件开发

首先要明确一个概念,术业有专攻在安全行业不是常态。安全本身就是一个覆盖了客户端、前端、网络、后端、服务器等涉及JavaScript、Python、PHP、Java等各语言的工作,如果非要讲究术业有专攻就没法做了,当你可以有擅长的方向,但前提是你都懂,这个懂不应该停留在了解的层面,如果你是安全开发工程师除了研发技能外还必须知道常见漏洞的形成原因、利用方式和修复方案,如果你是渗透工程师除了理解各种漏洞的攻击细节外,还必须有基本的开发能力。

同时拥有攻防渗透和软件开发的人,在后面做事的方方面面会体现出极大的优势。

我们有过很资深研发工程师,但安全产品不同于用户产品,往往是都没有经验也没有参照物的,摸黑前行最好的情况是你曾住过这个房子,所以往往需要有很强的安全背景/不断的试错调整才能开发最好的产品。甚至在很多时候,沟通交流/思维上都需要进行转变才能更好的协作,减少代沟和沟通成本。这个要求并不是非要精通各种。

现状是安全行业更多的人是偏向于攻防渗透,而如果同时拥有很强的开发技能,优势将非常明显。在安全产品开发/漏洞挖掘/代码审计上。

不同岗位间的互补显得非常重要,做漏洞扫描器的如果在SRC挖过漏洞、做代码审计如果会软件开发、做合规审计的如果有CISP证书就会得心应手。

2.2 兴趣驱动

像安全产品开发一样,渗透测试也需要不断的试错,不断的将各种可能存在漏洞的地方一一测试,往往测试数百个请求才有所收获,这需要很好的坚持,但坚持这种品质无法立刻学会,但往往有很多东西能促使我们坚持,比如兴趣。我对于安全的坚持就是兴趣所驱动的,我会遇到一个线索从早上折腾到凌晨,会因为一个突破点从晚上摸索到下午。 我见过太多优秀的白帽子都是因为热爱,他们能跨行业的热爱。

2.3 适应能力

软件工程师是三年换一轮新技术,而安全工程师则是每年都有新的方向。每天都会有新的漏洞/新的攻击方式/新的语言漏洞,每年也会有新的安全技术、安全防御手段、安全方向,而应对别无他法唯学习,良好的自驱自学能力是一切的基础。

3 安全面试和笔试

如何有效的甄别一些滥竽充数的人,最重要的肯定是面试这道坎。安全圈的东西行业内的人谁都能聊一点,所以一轮面试一定得安全技术负责人亲自把关,深入的问细节来判断。

3.1 面试流程

3.2 面试题目

渗透测试(Web方向)

安全开发(Java方向)

安全运营(合规审计方向)

安全架构(安全管理方向)

3.3 笔试题目

面试题目往往大同小异,而由于圈子小的原因很容易传播出去,如果做过准备哪怕深入的问也可能有漏网之鱼。而笔试往往能很好的看出来其动手能力,所以应尽可能的出一些无法提前预知、无法网上查询的专属题目,题目可以侧重于开发、调试、数据操作等方面。

渗透测试方向

软件开发方向

数据结构方向

表1:list结构(list length>1000)

[
    {
    'id': '111',
    'pid': '0',
    'name': 'A1'
    },
    {
    'id': '222',
    'pid': '111',
    'name': 'A-B1'
    },
    {
    'id': '223',
    'pid': '111',
    'name': 'A-B2'
    },
    {
    'id': '224',
    'pid': '111',
    'name': 'A-B3'
    },
    {
    'id': '333',
    'pid': '223',
    'name': 'A-B2-C1'
    },
    {
    'id': '444',
    'pid': '333',
    'name': 'A-B2-C1-D1'
    }
]

表2:最终的结构

{
  'id': '111',
  'pid': '0',
  'name': 'A1',
  'child': [
    {
      'id': '222',
      'pid': '111',
      'name': 'A-B1'
    },
    {
      'id': '223',
      'pid': '111',
      'name': 'A-B2',
      'child': [
        {
          'id': '333',
          'pid': '223',
          'name': 'A-B2-C1',
          'child': [
            {
              'id': '444',
              'pid': '333',
              'name': 'A-B2-C1-D1'
            }
          ]
        }
      ]
    },
    {
      'id': '224',
      'pid': '111',
      'name': 'A-B3'
    }
  ]
}

4 招聘渠道

4.1 公司内部推荐

内推是优于招聘网站或猎头的,和找女朋友一样,熟人介绍的比媒婆介绍的要好,更不用说相亲网站的质量了。对于中高端岗位公司需要支付较高的猎头费用,所以内推渠道优于其它所有。

4.2 安全行业招聘网站

没有合适心仪的目标就上招聘网站。

5 好的简历

顺便说下好的简历是什么样的,当然一切的前提是有真才实干。

整体要简洁明了,逻辑结构清晰。要能体现出知识、技能、经历、天赋、人脉。

引用

GitHub安全从业者面试指南