2013년 9월 25일 수요일

SEAndroid 024 - mac_permission.xml

SELINUX -> SEAndroid 로 바꾸었다.



안드로이드 어플의 기본 패키징 단위는 APK이다. 요샌 보안상 obex인가 obdx인가… 둘로 쪼개서 앱 카피를 힘들게 했다. 그런데 빌드 옵션에 따라 합쳐지게 할 수도 있으니 APK가 하나의 앱 단위로 봐도 되겠다.

맥 퍼미션.xml 파일은 그 APK에서 키를 뽑아(물론 퍼블릭키) 그 키에 맞는 SEINFO 값을 주기 위한 맵이다. 키 값들이 맥 퍼미션에 저장되고 거기에 맞는 SEINFO 값을 적어 준다. 안드로이드 4.3 기준으로 얘는 요기서 부른다.

AOSP/frameworks/base/services/java/com/android/server/pm$ vim SELinuxMMAC.java


    // Locations of potential install policy files.
    private static final File[] INSTALL_POLICY_FILE = {
        new File(Environment.getDataDirectory(), "system/mac_permissions.xml"),
        new File(Environment.getRootDirectory(), "etc/security/mac_permissions.xml"),
        null};

얘다.

sSigSeinfo 해시맵에 키랑 SEINFO를 넣는다. SEINFO는 걍 플래인 텍스트고 한 단어라고 생각하면 된다. Platform 같은.

PackageManagerService.java에 보면(우리가 말하는 안드로이드 패키지 매니저의 본체)

 private PackageParser.Package scanPackageLI(PackageParser.Package pkg,
   5497             int parseFlags, int scanMode, long currentTime, UserHandle user) {
   5498         File scanFile = new File(pkg.mScanPath);

요런애 안에
   5517         if (mFoundPolicyFile) {
   5518             Slog.w(TAG, "SELinuxMMAC.assignSeinfoValue");
   5519             SELinuxMMAC.assignSeinfoValue(pkg);
   5520         }

이렇게 쓰인다. 해당패키지에 맞는 키 값의 SEINFO를 써 주는 것이다.


댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

대학원생의 투고 지도 ④ (완결) — 논문의 수준이란 무엇인가: 사다리와 사분위, 첫 논문 전략

완결편이다. "논문 수준"이라는 말을 해부하고, 에듀테크 석사생의 첫 논문 전략으로 마친다. 학위논문과 학술지 논문은 다른 장르다 먼저 가장 흔한 혼동부터. 학위논문(thesis)은 "내가 연구를 수행할 줄 안다...