NDSS 2021 论文泛读

会议论文列表:https://dblp.uni-trier.de/db/conf/ndss/ndss2021.html
只挑了几个感兴趣的session过了一遍,还是发现了不少有意思的文章。

文章目录

      • 程序分析
      • 模糊测试
      • 侧信道
      • 智能家居
      • 软件防御
      • 嵌入式安全
      • 可信计算

程序分析

Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages.

简介:qualitative assessment!(定性评估)

包管理器在现代软件开发过程中起到很重要的作用。他们可以让开发者复用第三方库,最小化代码库,简化软件构建的流程等等。然而,最近的报告显示,包管理器会被攻击者利用来发布恶意软件,造成严重的安全威胁。比如,npm里的一个一周能有百万次下载的包(eslint-scope),被发现会偷取开发者的凭据。

本文提出了一个comparative的框架去定性评估解释器语言里的包管理器的功能和安全特征。基于量化评估,采用了知名的程序分析技术(元数据、静态、动态分析)去研究registry abuse。刚开始发现了339个新的恶意包。包管理器的维护者确认了其中278个(82%),其中3个有超过10万次下载。对于这些包,作者申请了CVE,来帮助大家把这些恶意的包移出去。

链接:https://www.ndss-symposium.org/ndss-paper/towards-measuring-supply-chain-attacks-on-package-managers-for-interpreted-languages/

Processing Dangerous Paths - On Security and Privacy of the Portable Document Format.

简介:pdf危险性分析。怎么分析攻击的能力,值得学习!

PDF是一种标准的文档格式。我们会很经常的从不可信的渠道获取到pdf并打开,比如email的附件,网上下载的。本文主要是对恶意PDF的能力做了深入的分析。本文不是针对实现上的bug,而是通过在pdf文件结构里系统性地识别危险的路径来滥用pdf标准的合法特性。这些危险路径会导致攻击。作者将其分为四类:(1)拒绝服务攻击(2)信息泄露攻击(3)数据操纵(Data manipulation)(4)代码执行。分析了28个处理PDF的应用程序的结果表明,其中26个都存在至少导致一种攻击的路径。最后基于PDF特征提出了一种防御策略。

链接:https://www.ndss-symposium.org/ndss-paper/processing-dangerous-paths-on-security-and-privacy-of-the-portable-document-format/

XDA: Accurate, Robust Disassembly with Transfer Learning.

简介:迁移学习和反汇编的结合。

在去掉符号表的二进制里去反汇编是很困难的。现有的反汇编方法依赖启发式或者简单的模式匹配来粗略的反汇编,但这些方法都不怎么准确,尤其是在存在编译器优化的情况下。

本文提出了一种基于迁移学习的反汇编框架XDA,能够学习机器码里的上下文依赖,并且实现准确和鲁棒性强的反汇编。XDA设计了一种自监督的学习任务。这个任务的输出是字节嵌入(byte embedding),编码了机器码里的复杂上下文关系。这个embedding,后面还可以再优化,用于后续的反汇编任务里去。

实验主要针对两个反汇编任务,包括恢复函数边界和汇编指令。测试集主要采用SPEC CPU 2017,SPEC CPU 2006和BAP语料。测试的二进制由GCC,ICC,MSVC在windows和linux平台上编译,包含超过4种优化。XDA分别在恢复函数边界和汇编指令的任务上达到了99.0%和99.7%的F1 Score。开源于:https://github.com/CUMLSec/XDA

链接:https://www.ndss-symposium.org/ndss-paper/xda-accurate-robust-disassembly-with-transfer-learning/

Shadow Attacks: Hiding and Replacing Content in Signed PDFs.

简介:不利用漏洞的攻击

PDF里的数字签名用来保证他们内容的真实性和完整性。2019年的一篇论文里发现了很多PDF查看器实现的解析文件的漏洞。这些漏洞可以被利用来修改pdf的内容而不需要验证签名。然后pdf查看器软件的产商采取了一些措施来防止这些攻击。

这篇文章提出了一种新的攻击,叫做shadow attacks。这种攻击可以绕过现有的防御机制,并且破坏数字签名的pdf的完整性。这种攻击不利用实现上的漏洞,而是利用pdf里标准的特性来实现。实验结果表明,29个pdf查看器里有16个都会被shadow attack攻破。

链接:https://www.ndss-symposium.org/ndss-paper/shadow-attacks-hiding-and-replacing-content-in-signed-pdfs/

KUBO: Precise and Scalable Detection of User-triggerable Undefined Behavior Bugs in OS Kernel.

简介:内核未定义行为漏洞的检测。如何在内核级别的代码量上实现较高精度的静态分析?

未定义行为(Undefined Behavior, UB)的bug在很多用底层语言C/C++实现的软件中存在。尤其是需要和硬件交互的OS内核,存在很多这样的bug。在用户空间触发UB也能构造利用,造成OS的安全和可靠性issue。前人的工作牺牲了准确性换取扩展性,导致有很多高误报。

文章提出了一种新的静态UB的检测方法,叫做KUBO,能够同时兼具高准确性和整个内核的扩展性。KUBO针对的是能够在用户空间输入触发的UB bug。KUBO的高准确性是基于UB触发路径和条件的验证得到的。扩展性是基于高效的过程间分析(能够按需地遍历整个调用链)最后找到了23个未知的高危UB漏洞。误报率仅仅27.5%,比最先进的91%要好得多。

链接:https://www.ndss-symposium.org/ndss-paper/kubo-precise-and-scalable-detection-of-user-triggerable-undefined-behavior-bugs-in-os-kernel/

Bringing Balance to the Force: Dynamic Analysis of the Android Application Framework.

简介:引入动态分析测试安卓应用框架

安卓应用框架在保护用户隐私数据和系统完整性上起到很重要的作用。因此,它成了许多工作研究的对象。这些工作揭露了许多安全问题,包括文档不完整、权限重分配、访问控制的不一致性。然而,前面的工作都是基于静态分析。静态分析存在很多不确定性。为了打破这种不平衡的局面,文章在应用框架里加入了动态分析。最后结果说明加入动态分析还是很有必要的。

链接:https://www.ndss-symposium.org/ndss-paper/bringing-balance-to-the-force-dynamic-analysis-of-the-android-application-framework/

SymQEMU: Compilation-based symbolic execution for binaries.

简介:提高符号执行的性能

基于编译的符号执行能够极大地提高符号执行的性能。但是需要源码。本文提出一种新的基于编译的符号执行,而不需要源码,它是基于qemu实现的。实验结果表明他比现在的S2E,QSYM都要好。在一些benchmark上,甚至比SymCC还要好。甚至在经常测试的库libarchive里发现了一个未知的漏洞。

链接:https://www.ndss-symposium.org/ndss-paper/symqemu-compilation-based-symbolic-execution-for-binaries/

TASE: Reducing Latency of Symbolic Execution with Transactional Memory.

简介:减少符号执行的延迟

本文提出了TASE,使用交易型内存来减少符号执行的延迟。只有当执行遇到了符号化的值时,符号执行解释器才会启动。当不再遇到符号化的值时,再切换为普通执行。本文工作的创新点是分期支付检查value是否是符号化的代价,并且使用硬件支持的交易型内存来实现普通执行,就可以没有影响地切换。实验发现,TASE对于时延敏感的应用很有效,比如client-server应用里验证用户的行为。

链接:https://www.ndss-symposium.org/ndss-paper/tase-reducing-latency-of-symbolic-execution-with-transactional-memory/

Refining Indirect Call Targets at the Binary Level.

简介:识别间接跳转目标。

应用细粒度的CFI对于提升软件安全很重要。然而,对于商业的二进制,构造高精度的控制流图是很困难的。因为没有源码级的信息,比如符号,类型来帮助识别间接跳转。缺少源码信息使得分析间接跳转的目标变得很难。指向分析或许是个解决方法,但目前没有二进制级别的指向分析框架来识别间接跳转目标。Value-Set Analysis在二进制上是最先进的指向分析框架,但是不能扩展到大型程序里。因此,文章提出了BPA这个框架,采用多种分析技术,包括块内存模型、内存访问分析。结果表明,BPA比现有工具的精度提高了34.5%,并且没有引入漏报(false negative)

链接:https://www.ndss-symposium.org/ndss-paper/refining-indirect-call-targets-at-the-binary-level/

模糊测试

PGFUZZ: Policy-Guided Fuzzing for Robotic Vehicles.

简介:自动驾驶里的fuzzer

自动驾驶交通工具(Robotic Vehicles,RV)成为了现代系统里的很重要的部分,比如自动送快递服务,公共交通,环境监控等等。尽管他们已经应用到了很多地方,但是安全问题限制了他们更广的应用。大部分针对RV的工作主要是提出防御机制来抵御语法bug,输入验证bug和外部传感器欺骗攻击。这篇文章提出了PGFUZZ,一种policy-guided的模糊测试框架,可以验证RV是否遵守已确定的安全和功能策略。PGFUZZ通过时间逻辑表达式来表达确定的策略。时间逻辑表达式是用时间约束来表示,并且作为fuzz分析系统的导向指标。更具体的说,每次生成输入,都会朝着返回策略的状态更近一步。另外,使用静态和动态分析找出会影响策略的true value的命令,参数以及环境因素。最后在RV控制程序,ArduPilot,PX4和Paparazzi上测试,发现了156个未知的bug,其中106个被开发者所证实。

链接:https://www.ndss-symposium.org/ndss-paper/pgfuzz-policy-guided-fuzzing-for-robotic-vehicles/

Favocado: Fuzzing the Binding Code of JavaScript Engines Using Semantically Correct Test Cases.

简介:针对JavaScript的binding layers的fuzzer。用到C语言的地方还挺多的。

JavaScript运行系统包含了一些特别的编程接口,叫做binding layers。Binding layers会将数据表示翻译成JavaScript和一些不安全的语言,比如C/C++。由于JavaScript的广泛应用,发现JavaScript的binding layers里的bug是很重要的。然而,现有的JavaScript模糊测试工具不足以fuzz binding layers,原因有二。如何生成语法和语义正确的测试样例,并且减少输入空间的大小。

本文提出了Favocado,来fuzz JavaScript里的binding layers。Favocado通过提取语义信息和小心保留执行状态,可以生成语法和语义正确的JavaScript的测试样例。通过这种方式,Favocado生成的测试样例不会引起非预期的运行时异常,从而增加了触发binding code的机会。另外,利用binding layer的唯一特征,将DOM对象分成平等的类,可以大量减少fuzzing的输入空间。最后发现了Adobe Acrobat Reader,Foxit PDF Reader,Chromium,Webkit里的61个未知的bug,其中33个是安全漏洞。

链接:https://www.ndss-symposium.org/ndss-paper/favocado-fuzzing-the-binding-code-of-javascript-engines-using-semantically-correct-test-cases/

WINNIE : Fuzzing Windows Applications with Harness Synthesis and Fast Cloning.

简介:windows fuzzer,绕过GUI的思路不错

现有的模糊测试都是针对Unix-like的系统,而没有针对windows的。因为windows是闭源生态系统,而且图形界面很多。并且目前缺少快速克隆进程的工具。因此,本文提出了两个解决方案来解决windows里fuzz的难题。首先,会去为应用生成一个harness。harness是一个小程序,能够直接调用目标函数。然后使用windows里的fork去测试harness,而无需测试整个复杂的程序。使用这种手段就可以绕过GUI,测试应用的逻辑了。最后对59个闭源windows二进制fuzz,都成功生成了合法的fuzz harness。实验结果还表明,该工具可以比现有的windows模糊测试支持更多的程序(2.2x),并且识别更多的程序状态(3.9x),更快的执行(26.6x)。发现了61个未知bug。

链接:https://www.ndss-symposium.org/ndss-paper/winnie-fuzzing-windows-applications-with-harness-synthesis-and-fast-cloning/

Reinforcement Learning-based Hierarchical Seed Scheduling for Greybox Fuzzing.

简介:强化学习和fuzzer,强化学习如何和fuzzer结合?

覆盖率指标在模糊测试中起到很重要的作用。最近的工作发现细粒度的覆盖率指标可以让fuzzer比用传统的边覆盖率指标更能发现bug。然而细粒度的覆盖率指标需要选择更多的种子,而这是现有的算法所无法调度的。为了解决这个问题,本文引入了新的概念,多级的覆盖率指标和基于强化学习的分层调度器。在CGC测试集上,本文的工具要比AFL和AFLFast好非常多,能够检测多20%的bug,提高更多的覆盖率(83个多,60个一样)。在fuzzbench上,覆盖率比AFL++要多的有10个程序(总共20个)。

链接:https://www.ndss-symposium.org/ndss-paper/reinforcement-learning-based-hierarchical-seed-scheduling-for-greybox-fuzzing/

侧信道

PhantomCache: Obfuscating Cache Conflicts with Localized Randomization.

简介:多级缓存的随机化方案

由于memory-to-cache的映射导致的cache冲突,经常被用于泄露敏感信息。关于L1 缓存的随机映射的研究很多,但是仍然没有解决如何使更高级的Last-level缓存(LLC)更安全的问题。现有的工作通过改变映射策略来使冲突地址的构造变得更加困难。然而,重新映射会导致丢失率和访问延迟的增加。本文针对LLC,提出了一种remapping-free的随机映射方法。采用本地随机化技术来限定内存地址的随机化映射边界。小的随机空间使得LLC在内存访问上可以快速集搜索。这种内在的随机也足够混淆冲突,并且阻碍冲突地址的高效利用。在8-bank 16MB 16Way的LLC上测试,只给每个cache行带来了0.5%的性能开销和0.5%的存储开销。这是纯体系结构解决方案,不需要修改软件。

链接:https://www.ndss-symposium.org/ndss-paper/phantomcache-obfuscating-cache-conflicts-with-localized-randomization/

Screen Gleaning: A Screen Reading TEMPEST Attack on Mobile Devices Exploiting an Electromagnetic Side Channel.

简介:针对手机屏幕信号的侧信道攻击

本文提出了一种针对手机屏幕的侧信道攻击,叫做screen gleaning。这种攻击使用一个天线和软件写的收音机来获取设备送到屏幕用来显示的电磁信号。这种特殊的装置使得其可以重新构造信号为灰阶的图片(称为emage)。本文发现这种攻击可以用来读取security code。这种攻击极具挑战性,因为对于人类而言很难直接解释这个emage。然后发现这种挑战可以使用深度学习分类器来解决。文章提出了一个测试集,screen gleaning 攻击模型以及对应的防御机制。

链接:https://www.ndss-symposium.org/ndss-paper/screen-gleaning-a-screen-reading-tempest-attack-on-mobile-devices-exploiting-an-electromagnetic-side-channel/

Rosita: Towards Automatic Elimination of Power-Analysis Leakage in Ciphers.

简介:代码重写的密码学应用?

侧信道攻击威胁很大,密码学家引入了掩码技术来抵抗。作者则提出了Rosita,一个代码重写(code rewrite)引擎,使用一个leakage模拟器准确模拟目标系统的微体系结构。作者使用Rosita来自动保护AES,ChaCha,Xoodoo的掩码实现。对于AES和Xoodoo,在1000000 步的轨迹下都没有发现泄露,代价是21%的性能开销。对于ChaCha,消除了99%的泄露,性能开销是64%。

链接:https://www.ndss-symposium.org/ndss-paper/rosita-towards-automatic-elimination-of-power-analysis-leakage-in-ciphers/

Hunting the Haunter - Efficient Relational Symbolic Execution for Spectre with Haunted RelSE.

简介:用符号执行检测幽灵

幽灵是一种微体系结构攻击,出现于2018年1月。这种攻击可以让击者恢复密钥。幽灵攻击的检测对于加密库和软件级别的防御很重要。然而,如何正确防御和检测幽灵漏洞,存在两个难题。一方是是幽灵路径引入的探索空间爆炸问题,另一方面是新的幽灵漏洞是在不同的编译层面。为此,作者提出了一种基于符号执行的,在二进制层面检测幽灵漏洞的工具ReISE。并在知名数据集Spectre-PHT和自己做的测试集Spectre-STL上测试。结果发现ReISE可以发现更多的violations并且扩展性良好,能够分析真实的加密库。最后发现index-masking(Spectre-PHT的防御),gcc里的pie保护机制都引入了Spectre-STL violation。

链接:https://www.ndss-symposium.org/ndss-paper/hunting-the-haunter-efficient-relational-symbolic-execution-for-spectre-with-haunted-relse/

SpecTaint: Speculative Taint Analysis for Discovering Spectre Gadgets.

检测:用污点分析找幽灵的gadget

软件补丁是一种缓解幽灵类型攻击的主要方法。它利用序列化的指令去禁用程序里潜在的幽灵gadget的推测执行。然而,并没有有效的方法去检测幽灵类攻击的gadget。本文提出了一种检测幽灵攻击gadget的方法。通过使用动态污点分析来对推测执行路径进行分析。为此,在系统级别模拟并探索推测执行。实现了一个原型叫做SpecTaint。对SpecTaint在幽灵样本数据集上做了研究,并和现有的检测幽灵gadget的方法做了对比。结果表明比现有的方法的准确率和召回率要好。同时还发现了真实应用(Caffe,Brotli)里的新的幽灵gadget。同时在修复了幽灵gadget后,还减少了性能开销。

链接:https://www.ndss-symposium.org/ndss-paper/spectaint-speculative-taint-analysis-for-discovering-spectre-gadgets/

智能家居

Hey Alexa, is this Skill Safe?: Taking a Closer Look at the Alexa Skill Ecosystem.

简介:针对skill的分析,最近这种文章好像比较多,国重发了两篇这个类似的

亚马逊的语音助手Alexa可以让用户通过语言来和一些网络服务交互。同时亚马逊还为开发者提供了一个机会可以创建第三方的应用运行在Alexa上。虽然这些服务满足了用户,但也带来了一些安全和隐私问题。这篇文章系统性地对Alexa skill的生态系统做了分析。我们对Alexa skill进行了大规模的分析,获取了总共90000多个唯一的skill。分析结果显示在审查skill的过程中存在几个缺陷。结果发现,恶意开发者可以使用任意公司开发者的名字来发布skill,而且还可以在哄骗用户泄露不必要的信息后,修改后端的代码。还发现23.3%的skills没有完全揭露和权限相关的数据类型。

链接:https://www.ndss-symposium.org/ndss-paper/hey-alexa-is-this-skill-safe-taking-a-closer-look-at-the-alexa-skill-ecosystem/

IoTSafe: Enforcing Safety and Security Policy with Real IoT Physical Interaction Discovery.

简介:物理交互对于IoT设备的影响?

物联网平台给智能家居带来了很大的便利,这些平台为管理多个IoT设备提供了很多特性。然而这些特性也引入了安全问题。比如攻击者可以通过物理交互来操纵IoT设备实现攻击。然而,现有的工作很少研究物理交互对于IoT设备的影响以及会产生的安全问题。本文提出了一个新的动态安全策略加强系统,叫做IoTSafe。为了识别IoT设备的真实物理交互,提出了一个发现运行时物理交互的方法,主要是采用静态和动态测试技术去识别运行时的物理交互。另外,IoTSafe会生成物理和非物理交互的路径,以及他们在多个app环境里的上下文。基于这些路径和上下文数据,IoTSafe为物理交互构造物理模型,能够预测将要到来的风险,并且阻绝不安全的设备状态。在SmartThings平台上实现了该系统。实验结果表明,IoTSafe可以在130个潜在交互中,发现29个真实物理交互。IoTSafe也成功预测了风险情况,能够达到96%的准确率。

链接:https://www.ndss-symposium.org/ndss-paper/iotsafe-enforcing-safety-and-security-policy-with-real-iot-physical-interaction-discovery/

PFirewall: Semantics-Aware Customizable Data Flow Control for Smart Home Privacy Protection.

简介:利用数据流控制保护隐私

物联网平台让用户能够部署智能家居等应用。然而,流向物联网平台的大量敏感数据可能会导致隐私问题。大部分流向平台的数据并不会影响这些设备的自动使用功能。而用户也没有办法控制这些设备。因此,提出了一个Pfirewall的数据流控制系统,来增强IoT平台用户的隐私安全。PFireWall自动生成最小数据策略,只会给出最低限度的数据来保证这些智能家居的自动功能。同时用户也可以自定义数据的策略。为了加强这些策略,PFirewall介入到IoT设备和物联网平台之间,而不修改平台,IoT设备,或者hub。在四个真实的测试集上测试,PFirewall可以减少97%的数据送到平台,而不影响正常使用。

链接:https://www.ndss-symposium.org/ndss-paper/pfirewall-semantics-aware-customizable-data-flow-control-for-smart-home-privacy-protection/

EarArray: Defending against DolphinAttack via Acoustic Attenuation.

检测:超声波恶意命令注入攻击的检测

海豚音攻击(听不到的声音命令)可以通过注入恶意命令到语音助手里来操纵控制系统。消除海豚音攻击是很困难的,因为需要修改麦克风的硬件。本文,提出了一种轻量级的方法不仅能检测到这种攻击,而且可以识别攻击者的位置,不需要额外的硬件修改。这种海豚音通常是超声波,而超声波比能听到的声音的速度要快很多。通过智能设备里的内置麦克风设备来检查语音信号,就能够估计声波的衰变率,从而检测到攻击。文章提出了普通声波和超声波的传播模型,并且阐明了其内在的原理和可行性。实验结果表明检测到这种攻击的准确率有99%,识别到攻击者的位置的准确率有97.89%。

链接:https://www.ndss-symposium.org/ndss-paper/eararray-defending-against-dolphinattack-via-acoustic-attenuation/

软件防御

SODA: A Generic Online Detection Framework for Smart Contracts.

简介:智能合约的在线检测框架

由于金钱关系,智能合约成为了攻击者眼红的一个目标。虽然现在有很多发现智能合约漏洞的文章,但是,他们不能保证发现所有的漏洞,或者保护智能合约不受攻击。因为他们都是依赖于线下分析。最近,出现了一些运行时保护智能合约的方法,但是他们只能防御特定的攻击,不好扩展。开发一个在线保护系统是非常耗时,而且需要对智能合约内部结构很熟悉,使得快速开发防御机制防御新型攻击是很困难的。

本文提出了一种通用的运行时保护框架SPA,来保护所有支持EVM(以太坊)的区块链上的智能合约。SPA在能力,效率和兼容性上都不同于当前的运行时保护框架。

链接:https://www.ndss-symposium.org/ndss-paper/soda-a-generic-online-detection-framework-for-smart-contracts/

POP and PUSH: Demystifying and Defending against (Mach) Port-oriented Programming.

简介:防御Port-oriented Programming

苹果设备对于攻击者来说是高价值目标。虽然这些设备使用不同的操作系统(iOS,macOS,iPadOS),但他们都是基于混合内核XNU。现有的攻击表明XNU的漏洞可以被利用来提权或者越狱。为了缓解这些威胁,许多安全机制应用到了最新的系统。

这篇文章系统评估了apple上部署的防御机制,结果表明大部分都可以通过损坏一个特定类型的内核对象来绕过。文章将这种类型的攻击总结为Port-Object-Oriented Programming。为了防御这个攻击,还提出了一种Port Ultra-SHield系统来减少不被保护的Mach Port对象。PUSH系统会自动定位潜在的POP原语,并且在那附件插上相关的系统调用来确保Mach port kernel objects的完整性。这个机制只引进了2%的运行开销,并且应用在超过40000台macOS设备上。

链接:https://www.ndss-symposium.org/ndss-paper/pop-and-push-demystifying-and-defending-against-mach-port-oriented-programming/

Доверя’й, но проверя’й: SFI safety for native-compiled Wasm.

简介:编译器的bug会造成什么影响?

WebAssembly(Wasm)是一种平台独立的字节码,可以提供良好的运行隔离和低开销。为了实现隔离,编译器在wasm编译成机器码时,插入安全检查。这种方法很简单,但是需要信任编译器在合适的地方插入的必要的检查。然而,wasm编译器里的bug会打破这种假设。为了解决这个问题,本文提出了一种方法VeriWasm去验证编译后的机器码。结果表明,VeriWasm没有误报。

链接:https://www.ndss-symposium.org/ndss-paper/%d0%b4%d0%be%d0%b2%d0%b5%d1%80%d1%8f%d0%b9-%d0%bd%d0%be-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d1%8f%d0%b9-sfi-safety-for-native-compiled-wasm/

Detecting Kernel Memory Leaks in Specialized Modules with Ownership Reasoning.

简介:内存分配函数不仅仅只有malloc,还有很多内核自己自定义的

内核空间由硬件和所有进程共享,所以其内存使用情况更受限制,而且相比用户态内存,更难回收。因此,发生在内核里的内存泄露会导致很严重的拒绝服务攻击。尤其是在长期运行的服务器上。内核代码使用了大量的动态分配策略,而且许多内核的代码模块为内存管理提供了他们自己的抽象表示(就是自定义的内存分配函数)。另一方面,内核代码的数据流很复杂,所以很难确定一个对象会在什么时候释放。现有的工具很难检测内存泄露。

本文提出了一种静态检测内存泄露的系统K-MELD。K-MELD使用了很多新的技术来自动识别特殊的分配和释放函数,并且确定内存释放的位置。首先,开发了usage和structure敏感的方法来高效地识别特殊的分配函数,并且使用启发式方法来找到对应的释放函数。然后开发了ownership reasoning机制来找到内存释放的位置。最后发现了218新的bug,获得了41个CVE,218个bug里,有115个都是使用的特定函数。

链接:https://www.ndss-symposium.org/ndss-paper/detecting-kernel-memory-leaks-in-specialized-modules-with-ownership-reasoning/

嵌入式安全

Evading Voltage-Based Intrusion Detection on Automotive CAN.

简介:利用两个ECU来攻击,打破原本1个ECU攻击的假设。

控制器区域网络(CAN)广泛应用在汽车里,使得车内电子控制单元(ECU)可以互相进行通信。由于资源的限制,缺少网络安全的能力,导致CAN容易被ECU的伪装攻击所影响。抵御这种攻击的防御机制有基于电压的入侵检测系统,能够识别总线里的电压的指纹。由于电压指纹来源于ECU的硬件特征,攻击者的ECU不能修改这个电压指纹。因此,VIDS被证明是有效的防御机制,前提是只有一个攻击者的话。

这篇文章提出了一种电压损坏策略,这种策略利用两个ECU来损坏VIDS记录的总线电压。通过这种攻击,可以绕过VIDS的特征检测和分类算法。DUET采用一个两步的攻击策略。首先,在VIDS的再训练模式下,操纵一个ECU的电压指纹,然后在VIDS的操作模式下,模仿被操控的电压指纹。

链接:https://www.ndss-symposium.org/ndss-paper/evading-voltage-based-intrusion-detection-on-automotive-can/

HERA: Hotpatching of Embedded Real-time Applications.

简介:利用硬件特性实现热补丁。

内存损坏攻击是物联网设备的主要攻击。简单地更新IoT软件是不太可能的,因为这会导致一段时间停机或者重启。对于高可用的嵌入式设备,比如医疗系统,以及一般具有实时需求的嵌入式系统,必须避免这种情况。为了避免系统的停机和重启,以前的研究引入了热补丁的概念。然而,现有的方法不难应用于资源受限的物联网设备。此外,热补丁在硬件上还存在一些相关的问题没有解决,比如只读内存不能直接修改固件。

这篇文章提出了HERA的方法,利用基于硬件的嵌入式Cortex-M微控制器的内置特性来执行嵌入式系统的热补丁。HERA在实时约束下,能保证只使用最低限度的额外资源。在一个案例研究中,我们应用HERA到两个有漏洞的医疗设备中。然后利用HERA去修补FreeRTOS操作系统的现有漏洞。实验方法表明,该方法具有较高的实用性和有效性。

链接:https://www.ndss-symposium.org/ndss-paper/hera-hotpatching-of-embedded-real-time-applications/

From Library Portability to Para-rehosting: Natively Executing Microcontroller Software on Commodity Hardware.

简介:re-hosting的自动配置,主要是构建好环境,这样用传统方法也能找到固件bug。

这是国重的一篇文章。主要是找微控制器(MCU)固件的bug。MCU运行多种指令,并且开发环境很不一样。使得现有的很多软件测试工具无法验证MCU。为了将开发环境和测试环境保持一致,最简单的方法是重新编译源代码到商品机器(re-host)上。然而,专门的re-hosting是很枯燥无聊的任务,而且会出现很多问题(库依赖,内核依赖,硬件依赖)。在这个工作里,我们系统性地探索了MCU软件的可移植性问题,并且提出了para-rehosting方法来降低移植过程的难度。使用POSIX接口抽象和实现了一个可移植的MCU。他会对MCU核的常见函数建模。针对次要的特定逻辑,我们提出基于hal的次要函数替换,即用主机上的等效后端驱动程序替换高级硬件功能。 这些后端驱动程序由精心设计的para- api调用,可以在许多MCU操作系统中重用。 我们将常见的HAL函数分为四种类型,并实现用于快速后端开发的模板。 使用该方法,我们成功地重新rehost了9个MCU操作系统,包括广泛部署的Amazon FreeRTOS、ARM Mbed操作系统、Zephyr和LiteOS。 最后使用动态分析工具(AFL和ASAN)发现了28个未知的bug,其中五个获得了CVE,19个被厂商承认。

链接:https://www.ndss-symposium.org/ndss-paper/from-library-portability-to-para-rehosting-natively-executing-microcontroller-software-on-commodity-hardware/

BaseSpec: Comparative Analysis of Baseband Software and Cellular Specifications for L3 Protocols.

简介:蜂窝基带固件的分析

蜂窝基带在移动通信中起到很重要的作用。然而要评估他的安全很难。由于基带固件的模糊性和复杂性,手工分析是不可避免的。然而这种分析需要很大的精力。自动化这个过程是重要的,因为固件的代码规模很大,而且包含很多复杂的蜂窝协议的函数。然而,现有的针对基带的分析,都受限于一个厂商的几个模型或版本。本文提出一种新的方法BaseSpec,对基带软件和设置做比较性的分析。通过利用标准的消息结构,BaseSpec能够系统地检查基带软件中的信息结构。然后,将提取的消息结构和设定的消息结构进行语法比较。只需要一步手工分析,去确定消息结构是如何嵌入到目标固件中的。然后,再将提取的消息结构和设定里的进行语法和语义上的比较,最后找到不匹配的。这些不匹配就是开发者留下的bug,或者是潜在的漏洞等等。

链接:https://www.ndss-symposium.org/ndss-paper/basespec-comparative-analysis-of-baseband-software-and-cellular-specifications-for-l3-protocols/

可信计算

DOVE: A Data-Oblivious Virtual Environment.

简介:用隔离环境防御侧信道

用户可以通过使用可信执行环境(TEE)防止敏感数据被篡改,从而提高远程通信的安全性。这些也可以通过用高层次语言(R,Python,Ruby)写的应用来解决。然而,这是为了编程便利,而付出了被侧信道攻击的风险的代价。

本文通过为这些应用插桩一个复杂的编程环境,来去除侧信道。思路是提供了一种数据遗忘型的副本,这种副本专门用来支持排除侧信道的计算。包含敏感数据的副本会使用一个小的可信计算基(叫做Data-Oblivious Virtual Environment)在TEE里运行。文章主要是为R语言设计了一个虚拟环境,并且用R语言里的几个侧信道漏洞来做评估,结果表示能在usable的性能开销上保证高安全性。

链接:https://www.ndss-symposium.org/ndss-paper/dove-a-data-oblivious-virtual-environment/

CHANCEL: Efficient Multi-client Isolation Under Adversarial Programs.

简介:针对single enclave的多用户的沙箱

Intel SGX为不可信的云机器上的用户数据提供了机密性保护。然而,处理机密数据的应用可能存在一些如信息泄露的bug,或者会恶意收集用户数据。现有的研究处理这个问题的时候没有考虑在一个enclave里做多用户的隔离。我们发现不支持这种隔离的话,当在不同进程中并发处理多用户时,会导致性能开销很大。

这篇文章提出了CHANCEL,一种在single SGX enclave里为多用户隔离设计的沙箱。CHANCEL可以让一个程序的线程去访问线程的内存区域和共享只读的内存区域。每个线程处理来自一个用户的请求,并且和其他进程相隔离。这种机制是基于多用户的软件错误隔离(SFI)机制。而且,CHANCEL支持多种in-encalve的服务,比如in-memory的文件系统。还能屏蔽客户端通信,来保证程序和外部世界的完整交互。

链接:https://www.ndss-symposium.org/ndss-paper/chancel-efficient-multi-client-isolation-under-adversarial-programs/

Emilia: Catching Iago in Legacy Code.

简介:找lago漏洞

人们对可信执行环境中实现可信代码的legacy code的安全使用很兴趣。比如SGX。然而legacy code通常假设操作系统是存在的。这就可能导致对legacy code的lago攻击。文章发现不是所有的legacy code都会被lago攻击影响,而是需要以不安全的方式使用系统调用作为返回值才会有lago漏洞。基于这个发现,开发了Emilia,能够在legacy应用中自动检测lago漏洞。这个Emilia是基于系统调用返回值的模糊测试实现的。使用这个开发的工具在17个应用中发现了51个lago漏洞。

链接:https://www.ndss-symposium.org/ndss-paper/emilia-catching-iago-in-legacy-code/


网络安全

Flexsealing BGP Against Route Leaks: Peerlock Active Measurement and Analysis

A Devil of a Time: How Vulnerable is NTP to Malicious Timeservers?

OblivSketch: Oblivious Network Measurement as a Cloud Service.

ROV++: Improved Deployable Defense against BGP Hijacking.

Trust the Crowd: Wireless Witnessing to Detect Attacks on ADS-B-Based Air-Traffic Surveillance.

隐私

Awakening the Web’s Sleeper Agents: Misusing Service Workers for Privacy Leakage.

All the Numbers are US: Large-scale Abuse of Contact Discovery in Mobile Messengers.

Improving Signal’s Sealed Sender.

Tales of Favicons and Caches: Persistent Tracking in Modern Browsers.

网络方案

Reining in the Web’s Inconsistencies with Site Policy.

From WHOIS to WHOWAS: A Large-Scale Measurement Study of Domain Registration Privacy under the GDPR.

Understanding the Growth and Security Considerations of ECS.

Mondrian: Comprehensive Inter-domain Network Zoning Architecture.

密码学

Obfuscated Access and Search Patterns in Searchable Encryption.

More than a Fair Share: Network Data Remanence Attacks against Secret Sharing-based Schemes…

Forward and Backward Private Conjunctive Searchable Symmetric Encryption.

Practical Non-Interactive Searchable Encryption with Forward and Backward Privacy.

web安全

Zoom on the Keystrokes: Exploiting Video Calls for Keystroke Inference Attacks.

Deceptive Deletions for Protecting Withdrawn Posts on Social Media Platforms.

Who’s Hosting the Block Party? Studying Third-Party Blockage of CSP and SRI…

To Err.Is Human: Characterizing the Threat of Unintended URLs in Social Media.

SerialDetector: Principled and Practical Exploration of Object Injection Vulnerabilities for the Web.

移动安全

The Abuser Inside Apps: Finding the Culprit Committing Mobile Ad Fraud.

Your Phone is My Proxy: Detecting and Understanding Mobile Proxy Networks.

Understanding Worldwide Private Information Collection on Android.

On the Insecurity of SMS One-Time Password Messages against Local Attackers in Modern Mobile Devices.

Preventing and Detecting State Inference Attacks on Android.

区块链

As Strong As Its Weakest Link: How to Break Blockchain DApps at RPC Service.

RandRunner: Distributed Randomness from Trapdoor VDFs with Strong Uniqueness.

LaKSA: A Probabilistic Proof-of-Stake Protocol.

SquirRL: Automating Attack Analysis on Blockchain Incentive Mechanisms with Deep Reinforcement Learning.

Bitcontracts: Supporting Smart Contracts in Legacy Blockchains.

网络协议

QPEP: An Actionable Approach to Secure and Performant Broadband From Geostationary Orbit.

A Formal Analysis of the FIDO UAF Protocol.

PHOENIX: Device-Centric Cellular Network Protocol Monitoring using Runtime Verification.

The Bluetooth CYBORG: Analysis of the Full Human-Machine Passkey Entry AKE Protocol.

NetPlier: Probabilistic Network Protocol Reverse Engineering from Message Traces.

恶意软件和网络犯罪

UIScope: Accurate, Instrumentation-free, and Visible Attack Investigation for GUI Applications.

Understanding and Detecting International Revenue Share Fraud.

Differential Training: A Generic Framework to Reduce Label Noises for Android Malware Detection.

MINOS: A Lightweight Real-Time Cryptojacking Detection System.

Does Every Second Count? Time-based Evolution of Malware Behavior in Sandboxes.

机器学习

Let’s Stride Blindfolded in a Forest: Sublinear Multi-Client Decision Trees Evaluation.

Practical Blind Membership Inference Attack via Differential Comparisons.

GALA: Greedy ComputAtion for Linear Algebra in Privacy-Preserved Neural Networks.

FARE: Enabling Fine-grained Attack Categorization under Low-quality Labeled Data.

联邦学习和Poisoning attacks

POSEIDON: Privacy-Preserving Federated Neural Network Learning.

FLTrust: Byzantine-robust Federated Learning via Trust Bootstrapping.

Manipulating the Byzantine: Optimizing Model Poisoning Attacks and Defenses for Federated Learning.

Data Poisoning Attacks to Deep Learning Based Recommender Systems.

Forensics 和审计

C^2SR: Cybercrime Scene Reconstruction for Post-mortem Forensic Analysis.

ALchemist: Fusing Application and Audit Logs for Precise Attack Provenance without Instrumentation.

WATSON: Abstracting Behaviors from Audit Logs via Aggregation of Contextual Semantics.

机器学习应用

CV-Inspector: Towards Automating Detection of Adblock Circumvention.

FlowLens: Enabling Efficient Flow Classification for ML-based Network Security Applications.

PrivacyFlash Pro: Automating Privacy Policy Generation for Mobile Apps.

Towards Understanding and Detecting Cyberbullying in Real-world Images.

你可能感兴趣的:(论文,论文,安全)