#llvm

共收录 5 条相关安全情报。

← 返回所有主题
推荐 3.5
Conf: 50%
👥 作者: Sipeng Xie, Qianhong Wu, Minghang Li, Qin Wang, Zhipeng Wang, Bo Qin

该论文聚焦以太坊虚拟机(EVM)提前编译(AOT)技术的产物复用粒度问题。当前主流 AOT 编译器(如 revmc、evmone、DTVM)以「合约代码哈希」为最小单位缓存和复用编译产物,即每个不同的字节码哈希都对应一次独立编译。作者指出,这一粒度与真实链上负载的分布严重不匹配:实际部署由「合约族」(contract families)主导,包括工厂合约、代理合约、模板化部署等,同一族的合约在指令结构上几乎完全一致,差别仅在于少量内嵌常量(如地址、参数、初始化值)。研究团队在 Base、Ethereum、BSC、Arbitrum 四条 EVM 链上进行了测量,发现在 10K 区块窗口内,23.1%–47.6% 的唯一可编译字节码可归入共享的族骨架。这意味着按哈希编译会反复编译结构等价的代码,导致编译时间与产物占用被放大,并在有限编译预算下反而降低了对实际执行负载的覆盖率。为解决问题,作者提出 SkelOT 框架,把编译复用的单位从代码哈希提升为族骨架:每个族只编译一个原生产物,把族内不变的常量直接固化进产物,而把随合约变化的常量放入一份按合约索引的运行时表,在执行时读取。SkelOT 基于 revmc/LLVM 实现,并在 Base 主网 10K 区块语料(352 万笔交易)上评估:编译单元数减少 47.5%,产物体积减少 57.4%,编译时间提速 2.19 倍,同时与按哈希 AOT 保持字节级完全一致的执行结果。运行时方面,族内成员合约获得 1.31 倍的中位单合约加速。在面向 75% 执行时间覆盖率的编译预算约束下,SkelOT 所需产物数量远少于按哈希 AOT,且该优势在所有覆盖率目标下均成立。适合 EVM 客户端与执行层性能工程师、区块链节点/验证者运维人员以及编译器与运行时研究者阅读。

💡 推荐理由: 链上代理/工厂/模板化合约占比极高,按代码哈希编译会产生大量重复工作。SkelOT 在不改变执行语义的前提下显著压缩编译时间、产物体积与预算占用,对节点启动速度、状态与磁盘开销、有限算力下的负载覆盖率都有直接价值。

🎯 建议动作: 研究跟进

排序因子: 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Tianjiao Huang, Po-An Chen, Nick Baron, Michael Franz

该论文针对二进制重编译(binary recompilation)这一核心技术领域提出了一个全静态的整程序提升(lifting)方案。二进制重编译的价值在于:无需源代码即可直接对可执行代码进行操作,从而自动化完成两项重要任务——为遗留二进制打补丁式地加装安全缓解措施(如 CFI、影子栈等),以及把二进制从一种指令集架构(ISA)迁移到另一种 ISA(例如从 x86-64 迁移到 AArch64)。然而目前并不存在能够可靠地把任意可执行文件提升为 LLVM IR 这类编译器中间表示的全自动系统,也不存在能够完整静态且可靠地把非平凡二进制从一种 ISA 翻译到另一种 ISA 的方案。作者指出,根本困难在于:静态恢复程序的完整控制流图(CFG)在一般情况下是不可判定的——计算型间接分支(computed branch)的跳转目标只有真正运行程序才能确定。现有系统因此不得不引入运行时回退(runtime fallback)机制,导致相当大一部分翻译运行时(translation machinery)必须随翻译后的程序一起部署在目标机器上执行,既增加开销,也削弱了“静态翻译”的初衷。 本文的核心方法是不再试图区分代码与数据(即不需要 code/data heuristics),而是把二进制中的每一个字节偏移都视为潜在的分支目标,以“暴力提升”(brute-force lifting)的方式对整个二进制进行转换,从而构造出一个保守但完整的超集 CFG(superset CFG),该 CFG 在保守意义上包含所有可行的控制流。对于那些静态无法解析的计算型分支,作者将其归约为对一张分发表(dispatch table)的查表操作,表中每一项指向对应的已翻译控制流路径,从而在目标端完全不需要运行时翻译支持。 作者实现了一个原型二进制重编译器,将 x86-64 二进制提升为 LLVM IR,并在此基础上做了完全静态的交叉编译验证:复用未经修改的现有 LLVM 后端,把程序静态地翻译到 AArch64。该工作宣称是首个不需要目标端运行时翻译支持的、全静态的整程序二进制提升系统,为遗留二进制的安全加固与跨 ISA 迁移提供了一条无需运行时开销的可行路径。适合二进制分析、程序加固、编译器与逆向工程方向的研究者和工程人员阅读。

💡 推荐理由: 全静态、无需目标端运行时的二进制提升,直接关系到无源码遗留系统的安全加固与跨架构迁移能否离线、批量化完成;同时它绕开了代码/数据区分这一长期瓶颈,会影响基于该区分的加固与检测手段的假设前提。

🎯 建议动作: 研究跟进

排序因子: 有可用补丁/修复方案 (+3) | 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.6)
👥 作者: Wesley B. Nuzzo, Samuel Dodson, Benjamin Houle, Tarakaram Gollamudi, Anitha Gollamudi

本文针对可信执行环境(TEE)与低层语言(如 LLVM IR)结合时面临的安全分区问题展开研究。TEE 通过 enclave 提供硬件级隔离,但仅依靠它无法保证信息流安全;LLVM 这类语言允许不受限制的指针操作和非结构化控制流,进一步加剧了信息泄漏风险。同时,手工将应用划分成 enclave 部件与非 enclave 部件既繁琐又易错,且缺乏细粒度控制。作者提出一种三步走方案:首先形式化基于 LLVM IR 的 enclave 无关演算 SIR,设计新型宽松类型系统,结合信息流控制与安全感知的粗粒度内存安全,以抵御低级攻击者;然后将 SIR 扩展为 enclave 感知演算 SIREN,其非干涉性保证能抵御可观察任意非 enclave 内存的更强攻击者;最后实现类型驱动、类型保持的 SIR 到 SIREN 编译,自动生成安全的 enclave 感知程序,消除了手工分区过程,同时保持对 host-enclave 边界的细粒度控制。文中实现了 SPLITR 工具,并在 Intel SGX 硬件上用 13 个微基准和现实负载(包括 SGXGauge 应用)进行评测;SPLITR 能扩展到 OpenSSL(425,953 条 LLVM IR 指令),支持在 enclave TCB 大小、host-enclave 转换次数、边界数据移动量等目标之间权衡。对于 OpenSSL,面向转换次数优化可将其从 393 降为 187。运行时开销方面,短时运行负载主要被固定的 enclave 开销主导,而长时运行应用能更好地摊销这些开销,接近原生性能。该研究的最重要贡献是首次为 LLVM 系语言提供安全构造的自动分区形式化框架,并为编译优化、硬件隔离结合信息流控制提供了可行的工程验证。

💡 推荐理由: 该研究解决了 TEE 应用手工划分困难、易出错且缺乏信息流保障的痛点,为在依赖指针的底层语言上自动生成安全 enclave 分区提供了理论与工具基础,适合编译器、系统安全与可信执行环境开发者关注。

🎯 建议动作: 研究跟进

排序因子: 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Eli Davis, Eric Lahtinen, Michael Gordon

内存安全错误仍然是C和C++中严重漏洞的主要来源。传统的基于位置的消毒器(如LLVM的ASan)虽然广泛使用,但只能检测缓冲区溢出等有限类型的错误,且开销较高。基于指针的消毒器提供了更强的安全保障,但以往的实现因高开销和兼容性问题难以在生产环境中部署。本文提出了PTSan,一种基于LLVM的实用内存安全消毒器。PTSan通过在每个指针的高位存储对象标识符,并在固定大小的运行时表中存储对象边界,从而在有限的活跃对象预算与低开销、优化器可见性和通用硬件支持之间取得平衡。由于标识符随指针值传播,LLVM的数据流分析可以自然地传播它,无需显式的逐指针元数据指令。PTSan将元数据查找与检查执行分离,均以LLVM IR表示,从而支持检查的提升、消除和合并,以及基于整个函数最小割的兼容性标签剥离放置。当硬件支持Intel线性地址掩码(LAM)时,可进一步消除剩余的标签剥离指令。在通用硬件上,PTSan的开销与最快的已发布基于位置的消毒器相当:SPEC CPU 2017在x86-64上的几何平均开销为57.2%(使用Intel LAM时为46.4%),ARM64上为54.7%,在应用型的LLVM MultiSource套件上为31.5%(x86-64)。这大约是具有类似指针-对象权限保证的先前系统已发布开销百分比的三分之一,同时独立内存安全测试套件测量显示,PTSan保持了跨对象、非对象和时间检测覆盖范围。其物理内存开销接近原生,这对于生产部署至关重要。本文还通过实际服务器和安全工作负载展示了实用开销。结果表明,PTSan将实用的基于指针的内存安全引入了仅需重新编译的消毒器部署模型。

💡 推荐理由: PTSan显著降低了基于指针的内存安全检测的开销,使其在生产环境中部署成为可能,有望大幅减少C/C++软件中的内存安全漏洞。

🎯 建议动作: 研究跟进

排序因子: 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
推荐 9.5
Conf: 50%
👥 作者: Johannes Blaser, Floris Gorter, Klaus von Gleissenthall, Herbert Bos

该研究提出了一种名为QuickSafe的针对性加固技术,旨在防御内存损坏漏洞。传统的内存安全方案(如ASLR、堆栈保护)往往存在性能开销大或覆盖范围有限的问题。QuickSafe的核心思路是通过静态分析和运行时监控,仅对关键内存操作进行加固,从而在安全性和性能之间取得平衡。方法包括:首先识别程序中易受攻击的内存访问模式,然后插入轻量级的检查机制,仅在必要时激活保护。实验在常见基准测试和真实应用上进行,结果表明QuickSafe能够有效防止多种内存损坏攻击(如缓冲区溢出、use-after-free),且平均性能开销低于5%,显著优于现有全量加固方案。该工作为内存安全提供了一种实用的折中方案,特别适合对性能敏感的系统。

💡 推荐理由: 内存损坏仍是安全领域的重要威胁,而现有加固方案性能开销大。QuickSafe提供了低开销的针对性加固思路,有助于推动内存安全防护的现实应用。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)