基于请求结构与响应特征融合的机器学习服务端请求伪造检测框架

《Applied Sciences》:A Hybrid Passive–Active Framework for Server-Side Request Forgery Detection Using Machine Learning

【字体: 大 中 小 】 时间:2026年10月31日 来源:Applied Sciences 2.5

编辑推荐:

  服务端请求伪造(SSRF)使攻击者能够迫使服务器向攻击者选定的目标发起请求,从而暴露内部服务和云元数据。研究人员提出了ML-SSRFinder,这是一个统一了三个分析器的双模式框架。在被动模式下,在发送任何流量之前,一个确定性的基于规则的计算器使用十四个加权特

  
服务端请求伪造(SSRF)使攻击者能够迫使服务器向攻击者选定的目标发起请求,从而暴露内部服务和云元数据。研究人员提出了ML-SSRFinder,这是一个统一了三个分析器的双模式框架。在被动模式下,在发送任何流量之前,一个确定性的基于规则的计算器使用十四个加权特征对请求进行评分,并由一个有监督的XGBoost分类器提供分诊先验。在主动模式下,注入之后,一个有监督的响应模型基于三十三个特征对HTTP响应进行分类,支持向量机(SVM)、XGBoost和随机森林中最强者默认给出判定,而它们的多数投票集成仍作为可选方案保留;一个确定性的内容分析模块针对云元数据、凭据、系统文件和防火墙拦截增加高精度匹配,一个依赖于模式的公式融合各信号。研究人员仅报告由训练代码产生的指标。在四十个示例的请求语料上,被动分类器达到留一法准确率0.900(F1 0.933);在二十八个示例的响应语料上,留一法准确率分别为支持向量机(SVM)0.857、随机森林与XGBoost的相应值,支持向量机排名第一并被采纳为默认响应模型。没有组件是完美的;被动分类器是分诊信号而非判定,且较小的语料使所有估计仅为指示性而非确定性结论。
**研究背景与问题**

服务端请求伪造(SSRF)是一类Web漏洞,应用程序可被诱导向攻击者选定的目标(而非应用程序预期逻辑的目标)发起HTTP请求或其他协议请求。由于伪造请求源自服务器,它继承了服务器的网络位置,常能访问从公网无法到达的内部服务、管理接口和云厂商元数据端点。链路本地云元数据端点(link-local cloud metadata endpoint)是尤其高价值的目标,因为一次成功获取即可泄露实例身份、配置以及可访问更广泛云账户的短期凭据。SSRF因此一直是漏洞赏金披露中的高影响类别,并在2021年版OWASP Top Ten中作为专门条目A10:2021出现;在随后的2025年版中它被并入更广泛的A01失效访问控制(Broken Access Control)类别。研究人员同时引用两个版本,因为重新分类反映的是分类学变化而非漏洞实际严重性的降低。

可靠检测SSRF存在两个互补的困难。第一,参数是可能注入点的指标存在于请求中:名为url的参数、获取远程内容的端点、缺少认证。这些结构线索说明SSRF漏洞在何处可能,但无法说明利用是否成功。第二,伪造请求实际到达敏感目标的证据存在于响应中:元数据列表、凭据文档、内部服务横幅或防火墙拦截。仅使用两个信号源之一的检测工具是不完整的;仅使用请求结构的工具无法确认利用,而仅注入载荷并检查状态码的工具则丢弃了响应的丰富内容。

**研究开展与结论**

ML-SSRFinder是一个双模式框架,在单一工作流中同时处理问题的两个方面。它构建于SSRFinder注入引擎之上,作为机器学习与分析扩展,提供三个协同分析器。第一个是确定性基于规则的置信度计算器,在不发送任何流量的情况下对请求结构评分。第二个是有监督的请求级分类器,在带标签的请求语料上训练,作为注入前的学习型分诊先验。第三个是主动响应分析层,在每次载荷注入后,用有监督响应模型和确定性内容分析模块对响应分类。三个分析器由置信度组合器融合,其权重取决于运行模式。

研究的贡献包括:描述基于规则的置信度计算器,用十四个加权布尔特征对请求结构评分并记录评分公式与风险映射,说明何时它优于学习模型;描述被动请求级分诊分类器并报告其在3:1不平衡的四十示例请求语料上的真实留一法和五折交叉验证性能,强调它是注入前先验而非确定性判定;描述基于三个互补分类器的主动响应分析层,它们在三十三特征响应表示上运行,最强单模型默认给出判定而多数投票集成作为可选,说明选择三个具有不同归纳偏置的模型的理由,并报告真实的每模型交叉验证指标、混淆矩阵、特征重要性和综合排名;描述确定性内容分析模块和依赖于模式的置信度融合公式,诚实报告没有组件达到完美准确率。

**关键技术方法**

研究采用带标签的请求语料(四十示例:二十来自HackerOne公开披露、十为PortSwigger风格合成实验示例、十为合成良性示例)训练被动XGBoost分类器,采用留一法和分层五折交叉验证评估;采用响应语料(三十八示例,排除十个无响应信号的盲外带示例后为二十八示例,十五恶意十三良性)训练支持向量机(SVM)、XGBoost和随机森林三个响应模型,提取三十三特征响应表示;使用确定性内容分析模块进行高精度模式匹配;采用模式依赖的置信度融合公式组合请求结构、注入和响应信号;并通过自托管漏洞应用(vulhub CVE环境)和同站点良性响应开展留一来源验证以检验来源偏差。实验在单一商用CPU、Python 3.14环境下进行,固定随机种子42,由可复现脚本reproduce_results.py生成全部指标。

**研究结果**

规则基于置信度计算器:该计算器从请求中提取十四个布尔特征,每个特征按固定权重求和,以基线s?为中心,当分数超过决策阈值时判定为脆弱;分数经分段线性变换转换为置信度百分比并映射为风险等级(SAFE、CRITICAL、HIGH、MEDIUM、LOW)。两个权重为负(认证存在与HTTPS方案略微降低风险)。研究明确指出该映射的一个后果:脆弱判定要求分数超过阈值,故LOW档永远不会被分配给计算器判定为脆弱的请求,每个阳性判定至少报告为MEDIUM;第8.4节给出可到达最低档的修正校准作为参考实现。

被动机器学习分析(请求级):被动分析在任何载荷发送前运行,分类器仅检查解析后的请求结构,输出请求为SSRF注入点的概率。分类器为XGBoost梯度提升树集成(浅树、一百个估计器、列行子采样、L1/L2正则化)。在四十示例请求语料上,留一法准确率0.900,精确率、召回率、F1均为0.933,分层五折准确率同为0.900;留一法混淆矩阵为真阴8、假阳2、假阴2、真阳28;特异性、平衡准确率、MCC及自助法准确率置信区间均被报告,均超过多数类基线。特征重要性集中于HTTPS方案标志、认证要求标志、url参数名标记,其次为/api/端点标志和POST方法标志;研究指出两个负信号特征排名最高反映良性类由认证HTTPS API调用构成,这种对语料构成的依赖正是被动预测被视为先验而非判定的原因。

主动机器学习分析(响应级):注入后,框架通过SSRFinder核心引擎注入载荷,计算相对基线的体大小差异,并由状态码和差异导出注入置信度;启用响应分析层时,完整响应由响应模型和内容分析模块分析产生响应置信度。每个响应被归约为三十三特征向量,分为状态码指标、响应大小分桶、慢计时标志与开闭端口计时比、服务器头签名、内容类型标志与不匹配标志、六个体内容指标、三个体结构标志、三个差异标志和两个异常头标志。研究刻意使用三个归纳偏置互补的分类器:支持向量机(SVM,径向基核,C=1.0)在小数据上通过最大间隔目标控制容量;XGBoost(最大深度3,L1/L2正则化)捕捉尖锐交互边界但最易过拟合;随机森林(最大深度4,每叶最少两样本)通过平均去相关树降低方差。集成判定为多数投票,集成置信度为按各模型留一法准确率加权的每模型概率平均。在二十八示例响应语料上,支持向量机为最强单模型,留一法准确率0.857、无假阳、四个假阴;随机森林最保守;XGBoost召回最高但假阳多且五折准确率明显低于留一法,是过拟合的清晰迹象。多数投票集成未超过支持向量机,故支持向量机被采纳为默认响应模型,三模型集成作为可选模式保留。按偏向精确率的复合评分,支持向量机排名第一,XGBoost与随机森林基本并列。McNemar检验显示支持向量机在七个XGBoost出错的示例上正确、反向仅一个,在五个随机森林出错的示例上正确、反向为零,两树模型统计上不可区分;集成从未在支持向量机失败的案例上获胜。研究因此将所有比较结论表述为初步。

来源偏差与留一来源验证:由于原响应语料的阳性和阴性来自不同来源,模型原则上可能通过识别来源而非漏洞来分离类别。研究加入两类不来自原语料的真实观测响应:自托管漏洞应用(五个vulhub CVE环境,从同一运行二进制的同一端点和时刻捕获脆弱与非脆弱响应)以及从作为披露阳性的同一Web应用实时收集的良性响应,然后留一来源训练与测试。结果是阳性信号可泛化(模型从未见过某vulhub CVE仍标记每个vulhub SSRF响应,留出阳性来源召回在区间内),但阴性侧不可泛化(跨来源精确率下降,十个同站点良性响应中六个为假阳),因为最难的阴性(同一端点或同一应用的良性响应)在可用特征上与阳性相似。从合并F1到跨来源F1的下降是跨越来源边界的诚实代价。研究还重复了去除可能由来源而非漏洞固定的特征(server_cloud和size_large)的分析,去除后性能下降,说明它们携带信号;通过测量各特征与标签及与来源的互信息,显示两者均为标签信息性,server_cloud和size_large几乎只在良性响应上触发,是真正的良性响应标记而非来源编码;唯一诚实的混淆是server_ec2ws(AWS元数据服务器自身头),它完美标记脆弱类但仅出现在单一来源,尚无法将该信号与来源分离。最后,用响应特征预测来源本身仅达到高于多数类基线的有限水平,说明特征不是强来源指纹。

响应特征重要性:两个树模型的特征重要性一致指向主导信号。XGBoost最重要的特征是通用云服务器头签名和大体标志,其次为状态200标志、小体标志和错误结构标志;随机森林重要性分布更均匀,由大体标志、云服务器头签名、元数据列表结构标志和内容差异标志领先。对服务器头签名和体大小分桶的一致指向表明模型依赖的是合理的利用信号(返回内容的大小与来源)而非虚假伪影。

评估结果总结:被动请求级分类器在四十示例请求语料上留一法准确率0.900,精确率、召回率、F1均为0.933,分层五折准确率同为0.900。在二十八示例响应语料上,支持向量机留一法准确率0.857为最强单模型,随机森林与XGBoost相应指标被报告;留一法混淆矩阵在各模型间差异显著;按精确率加权复合评分支持向量机排名第一,多数投票集成准确率未超过支持向量机。测得的留一法准确率直接作为集成置信度权重;由于集成未改进最佳单模型且权重源自评估所用的同一交叉验证预测,工具中支持向量机为默认响应模型,三模型集成作为可选。XGBoost留一法与五折准确率之间的显著差距是响应语料对梯度提升模型过小、无法可靠泛化的最清晰证据,这也是判定依赖最强单模型和确定性内容分析模块而非仅梯度提升模型的原因。

主动响应分析层:内容分析模块并行扫描小写响应体和响应头以寻找明确伪影,识别按严重性分类的高信号类别目录:构成内部访问或凭据泄露直接证据的类别(泄露云凭据、系统文件内容、私钥材料)视为关键;强烈暗示内部访问的类别(云元数据列表、数据库连接字符串、环境配置秘密)视为高严重性;表示服务器到达内部或外部资源但未泄露秘密的类别视为中严重性。阻断检测是上下文感知的:仅当响应包含特定多词阻断短语且不同时包含表明请求实际成功的大量外部数据时才判定为阻断,这一双条件测试避免将合法响应误分类为阻断。模块返回发现集和净置信度修正量。主动管道中,每个注入响应并行馈送至响应模型(默认支持向量机)产生响应置信度和内容分析模块产生发现与置信度修正,两者与注入置信度和请求结构先验一同馈送主动模式组合器,输出映射为严重性标签。置信度融合使用模式依赖权重:被动模式中请求级先验与注入置信度按权重组合;主动模式中权重重新分配以偏向直接响应证据(响应模型占主导权重0.60,注入信号0.30,请求结构先验0.10),结果裁剪至区间。内容分析模块可覆盖结果:检测到阻断且无发现时上限为15,关键发现至少提升至95,高严重性至少85,中严重性限于区间;50及以上判定为脆弱。研究进行了主动加权的敏感性分析:在125个权重向量和1331个代表性输入三元组上各权重最多变动,二值判定对绝大多数输入不变,仅在融合置信度已接近50阈值的输入上改变,融合置信度平均最大变化数点,说明判定对精确权重值稳健(决策边界附近除外),支持按设计设定权重。

修正校准(参考实现):研究指出8.3节评分有四个不理想属性:组件分数不在概率尺度上(规则计算器是加权特征和的裁剪线性映射,注入置信度是赋值常数表,却被当作可通约概率组合);融合分数下界不可达(两组件下限为5,缺失先验替换为50);脆弱判定下LOW档不可出现;三个组件定义在不一致尺度上。因此研究提供修正校准作为参考实现(calibration_v2.py),刻意不接入默认管道,整合列为未来工作。修正校准中三个置信度组件均定义在共同尺度上,响应置信度和请求结构先验直接取模型正类预测概率,注入置信度作为启发式似然而非学习概率明确声明,以显式单调映射保留8.3节表的顺序同时折叠每代码分桶。融合在实际存在的组件上进行并重新归一化权重,使整个范围可达(含接近0的值)。确认的内容分析发现作为有界证据更新应用,阻断且无发现时乘以强度因子,均保持在范围内。脆弱判定阈值明确,严重性档位置于正区域内(LOW从中起、MEDIUM、HIGH、CRITICAL),使最低档对脆弱判定可达。研究给出端到端数值示例:同一自托管GeoServer二进制的两个响应,全读SSRF阳性的响应模型概率、注入评分(状态200带大小差异)与请求结构先验融合后经HIGH内容发现更新,判定为VULNERABLE且CRITICAL严重性;同端点良性请求融合后低于阈值不被标记;边界情况融合后被报告为VULNERABLE且LOW严重性,故最低档在实践中确实出现;无证据情况融合接近尺度底部。这些数值由运行calibration_v2.py复现。

组件消融:确定性内容分析模块在响应语料上达到完美精确率、无假阳,确认其作为高精度确认器而非广谱检测器的角色,其召回为下界(在响应体摘录上评估)。被动分类器提供强分诊先验。规则计算器无拟合参数,故无训练集可留出,在整个请求语料上评估,其行未经交叉验证、不可直接与学习模型的留一法数字比较,应作为上界参考而非现场性能估计。完整融合系统无法端到端评估,因为目前没有将同一样本的请求结构、注入结果和响应链接起来的语料;构建此类语料并用其经验性优化融合权重(而非按设计设定)留作未来工作。

**讨论与结论**

讨论部分指出被动与主动分析的权衡:被动分析非侵入,不发送流量,可规模化优先排序目标,但其弱点内在——请求结构无法确认利用,被动分类器测得的留一法准确率是强分诊信号但约每十请求错一,绝不能当作判定;主动分析侵入但观察响应的直接利用证据,可确认被动分析只能提示的内容。框架设计反映这一分工:被动分数用于优先排序与提示,主动分数用于确认,注入发生后融合权重决定性地偏向响应模型。使用场景上,被动模式适用于侦察、未授权主动测试的环境以及在大规模候选参数上排序;主动模式适用于已授权注入且以确认为目标时。主要局限是两个语料的大小,留一法给出近似无偏的准确率估计但方差大,报告数字应读作可用数据上可分性的指示而非现场泛化估计;XGBoost留一法与五折准确率的差距直接说明这种脆弱性。被动分类器对HTTPS和认证特征的依赖反映其良性类的构成,可能无法迁移到良性流量分布不同的部署。留一来源验证量化了响应侧的类似效应:阳性信号跨来源可泛化但跨来源精确率下降,故响应模型在未训练来源上是敏感但非完全特异的检测器。两类留出集也小,且AWS元数据服务器头特征完美标记脆弱类但仅出现在单一来源,尚无法将该信号与来源分离。另一局限涉及置信度尺度本身:默认管道仍按8.3节融合与报告置信度(下界不可达、内容覆盖为常数、脆弱判定LOW档不可达),8.4节修正校准解决全部四个属性并随工具发布,但接入默认评分路径并根据它重新审视报告的严重性留作未来工作。内容分析模块按构造高精度但识别固定目录,可被以未预期编码披露内部信息的响应规避。纯盲SSRF对响应模型和内容分析模块都几乎不产生信号,基于时间和请求结构的信号仍是唯一可用证据,与带外回调服务集成是适当的互补路径;计划中的未来工作是直接将带外验证机制集成进工具,让ML-SSRFinder在后台启动轻量监听服务器、构造载荷引导目标联系该服务器,并在服务器收到相应DNS解析或HTTP请求时确认盲漏洞,此类交互将作为额外高精度信号馈送置信度融合阶段,使当前被排除的十个盲外带示例作为独立证据源重新进入管道。研究进一步指出被动分析按设计是框架各模式中最不可靠的,因为它只检查HTTP请求而不检查响应(最强利用证据所在),且其良性类由认证HTTPS端点主导,可能对本身为认证且仅HTTPS的真正脆弱服务给分偏低,略微提高被动假阴;由于该阶段仅优先排序候选而非发出判定,确认仍依赖主动响应模型和内容分析模块,重新平衡良性语料以解耦这些特征留作未来工作。负责任使用与数据消毒方面,ML-SSRFinder是双用途安全工具,仅用于授权测试;语料已相应消毒,HackerOne示例仅取自研究者和项目同意公开披露的报告并保留报告引用与原始删减块,合成示例不含真实凭据或目标,实时收集的响应绝未向第三方生产服务发送SSRF载荷,脆弱响应仅在受控自托管漏洞应用上复现,发布数据中唯一内部令牌被替换为占位符而真实漏洞信号(如私有范围地址)予以保留。指标诚实性方面,研究强调所有学习指标均由可复现评估脚本在所述环境中产生并与部署模型存储的指标一致,没有组件达到完美准确率,最佳单响应模型留一法准确率与被动分类器准确率被报告,研究刻意报告较弱模型(包括XGBoost在响应语料上差的五折准确率),因为模型间差异促成了将集成与最佳单模型比较,且小语料上的诚实报告比夸大的标题数字更有用。

结论部分总结:本文提出ML-SSRFinder,一个用于SSRF检测的双模式框架,统一三个协同分析器。被动模式下确定性规则置信度计算器以十四个加权特征围绕基线对请求结构评分,有监督XGBoost分类器提供学习型分诊先验;在四十示例请求语料上分类器测得留一法准确率0.900、F1 0.933。主动模式下注入后三个模型(支持向量机、XGBoost、随机森林)基于三十三特征对响应分类;在二十八示例响应语料上它们测得的留一法准确率分别为0.857、随机森林与XGBoost的相应值,按精确率加权复合评分排名第一的支持向量机为默认响应模型,其多数投票集成(置信度为每模型概率的留一法准确率加权平均)作为可选保留。确定性内容分析模块以高精度模式匹配补充响应模型,模式依赖融合公式组合请求结构、注入和响应信号,注入发生后偏向直接响应证据。框架在学习模型不可用时优雅降级至确定性核心。其主要局限是小语料、交叉验证估计随之而来的方差、内容分析模块的固定目录以及纯盲SSRF的残余困难,每项都定义了未来工作方向。研究诚实报告所有指标:没有组件达到完美准确率,被动信号是分诊先验而非判定。研究强调这些结果应读作有限数据集上可行性的概念验证演示,确立混合被动与主动方法可行且可复现,而非对真实世界部署稳健泛化的证据——后者需要大得多且更多样的语料。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号