个人背景
从一个脚本小子转成安全开发工程师。计算机专业,18届某末流985本科应届生。最后签约腾讯 MIG 去电脑管家给各位弹广告。
关于这个帖子
- 禁止转载。
- 帖子内容结构不太清晰,加了修饰词和自己的感悟,为了避免核心技术被窃取有些地方有打码
- 公司排名不分先后,这里是按照我的面试时间进行的排序。
- 感谢帮我内推的前辈们,和对我关心之至的老师、朋友们,谢谢!
阿里面经
内推 阿里云 安全开发岗位 拿到 Offer
第一面
依稀记得那是一个燥热的下午,当时我在交大徐汇校区听神仙做报告,然后嗡嗡嗡手机就响了,拿起来一看,我擦!浙江杭州打过来的电话,顿时菊花一紧肾上腺素飙升,完蛋,第一次面试要来了,我心想着。
电话接通之后,对面传来:“你好,我是你的破壁面试人。” 我的妈耶!
于是和面试官进行了亲切友好地交谈,交谈中主要聊了一下以下的问题:
面试官:你觉得 Python 有什么库比较好用啊?
我:要说好用我肯定推Gevent,太厉害了这个。
面试官:别的呢?
我:别的一下子想不起来,没有了,您引导引导我?
面试官:用过 ORM 没有。
我:用过用过,我用过那个 SQL-A-L-C-H
面试官:sei-kel-a-ke-mi 是吗?
我:是的是的
感悟:常用的英文名词要学会怎么练,不然面试时候会很尴尬。
面试官:这样,你说一说你最精彩的日站经历吧。
我:我日过我们学校的教务处,也日过我们学校的校园卡中心。教务处的事情是这样的 balabala
面试官:你这个不精彩啊,绕过 waf 没?
我:绕过,倒是没过。
面试官:...
我:面试官我绕过我们学校的防御,学校有个系统有SQL 注入,然后有防御措施 sqlmap 搞不定是我自己写脚本搞出来的。
面试官:哦,这样。
我(顿感局势不对,脑子狂转,忽然小灯泡亮了):我打 CTF 的时候经常做 Web 题目有时候能绕过防御措施,这个算吗?
面试官:这个也算,哎你 CTF打得怎样?
我:不行很菜,只能做签到题偶尔能做出个 Web 题。
感悟:能不能绕 waf 可能代表个人的水平,所以有时间可以去绕一绕 waf。
第一面基本就这么多了,然后面试官问:你有什么要问我的吗?这让我很吃惊啊,这种问题改怎么回答呢?直接问“您感觉我这个技术水平能进阿里吗?”会不会不太友好?脑袋狂转之后我想出了一下能伸能缩,能不让面试官为难又能让我了解一下我真正想了解的事情。于是我问了这么一个问题:”*****************”。面试官听完哈哈一笑,热情洋溢地和我聊了两分钟,一面到此结束。
第二面
听闻阿里一面主要是看看简历有没有作假,第二轮才是考验基本知识的,经过一面之后,我复习了一下简历上的技能栈,又把常用的技术名词的英文发音翻译用拼音翻译了一遍贴在了我的床边,每天睡觉之前反复看几遍。在紧张焦虑的等待之后,第二轮面试来了。
第二轮面试的面试官是个大牛,面试的内容基本以我的简历为主,这次问过有没有刷 SRC 的精力,我讲乌云倒闭之后我就不找漏洞了,之后面试官让我分享一个日站经历。于是我就讲了一个因为短信验证码的问题导致的可控制物联网设备
的漏洞,一开始面试官听到控制冰箱是很感兴趣的,以为我是个搞 IOT 的,随着我后来的一阵解释,面试官感觉这个漏洞索然无味,然后就放弃了这方面的探讨。
于是面试官问我简历上的 SQLMAPAPI 的项目,问了项目的主要架构,随着我对架构的一阵解释,面试官觉得这个话题索然无味,又放弃了这方面的探讨。这是我感觉有点不对劲,再这么下去面试怕是要亮,于是忽然想起研究生学长们发 paper 的套路,紧急提出了话题:“我对 SQLMAP 的源码进行了更改使之更适合我的项目”。说完这个我仿佛感到面试官又充满了活力,“噢?你讲讲看”,于是我 balabala 分析了一遍 SQLMAP 的现有的不足以及我是如何对它进行改进的。面试官听完表示还行,然后看了一下表之后讲:今天的面试就到这里了,有没有什么想要问的?这种问题太难回答了,这次我耿直的讲:“其实没有什么想要问的了,哈哈哈哈“,面试官表示好,你等通知吧。
第三面
面了两轮之后感觉有点成油条了,同时看了一下别人的面经好像接下来就是 HR 面了,HR 面完就该给 Offer 了。
玩玩没想到,面完这轮之后又来了一轮技术面。
这次技术面和之前的技术面差不太多,都是针对简历上的项目进行提问,没太多可记录的。印象比较深刻的是面试官问我:”最近有遇到什么难解决的问题没有?“,一眼道破天机,我感觉我和面试官开始破冰了。当时正值实习期间,每天都遇到各种各样奇奇怪怪的问题,于是 balabala 和面试官说了很多,面试官微微一笑,从面试官尴尬又不失礼貌的笑声中我察觉到面试官应该是想:”这小伙虽然技术水平不咋地,但抗压能力还行。”
然后第三次面试就结束了。
总结第二次面试和第三次面试,因为我简历上的项目比较合适,面试官都能一眼看到技术架构,就愿意开启上帝模式和我聊聊简历上的内容,听听我的思路。所以简历上有渗透测试的经历千万不要写参加 xxxxx 校园营销大赛获得 x军这样和技术无关的经历。
第四次面试
阿里第四次面试是阿里云西雅图团队的大牛面试的我,如果说前面三次面试都在掌控范围之内的话,这次面试经历可以说是比较难了,触碰到了我的很多知识盲区,让我学习到了不少的东西。首先是来问了一个XSS的问题,XSS 是什么,XSS 是怎么形成的,XSS 有哪些防御方式。前面两个想必大家都会,第三个我只知道输出数据的时候记得编码
以及用 HTTPOnly 减小损失
,面试官表示不满,
问:CSP 你知道是什么吗?
答:这个接触得少,不太了解。
面试官表示没关系,然后又问:SSRF 你知道吗?
我:这个知道,之前看猪猪侠讲过这个问题,要想知道 SSRF 首先得了解什么的 SSR,balabala...
面试官:让你写一个扫描器去检查xx 个网站是否存在 SSRF 漏洞你会怎么做?
我:首先找到可控输入,然后找出存在 SSR 的可控输入,然后再验证是否存在 SSRF,验证 ssrf 可以********。(这是我面试的时候我想表达的意思,但是面试时候我的表达远没这个清楚,各位可以试一下把这个问题有条理地讲清楚,表达能力太重要了)
面试官表示还行,又问:反爬虫怎么做?
我:“要想做反爬虫,首先得把用户流量和异常流量区分出来。怎么区分这个用户流量和异常流量呢 balabala “,然后把自己绕进去了。把自己讲晕了之后然后急忙刹车,说道:”其实刚才讲的都只是理论上的方法,其实最实用的的反爬虫技术是********,或者********,这也是业界大家比较通用的解决方案。”
面试官:“好,我知道了,今天的面试就差不多到这里的了,你有什么要问我的吗?”
我:”您觉得我刚才回答得怎么样?!“
面试官:”还行其实,就是 xxxx 那里我以为你会讲 xxxx 然后你讲了 xxxx“(这里有点记不起来了)
我:”啊这个 xxxx 我也会其实,要不我再给您讲一段?“
面试官(猜测表情可能无奈):”行,你讲吧。“
然后我又返了个场,结果还是没太讲明白。(真丢人,回头一想觉得这是面试大忌,不能随随便便轻易返场。
然后面试官表示好,然后这次面试基本就结束了。
面试总结:这次面试脱离了我之前简历上的项目,给了我新的业务场景(虽然很简单),但是要在很快的时间想出解决方法并且能够把理清,并且有条理得表达出来,感觉还是有点难度。(各位可以自己试一试
第五次面试
第五次面试是 HR 面,HR 面就相对简单多了,你大学喜欢做什么呀,有女朋友吗?大学里面最有成就感的一件事是什么呀?同时我感觉面试我的 HR 可能是个实习生或者刚入职不久的同学,感觉面试套路不是很清晰。然后第五次面试就到这里为止了。
第六次面试
第六次面试就相对难一点了,感觉是个高 P 在面我,问了我很多不知道的问题,比如讲机器学习了解多少?epoll是什么了解不了解,以及操作系统的一些知识(时间有点久想不起来具体问题了),然后问了数据库设计,你对数据库了解多少啊?
。其实这种问题在面试中是很难回答的,抽象不具体。我的回答是:“熟悉数据库的基本使用,能够针对业务场景对数据库进行调优,同时了解数据库设计的基本原则。“然后说到这里我忽然灵机一动,啊,前两天刚看了1NF 2NF 这种的可以拿出来用了,然后又把这个加上了。然后在接下来我的语言就如同滔滔江水连绵不绝,话就多了起来,考虑到这个高 P 可能也很久不写业务代码了,我讲点基本功没准高 P 能感兴趣,然后就在对话中把面试官的问题把我会的方向引导(记不清楚具体问题了 QAQ,只记得我讲完3NF 和 BCNF 之后聊天就顺畅多了)
至此,阿里的面试结束。一整套面试完了下来感觉自己成♂长了不少。整套流程走了2个月+后拿到 offer。所以面阿里的同学要做好准备,阿里的面试周期很可能是以周为单位的,心急火燎并没有什么用。
阿里面试补充
忽然想起来 SSRF 这个出镜率很高,但是我只在上面提到了一次,我记忆中应该是有两次或者是三次都问到了这个问题。各位可以多关注一下。
又想起来一些:有没有写过什么安全相关的文章,常逛哪些技术社区,你做过什么比较 geek 的事情吗。
360企业安全面试
挖坑待填
绿盟面试
面试岗位:安全研究院,拿到 Offer 线下面试 第一轮面试属于群面
大约在去年秋季的一个下午,帅核桃正在实验室刷美剧,忽然看到老板转发过来一条消息:“明天绿盟有内部推荐招聘会,要去的话我给你地址。”,然后看了一下招聘需求,在招的岗位都是安全研究岗,JD 中写要求研究生学历,迫于对研究的热爱,没忍住给 HR 打了个电话,HR 表示欢迎过来本科生我们也可以考虑。
于是第二天我就过去了,面试地点是交大的一个咖啡厅,现场大概有二十人左右,以研究生为主,但是都不是做网络安全的,与我同组的有通信工程的同学与数学院的同学。
会议开始时面试官(技术大佬)介绍了一下绿盟的研究院主要的研究方向和研究成果。听完之后感觉绿盟确实厉害,在安全方面有很深厚的技术积淀。然后开始了群面的环节。(也不知道这个叫不叫群面)
群面是四人-五人一组,给出一个问题然后小组讨论之后给出解决方案。给出了两道面试题。第一题的大意是
绿盟有自己的流量日志(比如说有某个城域网的所有出入流量),通过这些流量可以做威胁情报,比如 xx IP 最近一直在扫描,我们把这个情况下发到企业的终端,在企业的流量入口处就屏蔽这个 IP。但是有个问题是我们的流量有限,比如说只有上海的流量但是没有广州的流量,所以需要和友商交换威胁情报数据,但是同一个 IP友商可能给出截然相反的数据:比如讲 A 厂商反馈这个是个在扫描的 IP,B 厂商反馈这个IP是正常的家庭用户,C 厂商反馈这个厂商是开放的代理服务器。绿盟拿到这些数据之后如何减少误报率。设计算法+数据库+简单 WebUI
第二题的大意是
家庭物联网设备如何做安全加固。画出示意图
我们组选择的是第一题,因为有两个数学院的大佬,一拍即合决定使用机器学习来做,我这种小菜只会用sklearn 调调参数,于是数学院的大佬讨论了应该用什么算法做,我就默默地在旁边对 IP 做特征工程,比如说 IP 上绑定的站点,C 段机器的情况,该 IP 在我们流量日志里面的情况... 简单用了一些特征算了一下之后忽然感觉不对,这题有问题啊,我们这些特征工程我们自己就能做,那从友商那里调来的 API 就没什么用了。和组内的同学说了一下,组内的同学表示你抓紧设计数据库画个 WebUI。然后模模糊糊听到两个数学院的大佬在说些什么 xgboost啊,损失啊,展开啊...然后我没敢搭话,继续琢磨了就...
时间飞快,三十分钟很快就过去了,我们组设计出来了一套💯的系统,尤其是 WebUI 设计得十分美观。
![Xnip2018-05-01_20-56-46.jpg](https://camo.githubusercontent.com/22092da724b530293661ddb40af2c5606d355503398458c49923f5adb85d7d1c/68747470733a2f2f692e6c6f6c692e6e65742f323031382f30352f30312f356165383634326435363037352e6a7067)
然后展示的方式是一个人上台讲解整体架构模型(这个就相当于小组组长了),然后组员上台评价一下这个方案 的优点和不足之处。
我们组的组长上去就是一顿xgboost 的原理推倒,数学公式搞完之后大家就懵逼了(后来这个哥们拿了面试直通卡)。
然后我觉得我们的优点是有扎实的理论基础,xgboost在工业界经受住了考研,说明算法本身是没问题的。我们的缺点是*************************. 然后面试官微微一笑,yoho 小伙子你还挺屌,那你觉得应该怎么做,我反手就是一个*操作:***********************. 面试官表示可以小伙子,我很欣赏你的勇气。然后啪啪啪大家鼓掌我们组就结束了。
听完其他组的汇报之后就是茶歇时间,时间到了下午五点多了,我们吃了很多很多现场的小饼干,然后绿盟的小姐姐就表示 xx,xx,xxx,xx.. 这些人通过了面试,其他人没什么事的话就可以走了。
然后开始第二轮面试,面试官问了问我这边老板的项目、我的 offer 情况和我的预计薪资,我问了绿盟研究院在绿盟的定位 etc。然后这次面试就结束了。
大概一个周之后接到了绿盟的第三面,第三面很水,面试官和我聊了聊我的项目,但是没有深入细节,就和聊天一样,介绍了绿盟的大佬们和绿盟的工作氛围。然后几天之后拿到绿盟HR 的电话,拿到 offer。base 北京/上海 可选
腾讯面试
挖坑待填
腾讯的面试我印象不是很深刻了,可能会比较简略。
小广告
关注我,我带你开车