← 所有文章

工程哲学:Joanna Rutkowska

Joanna Rutkowska,安全研究员、Qubes OS 的创造者

核心要点

  • 她构建了一套桌面操作系统,而前提就是假定它终将被攻破。 Joanna Rutkowska 是波兰安全研究员,她创造了 Qubes OS——“一套合理安全的操作系统”——其核心原则是通过分隔实现安全。Qubes 并不试图把系统打磨得毫无 bug,而是把你的数字生活拆分到一个个相互隔离的虚拟机(称为”qube”)中(工作、个人、银行、不可信),这样一来某个 qube 被攻破的影响会被控制住,无法波及其他 qube。12
  • 她的名声首先来自进攻一端——她通过攻破系统来学会如何隔离系统。 在 2006 年的 Black Hat 大会上,她展示了 Blue Pill,这是一个概念验证的 rootkit,利用 AMD 硬件虚拟化把一层轻量的恶意 hypervisor 悄悄塞到正在运行的操作系统底下,将其困在一个它自己看不见的虚拟机里。正是因为攻击平台最深的层级,她才懂得哪些层级你绝对不能信任。3
  • 她把”不信任基础设施”变成了架构。 在一场题为”Security Through Distrusting”(以不信任求安全)的主题演讲中,Rutkowska 指出,业界习惯把组件标记为”可信”,这种做法既天真又无法扩展——更好的做法是把任何单个组件都当作可能已被攻破,对几乎所有组件都不信任,从而做到没有单点故障5 Qubes 正是把这套论点编译成了一个可运行的桌面系统。2
  • 别人盲目信任的那些平台层级,她偏要去探查。 除了 Blue Pill,她还在攻击 System Management Mode(系统管理模式)和 Intel Trusted Execution Technology 方面做了开创性工作,并在 2009 年提出了 “Evil Maid”(恶意女仆)攻击,仅凭短暂的物理接触就攻破了 TrueCrypt 这类全盘加密。每一次攻击,都标出了一条本以为可靠、实则是谎言的信任边界。14

核心原则

“所有软件都含有 bug……Qubes 不试图阻止每一种可能的漏洞利用,而是假定漏洞利用终会发生,并把精力放在控制损害上。”——Qubes OS 的介绍文档,对其立项初衷的转述2

大多数安全工程都在追逐一个不可能的目标。你审计代码、修补漏洞、加固配置,然后告诉自己:只要足够小心,系统就会安全。Rutkowska 的整个职业生涯,是一场漫长而耐心的论证——这个目标不过是海市蜃楼。一台现代桌面机要运行数千万行代码——内核、驱动、浏览器、PDF 阅读器、固件——其中每一行都是 bug 可能藏身之处。你不可能把它们全找出来,而你的对手只需要其中一个。所以诚实的问题不是”我怎样才能让它没有 bug?”,而是“当——而不是如果——有东西钻进来时,它能波及多大范围?”2

Rutkowska 给出的答案是通过隔离实现安全。如果你无法阻止系统被攻破,那你可以预先决定它能扩散多远。Qubes 把一台机器拆分成多个相互独立的虚拟机——一个用于工作,一个用于银行,一个用于个人浏览,一个用于打开来路不明的附件——每一个都运行在 Xen hypervisor 之上,拥有自己的边界。在那个不可信的 qube 里点开一个恶意链接,恶意软件就落进了一个密闭的房间。它从未与你的银行 qube 共享过信任边界,因此够不到你的凭据,而你只需把那个被攻破的 qube 直接扔掉。12 物理世界本就如此运作:你不会在同一个不分隔的房间里投票、睡觉、存放现金,而 Qubes 要问的是,凭什么你的电脑就该这样。2

这条原则还有后半段,而且是更难的一半:不信任基础设施,并尽量缩小你被迫去信任的东西。 在”Security Through Distrusting”的演讲中,Rutkowska 指出,把一个组件称为”可信”并不是褒奖——而是一种承认:一旦这个组件失效,它就”有能力摧毁我的整个安全完整性”。5 所以这门功夫,是把几乎每一个组件都当作可能已被攻破,去除单点故障,并把可信计算基——即其正确性是其他一切所依赖的那部分代码——缩到你所能做到的最小。52 到头来你终究要信任某样东西。真正的手艺,是让那样东西变得微小、可审查、寥寥无几。

背景

Joanna Rutkowska 1981 年生于波兰华沙,在华沙理工大学取得计算机科学硕士学位。1 她的出身不是防守者,而是进攻型研究员,而且声名赫赫——在 2000 年代中期,她就在探查 x86 平台最底层、最被信任的那些层级,而这些层级正是防御性安全通常视为坚实地基的部分。

让她一举成名的是 Blue Pill,于 2006 年 8 月 3 日在 Black Hat Briefings 上演示,同时她还展示了如何攻破 Windows Vista 的内核保护机制。eWeek 将她评为”在 2006 年留下印记的五位黑客”之一。13 2007 年 4 月,她在华沙创立了 Invisible Things Lab,这家咨询与研究机构后来成了她平台安全工作的大本营。1 在随后几年里,她和她的合作者——其中包括 Alexander Tereshkin 和 Rafal Wojtczuk——发表了针对 Xen hypervisorIntel Trusted Execution Technology 以及 System Management Mode 的攻击;System Management Mode 是一种权限极高的”ring -2”执行模式,位于操作系统内核之下。1 2009 年,她提出了 Evil Maid 攻击,这是一种物理接触手段,通过攻破笔记本电脑的引导过程来窃取 TrueCrypt 这类全盘加密的口令。4

随后她做了进攻型研究员很少会做的事:她把防御造了出来。Qubes OS 的工作大约始于 2010 年,由她与 Wojtczuk 共同推进,Qubes 1.0 于 2012 年 9 月 3 日发布,建立在”通过分隔实现安全”的原则之上。1 她领导这个项目多年,这套方法也赢得了从 Edward Snowden 到密码学家 Daniel J. Bernstein 等各界人士的公开背书。2 后来她转向隐私与去中心化方面的工作;关于她最近项目的具体情况,最好直接读她本人当前的渠道,而非道听途说地转述,本文只谈那些有据可查、板上钉钉的部分。1

作品

Qubes OS:通过分隔实现安全

就从这里说起,因为 Qubes 把那条原则变成了你真正可以运行起来的东西。它的设计一上来就承认了那场大多数安全工具假装正在打赢的战争:所有软件都有 bug,而其中一些 bug 是可被利用的。2 Qubes 并不想成为那个攻不破的系统。它想成为那个即便被攻破也无关大局的系统。

其机制是 Xen hypervisor。最底层是一个轻量的 hypervisor 和一个名为 dom0 的特殊管理域,它掌管显示和硬件,但被刻意排除在网络之外。在它之上运行着你的 qube——轻量虚拟机,每一个都按用途和信任级别来划定范围。12 你可以保留一个”工作”qube、一个”银行”qube、一个”个人”qube,再加一个”不可信”qube,专门用来打开任何来自陌生人的东西。每个 qube 的窗口都带有无法伪造的彩色边框,于是你一眼就能看出某个窗口属于哪个安全域。2 关键在于,这些 qube 通过一套模板系统共享根文件系统,因此它们既保持轻量、又能统一打补丁,而各自的私有数据则保持隔离。2 而对于风险最高的任务,还有一次性 qube——这种虚拟机临时启动起来,专门去打开某一个 PDF 或某一个链接,随后自我销毁,把任何感染一并带走。2

它作为工程为何重要:Qubes 把安全的基本单元从”机器”重新定义为”域”。在一台普通桌面机上,你运行的每个应用都共享同一片信任地址空间——你的浏览器、你的报税软件,还有那个你本不该打开的附件,彼此之间都只隔着一个糟糕的 bug。Qubes 让域与域之间的边界成为一堵由硬件强制实施的墙,而非一种一厢情愿的约定。代价是实实在在的——更多内存、更多摩擦、还有判断某个任务该归入哪个 qube 的那份纪律——而 Rutkowska 也坦言,以不信任求安全”并非万能药”,因为它要拿可用性来做权衡。5 但回报是:最坏情况不再是灾难。被攻破不再意味着”他们拿下了我的电脑”,而只是”他们拿下了一个一次性的房间,而我马上就要把它删掉”。

攻破平台:Blue Pill、SMM 与 Evil Maid

只有当你确切地知道哪些边界是假的,才能设计出好的隔离边界,而 Rutkowska 是通过攻击它们才学会这一点的。她 2006 年在 Black Hat 演示的 Blue Pill 是最清楚的例子。这是一个概念验证的 rootkit,利用了 AMD 的硬件虚拟化(AMD-V)来完成一件大胆的事:在一台正在运行的机器上启动一层轻量的 hypervisor,并把正在运行的操作系统实时迁移到它底下的一个虚拟机里。3 从那个虚拟机内部看,操作系统会以为自己身处一个正常的世界——可它下面的 hypervisor 却能拦截”硬件中断、数据请求乃至系统时间”,把它喜欢的任何答案喂给那个被困住的操作系统。3

有必要把 Blue Pill 到底是什么、不是什么说清楚。它是一个概念验证,并非在野外发现的恶意软件,而它最大胆的论断——这样一个 hypervisor rootkit 能做到”100% 不可检测”——是有争议的,其他研究者提出了基于时序的检测方法。3 但这条引发争议的标题并不是教训所在。教训在于它所暴露的攻击面:那个被嵌进每一个操作系统的假设——它所运行其上的那一层是良性的。Blue Pill 表明,虚拟化能够把权限最高的那一层变成攻击者的主场——而你信以为在你”下面”的东西,恰恰是你从”上面”无法验证的东西。

同样的直觉驱动了她其余的进攻性工作。她和合作者攻击了 System Management Mode——那个运行于内核之下、晦涩而权限极高的固件模式——以及 Intel Trusted Execution Technology,一项整个目的就在于建立信任的功能。1 而在 2009 年,她提出了 Evil Maid 攻击:把一台加密的笔记本电脑无人看管地留在酒店房间里,一个有短暂物理接触机会的”女仆”就能篡改未加密的引导程序,让它在你下次输入口令时把它捕获下来。4 TrueCrypt 这类全盘加密之所以脆弱,是因为引导代码无法向用户证明自己的身份——你根本没办法知道,那个向你索要口令的加载程序是否仍是你自己的。4 这些攻击中的每一个,都是一张地图,画出了一条没能守住的信任边界。后来建造 Qubes 的那位防御架构师,早已从内部摸清了哪些墙是承重的、哪些只是画上去的。

Joanna Rutkowska 在展示平台安全研究

不信任基础设施:缩小可信计算基

Qubes 并不仅仅是”把一切都跑在虚拟机里”。更深一层的设计原则是缩小并不信任可信计算基——也就是那一组组件,整个系统的安全都建立在它们的正确性之上。Rutkowska 的演讲”Security Through Distrusting”把这套理念说得直截了当:把组件做成”可信”的那种惯常冲动”过于天真、且无法扩展”,因为在安全领域里,”可信”真正的含义是某个组件一旦出错,就”有能力摧毁我的整个安全完整性”。5 正确的回应是,假定任何单个组件都可能已被攻破,对几乎所有组件都不信任,并据此设计,从而做到没有单点故障5

你可以在 Qubes 的具体取舍中看到这条原则。管理域 dom0 被刻意禁止访问网络,因为一个能从网络上够到的 dom0 会成为一个单点,它一旦被攻破就等于拿下整台机器。2 网络和 USB 本身也被推进各自隔离的 qube,这样网卡驱动中的 bug 或一个恶意 USB 设备就只会落进一个沙箱,而不是落进那个被一切所信任的内核。2 在域与域之间传递的文件以防御性的方式处理——这正是 Rutkowska 应用于 Qubes 处理图片和 PDF 时的那套”把它当作可能已被攻陷”的逻辑。5 而一次性 qube 最直接地体现了这种不信任:与其信任一个 PDF 阅读器不会被利用,不如假定它终将被利用,把它跑在一个你马上就要销毁的虚拟机里,让爆炸发生在一个空房间中。2

贯穿始终的,是对自己代码的谦卑。一个去信任某个庞大、复杂组件的系统,是在下一个庞大、复杂的赌注。Rutkowska 的架构努力把这个赌注做小——把可信计算基缩到一层轻量的 hypervisor 和一个与网络隔离的 dom0,并把其上的几乎一切都当作可消耗、可替换、且被假定为怀有敌意的。25

Joanna Rutkowska 在 LinuxCon Europe 上展示 Qubes OS

从桌面到去中心化

Rutkowska 领导 Qubes 多年,随后转向了那个操作系统只能部分解决的更宽泛的难题:即便是一台完美分隔的桌面机,也仍然信任着它周围的基础设施——云存储、网络,以及保管你数据的那些服务。15 她后来的工作转向了隐私与去中心化,把同一种不信任从单台机器向外延伸到它所对话的那些系统。这些项目的确切形态和现状,最好取自她本人当前的写作,而非在此转述;能够清晰传承下来的是原则,而非具体产品。那份直觉始终如一:假定基础设施已被攻破,并据此构建架构,让这个假设给你带来的代价尽可能小。5

方法

把 Qubes、Blue Pill、SMM 与 TXT 攻击,以及”Security Through Distrusting”放在一起读,同样的几条信念反复出现。Rutkowska 的方法与其说是一句口号,不如说是一组常驻的习惯。

假定已被攻破;为破坏的波及范围而设计。 立项的第一步,就是承认预防终将失败,并转而追问一次攻破能扩散多远。2 放到大规模来看,这正是 Werner Vogels 在可靠性上所做之事的安全孪生——一切随时都会出故障,所以与其假装能避开故障,不如去控制破坏的波及范围。这条教训远不止适用于 Qubes:不要为”什么都钻不进来”的情形去设计架构;要让架构做到当确有东西钻进来时,它被困在一个小小的、一次性的牢房里。这正是把证据门槛应用于安全——“还没人闯进来过”不是证据;”这里的一次攻破够不到那里”才是。

不信任基础设施,并证明边界成立。 把每个组件都当作可能已被攻陷,拒绝默认授予信任。5 这是把 Thompson 的”Reflections on Trusting Trust”化成了桌面架构:你无法信任你没有检查过的东西,所以别再信任那些你看不见的层级,而是把它们隔离开来。这门功夫,是对每一个组件都发问:”如果它被攻破了,它能拿下什么?”——然后不断重画边界,直到答案变成”几乎什么都拿不下”。

在别人动手之前先自己攻破它。 Rutkowska 的防御建立在十年的进攻之上——Blue Pill、SMM、Evil Maid——因为你无法隔离一条你尚未先证明其为假的边界。34 这正是 Adi Shamir 带进密码学的那份直觉:以攻为守,只信任那些经受住了认真破解尝试的东西。这个常驻习惯,是先戴上攻击者的帽子,摸清你的哪些信任假设是谎言,并在谎言所在之处筑墙。

缩小可信计算基。 你的安全所依赖的代码行数越少,你的赌注就越小。25 一层轻量的 hypervisor 加一个与网络隔离的 dom0,是一个可审查的下注;而一个把每个驱动和服务都纳入信任边界之内的单体内核,则是一次盲目的下注。这是把最小可敬产品应用于信任:最干净的可信基,就是那个仍能完成其单一职责的最小可信基。把信任剥到只剩必须信任的部分,并把其余一切都假定为怀有敌意。

对权衡保持诚实。 Rutkowska 不夸大其词——她明明白白地说,以不信任求安全”并非万能药”,它要拿可用性和便利来做代价。5 这个习惯,是把你所购买的安全的价钱说出来,而非藏起来,好让下一位工程师能够掂量它。这份坦诚,是把质量是唯一的变量应用于安全:一个连同代价一并说清的真实保证,胜过一句安逸却悄悄站不住脚的承诺。一条你理解并主动选择的边界,胜过一条你想当然并被动继承的边界。

影响链

是谁塑造了她

2000 年代中期的进攻型研究社群。 Rutkowska 是在 Black Hat 和底层系统黑客的平台攻击文化中崛起的,在那里,活计就是找出那个无人质疑的假设并把它攻破。3 那种文化的核心反射——不信任人人都信任的那一层——成了她防御工作的脊梁。(奠基性影响)

硬件虚拟化浪潮。 Blue Pill 之所以可能,只因为 AMD-V 和 Intel VT-x 刚刚让硬件虚拟化成为主流。3 她在 2006 年用作武器的同一项技术,在 Qubes 里成了她构建隔离的基础,Xen 在那里把 hypervisor 从攻击者的工具变成了防御者的墙。12(直接影响)

Xen 与 hypervisor 安全的脉络。 多年分析并攻击 Xen,教会了她 hypervisor 隔离究竟有多强——又有多脆弱,正是这份知识塑造了 Qubes 把 dom0 排除在网络之外、并把驱动推入隔离域的决定。12(奠基性影响)

她塑造了谁

注重隐私的计算。 Qubes 成了记者、活动人士和安全研究员推荐使用的桌面系统,他们必须假定自己面临针对性的攻破——对那些威胁模型是一个国家、而非一句口号的人来说,这是一件真正的工具。2

分隔思维。 “通过隔离实现安全”和”缩小可信计算基”远远越出了 Qubes,传播进了整个业界对沙箱、容器隔离和按应用虚拟化的思考方式之中。25

先去攻破的防御者。 Rutkowska 是一个常立的例证:最强的防御架构师往往是前攻击者——通过攻破来摸清真实的信任边界,是正确地画出这些边界的前提。34

贯穿主线

Rutkowska 是本系列中隔离这块拱心石——面对”系统终将被攻破”,她给出的回应不是绝望,而是架构。Adi Shamir 在密码学中以攻为守,只信任那些经受住了真实破解尝试的东西;Rutkowska 在低一层运行着同样的循环,攻破 hypervisor 和引导链,好让她能造出一台即便它们被攻破也能存活的桌面机。34 Thompson 和 Ritchie 给了我们那句告诫:你不能信任你没有亲手构建并检查过的东西;而 Rutkowska 的”不信任基础设施”,正是把那句告诫化成了一个运行中的操作系统,在那里那些不可信的层级被隔离开来,而非寄望于它们。5 而当 Werner Vogels 为可靠性说出一切随时都会出故障,所以要控制破坏的波及范围时,Rutkowska 为安全说出了同样的话:Radia Perlman 设计网络时,把怀有敌意、不断出故障的情形当作设计的中心,而 Rutkowska 也以同样的方式来设计机器。Vogels 控制一块出故障的磁盘,Perlman 控制一条出故障的链路,而 Rutkowska 则说:攻击者已经在里面了——所以要隔离每一个域,不信任每一层,并让一次攻破成为一个你可以扔掉的一次性房间。(系列衔接)

我从中学到了什么

我从 Rutkowska 身上记下的一课,是要为攻破而设计,而非对着攻破设防。我的本能,和大多数构建者一样,是去加固那个东西——校验输入、修补依赖、锁死配置——并把安全当成一堵我正努力垒到足够高的墙。”所有软件都含有 bug”是对此的当头棒喝:墙终将被攻破,因为总还有一个 bug;而真正要紧的问题是,一旦对手翻墙而入,他能够到什么。所以如今当我构建某样东西时——一条认证边界、一个运行不可信输入的服务、一个触及钱的功能——我会试着先问”当这东西被攻破时,破坏的波及范围有多大?”,再去问”我怎样把它挡在外面?”。安全的诚实版本不是”我看不出这东西会怎么坏掉”,而是”当它坏掉时,损害被困在一个我可以删掉的房间里”。

第二课,是对我被迫去信任的东西保持合理的偏执。把一个组件大手一挥放行为”可信”然后接着往下做,是很容易的事,但 Rutkowska 为我重新定义了那个词:把某样东西称为可信,就是在承认它一旦失效便能摧毁一切。这改变了我画边界的方式。我引入的每一个库、我依赖的每一个服务、我运行其上的每一层,都是一个赌它正确的赌注——而赌注的大小,就是我可信计算基的大小。所以我会试着把那个基保持得小而可审查,把有风险的、复杂的东西推进我假定其怀有敌意的沙箱里,并像她那样诚实地承认:隔离让我付出了便利上的代价。这份偏执不是悲观。它是一门纪律:确切地知道自己在信任什么,并把那张清单缩到我所能做到的最短。

常见问题

什么是 Qubes OS?

Qubes OS 是一套免费、开源、以安全为导向的桌面操作系统,由 Joanna Rutkowska 创造,项目方称之为”一套合理安全的操作系统”。2 它使用 Xen hypervisor 把你的计算拆分到一个个相互隔离的虚拟机(称为 qube)中——为工作、银行、个人浏览、打开不可信文件等活动划分出彼此独立的隔间。由于这些 qube 相互隔离,某一个被攻破也无法波及其他,因此任何单次攻破造成的损害都会被控制住。它还支持用后即自我销毁的一次性 qube,并为每个域配上无法伪造的彩色窗口边框,让你看得出一个窗口属于哪个隔间。12

什么是通过隔离实现安全(分隔)?

通过隔离实现安全,也叫分隔,是 Qubes 核心处的原则:与其试图让软件没有 bug,不如假定攻破终将发生,并通过把系统划分成相互隔离的域来控制损害2 Qubes 的介绍文档拿物理生活来作类比——你本就会自然而然地把各种活动分到不同的房间里——并把它应用到一台原本会让一切共享同一条信任边界的电脑上。2 与之互补的另一半是”不信任基础设施”:把每个组件都当作可能已被攻破,去除单点故障,并把可信计算基保持得尽可能小。5

Blue Pill 是什么?

Blue Pill 是 Joanna Rutkowska 于 2006 年 8 月 3 日在 Black Hat 上演示的一个概念验证 rootkit。它利用 AMD 硬件虚拟化(AMD-V),在一台正在运行的机器上启动一层轻量的恶意 hypervisor,并把正在运行的操作系统迁移到它底下的一个虚拟机里,于是这层 hypervisor 就能拦截并伪造操作系统对硬件、中断乃至系统时间的认知。3 Rutkowska 关于这样一个 rootkit 能做到”100% 不可检测”的论断是有争议的,其他研究者提出了基于时序的检测方法。它是对某个攻击面——即”你的操作系统之下那一层是良性的”这个假设——的研究性演示,而非在野外发现的恶意软件。3

Evil Maid 攻击是什么?

Evil Maid 攻击是 Joanna Rutkowska 在 2009 年的一篇博文中命名的一种物理接触手段。如果攻击者获得对一台无人看管的加密笔记本电脑的短暂、无监督的接触机会——比如在酒店房间里——他们就能篡改未加密的引导代码,使其在用户下次输入时悄悄捕获全盘加密的口令。4 TrueCrypt 这类全盘加密系统之所以脆弱,是因为引导加载程序无法向用户证明自己的身份,于是受害者根本没办法把被攻破的加载程序和正版的区分开来。4 它生动地证明了:单凭加密,并不能保护一台对手能够亲手触碰的机器。


来源


  1. “Joanna Rutkowska,” Wikipedia. Polish security researcher, born 1981 in Warsaw, Poland; master’s degree in computer science from the Warsaw University of Technology. Presented attacks on Windows Vista kernel protection and the Blue Pill technique at Black Hat 2006, using hardware virtualization; named one of eWeek’s “Five Hackers who Put a Mark on 2006.” Founded Invisible Things Lab in Warsaw in April 2007. With collaborators (Alexander Tereshkin, Rafal Wojtczuk) published research attacking the Xen hypervisor, Intel Trusted Execution Technology, and System Management Mode. Coined the “Evil Maid” attack in 2009. Began Qubes OS development with Wojtczuk around 2010; Qubes 1.0 released 3 September 2012, built on the principle of “security by compartmentalization” using isolated lightweight virtual machines called “qubes.” Later moved toward privacy and decentralization work. 

  2. “Introduction,” Qubes OS documentation (qubes-os.org), and “Qubes OS,” Wikipedia. Qubes OS is a free, open-source, security-oriented operating system for single-user desktop computing, with the project tagline “A Reasonably Secure Operating System.” It implements “Security by Isolation”/”security by compartmentalization,” operating on the premise that “all software contains bugs” and that perfect, bug-free software is impossible – so rather than attempting to prevent every exploit, Qubes assumes exploitation will happen and focuses on containing the damage by keeping valuable data separate from risky activities. Uses the Xen hypervisor to isolate applications into virtual machines (“qubes”), each with a purpose, nature (Fedora/Debian/Windows template), and trust level; an administrative domain (dom0) manages hardware/display and is kept off the network; networking and USB are pushed into isolated qubes. Features include disposable qubes that self-destruct when shut down, a shared-template system for app qubes, split GPG, and unforgeable colored window borders identifying each security domain. Created by Joanna Rutkowska (initial release 3 September 2012); the approach has been publicly endorsed by figures including Edward Snowden and Daniel J. Bernstein. 

  3. “Blue Pill (software),” Wikipedia. Blue Pill is a proof-of-concept rootkit, designed by Joanna Rutkowska and first demonstrated at the Black Hat Briefings on 3 August 2006, that uses x86 hardware virtualization (originally AMD-V/SVM, later ported to Intel VT-x). It works by “trapping a running instance of the operating system by starting a thin hypervisor and virtualizing the rest of the machine under it,” after which “hardware interrupts, requests for data and even the system time could be intercepted (and a fake response sent) by the hypervisor.” Rutkowska claimed it could achieve “100% undetectability,” a claim that was disputed – AMD dismissed it and other researchers proposed timing-based detection methods. It was a proof of concept and research demonstration, not malware found in the wild. 

  4. “Evil maid attack,” Wikipedia. An evil maid attack targets an unattended device through physical access, compromising it in an undetectable way so the attacker can later access its data. The term was introduced by security analyst Joanna Rutkowska in a 2009 blog post, describing a method for compromising the boot process/firmware of an unattended computer (e.g., via an external USB flash drive) to circumvent full-disk encryption such as TrueCrypt. Such systems are vulnerable because they “are susceptible to evil maid attacks due to their inability to authenticate themselves to the user” – an attacker can modify the encryption loader code to capture the passphrase. The attack requires the victim to leave the device unattended once (to plant the compromise) and again afterward (to retrieve the captured data). 

  5. Iain Thomson, “Security industry needs to be less trusting to get more secure,” The Register, 7 December 2017, reporting on Joanna Rutkowska’s keynote “Security Through Distrusting.” Rutkowska, chief executive of Invisible Things Lab, argued that the conventional security-industry focus on making systems “trusted” is “overly naive and non-scalable to more complex systems,” because in computer security “trusted” means a piece of code “is capable of destroying my whole security integrity.” Her alternative is to treat any single component in a system as potentially compromised – distrusting nearly all components and actors and having no single point of failure – a principle she applied in Qubes to how it handles image and PDF files. She acknowledged that “security through distrust is no panacea because it involves trade-offs, particularly in usability and convenience.” 

相关文章

工程哲学:Adi Shamir

Adi Shamir 是 RSA 中的“S”,也是一位密码分析大师——他构建安全系统的方式,是同时学会攻破它们。以攻为守,把纯净的数论化为可用的机制。

5 分钟阅读

工程哲学:Roberto Ierusalimschy

Roberto Ierusalimschy 围绕一个原则设计了 Lua——提供机制,而非政策——一门小巧、快速、可嵌入的语言,交给你的是操纵杆,而不是规则。

6 分钟阅读

The Shader Gallery That Lied: Debugging 216 WebGL Presets

A user said the shader playground looked broken. Pixel-readback testing found 30 dead presets, 11 that never compiled, a…

11 分钟阅读