SEAndroid를 이해하기 위해서는 SELinux를 알아야 한다. 안드로이드 커널이 리눅스 커널을 모체로 하고 있으니까. 잠시 (사실 거의 같다) 암패치 해 주시는 뭐시기 킹께 감사.
SE리눅스는 NSA에서 개발했고 지금은 kernel.org에 속속들이 들어가고 있다. nsa에 커널 2.6대까지 밖에 없어서 중단되었냐고 물어보니까 걍 각 패키지에 녹아 들어가서 거기서 알아서 하고 있다고 한다. 결국 NSA가 만들긴 했지만 수많은 기여자가 열심히 SE 안드로이드를 개발하고 있는 것이다.
SE 리눅스 설정파일 /etc/sysconfig/selinux 에 있다.
켤려면 enforcing 끌려면 disabled.
이정도로 하고 SE Android...
SE Android 는 NSA의 Open Source Project 로 시작 Android의 부족한 Security 부분을 보완
일반적인 Linux의 DAC 방식 대신 MAC 방식 채용
DAC 란 : Discretionary Access Control. 임의적 접근 통제. 객체 접근 시 소유자, 그룹, 접근허가 집합 등에 의거하여 통제.
MAC 란 : Mandatory Access Control. 강제적 접근 통제. 주어진 객체의 보안레벨에 따라 자원접근을 통제.
Policy control 을 통한 process, daemon, app 등의 제한적 권한 설정 가능
Policy 설정에 따라 root 권한도 특정 device 에 접근하지 못하도록 하는 것이 가능
LSM이 약자인 리눅스 시큐리티 모듈은 그럼 언제 활성화 되는가?
DAC를 통과하면(우리가 생각하는 chmod 777권한
rwxrwxrwx... MAC퍼미션을 체크하는데 이 때 가동이 된다.)
Kernel : SELinux feature 의 enable, android binder patch, xattr support feature enable
Bionic : xattr support
Build : make_ext4fs tool 수정
external : libselinux, libsepol, checkpolicy, sepolicy
framework/base : selinux 를 위한 JNI binding 추가
각 daemon 별, 중요 process 별로 policy file 을 가짐.
Application 의 경우 release, media, shared, platform 의 4개의 key 중 하나를 가지며, SE Android 는 이 key 를 기반으로 policy 를 정함.
키 정보
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.