网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
2025年渗透测试面试题总结-拷打题库18
如何遍历二叉树? 1亿个随机生成的无序整数,找出中间大小的值。 调试工具及异常排查流程? 如何最大限度避免故障? 数据库索引结构,什么情况下应该建唯一索引? 数据库分页语句如何写? HTTPS交互过程 OAuth2.0交互过程及其中可能存在的配置不当安全风险 获取一个入参url,请求url地址的内容时应注意什么? 参数入库前应该如何过滤? 过滤器和拦截器原理和应用场景? SESSION和Cookie的区别? SESSIONID如何不被Javascript读取? CSRF的Token如何设计? 同源策略?如何实现安全的跨域请求? 专家经验和机器学习差异 安全产品是自研还是外采? 如何制定安全的衡量指标?如何衡量企业安全建设的水平? 如何避免出现各种各样的惊喜?比如资产没覆盖、扫描器规则没写好、出异常了等等各类情况 不同公司间的安全区别或差别是什么?比如腾讯和阿里,百度和京东 大公司像Facebook、Google、花期银行等都出过安全事件,我们如何确保自己不出安全事件? 如何证明/衡量我们的安全水位? 如何制定公司安全建设的三年甚至五年计划 未来安全行业趋势 信息安全等级保护、网络安全法、GDPR,挑选一到两个问其对其的来源理解以及落地程度取舍 如何通过技术手段实现对异常操作的自动化监控? 如何对一个应用进行安全评估? 安全蓝军和常规渗透测试的差异是什么? 蓝军如何体系建设? 网络空间安全和现实中生物安全异同?
1. 如何遍历二叉树?
核心方法:
- 前序遍历(根-左-右):常用于复制树结构。
- 中序遍历(左-根-右):适用于二叉搜索树的有序输出。
- 后序遍历(左-右-根):适用于释放树内存。
- 层次遍历(按层遍历):基于队列实现,用于计算树深度。
扩展分析:
- 递归与非递归实现:递归简洁但可能栈溢出(深度>1e4时),非递归(栈/队列)更安全。
- 应用场景:前序用于序列化,中序用于表达式树求值,层次遍历用于社交网络层级关系分析。
- 性能优化:Morris遍历算法(无需额外空间,时间复杂度O(n))。
2. 1亿个无序整数找中间值
最优方案:
- 快速选择算法(QuickSelect):平均时间复杂度O(n),类似快速排序的分治策略。
- 堆排序法:维护最大堆和最小堆分别存储前一半和后一半数据,时间复杂度O(n log n)。
- 外部排序:分块读取数据,归并排序后取中间值,适合内存不足场景。
扩展分析:
- 内存限制处理:分片处理(如分成100个文件,每文件1e6个数),分布式计算(MapReduce)。
- 海量数据场景:结合抽样统计估算近似中位数(如T-Digest算法)。
- 实际案例:金融风控中实时计算交易金额中位数,需平衡精度与性能。
3. 调试工具及异常排查流程
工具与流程:
- 工具:
- IDE调试器(VS Code、IntelliJ):断点、变量监控。
- 日志分析(ELK、Splunk):关键错误上下文追踪。
- APM工具(New Relic、SkyWalking):性能瓶颈定位。
- 流程:
- 复现问题:稳定复现路径缩小范围。
- 日志层级:从ERROR日志逆向追溯调用链。
- 最小化验证:剥离无关模块,构建最小测试用例。
扩展分析:
- 自动化调试:通过Chaos Engineering主动注入故障测试系统健壮性。
- 生产环境调试:动态日志级别调整(如Java的JMX动态修改Log4j级别)。
- 跨语言调试:使用pprof(Go)、gdb(C++)应对多语言栈。
4. 最大限度避免故障
关键策略:
- 冗余设计:集群部署、多可用区容灾。
- 灰度发布:金丝雀发布逐步放量,监控错误率。
- 监控告警:Prometheus+Alertmanager实时阈值告警。
扩展措施:
- 混沌工程:模拟网络分区、节点宕机验证系统容错。
- 变更管控:严格Code Review与自动化测试覆盖率(如≥80%)。
- 容量规划:定期压力测试(如JMeter模拟峰值流量)。
5. 数据库索引结构及唯一索引场景
索引类型:
- B+树:范围查询高效(MySQL InnoDB)。
- 哈希索引:精确查询快(Redis Memcached)。
- 倒排索引:全文搜索(Elasticsearch)。
唯一索引适用场景:
- 主键约束:确保实体唯一性(如用户ID)。
- 业务唯一性:防止重复数据(如身份证号、邮箱)。
- 联合唯一:多字段组合唯一(如订单号+商品ID)。
扩展考量:
- 性能影响:唯一索引会增加Insert/Update的锁竞争。
- 替代方案:应用层校验+普通索引(牺牲部分一致性换性能)。
- 分区表索引:全局唯一索引在分布式数据库中的挑战(如TiDB)。
6. 数据库分页语句
通用写法:
sql
-- MySQL SELECT * FROM table LIMIT 10 OFFSET 20; -- Oracle SELECT * FROM (SELECT t.*, ROWNUM rn FROM table t) WHERE rn BETWEEN 21 AND 30;
优化技巧:
- 避免深度分页:使用WHERE id > last_id LIMIT 10(基于有序主键)。
- 覆盖索引:仅查询索引字段减少回表(如SELECT id FROM table)。
- 游标分页:保存最后一条记录位置,适合无限滚动。
扩展场景:
- 分布式数据库:分页时需考虑数据分布一致性。
- 弹性搜索:Search After参数替代传统分页(ES特性)。
7. HTTPS交互过程
握手步骤:
- ClientHello:客户端发送支持的TLS版本、密码套件。
- ServerHello:服务端选择套件并返回证书。
- 密钥交换:ECDHE算法生成预主密钥。
- Finished:双方验证MAC完成握手。
安全加固:
- HSTS头:强制浏览器使用HTTPS,防SSL剥离攻击。
- OCSP Stapling:减少证书吊销检查延迟。
- 双向认证:客户端也提供证书(金融级安全)。
扩展风险:
- 降级攻击:强制使用低版本TLS(需配置禁用SSLv3)。
- 证书透明化:监控非法证书颁发(如CT Logs)。
8. OAuth2.0流程及安全风险
授权码模式流程:
- 用户跳转授权页 → 2. 返回授权码 → 3. 用授权码换令牌。 风险点:
- 重定向URI劫持:未校验导致令牌泄露。
- 授权码注入:攻击者截获授权码申请令牌。
- 令牌泄露:未使用PKCE增强移动端安全。
安全配置:
- PKCE:动态生成code_verifier防授权码窃取。
- Scope最小化:仅请求必要权限(如仅读取基础信息)。
- 令牌存储:避免客户端明文存储(使用Android Keystore)。
9. 请求URL内容注意事项
关键点:
- SSRF防御:校验目标IP非内网(如10.0.0.0/8)。
- 超时设置:避免服务阻塞(如Java HttpClient设置5s超时)。
- 响应限制:限制读取大小防内存耗尽(如仅读取前1MB)。
扩展实践:
- DNS防护:防止DNS重绑定攻击(如验证解析IP与URL一致性)。
- 协议白名单:仅允许HTTP/HTTPS,禁用FILE、FTP等。
- 代理隔离:敏感请求通过代理池隔离风险。
10. 参数入库前过滤
防御策略:
- 白名单校验:如手机号格式正则
^1[3-9]\d{9}$
。- 参数化查询:避免拼接SQL(使用MyBatis #{})。
- 编码转换:对HTML实体编码(如<转义)。
高级技巧:
- 内容安全策略(CSP):防御XSS。
- 类型强转:如将输入强制转为Integer防SQL注入。
- ORM框架:利用Hibernate Validator注解校验。
11. 过滤器与拦截器差异
对比:
维度 过滤器(Filter) 拦截器(Interceptor) 作用范围 Servlet规范,所有请求 Spring MVC框架内 执行时机 在DispatcherServlet之前 在Handler执行前后 依赖 依赖Web容器(Tomcat) 依赖Spring容器 应用场景:
- 过滤器:全局日志、跨域处理(CORS)、请求包装。
- 拦截器:权限校验(如JWT解析)、接口耗时统计。
扩展整合:
- 异步支持:AsyncContext在过滤器中处理长连接。
- 顺序控制:通过@Order注解调整多个过滤器的执行顺序。
12. SESSION与Cookie区别
核心差异:
- 存储位置:Session在服务端,Cookie在客户端。
- 安全性:Session更安全(敏感信息不暴露)。
- 生命周期:Session依赖服务端超时,Cookie可设置Expires。
安全实践:
- Session固定攻击防御:登录后重置SessionID。
- 分布式Session:使用Redis集群存储,解决单点问题。
- Cookie属性:Secure(仅HTTPS)、HttpOnly(防JS读取)。
13. SESSIONID防JS读取
实现方式:
- HttpOnly属性:设置Set-Cookie时添加HttpOnly。
- SameSite策略:Strict/Lax限制跨站发送。
- 定期刷新:每5分钟更新SessionID,防窃取后利用。
扩展方案:
- Token绑定:将SessionID与客户端指纹(如IP+UA)绑定。
- 二次验证:关键操作需重新认证(如支付密码)。
14. CSRF Token设计
设计原则:
- 随机性:使用加密算法生成(如SecureRandom)。
- 一次性:每次提交后更新Token。
- 同会话绑定:Token存储在Session中校验。
增强措施:
- 加密Token:AES加密存储用户ID+时间戳。
- 双重验证:Header和参数同时校验Token。
- Token分区:按功能模块使用不同Token(如支付与普通表单分离)。
15. 同源策略与跨域安全
同源定义:协议+域名+端口一致。 跨域方案:
- CORS:服务端设置Access-Control-Allow-Origin。
- JSONP:通过
- 代理转发:Nginx反向代理统一域名。
安全实践:
- 预检请求缓存:Access-Control-Max-Age减少OPTIONS请求。
- 白名单严格校验:避免使用通配符*,动态校验Origin头。
- PostMessage安全:指定目标Origin,验证消息来源。
16. 专家经验与机器学习差异
维度 专家经验 机器学习 基础 规则驱动(如正则表达式) 数据驱动(特征工程) 适应性 需人工更新规则 自动适应新数据 可解释性 高(明确规则逻辑) 低(黑盒模型) 融合应用:
- 混合模型:规则引擎过滤明显噪音,模型处理复杂模式。
- 实时分析:专家规则处理实时流,机器学习离线训练。
17. 安全产品自研与外采考量
决策因素:
- 成本:自研需长期投入(人力+时间),外采许可费用高。
- 定制需求:核心业务需深度定制时倾向自研。
- 响应速度:外采依赖厂商支持周期,自研可快速迭代。
平衡策略:
- 核心系统自研:如风控引擎、数据加密模块。
- 通用产品外采:如防火墙、WAF(ModSecurity定制化)。
- 开源+二次开发:使用Suricata构建IDS,减少重复劳动。
18. 安全衡量指标设计
关键指标:
- MTTD(平均检测时间):从攻击发生到发现的时间。
- MTTR(平均响应时间):从发现到处置的时间。
- 漏洞密度:每千行代码的漏洞数。
评估方法:
- 红蓝对抗:模拟攻击检测防御体系有效性。
- 第三方审计:通过ISO 27001认证验证合规性。
- 用户教育:钓鱼邮件测试点击率量化意识水平。
19. 避免资产遗漏等意外问题
系统化措施:
- 自动化发现:使用Nessus、ARL持续扫描网络资产。
- CMDB维护:所有资产入库,变更流程审批。
- 监控覆盖:日志采集覆盖全业务线(如Sentry接入所有应用)。
流程优化:
- 上线卡点:未登记资产禁止接入生产网络。
- 定期巡检:每月核对CMDB与实际资产一致性。
- 灰度发布:新服务先在隔离环境运行验证。
20. 不同公司安全建设差异
对比分析:
- 腾讯 vs 阿里:腾讯重社交数据隐私(如微信加密),阿里重电商交易风控(如支付宝反欺诈)。
- 百度 vs 京东:百度聚焦搜索安全(防SEO作弊),京东强化物流数据保护(防止订单泄露)。
核心因素:
- 业务类型:金融类强合规(等保三级),社交类重内容安全。
- 技术栈:Java系与Go系的不同漏洞生态(如Log4j vs Go依赖管理)。
- 合规要求:跨国企业需满足GDPR(如字节跳动全球化布局)。
21. 大公司安全事件启示
防御策略:
- 零信任架构:持续验证设备/用户身份(BeyondCorp模型)。
- 威胁情报:接入FS-ISAC等共享平台,提前预警。
- 供应链审计:验证第三方组件漏洞(如SolarWinds事件复盘)。
技术落地:
- SASE架构:整合SD-WAN与安全服务(如Zscaler)。
- 运行时保护:RASP拦截应用层攻击(如Java Agent注入)。
22. 安全水位证明方法
量化手段:
- 渗透测试报告:第三方机构出具的漏洞修复率(如95%高危漏洞已修复)。
- ATT&CK覆盖度:检测能力覆盖MITRE ATT&CK中80%战术。
- 事件响应演练:模拟数据泄露后的处置时效(如2小时内完成溯源)。
可视化工具:
- 安全仪表盘:展示实时攻击态势、漏洞分布。
- 成熟度模型:基于CMMI模型评估安全能力等级。
23. 制定三年安全计划
阶段规划:
- 第一年(基础建设):完成等保三级认证,部署SIEM系统。
- 第二年(能力提升):建立红蓝军团队,引入AI威胁检测。
- 第三年(业务融合):实现DevSecOps全流程覆盖,通过ISO 27001。
资源投入:
- 预算分配:每年安全投入占IT预算15%-20%。
- 人才梯队:培养内部安全专家,与高校合作招聘。
- 技术预研:跟踪隐私计算、量子加密等前沿技术。
24. 未来安全行业趋势
技术方向:
- AI攻防:深度学习生成对抗样本,自动化绕过检测。
- 云原生安全:Kubernetes策略引擎(如OPA)、服务网格零信任。
- 隐私增强:同态加密、联邦学习保护数据隐私。
合规趋势:
- 数据主权:各国数据本地化存储立法(如中国数据安全法)。
- 供应链安全:软件物料清单(SBOM)成为交付标准。
25. 等级保护与GDPR落地
等保2.0核心:
- 三级要求:金融、政务系统强制认证,每年测评。
- 技术措施:入侵防范、审计日志留存6个月以上。
- 管理要求:设立信息安全领导小组,定期培训。
GDPR关键条款:
- 数据主体权利:被遗忘权、可携带权。
- 处罚案例:British Airways数据泄露被罚2000万欧元。
- 跨境传输:依赖SCC(标准合同条款)或Binding Corporate Rules。
实施挑战:
- 文化差异:欧洲重视隐私权,需调整产品设计逻辑。
- 技术适配:加密存储、匿名化处理增加系统复杂度。
26. 异常操作自动化监控
实现路径:
- 规则引擎:定义异常模式(如非工作时间登录)。
- 行为基线:机器学习建立用户正常操作画像。
- 实时告警:Flink流处理引擎分析日志,触发SNMP告警。
工具链:
- UEBA:Exabeam分析用户实体行为。
- SOAR:集成剧本自动阻断恶意IP。
27. 应用安全评估流程
评估步骤:
- 信息收集:使用Nmap扫描开放端口,识别框架版本。
- 漏洞扫描:Burp Suite、Acunetix检测OWASP Top 10。
- 代码审计:Checkmarx SAST工具检查源码漏洞。
- 配置审查:核对Dockerfile安全配置(如非root运行)。
深度检测:
- IAST:动态插桩检测运行时漏洞(如Contrast Security)。
- 第三方组件:OWASP Dependency-Check扫描CVE漏洞。
28. 安全蓝军与渗透测试差异
对比分析:
维度 蓝军 渗透测试 目标 持续提升防御体系有效性 发现漏洞并提供修复建议 频率 周期性演练(季度/半年) 项目制(每年1-2次) 方法论 模拟APT攻击,多维度对抗 按测试范围清单逐项验证 体系建设:
- 紫军协调:蓝军与防御团队协同优化(如攻击复盘会)。
- APT模拟:使用Caldera框架模拟攻击链。
29. 网络与生物安全异同
对比维度:
维度 网络安全 生物安全 防御对象 病毒、黑客、APT组织 病原体、基因污染 传播速度 光速传播(全球影响分钟级) 依赖物理接触(天/周级) 防御措施 防火墙、加密、访问控制 疫苗、隔离、基因编辑 交叉启示:
- 群体免疫:提高系统整体安全性降低单点风险。
- 基因多样性:避免技术栈单一化(如全Java系统易受Log4j影响)。