研究人员引入了一种新的编程系统,旨在防止意外的信息泄露。
Aeolus 由计算机科学家开发,是一种新的编程系统,可以通过自动跟踪用户的数据访问权限来帮助防止无意中的信息泄露。
两年前,一个名为 Blippy 的新兴社交网站不小心在网上发布了其用户的信用卡号。虽然这是一个特别令人震惊的例子,但这种无意中的信息泄露一直都在发生:例如,今年4月,德克萨斯州总检察长办公室向民权组织发送了1310万登记选民的信息——包括他们中许多人的完整社会安全号码。不到一个月前,罗德岛州普罗维登斯市(Providence, Rhode Island)意外地向当地一家新闻机构公布了近3000名前州雇员的社会安全号码。
在上周于波士顿举行的 USENIX 年度技术会议上,麻省理工学院的研究人员展示了一种新的编程系统,该系统可以帮助防止此类无意的信息泄露。
该系统被称为 Aeolus,专为开发大型分布式 Web 应用程序的程序员而设计,它会自动跟踪用户的数据访问权限。虽然学术界多年来一直在研究此类系统,但领导这项新研究的研究所教授芭芭拉·利斯科夫 (Barbara Liskov) 表示,Aeolus 应该比其前辈更容易使用。她认为,这将使专业程序员更有可能采用它。
“只要让这样的事情变得容易就意味着人们很可能会去做,”2008 年计算机科学最高荣誉图灵奖获得者 Liskov 说。“另一方面,如果它很难做到,应用程序开发人员可能不会这样做。”
当任何 Web 应用程序的用户登录时,他或她通常必须提供用户名和密码。但这绝不是应用程序执行的最后一次授权检查。每次用户调用新的应用程序功能时(例如,在银行账户之间转移资金或在患者的病历中做记录),应用程序都会验证用户是否具有适当的授权。这些验证在后台进行,但应用程序开发人员仍然需要对其进行编程。如果开发人员正确地提供了 1000 次安全检查,但错过了 1 次,则应用程序不安全。
因此,需要能够自动跟踪授权的软件开发工具。Liskov 说,以前的此类系统使用安全研究人员所说的能力模型。功能类似于授权持有者访问某些信息的准入券(不同之处在于该券存储在用户的计算机上,用户永远不知道它在那里)。Web 应用程序中的不同功能需要自己的票证,并且可以在用户之间来回传递票证。当用户尝试调用函数时,应用程序只需验证他或她是否具有相应的票证。
从技术上讲,这种方法是完全可行的,但在实践中,Liskov 说,程序员很难考虑。程序员不必为安全检查或票证分配编写代码,但他或她必须制定规则,说明哪些用户应该在哪些场合收到哪些票证,并且特定规则选择的后果可能很难追踪。
Liskov 与她以前的研究生 Winnie Cheng、现在的研究生 Dan Ports、David Schultz 和 James Cowling 以及斯坦福大学、普林斯顿大学和布兰迪斯大学的同事一起开发了 Aeolus,提供了一种更直观的方法来思考授权。程序员没有提供票证分配规则,而是简单地描述了系统用户的层次结构。例如,在医疗数据系统中,患者的初级保健医生可以获得诊断信息,但只有联系信息和预约时间由行政人员控制。用户的登录凭据将她标识为占据层次结构的某个层,其余部分由 Aeolus 处理。
除其他优点外,分层方法使撤销访问权限变得更加容易。例如,更换诊所的医生可能仍然需要访问全州范围的医疗数据库,但不应再查看以前患者的私人信息。对于能力模型,这需要撤销医生的票;另一方面,对于 Aeolus,医生只是被降级到层次结构中的较低级别。
然而,需要复杂的机器才能使系统如此易于使用。Aeolus 包括几个在后台工作以维护安全性的关键机制。当用户登录到 Web 应用程序时,该应用程序需要跟踪用户执行的所有事务。由于该记录不断更新,因此它存储在高速、易于访问的内存中。Aeolus 确保交易记录中的任何数据都不会泄露给同一应用程序或在同一服务器上运行的其他应用程序的其他用户。同样,授权层次结构中较高的人可能希望使用第三方软件来分析特权数据;Aeolus 会自动确保用户的权限不会转移到软件上。该软件可以纵数据,但不能将其泄露给外界。
事实上,这提出了关于 Aeolus 的一个中心点:它是一个控制信息流的系统,而不是数据访问。也就是说,层次结构底部的人可以在他们的计算机屏幕上查看特权信息;他们只是无法对它做任何其他事情,例如将其粘贴到文字处理器文档中 — 或者不小心将其发布到网上。
“研究第二种方法(即信息流方法)的人认为,与访问控制方法相比,它使构建应用程序变得更加容易,”Liskov 说。恶意用户仍然可以找到发布私人信息的方法。但是,Liskov 说,“事实是,今天最大的问题是简单的错误:'我并不是真的故意这样做,只是偶然这样做了。
即使使用 Aeolus 的前辈,“在强大安全性方面的优势也是显而易见的,”康奈尔大学计算机科学教授 Andrew Myers 说。“但这是一种成本效益分析:对于大多数开发人员来说,改变做事方式的成本已经足够高,以至于他们不愿意做出这种转变。”但是,使用 Aeolus,“您可以以更直观的方式指定安全策略,”Myers 说。“撤销的管理也比以前的工作要复杂得多。”
Myers 说,这些改进是否降低了采用成本,以至于开发人员开始使用此类系统还有待观察。但是,“在某个时候,我们将达到众所周知的临界点。