@dyk
2015-07-13T00:40:45.000000Z
字数 15419
阅读 341
OAuth Privacy BigData ReadingNote
The articles below have not been read!
CCS'14
OAuth是一个被广泛应用在Website上面的网络授权的协议。
文章的贡献主要在一下两个方面:
在文章中,指出了每个容易让移动开发者误解的OAuth协议流的安全关键部分。
CCS'12
数百万的用户通过使用他们的Facebook帐号来登入其他的依赖第三方的网站。这个基于网络的SSO模式已经在OAuth2.0中实现了。虽然OAuth在先前的实验方法中证明了其安全性,但是在实际的应用中的安全性如何仍然是一个开放的问题。本章通过测试3个大的OAuth身份证明提供商(eg,. Facebook, Microsoft, and Google)以及96个热门的依赖第三方网站。发现了数个安全的漏洞,这些漏洞能够让攻击者在没有或者权限的情况下,访问被害人的用户资料,社会关系图,甚至在依赖第三方的网站上面模仿被害人。进一步的研究发现这些问题都是由于实现的简化的目的而牺牲了安全性的设计引起的。文章提出的设计提高了IdPs与RPs授权设计的安全性
CCS'14
对于安全可靠的网络服务而言,一个安全的路由的架构是十分重要的。源端的授权以及路径的验证是建立安全可靠网络服务的基础两个基础。虽然以及有一些协议实现了这些基础,但是他们并没有正式的分析了他们的安全保证。
文章提出了证明技术来检查加密协议(eg,.密钥交换协议)来分析网络协议。本章提出了LS,LS是一个程序逻辑,LS能够论证在不安全环境下程序的执行状况。文章也实现了协议特定的数据结构,预测以及公理系统。为了分析一个使用chanined MAC(连续的消息验证码)的源端以及路径验证的source-routing协议。我们通过构造Coq.证明来展示一个协议是否满足目的的需求。本文是最早公理化源端以及路径的授权属性,以及公理化的证明手段。使得连续的消息验证码能够提供要求的授权的属性。
CCS'14
现在绝大部分的数字货币以及相关的记账模式都与现在Bitcoin的模式类似,无论是集中式的或者是完全分布式的。集中式提供了审计功能,但是将所有的身份数据以及所有的事务的隐私都被一个组织控制了。而分布式的模式能够个很好的保护隐私但是不能提供审计功能。
文章设计了一个隐私保护与主动安全的分布式总账以及相关的是事务协议(能够实现一个可审计的数据货币,这些货币继承了总账的隐私以及安全特性)。一个我们需要解决的主要技术是如何克服总账大小的持续增长,货币流通,以及总账需要长时间保存。文章通过减少分布式(隐私共享)存储轨迹,贷款以及主动更新总账来保证长时间的隐私和安全性。
CCS'12
现代的云计算架构都是使用虚拟机监控器(VMM),这些VMM 都有一个大且复杂的有高权限的管理域来监控其它的客户虚拟机的状态。面向管理域的攻击或者对于管理域的错误的使用可以破坏用户虚拟机的安全与隐私。并且传统的VMM限制用户对于自身虚拟机的权限,例如用户只能依赖云系统提供商来部署一些入侵检测系统以及基于自省的安全工具。
文章介绍了一个新型Self-service Cloud Computing模式,SSC模式克服了上文中提到的两个缺点(1)特权域容易被攻击(2)用户不能自定义自己的虚拟机。SSC将管理员的管线分离为一个系统范围的管理域Sdom0和每个用户独有的管理域Udom0。每一个用户对于他自身的虚拟机有最高的权限,因此用户能够自由的组件自己的虚拟机。Sdom0不能获得用户虚拟机的任意信息(代码,数据,计算信息)。因此保护了用户虚拟机的隐私与安全。SSC允许用户和云系统提供者都能设置可信的监控服务。作者通过修改Xen虚拟机监控器实现了SSC,并且通过许多的例子证明了SSC的实用性。
SoCC'14
Self-Service cloud Platform,SSC是最近提出的一个模型,这个模型能够提升公共个云平台用户数据的安全性以及隐私性。它能让用户灵活的部署安全服务,例如用户自己部署自省虚拟机来监控用户的工作虚拟机,并且禁止云操作者监听和修改客户虚拟机。SSC通过修改hypervisor的权限模型来达到以上的需求。
本文主要提出了基于SSC云平台的控制面板的设计,控制面板作为接口存在于在租户与云之间以及云主机之间。文章中介绍了SSC控制面板的新型的特性,例如指定虚拟机之间的依赖关系(A虚拟机能够dumpB虚拟机的内存), 快速部署网络的middlebox,以及新的VM迁移协议。文章中介绍了SSC控制面板的设计以及实现。
在SSC系统上面,每一个用户的VM必须有一个对应的Udom0,Udom0是所有的特权的来源,他负责管理和保护所有的客户虚拟机的安全。(一个用户对应一个Udom0,一个Udom0对应多个UdomU或者SD)例如,Udom0有I/O后端,能够产生SD,并且保存有用户的SSL私钥。
由于传统的控制面板并没有SSC的抽象概念,因此对待Udom0就和一个普通的用户虚拟机实例是一样的。如果简单的使用这样的软件来创建一个基于SSC的云平台的控制面板,云基础设施提供商将会很容易受到恶意客户机的攻击。这些恶意的客户虚拟机能够使用策略创建多个虚拟机,强迫云将这些虚拟机放到不同的物理节点上面(例如,这些虚拟机要求大量的资源)。
通过这个方式他们能够
然而SSC的控制面板能够处理这样的云特权模型的管理抽象概念。SSC的控制面板能够给客户端一个单独的控制的接口。这些接口就像是服务的前端把控制命令转发给单独的Udom0实例,然而并不会把这些Udom0暴露给用户。同时SSC管理面板让管理VM的放置,迁移以及客户虚拟机之间的通信对用户都是透明的。
由于虚拟机之间的依赖关系,例如虚拟机A作为虚拟机B的网络后端处理网络请求。这样的依赖关系就带来了云系统中的虚拟机的放置的限制。虚拟机A和B必须存在同一个物理节点上面。这样的限制可能会被恶意的用户利用发动probe-respone attack,通过不停的发送GRANT_PRIVILEGE命令要求多个虚拟机。当达到物理机器的上限的时候云管理将会拒绝请求,这样暴露了物理机器的配置(解决方案,事先定义一个Cluster)。
NDSS'13
无线的上网技术从根本上的改变了计算。能够让计算机在任意的时候,任意的地点,多样化的接入互联网。同时无线技术也带来了安全隐患。尽管不在同一个物理网络中,黑客也能接受信号发起未授权的连接。应为无线网络的重要性,有许多标准能够保护我们的无线网络。
在文章中,作者展现了一个新颖的高效的目标不同网络WPA Enterprise标准的evil twin attack。文章中展示了现在商用操作系统中用户无线管理接口界面的严重的设计缺陷。同时也强调了在无线网络的SSID与服务器端的授权证书之间的弱绑定问题。作者展示了攻击的实现以及讨论了相应的对策。并且在实验中没有一个用户能够检测到攻击。
TFIS 2013
系统完整性监控器(例如rootkit检测器)十分依赖从目标系统中获得的带代码和数据的页面的多少。为了防止被恶意软件或者被恶意的目标主机感染,最先进的系统完整性监控器利用虚拟化技术创建一个不被干扰的执行环境。因此虚拟化的架构也成为了TCB的一部分。然而现在VMM的代码结构已经非常的复杂了。并且这些代码还十分难以验证。
文章中作者介绍了一个新型的机器架构叫做LLM(Limited Local Memory),LLM能为系统完整性监控创建一个备用防干扰的环境。在最近的多核架构上面实现了这个结构,并且每一个核心都有一个小的私有的内存空间。LLM架构设计有一个新型的安全分页机制,足够满足在没有硬件虚拟化的支持下启动一个防篡改的执行环境。作者通过在LLM架构中实现了一个rootkit检测器来证明该设计的可用性。这个rookkit检测器能够安全的检测目标虚拟机并且不会成为这个感染的受害者。
SETLabs Briefings 2009
最新的技术使得多个服务商之间共同提供服务变得很便捷。用户很有可能有多个服务商的帐号,例如e-bay,Gmail,等等。每一个身份的可见性以及属性都必须被中心的可信策略框架所验证。IDM(Identity Management)在整个的云环境中都具有优势。云环境结合了各种各样的技术来满足多个软件和服务之间相互依赖的需求。这样的需求需要多个IDM。通过严谨的用户空间的共享策略,云中的多个不同的技术相互协作,并且像一个完整的个体一样工作。传统的IDM并不能满足云环境的需求。许多云系统的提供上都简化的所有权的IDM解决方案,但是这个方案有总所周知的问题。
云端的IDM必须管理——控制节点,动态的组合或者拆分机器,虚拟机的设备,服务的身份认证信息等等。云的部署是随着服务的开启和结束而动态变化的(IP是动态分配的),仅仅的管理用户和服务是不够的。目前的云系统需要能够动态的管理典型的IDM问题例如,分配资源,撤回资源,同步,权利,以及管理的生命周期等等。
SoCC'13
云平台管理软件是云平台重要的组成元素。云平台管理软件管理云上面的各种资源。并且云平台管理软件的功能还在日益的加强,但是它的错误容忍却鲜有研究。本文展示了一个对于云平台管理软件OpenStack的错误容忍性的研究。作者建立了一个错误注入框架的原型。这个框架能够在处理外部命令时给OpenStack的服务之间的通信中注入错误,既可以在OpenStack的服务之间注入也能在OpenStack服务与外部服务之间注入。目前在两个不同版本的OpenStack中发现了23个bug。作者的发现展示了现有的云管理软件栈在错误容忍角度的设计与实现的缺陷。
SOSP'13
许多的大数据应用都必须具有实时的响应。这些应用由于需要在巨大的数据集上面运行所以需要并行的架构,并且这个并行架构能够自动的处理错误以及straggler。遗憾的是现在有的并行流处理模型并没有提供高效的错误恢复,需要热复制以及长时间的恢复而且并不会处理staggler。作者提出了一个新的处理模型,D-Stream(discretized stream)能够克服上面提到的几个问题。D-Stream对于传统的复制以及备份策略以及容忍straggler的模型提供了并行恢复策略的支持。在试验中只有亚秒级的延迟以及亚秒级的错误恢复时间。最终,D-Stream能处理批处理以及交互式的查询模型就像MapReduce。作者在Spark Streaming中实现了D-Stream。
2013 International Conference on Cloud Computing and Big Data
针对云环境中部署的虚拟机的特性,本文展示了一个选择信息记录的准同步的检查点算法。这个算法保持原有的创建检查点的间隙,通过VMM记入volatile信息记录,并且选择性的记录stable存储记录来保持全局的一致性。性能测试结果现实这个算法不仅保持了自动的检查点而且还降低了通信的开销以及存储空间的开销。这个算法适合云来管理虚拟资源以及虚拟机迁移。
在大规模的分布式虚拟系统中一致检查点算法将会带来巨大的性能的降低:
准同步检查点算法允许进程独立的做检查点,并且通过信息的之间的关联性确定一个全局的一致检查点。传统准同步检查点的缺点有时需要强制的做检查点,增加了额外的开销。由于虚拟化带来的便利,能通过细粒度的信息记录来保持固有的检查点周期的同时减少系统的容错开销。
本文展示了一个基于选择信息记录的准同步的检查点算法。该算法能够将信息记录临时的存储在VMM上面来保持虚拟机的固有检查点见习,并且降低通信的开销。(stable信息的存储才能构造一个一致的系统状态,这些stable信息是选择记入的结果)
Global Checkpoint(回滚线recovery line)
当网络负载很低的时候将检查点同步带stable存储中。
但是光靠定时的准同步检查点不能保持系统的一致。必须通过日志来解决孤儿信息的问题。物理机器上面的VMM将会展示存储接受的消息日志。并且从这些信息中选择被MI接受的日志项记录stable存储于此同时SI节点并不会存储任何信息在stable存储里。
对于虚拟机而言,只需要定时的创建检查点,以及通过检查点的编号计算回滚线。
接受的信息日志(
固定的接受信息日志(
当计时的timer时间到的时候VMM将会检查
DSN-W 2012
最近关于如何防止虚拟机被恶意的hypervisor的攻击越来越受关注。但是很多解决这方面问题的先前工作都容易被rollback攻击。由于很难分辨正常的suspend/resume操作,迁移操作与回滚攻击。有一些先前的系统只是简单的禁止虚拟机的回滚,而另外一些则需要用户的过度参与。作者在这篇文章中提出了新的思想来解决这个问题。在一个小的TCB中记录所有的suspend/resume操作以及迁移操作的日志,用户通过对这个日志进行审计来检查恶意的回滚的同时限制Hypervisor对该虚拟机的操作
文章提出的解决方案需要有一个end user能够判断这个rollback是否是恶意的。所以作者将所有的回滚的时间的日志都安全的记录起来。通过审计用户能够检测可以的回滚并且向云管理员提供这些操作的必要性。或者更加高级的定义回滚的策略限制云管理进行操作。这个解决方案仍然需要很少的用户参与。
CloudVisor: 采用nested VMM技术来隔离hypervisor与用户虚拟机。这个小的hypervisor通过监视hypervisor与虚拟机之间的控制流检查是否是合法的操作,保护了用户虚拟机的隐私性和完整性。控制EPT(extended page table)隔离他们的内存区域。并且在每次hypervisor访问的时候加密这些页面。并且采用MHT(Merkel Hash Tree)来保护虚拟机磁盘镜像的完整性。
H-SVM: 采用物理硬件中的microcode程序来加强内存的保护。物理硬件将hypervisor要访问的页面全部都加密一遍,并且使用hash tree来保护用户机内存的完整性,hash树的根需要被存放在受保护的内存区域。
HyperWall: 这是另外一个相关的工作。它通过扩展物理硬件来支持细粒度的控制访问存储。每一个虚拟机需要明确自己的隐私页面以供物理硬件保护。
然后CloudVisor,H-SVM都不能防御防御上面提高的回滚攻击(通过回滚暴力破解,跳过安全检查等等)。回滚攻击能够以多种的形式发动,例如hypervisor能resume一个老的snapshot,或者将现有的虚拟机克隆到另外一个机器上面,控制不同的版本。要分辨回滚攻击和正常的回滚是很难的。而HyperWall完全不能做虚拟机的快照,由于hypervisor不能访问用户的内存。并且hypervisor也不能迁移虚拟机,只允许self-migration。HyperWall要求了很多的用户的参,并不实际。
系统要求回滚操作不能在一个Running Epoch中(每个Running Epoch 开始与 VM boot/resume 结束与VM shutdown/suspend)
作者在CloudVisor中添加了4个Hypercall:vmboot,vmshutdown,vmsuspend和vmresume。这些操作控制域并不能跳过。
日志的记录就是在以上这4个hypercall的过程中实现的。每个日志项是一个三元组{操作,时间戳,快照版本}时间戳由硬件时钟支持。快照的版本是由磁盘的哈希,内存的哈希,CPU状态的哈希构成的。为了放置log被篡改每一次日志项增加了都向TPM的NVRAM中增加新的度量。由于虚拟机可能被迁移,所以虚拟机的日志也是分布在整个系统当中的。审计的时候需要将所有的log放在一起进行审计。
CLOSER'13
虚拟机的热迁移也能够让攻击者发动新型的攻击形式。攻击者能够攻陷hypervisor,然后将受害虚拟机迁移出去获得更多的资源的控制权。在本文中作者展示了第一个检测虚拟机迁移的方法总结。分别有内部监视以及外部监视两种检测的方法。同时提出了一个混合的外部监控手段采用ICMP ping的延迟手段以及基于NTP的time-lag检测手段来检测虚拟机的迁移。作者的工作是基于Konig and Steinmetz在2011年发表的文章。
关于滥用虚拟器迁移的问题在Oberheide等人在2008的论文上已经说明了。Oberheide等人描述了3个攻击方式:控制面板,数据面板以及迁移模块。
提及了第13号文章的相关工作,Akoush等人在2010年发表的工作说明了迁移的性能是与内存的变化率以及网络的速率相关的。
Konig与Sternmetz在2011年的工作表明了ICMP ping是一个检测虚拟机迁移的合适的办法。ping的往返时间在虚拟机迁移的时候会变得很大。以及在虚拟机迁移的结束时间ping包可能会丢失。Nirschl在2011年的工作证明了ping是能够用来检测虚拟机迁移的。Konig等人同时也发现了在内存变化率不大的情况下CPU的负载并不会很大程度的影响ICMP ping的往返时间。
针对迁移攻击的三种方法
虚拟机迁移测试手法的统计
内部方法
外部方法
主要是监控机制并不是实现在特权虚拟机里面。检测的方法大都类似,但是具体的实现并不一样。
以上的方法有些能够在热迁移过程中或者是热迁移结束时检测。
作者将基于ICMP pingdedelay measurement以及基于NTP的time-lag度量来检测一个虚拟机的热迁移。
SoCC'13 Poster
Author: Min Fu
在对云应用做零星的操作的时候会反生服务失效的错误。例如 ,升级,重新部署配置,迁移,调度。他们中的很多是由进程的错误产生的。在现实的大规模的系统中进场有多个操作进程在并行发生,这样也将会加剧错误诊断和恢复的问题。现有的回滚恢复机制基本都是假设组件会随机的fail并且使用基于检查点的回滚恢复以及补偿行为[1],以及redundancy and rejuvenation方法[2]。这些回滚机制并不会考虑特定的操作进程,例如是由脚本运行的,还是人与云的API以及不确定的资源进行交互等等。另外的方法例如FATE/DESTINI就是针对由系统内部的协议实现的进程的,依赖于系统自身的系统来检测以及从bugs中恢复。我们针对的问题是对于外部的的零星的操作的。
作者的方法是显示的对操作进行建模和分析。作者将进程划分为有多个step组成的section。分离的标准可以由于不同的目的而发生改变,例如错误诊断,一致性检查,恢复。对于恢复来说,作者的初始化分类标准包括:
作者做出了一系列的声明代表了每个阶段执行的期望程序结果。作者使用了运行时的assertion评估以及监控系统[3]来检测每个section结束之后的错误并且在需要的时候出发回滚恢复操作。
作者在AWS的应用成立的一个典型的AMI驱动的rolling upgrade 进程上面应用了作者的方法。Netflix也有一个Asgard的工具支持这个进程。作者用他自己的分类方法将Asgard的内部回滚恢复组件与错误处理机制给分开了。作者同时也在一些section的结尾加入了能够触发日志的assertion评估。作者的程序能够更早检测到可能被Asgard遗漏的错误。作者发现Asgard并没有为re-executin设计相应的粒度以及idempotence幂等性所以在Asgard选中的代码段并不能执行基于re-execution的回滚恢复操作。我们为了从一些的错误中恢复设计了一些可以替代的外部命令。例如,对于一些意外停止的一些实例,可以重新启动它们或者kill这些实例然后依靠auto-scaling的组来重新启动他们。作者的回滚恢复的消耗明显低于Asgard。
现在,为了能够让操作者能够更加简单的设计与实现他们的原子操作的脚本,re-execution块以及为了恢复目的而设计的可替换的指令,作者开了patterns和frameworks。作者也将这些和assertion评估和监控框架进行了结合[4]。
S&P'11
为了保护计算,一个安全的架构不仅需要保护那个软件,同样需要保护软件的操作时候的状态。如果软件回滚到一个正常但是老旧的版本,那么它很有可能发现错误。所以保护软件的状态不仅仅是保护状态的私密性与完整性。为了达到上上面说的目标,作者提出了Memoir,Memoir是第一能够保证软件模块状态的连续性的系统。换句话说,Memoir保护软件的状态保持持续并且不会被破坏。Memoir的最大贡献是在做到rollback resistance的同时并没有让系统更加的容易发生crash。Memoir实现了一个确定的模块,这个模块精确的将被保护模块的请求记录的总结存放在NVRAM里面。并且在发生crash的时候仅仅允许安全的命令重新执行。由于现在的硬件设备的NVRAM并不能频繁的进行读写,作者对这个问题也做出了优化。
作者为了确保其设计的正确性,作者给出了基于公理化的安全证明。作者还对Memoir的性能在真实的环境中进行了测试。
作者解决可信存储空间的不足,以及写入次数的限制,通过特别的数据结构将日志保护起来,只有在关机的时候才写入NVRAM。作者在基于Flicker的基础隔离了被保护的模块。
问题的解决有一下几个挑战:
VEE'10
准确重放的应用:容错,精确诊断bug
重放的问题:在重放之前定义的记录规则下记录的重放记录并不能很好的完成终端用户的重放要求,这些记录往往包含的信息过少并不能准确的重放,或者这些记录包含了安全敏感的信息并不允许重放。Similarly,fixing the abstraction level at the time of recording often leads to asemantic mismatch with the end use of replay
本文的工作:对于不同的重放的需求允许定制重放信息的种类,Crosscut允许在时间和抽象层面上面划分日志
抽象层面包括:单个进程,应用,感兴趣的部件,并且排除了处理敏感信息的部件。文章认为带来问题的原因是系统在进行重放的时候并没有对记录下来的日志进行进一步的划分(细粒度处理)
Crosscut首先将在机器指令级别,综合地有效地做记录(这里的的记录可以进行全系统重放),记录不确定信息即外部的输入信息的开销往往小于5%,因此Crosscut记录下所有的信息之后根据需求重放。
Crosscut是如何处理日志的:
本文贡献
ACSAC'11
作者考虑的问题是解决在私有云中迁移基于vTPM的虚拟机的问题。并且给出了该解决方案在公有云中适用的详细调节,并且提出了一个适合于VM-vTPM迁移的vTPM密钥结构。并且之后在这个基础上提出的安全迁移的协议。
解决了如何为虚拟机提供可信计算功能的同时,并不阻碍虚拟机迁移的功能。
首先,明确了关于安全迁移的3个安全要求
其次,展示了现有的vTPM密钥结构要不是与物理的TPM耦合得太紧,不然就是耦合得过松。本文提出了一个新的密钥结构的设计,在物理TPM和vTPM之间的插入了一个中间层,并且提供密钥等级的逻辑隔离并且支持密钥迁移以及减少了对私有CA的依赖。本文是第一个提出设计符合迁移的vTPM的密钥结构,以及设计实现的VM-vTPM迁移规则。
安全迁移协议的要求
作者的vTPM密钥结构,为了能够让迁移过程中重新生成的密钥数量尽可能的少,作者提出了在TPM与vTPM中新添加一层中间层。这个中间层由全局SRK(gSRK),一个一组连接TPM密钥以及vTPM相对密钥的的签名密钥(SK)。
作者进一步的将vTPM密钥划分为内部与外部密钥