Portably solving file TOCTTOU races with hardness amplification

  • Authors:
  • Dan Tsafrir;Tomer Hertz;David Wagner;Dilma Da Silva

  • Affiliations:
  • IBM Research, Yorktown Heights, NY;Microsoft Research, Redmond, WA;UC Berkeley, Berkeley, CA;IBM Research, Yorktown Heights, NY

  • Venue:
  • FAST'08 Proceedings of the 6th USENIX Conference on File and Storage Technologies
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The file-system API of contemporary systems makes programs vulnerable to TOCTTOU (time of check to time of use) race conditions. Existing solutions either help users to detect these problems (by pinpointing their locations in the code), or prevent the problem altogether (by modifying the kernel or its API). The latter alternative is not prevalent, and the former is just the first step: programmers must still address TOCTTOU flaws within the limits of the existing API with which several important tasks can not be accomplished in a portable straightforward manner. Recently, Dean and Hu addressed this problem and suggested a probabilistic hardness amplification approach that alleviated the matter. Alas, shortly after, Borisov et al. responded with an attack termed "filesystem maze" that defeated the new approach. We begin by noting that mazes constitute a generic way to deterministically win many TOCTTOU races (gone are the days when the probability was small). In the face of this threat, we (1) develop a new user-level defense that can withstand mazes, and (2) show that our method is undefeated even by much stronger hypothetical attacks that provide the adversary program with ideal conditions to win the race (enjoying complete and instantaneo us knowledge about the defending program's actions and being able to perfectly synchronize accordingly). The fact that our approach is immune to these unrealistic attacks suggests it can be used as a simple and portable solution to a large class of TOCTTOU vulnerabilities, without requiring modifications to the underlying operating system.