職位類型:安全工程師
面試地點:北京
招聘公司:北京小米科技有限責任公司
我是一名工程師,已經(jīng)工作了3年,也算是個有點工作經(jīng)驗的人士了。小米公司也差不多是這3年里起來的,還記得小米第一款手機我就買了,當時覺得特別值,價格便宜,功能強大。隨后小米在國產(chǎn)手機行業(yè)里也占領(lǐng)了一個不可動搖的位置。
我有幸來到了小米公司面試,這次面試給我的感覺很深刻,讓我知道了我為什么喜歡小米的產(chǎn)品,下面就看看面試的經(jīng)歷吧。
小米公司招聘安全工程師的面試筆試經(jīng)歷
面試采用電話面試的形式,主要針對簡歷上的內(nèi)容發(fā)問,耗時1h20min左右。根據(jù)問題推斷,應(yīng)該是要對我做一個比較全面地初步了解。下面是我還記得的幾個面試題:
1.做個自我介紹
2.當初為什么選擇信息安全這個專業(yè)?你覺得研究生階段收獲了什么?你覺得讀研是否有價值
3.說說BASE64編碼的過程
4.熟不熟悉Linux系統(tǒng),Linux命令用的多么?會不會使用awk,比如說我要讀取一個文件的第二行信息,應(yīng)該怎么做?
5.幾個項目經(jīng)歷的一些說明
a)項目是做什么的?應(yīng)用環(huán)境?
b)系統(tǒng)的處理能力以及性能瓶頸
c)自己解決的問題,改進的地方
總結(jié)一下小米面試官主要看的幾點:
1.熟悉Linux操作系統(tǒng),計算機網(wǎng)絡(luò)等,基礎(chǔ)知識扎實
2.精通Linux系統(tǒng)下C語言以及Python、php、Shell等腳本語言開發(fā)
3.進攻web安全技術(shù),熟悉OWASPTOP10漏洞,并了解漏洞原因以及解決方案
4.熟悉滲透測試流程,并有較強滲透測試和漏洞挖掘能力
5.了解移動平臺漏洞挖掘技術(shù),以及解決方案
6.學(xué)習(xí)能力強,肯鉆研,認真踏實
7.有良好的時間觀念,能很好的溝通交流,樂于分享
8.具有正確的價值觀,良好的職業(yè)道德,充分認識到信息安全工作的社會責任
小米研發(fā)類(貌似僅軟件)的筆試分A、B兩套試題,其中A卷供應(yīng)聘非運維類崗位的童鞋使用,B卷供應(yīng)聘運維類崗位【職位列表條目中用運維部標注】的童鞋使用。而我應(yīng)聘的安全工程師屬于運維部,使用的是B卷。A卷我大概瞟了一眼,全是程序設(shè)計的大題,而B卷則以問答題為主。
B卷的范圍主要涉及:Linux應(yīng)用基礎(chǔ)、計算機網(wǎng)絡(luò)、網(wǎng)絡(luò)安全(主要是Web滲透方面)、編程開發(fā)、數(shù)據(jù)庫原理與應(yīng)用。下面例舉了一些我當時記下來的題目:
1.設(shè)計一個shell腳本xm.sh,在/tmp/test下創(chuàng)建50個目錄,即user1至user50,并設(shè)置每個目錄權(quán)限,其中其他用戶權(quán)限為“讀”,文件所有者權(quán)限為“讀寫執(zhí)行”,文件所有者組的權(quán)限為“讀執(zhí)行”。
2.Linux系統(tǒng)中執(zhí)行uptime后會有以下輸出:
10:54:44up158days,20:11,3users,loadaverage:0.62,0.41,0.31
其中l(wèi)oadaverage的三個值分別代表什么含義?造成load值很高有哪些常見的原因?
3.線上運行的程序/usr/sbin/nginx,有可能因為某個特殊請求或BUG導(dǎo)致服務(wù)異常退出,但可以通過重新開啟繼續(xù)服務(wù)。設(shè)計一種方式,能夠監(jiān)管程序異常,并在異常退出時自動開啟。
4.Linux系統(tǒng)掉電有可能造成數(shù)據(jù)損失,原因是什么?有哪些方面可以降低或避免這種問題?
5.有用戶反饋無法訪問http://www.xiaomi.com,請簡述排查過程和可能的原因。
6.ARP協(xié)議的用途是什么?簡述其工作過程
7.簡述你所了解的網(wǎng)站負載均衡方式。
8.Linux下常用的文件系統(tǒng)格式有哪些?其特性是什么。
9.如在PHP源碼中有如下語句,有什么安全風(fēng)險?并寫出其利用原理
10.你所了解或者使用過的滲透測試工具都有哪些?分別闡述其工作原理,以及對比各自的優(yōu)缺點。
11.簡述線程和進程的關(guān)系,對比httpserver的多線程實現(xiàn)和多進程實現(xiàn)的優(yōu)缺點
12.請簡述鏈表與數(shù)組的區(qū)別:編寫一個程序,merge兩個升序數(shù)組,用你熟悉的語言實現(xiàn),如果是C語言的話,方法簽名如下:int[]merge_array(int[]a,int[]b)
13.前端web開發(fā)
a)CSS:列出display的值,說明他們的作用?
b)JavaScript:請列出js中的基本數(shù)據(jù)類型。
c)JavaScript:通過js來隱藏一個DOM元素,比如ele為被操作的DOM元素。
14.數(shù)據(jù)庫理論
a)說說你對索引的理解(包括索引的結(jié)構(gòu)、對dml影響、對查詢影響)。一個表的索引是否越多越好?
b)什么是事務(wù)?有什么特性?
c)什么是巴斯-科德范式(BCNF)?
15.SQL語法
有如下三個表:
學(xué)生(學(xué)號,姓名,性別,年齡,系號)
課程(課號,課名,學(xué)時)
選課(學(xué)號,課號,成績)
a)查詢有不及格科目的學(xué)生姓名(60分及格)
b)查詢各科成績的最高分,顯示課號和最高分
c)查詢選課人數(shù)不足30的課程名稱
就拿筆試來說,小米的考試范圍比較廣泛,可能跟他們的企業(yè)文化或商業(yè)戰(zhàn)略有關(guān)系吧,需要一些符合他們想法的人群。再有就是對細節(jié)和深度比較重視,能在小米公司里工作確實學(xué)到了很多。