SSL/TLS 检查与浏览器中间人攻击
学习何时以及如何在安全网关上检查加密的 HTTPS 流量,并探索 SSL 剥离和恶意扩展等基于浏览器的攻击如何运作。
SSL/TLS 检查与浏览器中间人攻击 是 CoddyKit 上的免费 Security+ Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Security+ Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Security+ Academy 课程共包含 4 节课。
为什么要检查加密流量
HTTPS 目前占 Web 流量的 90% 以上,其中包括恶意软件下载、C2 通道和数据外泄。无法检查 TLS 的边界安全工具只能看到加密数据块,从而形成攻击者会积极利用的盲点。SSL/TLS 检查(也称为 SSL 拦截、SSL bumping,或针对 HTTPS 的深度数据包检查)能够让安全网关在 HTTPS 流量到达终端前对其进行解密、检查和重新加密。在大多数流量都采用 HTTPS 的环境中,这种可见性对于 Web 内容过滤、DLP 和反恶意软件扫描至关重要。
SSL/TLS 检查的工作原理
SSL 检查在技术上是由组织自身安全基础设施执行的受控中间人操作。过程如下:步骤 1:Client 使用由企业 CA 签发的代理 Certificate,与代理建立 TLS 连接。步骤 2:代理使用 Server 的真实 Certificate,与实际 Server 建立单独的 TLS 会话。步骤 3:代理解密来自 Client 的流量,检查后重新加密并转发给 Server(反向流量同理)。由于企业 CA Certificate 已通过 MDM 或 Group Policy 预先安装在所有受管终端上,Client 会信任代理的 Certificate。
# SSL inspection flow
Client Proxy (SEG) Real Server
| | |
|--TLS ClientHello------>| |
| (proxy cert presented)| |
|<-TLS Established-------|--TLS ClientHello----->|
| |<-TLS Established------|
|--HTTPS Request-------->| |
| |--HTTPS Request------->|
| |<-HTTPS Response-------|
| (inspect, DLP, AV) | |
|<-HTTPS Response--------| |
| | |SSL 检查豁免
并非所有流量都应接受检查。组织通常会豁免承载法律或道德敏感数据的类别:银行和 Financial 网站、Healthcare 门户、法律研究数据库、Certificate 透明度和 OCSP URL(以避免破坏 Certificate 验证),以及使用 Certificate 固定的网站(这些网站会拒绝重新签发的 Certificate,导致应用无法运行)。豁免项会作为检查策略中的绕过列表进行维护。在某些司法管辖区,员工监控法律可能限制对个人 Web 浏览行为的检查,因此需要在可接受使用策略中明确披露。
# SSL inspection bypass list examples
ssl_inspect_bypass:
# Financial sites
- *.bankofamerica.com
- *.chase.com
# Healthcare
- *.mychart.com
# Certificate infrastructure
- ocsp.*.com
- crl.*.com
# App that uses cert pinning
- api.corporate-erp.com
# Government sites
- *.irs.gov
- *.ssa.govCertificate 固定与检查绕过
Certificate 固定是一种技术:应用会针对特定 Server 将预期的 Certificate 或公钥硬编码,并在 Certificate 不匹配时拒绝连接,即使该 Certificate 有效且受到 OS CA 存储区的信任。这会破坏 SSL 检查,因为代理重新签发的 Certificate 与固定值不匹配。移动应用(银行应用、支付应用)经常使用 Certificate 固定来防御中间人攻击。Enterprise 必须对使用固定的应用绕过检查,否则这些应用将无法运行。这也意味着,想要逃避 SSL 检查的攻击者可以在其恶意软件中实现 Certificate 固定。
什么是 SSL 剥离
SSL 剥离是一种中间人攻击:攻击者拦截 HTTPS 流量并将其降级为 HTTP,使自己能够以明文读取和修改内容。该攻击针对先以 HTTP 开始、之后再重定向到 HTTPS 的连接:攻击者拦截初始 HTTP 请求,在与合法 Server 建立 HTTPS 连接的同时,与受害者保持 HTTP 连接,并透明地中继流量。从受害者的角度看,网站显示为 HTTP。HTTP Strict Transport Security(HSTS)通过告知 Browser 某个域名始终使用 HTTPS(即使用户输入的是 HTTP),来防御 SSL 剥离。
# HSTS response header (server sends this)
Strict-Transport-Security: max-age=31536000;
includeSubDomains;
preload
# max-age=31536000 = 1 year in seconds
# includeSubDomains = also enforces HTTPS on subdomains
# preload = include in browser HSTS preload list
# (HSTS enforced even on first visit)
# After receiving HSTS header:
# Browser WILL NOT connect via HTTP for 1 year
# SSL stripping becomes ineffective浏览器中间人(MitB)攻击
浏览器中间人(MitB)攻击是一种银行木马攻击:它会以恶意扩展或 Browser 进程注入的形式进入 Web Browser,在用户未察觉的情况下修改 Web 页面和交易。与网络中间人不同,MitB 在 Browser 层的加密会话内部运行,因此 TLS 无法提供保护。MitB 恶意软件(Zeus、SpyEye)可以:更改支付金额、修改收款账户号码、窃取一次性密码,以及在用户填写表单后悄悄修改表单内容。这些修改发生在 TLS 解密之后、用户看到渲染页面之前。
浏览器中间人攻击机制
浏览器中间人攻击恶意软件在应用层挂钩浏览器 API。在 Windows 上,它使用 DLL 注入或 COM 劫持将代码注入浏览器进程(Chrome、Firefox、IE),然后挂钩 JavaScript 函数和 DOM 操作 API。当用户访问银行网站时,恶意软件会拦截用于呈现页面和交易确认信息的 JavaScript,将收款账户修改为攻击者的账户。服务器看到的是正确的交易;服务器端的 HTTPS 日志中没有任何异常。用户看到的确认信息也是正确的——显示的是其原本想要转账的金额——但实际转账却进入了攻击者的账户。
浏览器中间人攻击防御
防御浏览器中间人攻击需要采用分层控制措施。浏览器隔离(Menlo Security、Zscaler Browser Isolation)会在远程云 VM 中执行浏览器渲染,只将像素流式传输到用户屏幕——恶意软件无法注入运行在远程环境中的浏览器进程。交易验证:银行通过带外渠道确认交易详情(金额 + 收款人),例如在 SMS OTP 中包含交易详情,以便用户验证服务器实际收到的内容。能够检测浏览器进程中 DLL 注入的终端 EDR可以识别浏览器中间人攻击感染。浏览器扩展允许列表可以阻止恶意扩展。
恶意浏览器扩展
恶意浏览器扩展是严重的终端威胁。扩展拥有广泛的权限——可以读取页面内容、修改请求、拦截表单提交并访问 Cookie。伪装成实用工具(广告拦截器、深色模式)的扩展可能窃取凭据、注入广告、重定向流量,或充当浏览器中间人攻击代理。企业控制措施:使用 Group Policy 或 MDM,将扩展安装限制为已批准的允许列表。阻止从 Chrome Web Store 或 Firefox Add-ons 以外的来源安装扩展。定期审核受管终端上已安装的扩展,检查是否违反策略。
# Chrome enterprise extension control (Group Policy)
# Computer Config > Admin Templates > Google Chrome
# > Extensions > 'Configure the list of force-installed apps'
# Add extensions by ID:
ExtensionInstallAllowlist:
- 'efaidnbmnnnibpcajpcglclefindmkaj' # Adobe Acrobat
- 'cjpalhdlnbpafiamejdnhcphjbkeiagm' # uBlock Origin
ExtensionInstallBlocklist:
- '*' # Block all others
# Force-install approved extensions from URL
ExtensionInstallForcelist:
- 'id;https://internal-extension-server/update.xml'TLS 检查策略与隐私平衡
实施 SSL 检查的组织必须处理员工隐私影响。许多司法管辖区和劳动法要求在监控加密流量之前进行明确告知。最佳实践包括:发布可接受使用策略(AUP),明确说明包括 HTTPS 在内的网络流量可能会受到检查;在员工入职期间要求其确认 AUP;针对个人银行和医疗网站实施绕过类别;并且仅在必要期限内保存解密后的流量日志(通常为 30–90 天)。部署前应由法律顾问审查检查计划,尤其是在 EU 国家,因为 GDPR 对员工监控施加了更严格的限制。
HTTPS 证书透明度(CT)
Certificate Transparency 是一种框架(RFC 6962),要求所有公开信任的 TLS 证书在浏览器信任它们之前,先记录到可公开审计、只能追加的 CT 日志中。CT 使域所有者能够监控错误签发的证书:如果攻击者设法说服 CA 为您的域签发证书(2011 年 DigiNotar 事件就曾发生过这种情况),CT 日志便能实现近乎实时的检测。诸如 crt.sh 这样的工具可以让安全团队搜索为其域签发的所有证书。浏览器通过要求在 TLS 握手中嵌入日志包含证明(已签名证书时间戳,即 SCT)来强制执行 CT。
# Search CT logs for certificates issued for your domain
# Use crt.sh public CT log aggregator
curl 'https://crt.sh/?q=example.com&output=json' | \
python3 -m json.tool | grep '"name_value"'
# Result shows all certs issued for example.com and
# *.example.com including: issuer, validity, SANs
# Monitor for unexpected certs = potential mis-issuance
# Also subscribe to cert monitoring services:
# Facebook Certificate Transparency Monitoring
# sslmate.com/certspotter
# Google cert-manager webhook notifications快速检查
测试您对本课 CompTIA Security+(SY0-701)概念的理解。
课程回顾
在本课中,您学习了:SSL/TLS 检查会在代理处使用受受管终端信任的企业 CA 证书,对 HTTPS 流量进行解密、检查和重新加密;SSL 剥离会将 HTTPS 降级为 HTTP,而 HSTS 可以抵御这种攻击;浏览器中间人攻击会在 TLS 层之上注入浏览器进程,以隐蔽方式修改交易,因此需要采用浏览器隔离或带外交易验证进行防御。接下来,我们将探讨如何用安全协议替换不安全协议。
常见问题解答
「SSL/TLS 检查与浏览器中间人攻击」课时是免费的吗?
是的 — 「SSL/TLS 检查与浏览器中间人攻击」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Security+ Academy 课程的其余内容,请升级到 CoddyKit PRO。 Security+ Academy 课程共包含 4 节课。
「SSL/TLS 检查与浏览器中间人攻击」这节课中我会学到什么?
学习何时以及如何在安全网关上检查加密的 HTTPS 流量,并探索 SSL 剥离和恶意扩展等基于浏览器的攻击如何运作。 你通过在浏览器中直接运行的动手代码来练习 Security+ Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Security+ Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Security+ Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「SSL/TLS 检查与浏览器中间人攻击」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Security+ Academy 课中编写并运行代码吗?
能。每节 Security+ Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 电子邮件身份验证:SPF、DKIM 与 DMARC
- 安全电子邮件网关与反垃圾邮件控制
- Web 内容过滤与 DNS 黑洞
- SSL/TLS 检查与浏览器中间人攻击