职位类型:安全工程师
面试地点:北京
招聘公司:北京小米科技有限责任公司
我是一名工程师,已经工作了3年,也算是个有点工作经验的人士了。小米公司也差不多是这3年里起来的,还记得小米第一款手机我就买了,当时觉得特别值,价格便宜,功能强大。随后小米在国产手机行业里也占领了一个不可动摇的位置。
我有幸来到了小米公司面试,这次面试给我的感觉很深刻,让我知道了我为什么喜欢小米的产品,下面就看看面试的经历吧。
小米公司招聘安全工程师的面试笔试经历
面试采用电话面试的形式,主要针对简历上的内容发问,耗时1h20min左右。根据问题推断,应该是要对我做一个比较全面地初步了解。下面是我还记得的几个面试题:
1.做个自我介绍
2.当初为什么选择信息安全这个专业?你觉得研究生阶段收获了什么?你觉得读研是否有价值
3.说说BASE64编码的过程
4.熟不熟悉Linux系统,Linux命令用的多么?会不会使用awk,比如说我要读取一个文件的第二行信息,应该怎么做?
5.几个项目经历的一些说明
a)项目是做什么的?应用环境?
b)系统的处理能力以及性能瓶颈
c)自己解决的问题,改进的地方
总结一下小米面试官主要看的几点:
1.熟悉Linux操作系统,计算机网络等,基础知识扎实
2.精通Linux系统下C语言以及Python、php、Shell等脚本语言开发
3.进攻web安全技术,熟悉OWASPTOP10漏洞,并了解漏洞原因以及解决方案
4.熟悉渗透测试流程,并有较强渗透测试和漏洞挖掘能力
5.了解移动平台漏洞挖掘技术,以及解决方案
6.学习能力强,肯钻研,认真踏实
7.有良好的时间观念,能很好的沟通交流,乐于分享
8.具有正确的价值观,良好的职业道德,充分认识到信息安全工作的社会责任
小米研发类(貌似仅软件)的笔试分A、B两套试题,其中A卷供应聘非运维类岗位的童鞋使用,B卷供应聘运维类岗位【职位列表条目中用运维部标注】的童鞋使用。而我应聘的安全工程师属于运维部,使用的是B卷。A卷我大概瞟了一眼,全是程序设计的大题,而B卷则以问答题为主。
B卷的范围主要涉及:Linux应用基础、计算机网络、网络安全(主要是Web渗透方面)、编程开发、数据库原理与应用。下面例举了一些我当时记下来的题目:
1.设计一个shell脚本xm.sh,在/tmp/test下创建50个目录,即user1至user50,并设置每个目录权限,其中其他用户权限为“读”,文件所有者权限为“读写执行”,文件所有者组的权限为“读执行”。
2.Linux系统中执行uptime后会有以下输出:
10:54:44up158days,20:11,3users,loadaverage:0.62,0.41,0.31
其中loadaverage的三个值分别代表什么含义?造成load值很高有哪些常见的原因?
3.线上运行的程序/usr/sbin/nginx,有可能因为某个特殊请求或BUG导致服务异常退出,但可以通过重新开启继续服务。设计一种方式,能够监管程序异常,并在异常退出时自动开启。
4.Linux系统掉电有可能造成数据损失,原因是什么?有哪些方面可以降低或避免这种问题?
5.有用户反馈无法访问http://www.xiaomi.com,请简述排查过程和可能的原因。
6.ARP协议的用途是什么?简述其工作过程
7.简述你所了解的网站负载均衡方式。
8.Linux下常用的文件系统格式有哪些?其特性是什么。
9.如在PHP源码中有如下语句,有什么安全风险?并写出其利用原理
10.你所了解或者使用过的渗透测试工具都有哪些?分别阐述其工作原理,以及对比各自的优缺点。
11.简述线程和进程的关系,对比httpserver的多线程实现和多进程实现的优缺点
12.请简述链表与数组的区别:编写一个程序,merge两个升序数组,用你熟悉的语言实现,如果是C语言的话,方法签名如下:int[]merge_array(int[]a,int[]b)
13.前端web开发
a)CSS:列出display的值,说明他们的作用?
b)JavaScript:请列出js中的基本数据类型。
c)JavaScript:通过js来隐藏一个DOM元素,比如ele为被操作的DOM元素。
14.数据库理论
a)说说你对索引的理解(包括索引的结构、对dml影响、对查询影响)。一个表的索引是否越多越好?
b)什么是事务?有什么特性?
c)什么是巴斯-科德范式(BCNF)?
15.SQL语法
有如下三个表:
学生(学号,姓名,性别,年龄,系号)
课程(课号,课名,学时)
选课(学号,课号,成绩)
a)查询有不及格科目的学生姓名(60分及格)
b)查询各科成绩的最高分,显示课号和最高分
c)查询选课人数不足30的课程名称
就拿笔试来说,小米的考试范围比较广泛,可能跟他们的企业文化或商业战略有关系吧,需要一些符合他们想法的人群。再有就是对细节和深度比较重视,能在小米公司里工作确实学到了很多。