网络安全面试指南(下)
前言
- 自我拷问一下:
- 多年来也看过了数以百记的简历,为何很多人连面试的机会都没有?
- 参与了数以百记应聘者的面试,为何如此多的人没有通过最终面试?
- 能力当然是最重要的,可我却见过很多能力不比已经入职的同事差却应聘失败的人,到底该如何做?希望这篇安全从业者面试指南能够帮到你,让你少走一些弯路。
- 本文目标是希望创造一份针对网络信息安全领域从业者的面试指南,从行业、企业、从业者等方面了解当前现状,学习通用的面试和招聘经验,核心围绕各个细分安全岗位的体系、实用、高质量的题库展开。
- 本文主线围绕面试者视角进行全流程讲解,其中会穿插企业视角、
HR
视角以及技术面试官视角,让你能够更加全面体系的理解并吸收各种经验。其中核心题库部分,会存在较强的时效效应,因此会不断的进行更新,增加新的题目、剔除不合适的题目、调整题目难度或解答提示。
注:本题库来源于真实工作中,能够确保题目能真实反应应聘者能力水平,但技术都有时效性,无法保证当前就业环境适用。
版权申明
- 本文仅代表作者与本人观点,和所在公司无关,如有任何建议或意见请直接联系作者与本人。本文开放至互联网,可免费阅读转载,转载请注明原作者和原文链接:信息安全面试指南 。
注:
- 本文略有修改,建议者请看原文,在这里非常感谢原作者的文章!。
- 若内容涉及隐私问题,请联系本人删除,感谢大家!
读者对象
- 本文内容适合应聘者以及面试官:
- 在校学生:通过阅读本文可以了解从业人员必备素质和公司考察的问题,以找到自己当前的薄弱点进行补充学习。
- 安全爱好者:如何从爱好者变为从业者?如何从业余级别进阶为专业级别?也许你能在这里找到答案。
- 其它行业有面试需求者:本质上没有某个行业的面试指南,所有面试都是相通的,你一定能从其中得到一些收获。
- 安全从业者:帮助安全从业者更从容的面试与被面试。
- 同时,本文也被众多企业面试官所采用,作为面试官也可以使用相关领域问题,同时也欢迎通过评论提交你觉得有价值的问题。
网络安全面试指南(下)
- 了解到许多面试官或应聘者在使用本文原文的问题或按提示逻辑进行回答,这并非本文初衷。
- 虽然本文中的问题对面试很有帮助,但更期望其能帮助面试官识别面试者的解决问题的能力,帮助面试者体系化回答。
- 尤其对于一些常闻到的脑筋急转弯或工作中用不到的问题,虽然并不是好问题,但却经常被问到,可避免面试者因为这些问题导致面试失利。
基础素质问题
对前面几轮面试官的看法如何?(HR 问题,考察对他人评价)
前几次面试中,你有了解到这个岗位的工作职责和目标要求是什么吗?(HR 问题)
对于异地/出差/频繁出差的工作你是怎么考虑的?(HR 问题)
离职原因?为什么这个阶段要裸辞?(HR 问题)
- 提及原公司看法时,应当客观正面,切勿有个人情绪,尤其避免对上司、同事的抱怨。
- 不要有太多消极负面东西,点到为止。
薪资相关问题(HR 问题)
- 如果面试官未谈及薪资问题,切勿主动提及。回答薪资相关问题时,在保证自己基本利益的前提下,表达自己的诉求,但一定不要把话说死,给后续谈判保留空间。相信企业会给自己一个合理的回报。
遇到解决不了的问题怎么做?工作中遇到最大的挑战是什么,如何解决的?(考察学习能力和动手解决能力)
业余时间会干嘛?(考察技术热情)
- 真实表达。可从乌云、翻墙、写技术博客、参与开源、常浏览的网站、关于黑客电视剧、关注业内牛人等角度。
自认为自己比身边人的优势和不足是什么?(客观的自我评价,讲自己没有缺点的基本可以不要了。挖掘亮点,如何客观看待自己。)
- 如何回答自己的不足是个更难的问题,可以从几乎所有事情都有积极和消极的角度来回答。比如做事情擅长抓重点,但细节跟进不够好。
别人对你最负面的评价是什么?你自己如何看待?
最有成就感的事情?(考察价值观)
未来职业规划?也可以问长期和中短期规划各是什么?(长远思考)
还有什么要问我的吗?(了解面试者所关心的侧重点)
- 可以选择有关企业发展、所应聘岗位定位相关问题(比如安全与研发比例、你为什么来这个公司等),让面试官能感觉到你在关心公司发展和岗位兴趣。有见地或有深度的问题,侧面反应自己的技术功底。避免问题过多过细,也避免没有问题。
安全面试题目
如何有效的甄别一些滥竽充数的人,最直接的莫过于 Show me the Shell。但这一步往往被安排在试用期,在此之前最重要的肯定是面试这道坎。
安全圈的东西行业内的人谁都能聊一点,所以一轮面试一定得一线安全技术负责人亲自把关,深入的问细节来判断。
但同时也建议根据实际岗位需求来平衡对候选人的要求,避免出现面试时问造火箭的技术,进来后拧螺丝钉。
问答是更好的表达我的看法的方式,由于自己并不擅长文字,还没有能力将散落在脑海中的安全知识系统性展开著书。于是我一直思索如何将脑海中千头万绪的碎片安全知识整理成严谨准确、时效性强且可持续更新的文字,经过一段时间实践,非问答模式莫属。
每次面试都会从本文题库中选择一些题目,通过和面试者双向交流后,不断补充新的题目和修正完善答案,确保题目严谨准确。同时日常工作中遇到的各类安全问题也成为面试题目的重要补充来源,确保题目时效性。通过一个个具体的安全问题,来表达我对安全的理解,同时能给正在阅读的你提供一点收获,是我持续更新的动力。
同样从应聘者角度,题目固然重要,但也不应过于寄希望于通过刷题的方式来提升面试成功率。
不必追求每一道题都会,一些问题答案也许仅仅是你没经历过,同时这些你不会的问题也是你可以提升的地方。
更应该通过回答问题表达自己的逻辑思维和深入思考,体现自己优秀特质,让面试官相信你遇到任何问题都能迎刃而解。
在正式开始前,需要明确的一点是,大多数公司是没有所谓的面试问题清单的,每个部门、每个面试官都会挑选自己的面试问题,因此并不存在某个公司的最新面试题目。
但各类问题本质是相同的,理解各方向的常见问题可大幅提升自身知识体系和深度以及面试成功率。
应用安全岗位
漏洞挖掘、利用及修复
- 挑选两到四个不同方向常见和不常见的漏洞,就漏洞原理、利用方式和修复方案进行提问,然后根据回答的情况进行详细深入的二次提问。
信息收集
- 同安全蓝军岗位。
常规应用漏洞
Redis 未授权访问漏洞如何入侵利用?
SSRF 漏洞原理、利用方式及修复方案?Java 和 PHP 的 SSRF 区别?
宽字节注入漏洞原理、利用方式及修复方案?
简述 JSONP 的业务意义,JSONP 劫持利用方式及修复方案?如何设计落地一个 CSRF Token?
- JSONP 在利用时可通过 Meta 标签去掉 Referer,因此在修复时需要主意 Referer 为空情况;
CORS 原理、利用及修复?
CRLF 注入原理?
URL 白名单如何绕过?
XSS 持久化如何实现?
Fastjson、Log4j 常见漏洞原理?如何彻底解决该漏洞?
- 原理略,彻底解决该漏洞可以分析根因,Fastjson主要因为 Autotype 导致的、Log4j 主要因为 Lookup,可考虑移除经常出现问题的代码,制作内部精简定制版本,或者通过应用运行时防护(RASP)。
业务逻辑漏洞
业务逻辑漏洞有哪些具体类型?
- 考察对业务逻辑的理解,如果只局限在越权则比较浅。凡是和业务比较贴近的漏洞都算业务逻辑漏洞,比如身份校验相关的风险(未授权访问、非正常账户态、身份可枚举、水平越权、垂直越权等)、接口逻辑实现不一致(不同协议实现不一致、同类产品不同逻辑、不同阶段逻辑不一致-流程绕过)、不安全的可信端数据(APP数据)、预设要求不符合(依赖条件不安全-业务校验属性设计、人工客服容易被骗-业务流程设计)、滥用合理业务需求等等。
哪些账户状态会导致预期外的风险?
- 此题考的是当账户状态改变时,由于各个业务逻辑并不一定严格遵循该账户状态的要求导致的还可以继续进行一些预期外的操作。一般账户状态在注销、禁用、风控、司法冻结等时候,会出现该问题。
身份标识明文传输会导致什么风险?
- 伪造他人身份态。
水平越权触发点会存在哪些位置?
- Cookies、自定义 Header、URL Path、URL Param Value、URL Param JSON、Body Form、Body JSON、Body XML、自定义协议的自定义字段等等。
水平越权有哪几种检测方式?
- 一般针对数字类型的越权可以通过递增枚举数字,根据响应情况可以判断是否存在越权。此外还可以通过两个账号相互访问对方创建的资源来判断,可避免不连续的数字导致的遗漏。
通过数字加减遍历或通过两个账号互测的方式进行水平越权测试有何优劣势?
- 数字加减遍历只能针对数字类型资源 ID,且只能针对连续的数字,遗漏情况较多,且对业务有损(会导致操作或查询他人数据)。
- 通过两个账号的方式,可以不用遍历,不容易被发现,也不会遗漏,对他人数据无影响。
- 当然,在某些场景下,数字加减遍历方式相较于换账号方式更有优势。比如在多个参数的接口中,有N个参数是有校验和当前账号关系,但有一个参数未校验。此时用换账号的方式就得将多个账号都调整为正确参数后再测试问题参数。
- 而 +- 方式则可以直接测试每一个参数。
某个 APP 的某个功能按钮是灰色不可用状态,如何绕过其限制?
- 除了修改按钮属性使其可用或分析灰色功能对应的后端接口,直接调用接口外。如果能考虑到不同协议的实现可能不一致就更加全面了,比如 APP 上不能用,PC 上是否就能用了,PC 也不能用,通过各种协议(HTTP、WSDL、REST、GraphQL)的 API 调用是否能绕过。
流程绕过漏洞如何抽象理解归类?
- 流程绕过漏洞可以理解为不同阶段逻辑实现不一致,比如创建和后续状态变更时的要求不一致(一个操作创建时权限校验很严格,结果修改的时候的权限要求却不一致)、一个流程某个步骤的要求不一致(第一步要输入密码,结果第二部下单的时候并未强校验前面输密码是否完成)、并发逻辑控制(开多窗口同时支付,使一个优惠多次使用)、特殊时期的逻辑绕过(大促时期的校验机制降级)等等。
常用协议漏洞
TLS1.2 协议交互过程以及攻击方法?
HTTP 请求走私(HTTP Request Smuggling)原理
- 通过 Content-Length 对 HTTP 请求体的分割;
DNSSec 能解决什么场景问题?
DNS 中(DS、PTR、TXT 选其一)记录类型的常用作什么场景?
- DR:DNSSec 可用于确定源域名的数字签名;
- PTR:常用于邮件服务器的黑名单判定,邮件服务器每天接收大量来自不同IP的邮件,如不加判断就接收会导致存在大量的垃圾邮件。通过查询发送方 IP 的 PTR 记录可以看该 IP 是否有绑定域名,从而拒收未绑定域名的 IP 发送的邮件。;
- TXT:对域名进行标识和说明,用于 SPF 可反垃圾,也可用于搜索引擎判定域名归属。
将暂时不用的域名解析到 1.1.1.1 有什么好处和坏处?
- 好处:使用时更改解析记录即可,不用新增解析记录,全网同步速度会更快一些;
- 坏处:1.1.1.1 是某 CDN 的 IP,可导致站点被恶意接管风险;
OAuth 除了最常见的 redirect_uri 绕过问题外,还有哪些风险以及如何修复?
- 风险:
- state 没有设置、没有验证、可多次使用或被设置成了其它功能;授权码可多次使用或无时间限制;授权更多的权限;
- Client Secret 泄漏;绑定三方登陆,攻击者通过他人邮箱注册账号,此时还未验证邮箱有效性(1. 邮箱所有者通过使用邮箱注册时,验证邮件将会使攻击者注册的账号邮箱绑定成功。2. 邮箱所有者通过三方账号注册时,需要绑定邮箱,此时将会和攻击者之前账号绑定成功)。攻击者控制某个账号时,偷偷将账号绑上某个第三方账号,无论账号如何改密码都可以通过三方账号登陆控制该账户;
- 修复:
- redirect_uri 验证;
- access token 仅能使用一次;
- 避免读取当前用户的 session 直接绑定;
- state 随机 hash,并在服务端校验;
- 全程使用 HTTPS;
- 平台中可给用户发送消息的地方加强域名过滤;
- JWT 相较于 SESSION 优劣势?
- 如何通过 HTTP 参数污染将
uid=9527&amount=100
中的 uid 改为 10086? - 当网关对所有请求会进行一次强制 urldecode,存在一个参数为
uid=9527&remark=充话费&amount=100
的接口,仅备注字段(remark)可控时,如何改变最终的金额字段(amount)?
漏洞测试软性能力
- 哪些漏洞的测试对业务有损?如何避免?
- 你之前没接触区块链/云原生/算法安全,现在需要你评估某个使用该技术的业务安全性,你会如何做?
- 风险:
漏洞处置
- 漏洞修复一般分为哪几个步骤?
- 如何制定漏洞的修复时间?需要考虑哪些因素?
- 如何有效提升漏洞修复效率?
- 漏洞复盘的关键是什么?
- 如何快速有效推进修复外部厂商的漏洞?
- 外部白帽子发现某个高危漏洞,但完整修复需要多天,安全产品的止血手段不彻底,你该如何处置?
漏洞自动化发现
白盒 SAST
- 当前阶段,人工和自动化的代码审计差异点在哪里?
- 什么类型漏洞是代码审计无法准确判断存在与否的?
- 密钥的识别的正则如何写?
- 正则
(a+)+
会存在什么风险? - 程序对读取的文件名的正则为
/\.markdown/
,如何绕过? - 程序对请求的URL的正则为
/^http\:\/\/.*\.feei.cn($|(\/[^<>\'\"]*))/
,如何绕过? - 解释型语言和编译型语言在语法树分析上有什么差异?
- Java Web 应用中的反序列化漏洞的 Source 和 Sink 是什么?
黑盒 DAST
- 黑盒如何检测 XSS 漏洞?
- 甲方黑盒是否应该有爬取流量功能?
- 黑盒如何扫描无法出网的 SSRF?
- 黑盒如何扫描越权漏洞?
- 黑盒带登录态扫描如何规避业务影响?
- 黑盒扫描时如何避免被反制?
灰盒 IAST
- 灰盒相较于黑白盒的优势是什么?
安全评估与解决方案
安全评估
- 抽象来看,安全评估到底要评什么东西?
- 一个应用开放出去 API,可能存在哪些风险以及如何应对?
- 传输窃取->HTTPS;
- 未授权访问->API调用密钥;
- 请求篡改->请求签名;
- 请求重放->加随机数的请求签名;
- 设计 API 签名时,随机数使用秒时间戳(timestamp/s)会存在什么风险?
- 秒时间戳在防重放攻击时,会存在一秒内可重发多次问题,可增加一个随机数或使用毫秒随机数。
- 设计 API 签名时,HMAC SHA256 和 SHA256 区别是什么?
- SHA256 存在彩虹表碰撞问题,HMAC SHA256 简单理解相当于加盐了。
- 密码如何加密保存?
- 使用高强度的不可逆的 Hash 算法,且加动态盐。具体成型算法可以使用 pbkdf2、bcrypt、scrypt 等。
- 某些场景(登录、注册、修改密码、支付)会存在哪些风险以及如何防范?
- 新应用如何评估安全风险?
- 需求阶段、系分阶段安全评估的侧重点是什么?
- 接口 B 的参数是从接口 A 的响应中获取的,会存在什么风险?
- 新的 API 接口上线时,如何设计使其避免出现请求篡改和请求重放?
- Docker 容器以及 K8s 有哪些风险?
- IPv6 和 IPv4 安全差异?
- 三方引入的应用和自研应用评估差异有哪些?
- 金融业务有何特色?
- mvn 源的安全性需要考虑哪些点?
- 如何让业务方主动找你评估?
- 如何判断评估覆盖范围的优先级?
- 如何降低各人检验导致评估不一致?
- 如何系统提高安全评估效率?
- 安全评估和人工测试以及自动化测试三者差异是什么?
- 算法模型的安全风险如何评估?
- 区块链安全风险主要有哪些?
- 如何理解安全左移?
- 安全评估的行业最佳实践是什么?
- 如何看待未来安全评估的趋势?
安全方案
- 如何规避绕口令带来的风险?
- 硬编码密钥有何风险以及如何系统解决?
- 密钥暴露面越多,风险越大:密钥硬编码在代码中导致的直接结果就是代码在哪里,密钥就在哪里。研发人员电脑上存在密钥,如果电脑被攻击则密钥也会被泄漏。其次研发人员会因为没有安全意识,将代码上传至各类私有云盘或家里电脑又或是U盘中,导致风险面增大。更有甚者,将代码上传至GitHub,而忽略了代码中的硬编码密钥,从而被恶意着利用;
- 攻击者拿到硬编码密钥后攻击成本较低:攻击者无论通过什么方式拿到你代码,首先就会去看硬编码密钥部分,尝试去利用这些代码中的明文密钥,比如存在邮箱密码则会去尝试登陆你的邮箱进一步渗透挖掘邮件中有价值的内容,有FTP账号密码则会尝试连接FTP挖掘FTP Server中有价值的文件;
- 硬编码意味着你不会去变更它:当密钥硬编码在代码中时,改动密钥的成本就会增大,每次改动密钥时你需要额外进行应用发布和测试。而密钥的安全策略中,定期更换是最重要的因素,因为你无法知道在何时何处密钥泄漏过,因此定期更换密钥能降低风险。
- 解决方案:核心点在于密钥需要和代码分离,尽可能少的让密钥被人接触到。
- 0day 漏洞如何防御?
- GitHub 等三方泄漏敏感信息如何体系防御?
- 业务逻辑漏洞如何通过技术手段避免写出来?
- 软件供应链后门和漏洞如何系统规避?
前端安全
前端 Javascript 代码如何混淆以及反调试?
- 混淆:打乱原有代码逻辑、注入扰乱代码、修改变量名称、增加随机种子、字符串用 RC4 加密、字符串转换为 unicode 等;
- 反调试:
- 禁用开发者工具,若打开开发者工具将禁止调试功能;
- 禁用 console:禁止使用 console.* 来调试变量;
- 域名白名单:只允许在特定域名下允许运行代码;
- 自我防护机制:当代码变动后将停止运行。
如何实现当前页面 location.href 改变后,仍然能执行之前页面的 JavaScript?
- setTimeout 方法不在 JavaScript 的规范中,大多数运行环境都有内建的调度程序来支持这个方法,可以支持当前页面发生跳转后还能执行之前的 JavaScript。
移动应用安全
APK 反编译有哪几种路径,代表工具有哪些?
dex->class/jar->java
dev->class/jar:Enjarify、dex2jar、classyshark、jadx 等
class/jar->java:jd-gui、CFR、Procyon 等
dex->smali->java
dex->smali:ApkTool
smali->java:smali2java
App 自检升级场景下会存在哪些风险?
如何设计一套通信机制,能够保证传输过程中的完整性、不可抵赖性以及防止重放?
如何进行实体检测?
常见的调试方法和检测方法?
如何防止 Frida、Xposed 等注入攻击?
如何防止当前设备的数据拷贝到其他设备?
外挂有几种类型的实现方式?
如何避免未经用户授权获取权限?
基础设施安全岗位
网络与主机
DDoS/CC 如何有效防御与应急?
如何对网络区域进行划分?
经典网络与 VPC 的优劣势
主机最重要的基线是什么?
禁止出网的价值有哪些?
云原生下的网络和主机差异是什么?会有哪些新的风险?
如何实现反向 HTTPS 代理
如何通过技术手段避免非预期端口开放?
容器存在哪些特有安全风险?
运维白屏化的难点是什么?
不同语言对于系统 CA 证书的信任情况有何不同?如何让各语言信任系统 CA 证书?
- Java JDK 自己维护 CA 证书,默认不使用系统 CA 证书,可通过
keytool
导入 CA 证书; - Python 下各包 CA 证书逻辑不一致,可通过设置系统环境变量
CURL_CA_BUNDLE
让所有包信任系统 CA 证书; - nodejs 默认不信任系统 CA,可通过设置系统环境变量
NODE_EXTRA_CA_CERTS
让所有包信任系统 CA 证书;
- Java JDK 自己维护 CA 证书,默认不使用系统 CA 证书,可通过
简单描述有哪几种方式实现服务器截外联,各自利弊是什么?
如何实现在办公网区域无感访问国外互联网?
办公设备
- 如何解决员工被钓鱼问题?
- 如何解决员工通过电脑或手机外发公司敏感文件?
威胁应对岗
威胁安全认知
你觉得事前建设和事中威胁感知的投入比例应该是怎么样的?
WAF 是基于攻击特征黑名单的方式,也就不断会存在绕过和遗漏,它存在的意义是什么?
如何衡量威胁感知能力强弱?
感知规则的有效性如何系统验证?
未感知部分如何衡量?
流量采集与清洗
威胁感知可以在哪些层面进行?
TCP 协议的流量要储存哪些关键字段?
如何在服务器上抓取 HTTPS 流量进行分析?
清洗流量时可以通过哪些方式降低无用流量?
清洗流量时可以通过哪些方式降低无用流量?
清洗流量时如实现 URL 的去重?
清洗流量时如何剔除攻击流量?
清洗流量时可能会导致哪些潜在的安全风险?
清洗流量时如何识别新增接口?
如何实现近实时风险处置?
WireShark 如何抓取非浏览器的 HTTPS 请求流量?
风险识别与应对 - 网络侧
常见的 C&C 通道种类和特征?
- 特征从上行比下行大、长连接、心跳、没有 js 等资源引用等方面来看。
如何在加密流量中检测出恶意流量?
如何识别异常服务器外联?
基于网络五元组可以做到哪些风险行为的分析?
风险识别与应对 - 主机侧
- 主机有哪些日志对风险识别有帮助?
- 抽象来看主机中有哪些后门实现方式?
- 一个黑客入侵主机后植入了一个木马,并擦除了各种日志,如何找出其如何入侵的以及入侵后做了什么事?
- 某个黑客入侵主机后,拿到了 root 权限,如何止血?
- 感知到黑客入侵了所有服务器,怎么办?
风险识别与应对 - 应用侧
应用相关有哪些数据可以用作威胁分析?
如何准确识别域名探测?
如何准确识别端口探测?
如何准确识别文件遍历探测?
SQL 注入拦截规则如何实现?
如何实现页面篡改感知?
如何实现页面挂马感知?
如何确保上线的拦截规则不出现误拦截?
如何识别公共和私有接口?
如何识别机器行为请求?
如何感知越权风险?
如何识别攻击请求是定点攻击还是随机扫描?
专家检验无法覆盖的风险如何检测?
有哪些类型应用层风险是无法在流量层较好感知的?
如何识别客户端的系统真实类型?
威胁溯源
- 接到客户投诉,其收到诈骗电话,骗子能准确说出他在我们平台购买的商品名称、订单号、收获地址和时间信息,请问如何排查该信息泄漏途径?
- 内网论坛的截图的内容突然出现在了外部新闻网站,有多少种溯源方式?
- 内网某台没有公网地址的服务器突然 CPU 异常标高,经排查发现是因为 cat 了某个大文件导致的,但服务器相关人员都说没有操作过,请问如何溯源出谁操作的?
威胁情报
企业会面临哪些外部风险?
有哪些可以收集的情报渠道?
如何快速筛选出最新的 CVE 对我们是否有实际影响?
爬取暗网内容是否违法?
如何准确识别 Telgram 群里和我们公司相关的情报?
SaaS 类情报产品的联防联控机制的缺点是什么?
给定一个网站,如何自动化识别其是否钓鱼网站?
如何识别仿冒 APP?
如何识别一个没有登陆的用户的真实身份?
如何找出对我们业务实施网络攻击的黑客真实身份?
国内和国外攻击特点有什么区别?
数据安全岗
安全责任与意识
安全心智的目标是什么?
- 避免低级问题、避免问题重复出现、纠正错误观念(理解自己的责任和义务)、了解安全团队工作,打造团队形象等。
如何系统性提升员工安全意识?
如何做到针对性的安全意识提升?
如何衡量员工安全意识?
什么是安全责任制?如何落地安全责任制?
数据采集使用
数字水印的类型和应用领域?
隐藏水印有哪些实现方式?
如何对无显著特征的数据进行分类分级?
如何避免员工因非工作需要查询用户数据?
如何避免未经用户授权收集用户数据?
如何避免用户数据被超范围使用?
何时应该进行用户数据销毁?
更换机房时如何清除原机房机器数据?
如何让每一次后台查询数据都得到用户授权?or 如何收敛管理后台可查询任意敏感信息功能?
如何在不拿到明文数据的前提下,还能通过数据进行一些计算行为?如何实现合作伙伴原始数据不共享但能达成业务诉求?
###权限
- DAC(Discretionary Access Control)自主访问控制 和 MAC(Mandatory Access Control)强制访问控制 优劣势?
- ABAC(Attribute Base Access Control)基于属性的权限控制 的特点?
提示:ABAC:集中化管理;可以按需实现不同颗粒度的权限控制;不需要预定义判断逻辑,减轻了权限系统的维护成本,特别是在需求经常变化的系统中;定义权限时,不能直观看出用户和对象间的关系;规则如果稍微复杂一点,或者设计混乱,会给管理者维护和追查带来麻烦;权限判断需要实时执行,规则过多会导致性能问题;
为什么ABAC没有RBAC(Role Base Access Control)基于角色的权限控制流行?
如何避免审批工单无脑通过?
高危害影响权限如何避免滥用?
如何技术手段规避未进行权限检查?
大数据平台的权限管控体系中最重要的是什么?
密码学 - 加解密相关
- 常见加解密分类和算法有哪些?
类型 | 国际算法 | 国密算法 |
---|---|---|
对称算法 | AES、DES | SM4 |
非对称算法 | RSA、ECDSA、ECDH | SM2 |
消息摘要算法 | SHA256、MD5 | SM3 |
传输层安全协议 | TLS、SSL | TLS1.3+国密单证书 |
国密证书 | sha*WithRsaEncryption | SM2-with-SM3 |
哪些 Hash 和加密算法不建议使用?
- 不安全:DES、RC4、MD5。
- 不够安全:3DES。
- 另外 AES、RSA 秘钥长度对安全性影响也较大。
对称加密和非对称加密的区别及优缺点?
- 加密速度、密钥传输保存、被加密的数据长度等角度展开。
硬编码秘钥如何解决?
PKI 原理?
国密的底层原理?
密码如何保存在数据库?
如何让密码轮转?
内网传输是否需要加密?为什么?
可以在哪些层次对文件进行加密?
如何技术手段实现全站 HTTPS?
数据安全综合
- 数据安全治理可以用什么思路做?
合规审计岗
安全合规
国内外有哪些网络安全相关法律?
金融行业和传统互联网行业合规差异
对于内控、合规、审计的理解(考察其对于要做的事情和岗位要求、公司环境是否匹配,考察其大局上考虑是否周全或是片面)
传统行业和互联网行业的安全建设的区别及各自的优劣势(是否能准确的抓住核心原因)
信息安全等级保护、网络安全法、GDPR,挑选一到两个问其对其的来源理解以及落地程度取舍
如何通过技术手段实现对异常操作的自动化监控?
如何对一个应用进行安全评估?
如何对一个应用进行安全审计?
如何理解权限分离、最小化权限?
考察一些 CISP、CISSP 的知识点
挑选一些较为复杂的流程,比如转岗、离职等,如何设计考虑其中的细节?
安全蓝军岗位
蓝军认知
安全蓝军和常规渗透测试的差异是什么?
蓝军如何体系建设?
如何在有限的人力下最大化突出蓝军价值?
信息收集
如何通过程序判断一批域名是否是泛解析域名?
- 查询一个绝对不存在域名的 A 记录,比如
enumsubdomain-feei.feei.cn
,根据是否返回 IP 来判断是否是泛解析(若返回 IP 则是泛解析域名)。
- 查询一个绝对不存在域名的 A 记录,比如
单机上进行域名爆破存在什么缺陷?
- 会导致 IP 的遗漏,有些域名为增加网站的访问速度,会针对不同线路(电信、联通、移动、教育)解析不同 IP。
GitHub 中可根据企业哪些特征进行搜索?
- 内部域名:内网接口使用的域名、测试域名等,比如
feei.cn
; - 外部域名:对外使用的域名,可以选一些风险较高的,比如
mail.feei.cn
; - 代码版权:代码头部注释中的版权声明,比如
Copyright 2018 Feei. All Rights Reserved
; - 主机域名:服务器 HOST 域名,比如
goods.db.feei.host
; - 代码包名:Java 代码包名,比如
com.feei.goods
;
- 内部域名:内网接口使用的域名、测试域名等,比如
如何找到某个人的联系方式?
- 新浪微博私信、知乎、搜索引擎、公众号、LinkIn、天眼查、Whois、上市财报等渠道。
漏洞原理
- 漏洞原理部分同应用安全岗位。
攻击入口
各种常见木马的的优劣势?
木马免杀有哪些方式?哪种方式最有效?
木马隧道有哪些?哪种隧道在当前最有效?
Word DDE 和 Office 宏有什么优劣势?
如何绕过 Office 受保护视图?
有哪些有效的钓鱼方式?
如何绕过 WAF、HIDS、威胁感知,选其一回答?
BadUSB 原理及局限?
出网
如何在禁止出网的机器上访问互联网?
ew、frp 差异?
ICMP 如何出网?
如何进行水坑攻击?
如何利用 XSS 让影响最大化?
行为
- 如何全流程最大限度降低被红军发现概率?
安全开发岗位
Java 基础
- equals 与 == 的区别?
- Java 虚拟机区域如何划分?
- 方法重载与方法重写的区别?
- HashMap 和 HashTable、ConcurrentHashMap 的区别?
- 进程和线程区别,进程间、线程间通信有哪几种方式?
- Java BIO/NIO/AIO 是什么?适用哪些场景?
- 挑一个设计模式(工厂、单例、适配器、观察者)进行讲解?
网络与多线程
synchorized 如何使用?Object 的 wait、notify 方法有什么作用?
sleep() 和 wait() 有什么区别?
什么是幂等性?一般有什么方式实现?
数据结构与算法
大文件小内存的排序如何做?
有1亿个数字,其中有两个是重复的,如何快速找到?要求时间和空间最优。
如何遍历二叉树?
1亿个随机生成的无序整数,找出中间大小的值。
业务基础
调试工具及异常排查流程?
如何最大限度避免故障?
数据库索引结构,什么情况下应该建唯一索引?
数据库分页语句如何写?
业务安全
HTTPS 交互过程
OAuth2.0 交互过程及其中可能存在的配置不当安全风险
获取一个入参 url,请求 url 地址的内容时应注意什么?
参数入库前应该如何过滤?
过滤器和拦截器原理和应用场景?
SESSION 和 Cookie的区别?
SESSION ID 如何不被 Javascript 读取?
CSRF 的 Token 如何设计?
同源策略?如何实现安全的跨域请求?
进阶面试问题
安全架构方向
可以挑选的问一些前面四星及以上的问题,以确保在各个方向上比较均衡。
安全的本质是什么?
大安全领域的最优划分?信息安全领域的最优划分?
- 大安全:隐私与合规安全、业务安全、信息安全;
- 信息安全:数据安全、基础设施安全、应用安全、蓝军、安全研发;
你如何理解纵深防御的?
- 纵深防御不是简单的堆叠多层,而是利用好每一层的优势来降低整体被突破的可能性;
- 每类安全产品有其优势和弱势的地方,我们要利用好优势并使用其它安全产品来弥补弱势;
万物皆可安全,依靠什么原则来决策先做什么?
- 由外而内;
- 先底后上;
- 能口不点;
网络空间安全和现实中生物安全异同?
传统 IDC、云上、混合云架构的安全差异和各自挑战是什么?
云原生技术下的安全变化?
纯云业务如何设计安全架构?
SDL 中的关键点是什么以及如何解决?
漏洞发现在甲方和乙方做有什么区别?
如何防止 0day 攻击?
对于企业不同时期、不同阶段、不同体量的安全建设的方法、区别以及侧重?
你所做过的安全架构图和所期望的安全架构?
安全与其他团队(运维、研发、测试、GR/PR、内控、高管及三方安全公司)的关系?
误报和漏报如何权衡?
- 宁愿漏报也不要出现大量的误报,当出现大量的误报情况下会导致真正有用的东西埋没在报警消息中,宁可牺牲部分漏报也要保证足够好的误报。
白名单和黑名单如何选择?
- 目前整个安全领域都在从基于攻击特征的黑名单专项基于行为的白名单可信,黑名单加不完永远有各种遗漏和绕过的问题;
- 能用白名单(除了白名单都为黑名单)解决的不用黑名单,比如暴露在外网的只允许 80/443 端口,其它端口发现一例关闭;
专家经验和机器学习差异?
安全产品是自研还是外采?
如何制定安全的衡量指标?如何衡量企业安全建设的水平?
如何避免出现各种各样的惊喜?比如资产没覆盖、扫描器规则没写好、出异常了等等各类情况
不同公司间的安全区别或差别是什么?比如腾讯和阿里,百度和京东
如何制定公司安全建设的三年甚至五年计划
未来安全行业趋势?