Modern operating systems such as Android, iOS, Windows Phone, and Chrome OS support a cooperating program abstraction. Instead of placing all functionality into a single program, programs cooperate to complete tasks requested by users. However, untrusted programs may exploit interactions with other programs to obtain unauthorized access to system sensors either directly or through privileged services. Researchers have proposed that programs should only be authorized to access system sensors on a user-approved input event, but these methods do not account for possible delegation done by the program receiving the user input event. Furthermore, proposed delegation methods do not enable users to control the use of their input events accurately. In this paper, we propose ENTRUST, a system that enables users to authorize sensor operations that follow their input events, even if the sensor operation is performed by a program different from the program receiving the input event. ENTRUST tracks user input as well as delegation events and restricts the execution of such events to compute unambiguous delegation paths to enable accurate and reusable authorization of sensor operations. To demonstrate this approach, we implement the ENTRUST authorization system for Android. We find, via a laboratory user study, that attacks can be prevented at a much higher rate (54-64% improvement); and via a field user study, that ENTRUST requires no more than three additional authorizations per program with respect to the first-use approach, while incurring modest performance (<1%) and memory overheads (5.5 KB per program).
翻译:诸如Android、 iOS、 Windows Phone 和 Chrome OS 等现代操作系统可以直接或通过特许服务获得未经授权的系统传感器访问。 研究人员建议程序只允许用户在用户批准的输入事件上访问系统传感器,但这些方法并不说明接收用户输入事件的程序可能授权。 此外,提议的代表团方法不能使用户准确控制其输入事件的使用。在本文件中,我们建议 EnTRust,这是一个允许用户授权其输入事件后进行传感器操作的系统,即使传感器操作是由与接收输入事件程序不同的程序进行,也可能直接或通过特许服务,但不受信任程序利用。ENTRust 已经建议只允许用户通过用户在用户接收输入事件时访问系统传感器传感器传感器传感器传感器传感器,但是这些方法并没有考虑到接收用户输入活动的准确和可再使用授权程序。 此外,我们通过实验室用户研究发现, EnTRust 5 和 ENTR 程序需要更高的性能, 而不是通过高级性能。