面网络安全岗,网络面试官不会问你“TCP三次握手是安全哪三次”这种能百度到的东西。他们更可能扔过来一个场景:某电商大促前夜,面试运维发现数据库服务器突然向境外IP传输大量加密数据,题及你作为安全工程师,答案第一步做什么?网络
这题考的不是知识,是安全反应顺序。先断网还是面试先取证?正确答案是:先隔离受影响主机,但别关机——内存里的题及进程、网络连接、答案密钥都可能消失。网络我见过一个候选人上来就说“杀毒”,安全面试官直接皱眉。面试杀毒软件会破坏现场,题及而且很多APT攻击根本不在病毒库里。答案
OWASP Top 10里,哪个最容易被问?
注入和失效的访问控制。但面试官不爱听定义,爱听你踩过的坑。比如问:你写过的最危险的SQL语句是什么?有人答“用了字符串拼接”,这算及格。有人答“在预编译语句里还是拼了表名,因为表名不能参数化”——这才是真干过活的。
XSS现在问得少了,但CSRF依然高频。有个经典题:SameSite Cookie能完全防住CSRF吗?不能。Lax模式对GET请求放行,Chrome默认Lax,但老浏览器和某些POST场景仍有缺口。面试官想听你说“要配合Token或自定义Header”。
渗透测试的边界感,比技术更重要
“给你一个目标IP,你打算怎么测?”这题陷阱在“授权”。我见过一个面试者滔滔不绝讲Nmap扫描、目录爆破、sqlmap跑注入,面试官打断问:“谁授权你扫的?扫到隔壁业务系统算谁的?”
真实工作里,漏扫工具跑出来的报告80%是误报。面试官会问:你如何验证一个“高危漏洞”是真的?我的做法是——手动复现,并且记录每一步的请求和响应。有一次扫描器报了个Struts2远程命令执行,我手工发了个%{ 3*4},返回12,才确认。别信工具,信你自己的眼睛。
应急响应:从日志里挖出攻击链
给你一段Nginx access.log,怎么找webshell?看POST请求的响应码。200且返回体大小异常(比如刚好是webshell输出的命令结果),或者同一IP在短时间内请求了/upload.php然后立刻访问/uploads/shell.php。更隐蔽的:User-Agent里带sqlmap或nikto,那是扫描器,不是人。
Linux应急,我习惯先看/proc/下有没有隐藏进程,再查crontab -l和/etc/cron.d/。有一次客户中了挖矿木马,top看不到异常CPU,因为木马改了ps和top的二进制文件。用busybox top才露馅。这种细节,面试官一听就知道你实战过。
密码学:别背概念,讲场景
“HTTPS为什么安全?”标准答案是“非对称加密交换密钥,对称加密传数据”。但我会追问:中间人能不能伪造证书?能,如果用户点了“继续访问”。所以HSTS头很重要,它强制浏览器只走HTTPS。再问:HSTS能防住所有降级攻击吗?不能,首次访问没有HSTS记录,还是可能被劫持。这叫TOFU问题——Trust On First Use。
面试里遇到问“MD5和SHA256区别”的,直接说“MD5已碰撞,别用于签名”就够了。但如果你补一句“SHA256也不适合存密码,得用bcrypt或argon2”,加分。
最后一道题往往是情景题
“业务部门说你的WAF规则误拦了正常请求,要求你立刻加白名单,你怎么办?”别直接加。先要请求样本,本地复现,确认是误报还是真攻击。如果是误报,改规则而不是加白——白名单是技术债,加多了等于没WAF。我见过一个白名单里放了.*,等于关掉了防护。面试官要的是这种判断力。
网络安全面试没有标准答案,但有标准错误。背题库的人,第一轮就挂了。真正干活的人,会讲出日志里的那行异常、那个没关的端口、那次差点背锅的授权失误。这些,才是面试官想听的。