首页> 外文会议>Proceedings of the Sixth Symposium on Operating Systems Design and Implementation(OSDI'04) >Enhancing Server Availability and Security Through Failure-Oblivious Computing
【24h】

Enhancing Server Availability and Security Through Failure-Oblivious Computing

机译:通过无故障计算提高服务器可用性和安全性

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

We present a new technique, failure-oblivious computing, that enables servers to execute through memory errors without memory corruption. Our safe compiler for C inserts checks that dynamically detect invalid memory accesses. Instead of terminating or throwing an exception, the generated code simply discards invalid writes and manufactures values to return for invalid reads, enabling the server to continue its normal execution path. We have applied failure-oblivious computing to a set of widely-used servers from the Linux-based open-source computing environment. Our results show that our techniques 1) make these servers invulnerable to known security attacks that exploit memory errors, and 2) enable the servers to continue to operate successfully to service legitimate requests and satisfy the needs of their users even after attacks trigger their memory errors. We observed several reasons for this successful continued execution. When the memory errors occur in irrelevant computations, failure-oblivious computing enables the server to execute through the memory errors to continue on to execute the relevant computation. Even when the memory errors occur in relevant computations, failure-oblivious computing converts requests that trigger unanticipated and dangerous execution paths into anticipated invalid inputs, which the error-handling logic in the server rejects. Because servers tend to have small error propagation distances (localized errors in the computation for one request tend to have little or no effect on the computations for subsequent requests), redirecting reads that would otherwise cause addressing errors and discarding writes that would otherwise corrupt critical data structures (such as the call stack) localizes the effect of the memory errors, prevents addressing exceptions from terminating the computation, and enables the server to continue on to successfully process subsequent requests. The overall result is a substantial extension of the range of requests that the server can successfully process.
机译:我们提出了一种新技术,即可以忽略故障的计算,该技术使服务器能够通过内存错误执行而不会损坏内存。我们安全的C编译器插入检查可动态检测无效的内存访问。生成的代码不会终止或引发异常,而只是丢弃无效的写操作并生成要为无效读返回的值,从而使服务器能够继续其正常执行路径。我们已经将基于故障的计算应用于基于Linux的开源计算环境中的一组广泛使用的服务器。我们的结果表明,我们的技术1)使这些服务器不受利用内存错误的已知安全攻击的侵害,2)使服务器能够继续成功运行以服务合法请求并满足用户的需求,即使攻击触发了他们的内存错误。我们观察到成功继续执行的几个原因。当在不相关的计算中发生内存错误时,忽略故障的计算使服务器能够通过内存错误执行,以继续执行相关的计算。即使在相关计算中发生内存错误时,故障忽略计算也会将触发意外和危险执行路径的请求转换为预期的无效输入,服务器中的错误处理逻辑会拒绝这些输入。由于服务器的错误传播距离通常较小(一个请求的计算中的本地化错误对后续请求的计算几乎没有影响或没有影响),因此重定向可能会导致寻址错误的读取重定向并丢弃会破坏关键数据的写入结构(例如调用堆栈)可本地化内存错误的影响,防止寻址异常终止计算,并使服务器能够继续成功处理后续请求。总体结果是服务器可以成功处理的请求范围有了实质性的扩展。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号