【发布时间】:2015-06-08 11:46:01
【问题描述】:
我在 Android 4.4.4 上运行并且有两个进程。两个进程的安全上下文是:-
com.example.contentproviderexample having security context --> u:r:hm_phonebookaccess_app:s0
com.example.contentprovideruser having security context --> u:r:untrusted_app:s0
com.example.contentproviderexample 是一个内容提供者和具有安全上下文的数据库 -
mydb --> u:object_r:hm_phonebookaccess_data_file:s0
mydb-journal --> u:object_r:hm_phonebookaccess_data_file:s0
上述安全上下文已使用以下规则设置 -
type hm_phonebookaccess_app, domain;
app_domain(hm_phonebookaccess_app)
allow hm_phonebookaccess_app dalvikcache_data_file:file { write setattr };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file { read getattr open };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir setattr;
allow hm_phonebookaccess_app zygote:unix_stream_socket { getopt getattr };
allow hm_phonebookaccess_app apk_data_file:dir getattr;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir { write create add_name };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file { write create setattr };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir search;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir { read open };
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file lock;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:dir remove_name;
allow hm_phonebookaccess_app hm_phonebookaccess_data_file:file unlink;
allow installd hm_phonebookaccess_data_file:lnk_file create;
在运行时,我将 setenforce 设为 1。
我的目的是防止属于域的任何进程-->untrusted_app 访问属于域的数据库-u:r:hm_phonebookaccess_app:s0
注意:内容提供者导出为 true。
在 seaapp_contexts 中,已创建以下条目:-
user=_app domain=hm_phonebookaccess_app name=com.example.contentproviderexample type=hm_phonebookaccess_data_file
我的观察是在强制模式下,进程“com.example.contentprovideruser”能够访问数据库。
有什么方法可以阻止“untrusted_app”域访问该数据库?
感谢和问候, 苏维克
【问题讨论】:
-
几个问题:1) 您是否确认正在运行的设备上的
sepolicy二进制文件反映了您的新域和上述规则?为了确定,我建议使用adb从正在运行的设备中提取它,然后将其加载到您的开发盒上的apol中。 2) 您是否尝试将neverallow引入您的类型强制规则?在编译过程中,如果策略中存在不一致,这将导致错误并停止。如果出现错误,它应该可以帮助您找到允许untrusted_app访问hm_phonebookaccess_app的allow规则。