2018年12月

复盘第一次面试

最近开始准备年后的春招实习,所以在博客中打了个小广告,一周前一个校友发现我在找实习,就给我推荐了他们实验室:腾讯科恩实验室。现在我来复盘一下我的失败案例,总结一下经验和教训,正式维护自己的知识体系,https://github.com/404notf0und/Base-Learning-for-Security-Offers,其中一部分也是大多数安全从业人员需要掌握的基础知识,希望来年春招能拿到满意的offer。

0x01 我的基本情况

学历方面:本科普通一本,硕士211,学历一般
技术方面:本科主要做渗透测试和PHP代码审计,硕士主要做AI+安全
项目方面:有1~2个学校项目研发经验,有1~2个自己维护的项目

0x02 一面

一面是根据我的简历安排的面试官,因为的简历主要有Web和AI两个部分,所以科恩实验室在一面安排了3个面试官,涵盖了Web和AI,轮番问问题,全面考察面试者。面试官主要根据我的简历来提问,下面是面试官问过的问题:

  1. 自我介绍

  2. 介绍下DNS隧道检测项目

  3. DNS隧道的原理

  4. DNS隧道检测的数据来源、特征向量的来源和形式、你用到的深度学习模型

  5. 为什么选用BiRNN模型?有没有对比分析LSTM、CNN等各个深度学习模型

  6. 有没有考虑过DNS数据中的时间性质的特征,比如DNS隧道传输的时间差值,以及可能会对模型有什么样的影响

  7. 对比分析统计机器学习、自然语言处理和深度学习

  8. DNS重绑定漏洞的原理

  9. DNS域传送漏洞的原理

  10. Tomcat服务器下,MySQL注入如何爆路径

  11. PHP中的“流”有哪些

  12. PHP代码审计中变量覆盖的方法有哪些

  13. 介绍下GBDT

  14. 介绍下简历中的项目一,然后开始追问项目一

  15. 两个小问题,简历中项目二的项目心得写道:深度学习和安全结合的深度不够,但是前景很广阔。解释下为什么深度不够,为什么前景广阔

  16. 有没有用机器学习做一些安全以外有意思的事情

  17. 你们导师放不放人去实习以及你的实习打算

  18. 你有没有什么要问的问题

一面总结:面了一个小时多一点,开始因为紧张导致表述有点问题,加上一年来主要关注了AI+安全,关于渗透测试和代码审计这块,有些tricks已经记不清了,全凭以前的记忆来回答了,问题的点基本都回答上来了,遇到不懂的反问了面试官。
自我评价:表现一般,虽然和面试官们聊得还行吧,但是还是不太满意自己的表现。
有待提升:需要好好准备一下,把已有的东西回顾和总结一下,增强表达能力,表现会更好

0x02 二面

猝不及防的二面(哭),下午和女朋友逛完街回来的时候,发现手机有个未接电话,很显然是面试官打来的,因为不知道分机号啥的,只能等面试官再次打过来,到了晚上正在宿舍玩游戏的时候,面试官打电话过来了,吓得我游戏都掉了(哭),然后约面试,十分钟后二面,赶紧关掉游戏,准备二面。二面的面试官感觉很严肃,我挺紧张。下面是面试官问的问题:

  1. 自我介绍

  2. 看你简历中写道大二起接触网络安全,介绍下怎么接触的安全?从什么时候开始学习AI的?

  3. 介绍下简历中的项目一

  4. 开始追问,追问的超级细致,项目几个人做的?你在项目中的角色?项目的起止时间?架构方面,elk都是啥?为什么选用elk架构?有没有想过其他方案,对比其他方案如何?架构所用到的代码量级有多大?是你做还是你同学在做?数据方面,怎么采从哪采的数据?数据量级多大?数据是什么形式的?具体到每个pcap包的大小,以及采集的时间?为什么你不去采集数据?深度学习模型方面,介绍下你选用的深度学习模型的后两层结构?结果方面,结果是在Kibana中如何显示的?项目的代码量级?

  5. 操作系统的用户态和内核态的切换过程

  6. python中基础数据类型元组和列表的区别

  7. python中访问URL的库有哪些

  8. 开始追问requests库,requests库是如何处理302跳转的?具体的处理过程是怎样的?

  9. 堆和栈的区别

  10. 你的实习打算,如果给你三个月时间,你的规划是怎样的(这点当时没get到面试官的意思,我当时回答了AI本身的安全对抗和AI的框架漏洞挖掘,回答的很不好,然后和面试官讨论了一下,个人感觉面试官对使用AI来做一些进攻性方面的安全应用比较感兴趣?比如AI辅助漏洞挖掘?正好科恩也有做漏洞挖掘。无论是哪样,类似科恩这种顶尖的研究型实验室,面试官考验的是个体的基础研究能力,我想科恩实验室的每个人都可以是一个研究个体)

  11. 有没有什么想问我的

二面总结:面了50分钟,二面面试官问的问题很全面、基础和细致,涵盖了技术结构、深度学习模型、数据结构、操作系统、编程语言等中细节,给我很大的压力。面试官问的都是我的软肋,比如我主要做的是机器学习,面试官问深度学习模型细节的时候,我回答的不好。全程都不敢反问面试官(面试官深似海,不断在深挖,直到挖到我回答不了为止),遇到不懂的直接解释不会,回答的面试官直接过问题继续问下一个问题了
二面表现:感觉在没复习裸考,表现的很糟糕,估计凉了
总结教训:大三学的专业课知识都忘了,考研考试也只复习了计算机网络,需要把科班基础知识好好复习一下,再把自己不是很熟悉的深度学习等方面深入一下,不能只擅长某一两点,要全面提升,让自己没有明显的短板,这次的面试收获了很多。

0x03 我的计划

本来按照我的春招计划,我把要复习的知识分成了五大块:基础语言类、科班基础课程类、机器学习基础类、网络空间安全基础类、安全算法类,在github上https://github.com/404notf0und/Base-Learning-for-Security-Offers,前两周刚开始准备机器学习基础类,本来计划下一步再深入操作系统、数据结构这些基础课程的,计划在正式春招之前,把自己打造的更全面,没想到面试来的这么早,面试问到这些问题的时候,慌的一比,这也提前暴露了我的一些问题,比如准备不充分、基础不扎实,明白了自己的不足,接下来几个月需要先全面深入一下基础知识,再把自己的知识体系打造的更全面,来年春招吃鸡。