盤:安全崗高頻考點(diǎn)與答題思路)
2019年那場春招奇安信筆試我印象挺深。當(dāng)時(shí)我身邊不少同學(xué)以為網(wǎng)絡(luò)安全公司的筆試就是刷“安全工程師題庫”結(jié)果一上來就被題目里的場景化問法打懵了。那一輪筆試考察的并不是簡單的概念背誦而是安全服務(wù)、滲透測試、應(yīng)急響應(yīng)里真正會遇到的問題全部壓縮成一張?jiān)诰€試卷。這篇文章不打算貼所謂的標(biāo)準(zhǔn)答案因?yàn)榫W(wǎng)上流傳的版本本來就七零八落。我根據(jù)自己的回憶結(jié)合當(dāng)年校招群里大家討論出來的復(fù)盤版本把奇安信2019春招筆試題一涉及的題型、高頻考點(diǎn)和答題思路完整梳理一遍。目標(biāo)是幫準(zhǔn)備走安全方向的讀者建立一條清晰的復(fù)習(xí)線索同時(shí)也讓你知道每道題背后對應(yīng)的工作場景和影響范圍。無論你是在校生還是剛轉(zhuǎn)行想做安全這篇文章應(yīng)該都能幫你少走一點(diǎn)彎路。1. 筆試到底在篩什么1.1 不是讓你背答案是看你怎么分析問題奇安信的筆試題目有一個(gè)很明顯的特征題目都會套上一個(gè)“已經(jīng)發(fā)生了什么”的場景。比如一道選擇題它不會直接問“SQL注入是什么”而是給你一段登錄接口的代碼讓你判斷存在問題。這種出題方式篩掉的是靠背題通過的選手留下的是真正理解攻擊鏈路的人。我當(dāng)時(shí)印象很深的一道題大意是給了一個(gè)PHP文件上傳功能的代碼片段選項(xiàng)里有“未校驗(yàn)文件類型”“文件名拼接路徑時(shí)可目錄穿越”“上傳目錄沒有禁止腳本執(zhí)行”等。很多同學(xué)只盯著“文件類型校驗(yàn)”這一個(gè)點(diǎn)卻忽略了后面的路徑拼接問題。那道題的正確思路應(yīng)該是把文件上傳一整個(gè)流程走一遍從哪里上傳、存儲到哪個(gè)目錄、文件名怎么生成、上傳之后能不能被解析執(zhí)行。任何一個(gè)環(huán)節(jié)有疏漏都會導(dǎo)致完全不同的利用方式。所以準(zhǔn)備筆試不要只記結(jié)論要習(xí)慣用“輸入-處理-輸出-影響”這條鏈去思考安全風(fēng)險(xiǎn)。這個(gè)思維在后面的編程題和場景分析題里基本上會反復(fù)出現(xiàn)。我把題目里“為什么這么問”當(dāng)成第一件事來復(fù)盤后面再去拆具體知識點(diǎn)效率會高很多。后來跟一些做招聘的同學(xué)聊過他們也說筆試要看的往往是“分析路徑”而不是那個(gè)最終結(jié)論因?yàn)樽罱K結(jié)論在真實(shí)工作里可以查文檔分析路徑卻只能靠自己攢。1.2 題型分布與時(shí)間分配建議根據(jù)當(dāng)時(shí)的印象奇安信2019春招筆試題一大致分為三類客觀題、主觀場景分析題、在線編程題??陀^題分布在最前面覆蓋網(wǎng)絡(luò)基礎(chǔ)、Linux、數(shù)據(jù)庫、Web安全基礎(chǔ)主觀題一般是給一段日志或代碼讓你寫出漏洞成因、利用思路和修復(fù)建議編程題則是標(biāo)準(zhǔn)的在線編程平臺模式會有用例判分。我建議的時(shí)間策略是客觀題控制在總時(shí)長的35%以內(nèi)不要在一道不確定的選擇題上糾結(jié)太久主觀題至少留30%因?yàn)檫@類題按點(diǎn)給分寫得越完整越容易拿分最后剩下的時(shí)間全部給編程題哪怕只能過部分用例也要把暴力解法跑通至少不能交白卷。年份和具體題量我不保證完全準(zhǔn)確但備考時(shí)按這個(gè)結(jié)構(gòu)來分配是穩(wěn)妥的。你可以把投遞方向也考慮進(jìn)去偏滲透的方向Web安全和系統(tǒng)安全權(quán)重更高偏研發(fā)的方向編程題和數(shù)據(jù)結(jié)構(gòu)權(quán)重更高。我見過有人把大量時(shí)間花在記憶CVE編號上結(jié)果筆試?yán)锲鋵?shí)不考這種死記硬背的東西反而因小失大。時(shí)間花在哪里方向要對。2. 高頻考點(diǎn)逐個(gè)拆解2.1 網(wǎng)絡(luò)基礎(chǔ)端口、協(xié)議、日志特征網(wǎng)絡(luò)安全公司筆試考網(wǎng)絡(luò)基礎(chǔ)算是一種“行業(yè)慣例”。TCP三次握手、HTTP狀態(tài)碼、DNS解析流程、TLS握手過程這些幾乎是必背內(nèi)容。但奇安信的考法會加一層“安全視角”。比如同樣的HTTP狀態(tài)碼它不會只考404代表什么而會問你“掃描器不斷收到401/403說明目標(biāo)可能做了什么防護(hù)”。這種題考的是對協(xié)議特征和訪問控制機(jī)制的理解。端口映射也是一個(gè)高頻點(diǎn)。SSH是22MySQL是3306Redis是6379Elasticsearch是9200這些數(shù)字在安全日志分析里天天出現(xiàn)。筆試?yán)锟赡軙o一段報(bào)警日志讓你判斷是Redis未授權(quán)訪問還是MySQL弱口令爆破??吹蕉丝诤头祷靥卣骰揪湍芘袛鄠€(gè)八九不離十。我當(dāng)年就是把常用端口和服務(wù)整理成一張表每天過一遍筆試時(shí)確實(shí)幫了大忙。還有一類網(wǎng)絡(luò)題跟流量分析相關(guān)會讓你從HTTP日志中找異常。正常日志的User-Agent比較雜但如果大量請求的UA都是同一個(gè)掃描器特征或者URL路徑里包含常見的敏感目錄就值得警惕。這種題與其說考協(xié)議不如說考能不能從日志里讀出安全事件。如果你平時(shí)用過Wireshark或者tcpdump看到這類題目會覺得特別親切因?yàn)楸举|(zhì)就是把抓包分析搬到了試卷上。2.2 Web安全SQL注入、XSS、CSRF、文件上傳Web安全在整張?jiān)嚲砝锏恼急群芨?。這跟實(shí)際工作有關(guān)不管是攻防還是防護(hù)Web漏洞都是最常見的突破口。SQL注入要理解本質(zhì)是“數(shù)據(jù)被當(dāng)成代碼執(zhí)行”因?yàn)殚_發(fā)者把用戶輸入直接拼進(jìn)SQL語句。修復(fù)手段不是簡單“過濾關(guān)鍵字”而是參數(shù)化查詢把數(shù)據(jù)和SQL結(jié)構(gòu)分開。MyBatis里#{}和${}的區(qū)別本質(zhì)上也是這個(gè)原理。XSS考的更多是分類和利用場景。反射型、存儲型、DOM型的區(qū)別以及各自的危害范圍都要能說清楚。這里容易丟分的地方是“影響范圍”的描述。很多人只寫“彈個(gè)窗”但閱卷人想看到的是“存儲型XSS會把惡意腳本持久化在服務(wù)器上訪問該頁面的用戶都會被影響可能造成會話劫持”。把這個(gè)描述完整分?jǐn)?shù)自然就上去了。CSRF相對容易被忽略但筆試?yán)镆渤霈F(xiàn)過。核心是“瀏覽器會自動攜帶Cookie”服務(wù)端無法區(qū)分這個(gè)請求是用戶主動發(fā)起的還是惡意頁面借用戶的身份發(fā)起的。防御思路主要有三種校驗(yàn)Referer、加CSRF Token、關(guān)鍵操作二次確認(rèn)。答題時(shí)把這三條寫全基本不會失分。文件上傳是另一個(gè)筆試常客。題目一般會給一個(gè)上傳接口的代碼問你存在什么問題。你至少要能講清楚幾個(gè)關(guān)鍵檢查點(diǎn)擴(kuò)展名是否做白名單校驗(yàn)、文件內(nèi)容是否校驗(yàn)了文件頭、存儲目錄是否禁止腳本執(zhí)行、上傳后的文件名是否隨機(jī)生成。這幾點(diǎn)對應(yīng)了不同的攻擊路徑寫全才能拿高分。我自己在準(zhǔn)備這部分時(shí)會把每一個(gè)漏洞點(diǎn)都配一個(gè)“如果我是攻擊者我怎么利用”的腦圖反向記憶印象特別深。2.3 加密與編碼識別套路比會寫算法更重要加密相關(guān)題目在2019年的筆試?yán)锊凰汶y但坑很多。比如給你一串“5L2g5aW9”選項(xiàng)里有MD5、Base64、URL編碼、SHA-1??吹浇Y(jié)尾的“”和字符集范圍就能判斷是Base64但很多同學(xué)一看到密文就慌了。我當(dāng)時(shí)是先把常見編碼的特征記下來Base64由大小寫字母、數(shù)字、 /組成長度是4的倍數(shù)經(jīng)常有填充URL編碼是%后跟兩位十六進(jìn)制十六進(jìn)制是0-9和a-f。另一個(gè)高頻坑是“哈希是不是加密”。MD5、SHA-1、SHA-256都屬于哈希算法不可逆AES、RSA屬于加密算法可逆。筆試?yán)锝?jīng)常有人混淆。題目如果問“用戶密碼在數(shù)據(jù)庫里存儲使用MD5是否安全”只回答“MD5不可逆所以安全”是不完整的。因?yàn)槿蹩诹羁梢员徊屎绫矸床樗砸欲}并選擇更合理的密碼哈希方案。這類題背后的工作場景是日志分析和應(yīng)急處置。你在日志里看到一串可疑參數(shù)首先要能判斷它是編碼混淆、加密數(shù)據(jù)還是普通參數(shù)后面才能決定要不要解碼、怎么分析。所以筆試考編碼識別不是單純?yōu)榱藶殡y你。我復(fù)習(xí)時(shí)會把Base64解碼和URL解碼這幾個(gè)常用操作練到形成肌肉記憶因?yàn)楣ぷ骼镎娴臅l繁用到。2.4 系統(tǒng)權(quán)限與主機(jī)安全安全崗筆試基本不會繞過系統(tǒng)基礎(chǔ)。Linux文件權(quán)限、用戶和組、SUID位、環(huán)境變量、計(jì)劃任務(wù)這些都可能出題。我記得有一道題是問“Web服務(wù)以root權(quán)限運(yùn)行存在什么風(fēng)險(xiǎn)”。答案是一旦Web應(yīng)用被攻破攻擊者拿到的就是root權(quán)限后續(xù)提權(quán)步驟都不需要了影響范圍等于整個(gè)服務(wù)器。正確的做法是給服務(wù)單獨(dú)建一個(gè)用戶只授予它需要讀取的目錄和文件權(quán)限。進(jìn)程監(jiān)聽端口也要盡量不用1024以下的特權(quán)端口除非確實(shí)有需要。這類題考察的是最小權(quán)限原則筆試?yán)锟梢杂靡粋€(gè)反向問題來檢驗(yàn)理解程度假如一個(gè)WebShell成功落地但服務(wù)運(yùn)行在低權(quán)限用戶下攻擊者能碰哪些東西想清楚這個(gè)你對權(quán)限的理解就會扎實(shí)很多。Windows方向也可能出題比如自啟動目錄、注冊表Run鍵、服務(wù)權(quán)限配置。如果目標(biāo)崗位偏終端安全這些內(nèi)容占比會更高。我備考時(shí)把Linux和Windows的常見提權(quán)路徑各自整理成一張表不背細(xì)節(jié)只記風(fēng)險(xiǎn)點(diǎn)因?yàn)楣P試關(guān)注的是“你知不知道這里可能有問題”而不是“你能不能復(fù)現(xiàn)提權(quán)exp”。2.5 安全運(yùn)營與日志分析題除了漏洞利用奇安信這類安全廠商也很重視安全運(yùn)營能力所以日志分析題在筆試?yán)锍霈F(xiàn)的概率不低。核心考點(diǎn)是給你一堆系統(tǒng)日志、應(yīng)用日志或流量日志讓你找出異常并判斷原因。比如同一IP在短時(shí)間內(nèi)對多個(gè)賬號嘗試登錄題目會問“這是什么行為該怎么處置”?;卮疬@類題要先定位異常特征時(shí)間維度上有沒有集中爆發(fā)源IP是否單一目標(biāo)是否集中在某個(gè)接口返回狀態(tài)碼有沒有規(guī)律。描述清楚這些再給出處置建議封禁來源IP、通知業(yè)務(wù)側(cè)確認(rèn)賬號安全、增加登錄頻率限制、對已經(jīng)登錄的會話做失效處理。這套回答邏輯我在筆試?yán)镉眠^很多次基本能覆蓋大多數(shù)日志分析題。安全運(yùn)營題最忌諱的就是只回答“封IP”三個(gè)字。閱卷人希望看到你有沒有“檢測-響應(yīng)-處置-加固”的完整閉環(huán)意識。哪怕你寫的步驟很簡單只要你把這個(gè)流程走完分?jǐn)?shù)就會明顯不一樣。這也是我在整理這份復(fù)盤時(shí)最有收獲的一點(diǎn)。3. 幾道典型題的完整復(fù)盤3.1 流量日志分析識別SQL注入嘗試當(dāng)時(shí)筆試?yán)镉幸坏李}給了一段HTTP訪問日志里面有幾個(gè)POST請求請求參數(shù)長這樣192.168.10.7 - - [01/Mar/2019:10:15:23 0800] POST /login.php HTTP/1.1 200 5261 - Mozilla/5.0 192.168.10.7 - - [01/Mar/2019:10:15:26 0800] POST /login.php HTTP/1.1 200 5380 - Mozilla/5.0 usernameadmin OR 11password123456題目問判斷請求是否存在攻擊行為說明判斷依據(jù)和處理建議。我看到這個(gè)參數(shù)的第一反應(yīng)就是SQL注入嘗試。判斷依據(jù)有三個(gè)參數(shù)值里出現(xiàn)了SQL關(guān)鍵字OR和恒真表達(dá)式單引號打破了原有SQL語句結(jié)構(gòu)登錄場景下這種輸入極大概率是在嘗試?yán)@過認(rèn)證。如果有返回包還可以補(bǔ)充判斷依據(jù)請求返回的長度異常、響應(yīng)狀態(tài)碼變化、數(shù)據(jù)庫報(bào)錯(cuò)信息等。處置建議要從兩個(gè)角度寫一是臨時(shí)防護(hù)在網(wǎng)關(guān)或WAF上封禁來源IP并對登錄接口增加頻率限制二是根治修復(fù)代碼里改用參數(shù)化查詢把用戶名和密碼作為參數(shù)交給數(shù)據(jù)庫預(yù)編譯而不是拼接進(jìn)SQL語句。影響范圍要寫明如果注入成功可能造成登錄繞過、用戶數(shù)據(jù)泄露甚至通過數(shù)據(jù)庫寫文件能力進(jìn)一步控制服務(wù)器。這種題不需要多么高深的知識但回答要完整按“發(fā)現(xiàn)-判斷-影響-處置”四步走把你看到的現(xiàn)象、依據(jù)和后續(xù)動作都寫出來。即使判斷錯(cuò)了方向只要邏輯清晰多少也能拿到分。當(dāng)時(shí)群里好幾個(gè)人討論說自己只寫了“存在SQL注入建議修復(fù)”一句話就結(jié)束了。這種回答太單薄閱卷人根本看不出你懂不懂原理。3.2 代碼審計(jì)從參數(shù)拼接到預(yù)編譯代碼審計(jì)題是奇安信筆試?yán)锉容^有區(qū)分度的題型。給我印象最深的是這么一段簡化代碼?php $id $_GET[id]; $result mysql_query(SELECT * FROM users WHERE id $id); while ($row mysql_fetch_assoc($result)) { echo $row[username]; } ?雖然是很老的寫法但思路可以套用到任何語言。第一眼看代碼先找外部輸入$_GET[id]。接著看數(shù)據(jù)流向這個(gè)變量直接拼到SQL語句里沒有任何過濾或類型校驗(yàn)。最后看執(zhí)行點(diǎn)mysql_query執(zhí)行了這條語句。三步走下來SQL注入的判斷就很明確了。修復(fù)方案怎么寫至少給出兩層第一層是參數(shù)化查詢用PDO預(yù)處理把$id作為參數(shù)傳入第二層是輸入校驗(yàn)比如is_numeric判斷id是否為數(shù)字或者按業(yè)務(wù)規(guī)則做白名單校驗(yàn)。答題時(shí)把兩層都寫比只寫一句“過濾單引號”要專業(yè)得多。這段代碼對應(yīng)的工作場景是舊系統(tǒng)改造和安全審計(jì)。你去審一套老代碼經(jīng)常能看到mysql_query這種寫法不可能直接推倒重來只能在現(xiàn)有基礎(chǔ)上用最小改動降低風(fēng)險(xiǎn)。筆試?yán)锟即a審計(jì)本質(zhì)上是在模擬這個(gè)場景。我當(dāng)時(shí)復(fù)習(xí)的做法是每天看5段有漏洞的代碼先自己找問題再對照修復(fù)方案??吹枚嗔舜a里的危險(xiǎn)點(diǎn)基本一眼就能掃出來。3.3 編程題IP合法性校驗(yàn)與日志統(tǒng)計(jì)在線編程題里我遇到過的題型包括字符串處理、數(shù)組、基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。有一道題很典型實(shí)現(xiàn)一個(gè)函數(shù)判斷傳入的字符串是否是合法的IPv4地址。這題本身不涉及安全但很考驗(yàn)邊界處理跟安全日志處理密切相關(guān)。import re def is_valid_ipv4(ip: str) - bool: if not ip or len(ip) 15: return False parts ip.split(.) if len(parts) ! 4: return False for part in parts: if not re.fullmatch(r\d{1,3}, part): return False if len(part) 1 and part[0] 0: return False num int(part) if num 0 or num 255: return False return True這道題容易漏的點(diǎn)有幾個(gè)字符串為空、包含非法字符、分段數(shù)不是4、某段超過255、前導(dǎo)零問題。比如“01.2.3.4”算不算合法不同題目要求不一樣題目通常會說明如果沒有說明我傾向于按嚴(yán)謹(jǐn)格式判False。邊界條件全考慮清楚代碼才算穩(wěn)。另一類編程題更貼近安全運(yùn)營給一段日志文件要求統(tǒng)計(jì)每個(gè)IP出現(xiàn)的次數(shù)輸出Top10。核心就是用正則把IP行提取出來再用字典或defaultdict計(jì)數(shù)最后排序。先寫一個(gè)能跑通的版本再考慮日志文件很大時(shí)如何流式處理不至于一次性讀入內(nèi)存。筆試平臺限時(shí)代碼不一定最優(yōu)但必須保證邏輯正確、能跑出結(jié)果。我的經(jīng)驗(yàn)是編程題平時(shí)刷LeetCode的簡單到中等題就夠但一定要自己手寫不能只看題解。因?yàn)樵诰€筆試的判題環(huán)境對縮進(jìn)、函數(shù)簽名、輸入輸出格式要求很嚴(yán)格平時(shí)不練考場上很容易因?yàn)樾栴}拿不到分。3.4 安全配置題Redis未授權(quán)訪問筆試?yán)镞€有一類題目不給你代碼給你環(huán)境配置讓你判斷風(fēng)險(xiǎn)。最典型的就是Redis未授權(quán)訪問。題面可能簡化成這樣一臺服務(wù)器的Redis服務(wù)監(jiān)聽在0.0.0.0:6379沒有配置密碼也沒有設(shè)置protected-mode問有什么風(fēng)險(xiǎn)。這道題考察的知識點(diǎn)很集中Redis默認(rèn)只監(jiān)聽本機(jī)回環(huán)地址如果修改成公網(wǎng)或內(nèi)網(wǎng)全網(wǎng)段監(jiān)聽并且沒有設(shè)置認(rèn)證外部主機(jī)可以直接連接并執(zhí)行命令。結(jié)合Redis自身的功能攻擊者能往web目錄寫WebShell、寫計(jì)劃任務(wù)、修改配置影響范圍不光是緩存數(shù)據(jù)還可能擴(kuò)散到整個(gè)主機(jī)。修復(fù)建議包括設(shè)置密碼、開啟protected-mode、監(jiān)聽內(nèi)網(wǎng)地址、不要用root權(quán)限運(yùn)行Redis服務(wù)。我把它單獨(dú)拿出來復(fù)盤是因?yàn)楹芏嗳藦?fù)習(xí)時(shí)只關(guān)注Web漏洞卻忽略中間件和數(shù)據(jù)庫配置。奇安信筆試既然考了這類題目說明安全廠商確實(shí)看重“基礎(chǔ)安全配置”這一塊。你在回答時(shí)如果能補(bǔ)充一句“需要先判斷Redis進(jìn)程用什么權(quán)限運(yùn)行”會讓閱卷人覺得你考慮到了權(quán)限維度印象分會明顯提升。4. 最容易被扣分的坑4.1 時(shí)間分配策略我在前面說過客觀題不要戀戰(zhàn)這里再展開講講具體的坑。我當(dāng)年做客觀題時(shí)遇到一道關(guān)于Linux權(quán)限的題猶豫了很久結(jié)果后面編程題時(shí)間不夠最后一道題只寫了個(gè)半成品。后來復(fù)盤發(fā)現(xiàn)那道權(quán)限題就算做對了也就1到2分但編程題半個(gè)題的分值遠(yuǎn)高于它。兩相對比非常不劃算。進(jìn)答題頁之后建議先把全部題目快速掃一遍題目分值一般會標(biāo)注沒有標(biāo)注的話就從主觀題和編程題的分值反推。先做自己確定能拿分的題主觀題就算不確定也要寫思路至少要把“漏洞點(diǎn)-利用效果-修復(fù)建議”這個(gè)框架填滿。只要框架在閱卷人大概率會給你過程分。在線筆試平臺通常不允許切屏所以提前把草稿紙、IDE、文檔準(zhǔn)備好很有必要。不過筆試過程中的操作規(guī)范也要注意我在校招群里看過有人因?yàn)轭l繁切屏被判違規(guī)雖然不知道具體原因但可能跟平臺監(jiān)控有關(guān)。環(huán)境干凈一點(diǎn)對自己只有好處。4.2 常見答題誤區(qū)第一個(gè)誤區(qū)是“答得太短”。主觀題只寫結(jié)論不寫過程。比如“有什么風(fēng)險(xiǎn)”只寫“嚴(yán)重”卻不說明被攻擊后會造成什么影響。你得把攻擊者拿到什么權(quán)限、能讀到什么數(shù)據(jù)、對業(yè)務(wù)有什么影響串起來才能體現(xiàn)你真正理解了風(fēng)險(xiǎn)。第二個(gè)誤區(qū)是“修復(fù)方案太籠統(tǒng)”。寫“加強(qiáng)輸入過濾”不如寫“使用參數(shù)化查詢并對上傳文件擴(kuò)展名做白名單校驗(yàn)”。閱卷人看的是可落地性。面試官在后續(xù)追問中也一定會問“具體怎么改”如果你筆試和面試回答不一致會非常減分。第三個(gè)誤區(qū)跟編程題有關(guān)不測異常輸入。很多同學(xué)寫完代碼只跑正常用例提交之后才發(fā)現(xiàn)邊界條件沒處理。比如IP合法性那道題空字符串和超長字符串是常見隱藏用例。平時(shí)練習(xí)就養(yǎng)成補(bǔ)邊界測試的習(xí)慣考試時(shí)會省很多冤枉時(shí)間。第四個(gè)誤區(qū)是忽略“影響范圍”的描述。安全崗位最核心的能力之一就是評估影響范圍。一道題問“這個(gè)漏洞有什么危害”你不僅要答“命令執(zhí)行”還要說明執(zhí)行權(quán)限是什么、能訪問到什么數(shù)據(jù)、是否可能橫向移動。對這些有意識才說明你有實(shí)戰(zhàn)視角而不是只會背書。4.3 筆試結(jié)束后如何復(fù)盤和準(zhǔn)備面試筆試不是交卷就結(jié)束了尤其對安全崗來說筆試題目往往就是面試提綱。你寫了“使用預(yù)編譯修復(fù)SQL注入”面試官大概率會追問預(yù)編譯的原理是什么MyBatis的#{}和${}有什么區(qū)別Join查詢和子查詢在預(yù)編譯下有沒有例外情況這些東西必須在筆試結(jié)束后馬上整理成一套自己能講清楚的版本。我建議做一個(gè)“為什么”清單。每一道做過的題都往下問三個(gè)為什么。比如Web服務(wù)為什么要用普通用戶運(yùn)行因?yàn)樽钚?quán)限最小權(quán)限具體怎么落地給服務(wù)單獨(dú)建賬號、目錄權(quán)限按需分配、限制Shell登錄那如果這個(gè)賬號被攻破攻擊者能干什么能讀服務(wù)數(shù)據(jù)但改不了系統(tǒng)文件提權(quán)還需要找新漏洞。能把這個(gè)鏈條講清楚面試基礎(chǔ)關(guān)基本就過了。安全行業(yè)變化快2019年的題目和現(xiàn)在的題目肯定有差異但考察的能力模型沒有變懂協(xié)議、懂漏洞、懂權(quán)限、懂編碼還要能寫代碼。把這些基礎(chǔ)能力夯實(shí)不管題目怎么變你都能接得住。我個(gè)人在整理這份復(fù)盤時(shí)最大的體會是筆試最大的價(jià)值不是那張分?jǐn)?shù)而是逼你把零散的知識串成體系。把每個(gè)考點(diǎn)當(dāng)成一個(gè)錨點(diǎn)往外延伸出原理、場景、修復(fù)方案這套復(fù)習(xí)方法我后來推薦給好幾個(gè)朋友效果都還不錯(cuò)。希望這篇關(guān)于奇安信2019春招筆試題一的復(fù)盤也能幫你把復(fù)習(xí)思路理清楚。