InForSec学术交流会 参会小计DAY1
2021-06-07 12:11:52 Author: mp.weixin.qq.com(查看原文) 阅读量:117 收藏

作者:outx@SecQuan, nerd@SecQuan

为促进网络空间安全研究的学术交流,了解国际网络空间安全最新学术动态,网络安全研究国际学术论坛(InForSec)于2021年6月5~6日(周六日)在北京举办“网络空间安全国际学术研究交流会(上)”。本次学术活动主题为“网络和系统安全”,分享学者们研究过程中的灵感、经验和体会。本次有幸能到现场聆听会议,第一天的内容主要为顶会论文分享。

Session 1: 软件系统安全

Learning an Assembly Language Model for Instruction Embedding

随着近年来对深度学习技术在安全领域应用研究的深入,其在许多包括函数边界检测、二进制代码相似性检测、函数原型推理等二进制分析任务中表现出一定优势。在二进制分析任务应用深度学习技术时,需要将考虑以何种形式将原始的二进制代码输入到神经网络中,在多种已有方案中,代码嵌入是现有较好的方法。汇编代码的嵌入,按照作者的话讲,即以一个固定长度的向量表示指令。现有的方法主要基于word2vec/doc2vec等技术,其优势在于能够避免人工选取特征、在一定程度上能提取出高层次语义特征;其不足在于无法表示复杂的指令格式(例如Asm2Vec只考虑一个操作和至多两个操作数)、程序上下文受噪声影响(依赖控制流图,受编译器优化影响大)。因此,针对现有技术存在的问题,作者提出PalmTree(Pre-trained Assembly Language Model for InsTRuction EmbEdding),基于BERT模型,并提出多种自定义训练任务,对汇编代码嵌入技术做出改进。

PalmTree主要分为三部分:指令对取样,Token化,模型训练。

1.指令对取样

使用原始汇编代码、控制流图、数据流图抽取其中的控制关系和def-use关系的指令对。

2.Token化

PalmTree通过将每条指令都视为句子的方法,细粒度地将汇编代码进行Token化。针对指令中出现字符串和数字常量等OOV(Out-Of-Vocabulary)问题,PalmTree以统一的Token([str]、[addr])进行替换。特殊到,对于相对较小的常数(少于四位十六进制数),很可能表示的不是一个内存地址,而是重要的局部变量,因此保留其原值,并使用ONE-HOT编码进行Token化。

3.模型训练

PalmTree基于BERT模型,本文主要介绍了三项训练任务:Masked Language Model(MLM)、Context Window Prediction(CWP)、Def-Use Prediction(DUP)

  • MLM是BERT模型训练中通用的任务,选取15%token进行替换、遮盖,然后让模型去预测这些Token的真实值。
  • 由于控制流不像自然语言一样具有相对严格依赖和顺序要求,所以并没有选择BERT提出的Next Sentence Prediction(NSP)任务,而是定义了一个包含目标指令前后数条指令的上下文窗口,训练模型预测输入的指令对是否在一个上下文窗口内,从而使模型能够理解汇编代码中的控制流信息。
  • 相似地,为了让模型学习数据依赖信息,PalmTree设计DUP任务训练模型,将从数据流图中提取的指令对随机进行前后顺序翻转,训练模型去预测输入的指令对是否被翻转过。

作者表示PalmTree可以直接用于生成汇编代码嵌入向量,在算力足够的情况下,也可以选择对模型进行fine-tuning。在评估阶段,该预训练模型取得很好的效果,并在多个下游任务(代码相似性检测,函数原型推测)的应用中都强于参考文献中的方法。

Precisely Characterizing Security Impact in a Floodof Patches via Symbolic Rule Comparison

Q: 为什么要识别与安全相关的 bug?
作者在探究之初提出了上述这个问题,然后围绕这个问题进行了很多思考,得出了以下的两点继续研究的动机:

  1. bug 报告数量很大
  2. 补丁与代码的传播不及时

以上两点总结起来可以理解为现有的一些项目或者代码的维护者的数量是有限的,同时每个人的精力也是有限的。对于每天上报的 bug 报告,维护者很难及时和全面的审查这些报告。为此,作者提出了以下 Goal:

Goal: 识别与安全相关的漏洞补丁
具体来说,识别与安全相关的漏洞补丁能够让一些项目或者代码的维护者能够及时的打上那些威胁严重的安全漏洞补丁以防止被恶意攻击者攻击,而不用耗费精力在修复那些无关紧要的 bug。

传统方法
传统的识别方法主要有:

  1. 文本分析:主要是依靠关键字分析
  2. 统计分析:主要是依靠分析趋势

但传统方法具有很明显的局限性,一是其精度难以保证,二是维护者难以判断 bug 的影响力。

通用代码安全规则和违规行为

  1. 界内访问(内存、数组)—— 越界访问(out-of-bound access)
  2. 不允许指针等 free 后被再使用 —— free 后重用(use-after-free)
  3. 变量应初始化后使用 —— 未初始化使用(uninitialized use)
  4. 敏感操作前的权限检查 —— 绕过权限(permission bypass)

基于以上通用代码安全规则和其对应的违规行为,作者提出了一个定义:给定一个代码和补丁,在没有打补丁的情况下,代码会违反以上安全规则。

SID 整体结构
根据上述定义,作者提出了 SID,这是一个基于 LLVM 的解决方案,其框架如下

主要分为三部分:预处理,剖析补丁,符号规则比较

  1. 预处理

在预处理部分,作者首先根据 bug 补丁将软件的版本分为打了补丁的版本和没有打补丁的版本,然后分别调用 LLVM 将其编译为对应的 LLVM IRS。

  1. 剖析补丁

主要是通过静态分析来对不同版本的代码进行分析。在这个阶段,SID 根据补丁模型对补丁进行剖析,以确定关键组件。SID 首先识别出打过补丁和没有打过补丁的版本中的安全操作。接下来,SID 对关键变量进行数据流分析,以收集存在漏洞的代码片段。

  1. 符号规则比较
  • 对于打了补丁的版本
    在打了补丁的版本中,存在的漏洞往往是存在于补丁之后。例如,对于越界访问来说,通常补丁会在进行访问操作之前校验访问的空间是否是正确的。换句话来说,在打了补丁的版本中,违反安全规则这一行为是不存在的,即打了补丁的版本不存在相应的漏洞。
  • 对于没打补丁的版本
    对于没有打补丁的版本,由于其存在漏洞的代码是程序执行流程中可达的,因此执行程序的过程中是会触发漏洞的。换句话来说,对于没有打补丁的版本来说,不违反安全规则这一行为是不存在的,即没有打补丁的版本一定存在相应的漏洞。

通过这两方面的约束,才能够证明这个补丁修复的是一个安全相关的 bug。

方法表现
作者分析了 54K 的补丁,平均对每个补丁的分析时间为 0.83 秒。同时,作者主要从假阳性和假阴性两方面来分析

  1. 假阳性分析
    作者通过 SID 共计找出了 227 个安全相关的 bug,其中仅有 8 个假阳性的样例。
  2. 假阴性分析
    53%的假阴性,绝大部分都是因为对安全代码和漏洞代码的覆盖不完全导致的,这是有待改进的地方。

总结

  • 及时修补安全漏洞需要确定安全影响
    • 补丁的传播成本很高,维护者时间和精力有限
    • 为此,维护者需要确定和及时修复那些与安全相关的 bug
  • 使用受约束的符号执行的特性来确定哪些是与安全相关的 bug,哪些是常规的 bug
    • SID:符号规则比较
  • SID 发现了内核中许多被忽视的安全漏洞

Session 2: 网络安全

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

受到通用数据保护条例(GDPR)的影响,大量WHOIS提供商需要修订其数据以符合条例要求。本文定量地对WHOIS提供商应对政策做出改变、数据修订策略与引用WHOIS数据的应用做出系统研究。

为了广泛地分析WHOIS提供商的数据,面临三大问题:

  • 域名系统过于碎片化,存在数千WHOIS提供商以不同的格式提供WHOIS数据
  • WHOIS供应商不会公布其开始遵守GDPR的时节节点,导致需要持续检测GDPR公布前后较长一段时间改观测WHOIS供应商的反应
  • ICANN给出的临时规范建议比较模糊,供应商有多种数据修订手段,因此简单的关键字匹配等方法会造成较高的识别错误率

针对前两项挑战,作者与公司合作,被动采集18年1月至19年12月的WHOIS数据,包含1.2亿WHOIS记录与2.67亿域名的数据集。针对第三项问题,如下图所示,由于大部分WHOIS供应商依据ICANN的规范建议,使用简易的自动化方法修订其记录,其条目在统计学上会呈现出一定规律。因此,作者提出基于聚类算法的无监督方法来表征WHOIS的合规水平。

基于收集到的大量WHOIS数据,作者按WHOIS条目按提供商及年份分类,将数据以(provider; registrant region; data subject; time window)四元组为节点存储。针对data subject,为了减少特定数据对聚类算法的影响,将条目中特定字符串以统一的Token替换(域名、数字等)。特殊的,作者定义四元组以定义邮箱地址条目数据:1.邮箱用户名(@之前)长度2.邮箱地址域名3.web形式链接的域名4.该部分数据子字段的数量。最后,作者使用TF-IDF提取WHOIS条目文本的特征,使用DBSCAN算法进行聚类分析。

其实验结果(提供大量属于EEA域名的WHOIS供应商)如下图所示

根据实验结果可以看到,GDPR对大型WHOIS供应商有较强的影响力,但是并非所有供应商都按要求完全服从保护条例要求。在时间层面,大部分供应商都在GDPR实际生效前对它们的WHOIS条目数据进行修订以符合条例要求,并且这一行为在ICANN发布临时规范建议后尤为明显。在数据保护的手法方面,对于联系方式数据,部分供应商将用户真实信息替换为服务商信息、空信息或类似“redacted for privacy”的提示信息;相似的,对于电子邮箱信息,供应商使用假名邮箱、WEB链接、统一邮箱地址或分层访问系统将用户真实邮箱进行隐藏。鉴于域名持有人需要邮箱进行域名交易、证书验证或接收漏洞通知等原因,ICANN并不推荐将邮箱地址替换为空。

进一步分析大型WHOIS供应商的实验结果,如上图示,虽然GDPR政策只要求保护属于EEA的域名,但是大部分大型供应商对不属于EEA的域名同样进行了保护(既上图中蓝线和黄线同时下降到几乎为0)。不幸的是,小型供应商对于GDPR政策的反应并不积极,如下图左侧所示,在32个不合规的供应商中,有21个的域名份额不到总共的0.07%。

Automatic Policy Generation for Inter-Service Access Control of Microservices
研究背景
云应用架构的演进,从传统的模块紧耦合、不易维护和扩展的单体架构演变为将模块解耦、独立开发和部署的微服务架构,再到统一管理服务间通信的服务网格。

研究动机
首先是微服务之间通过网络 API 的通信方式会带来一些新的攻击面。其次,不安全的容器镜像可能会导致容器被渗透。

一个具体的例子:

  • 威胁:被攻破的微服务可能通过恶意请求窃取数据或发起攻击
  • 对策:服务间细粒度的访问控制

现在的微服务应用具有规模庞大且频繁更新的特点,如果手工配置访问控制策略的话,不仅耗时巨大且容易出错,也相对没那么灵活。

现有的分布式系统中的安全策略自动化方法:

设计思路
微服务应用的特点:

  • 单个微服务的内部复杂度较低
  • 单个应用类
    • 微服务间的调用方式相对统一
    • 涉及到的服务间调用协议和调用库的数量也十分有限

结合以上特点,作者采用了通过静态分析的方式从微服务代码中提取其正常的系统行为。
于是作者便提出了:

GOAL: 自动生成、维护、更新微服务的服务间访问控制策略
Challenge:如何获取完整、细粒度的服务间调用逻辑;如何对服务间的访问控制策略进行高效的生成和更新

基于静态分析的微服务间调用请求提取
具体来说分为三步:

  1. 识别网络 API 调用语句,即发起服务间调用的关键语句
  2. 以第一步获取的关键语句为起点,沿数据流反向进行污点传播,获取程序切片
  3. 通过语义分析在程序切片中提取服务间调用的详细属性。

基于图的微服务间访问控制策略管理
运行时的策略检查时间随着安装的服务间访问控制策略数目线性增加,这会造成整个微服务应用性能下降。

往往同一微服务可能会存在不同版本在同一时间提供不同的服务,这又会造成冗余,于是作者提出了一种优化思路:将同一服务的各版本共有的权限进行整合。这既消除了冗余,减少了策略总数,又消除了不必要的策略更新。

AUTOARMOR

AUTOARMOR 主要由三部分构成:

  1. 静态分析引擎
    服务 E 代码提交,静态分析引擎生成清单文件描述其发起的调用。
  2. 权限引擎
    在 E 部署时,权限引擎获取其清单文件,生成权限节点加入权限图。
  3. 策略生成器
    策略生成器根据权限图的变化生成并下发访问控制策略。

策略生成:将与当前权限节点相关的每个请求边翻译成一条服务间访问控制策略;如果一个调用请求的目标微服务尚未部署,就不授予微服务相应的权限

策略更新:版本更新对应版本节点的添加;版本回滚对应版本节点的删除

总结
AUTOARMOR 是第一个微服务间访问控制策略自动生成的解决方案。主要涉及到的一些技术有:

  • 一个基于静态分析的微服务间调用请求自动提取机制
  • 一个基于图的自动化为服务间访问控制策略管理机制

AUTOARMOR 可以有效地实现微服务间访问控制策略的自动生成、维护和更新,但只引入极小的性能开销。

安全学术圈招募队友-ing, 有兴趣加入学术圈的请联系secdr#qq.com


文章来源: http://mp.weixin.qq.com/s?__biz=MzU5MTM5MTQ2MA==&mid=2247486017&idx=1&sn=ba4f2273fa69804ab6c500dd05a0b5d1&chksm=fe2ef5cac9597cdcaac2eff8b5a5a4c75ac8fafeabf8b414f8318e4cb1c33013e3e23d1057d0#rd
如有侵权请联系:admin#unsafe.sh