안 드 로 이 드 응용 샌 드 박스 메커니즘 상세 설명
안 드 로 이 드 는 샌 드 박스 를 사용 하여 사용자 가 악의 적 인 응용 으로 부터 침 해 를 받 지 않도록 보호 하 는 동시에 응용 을 분리 시 켜 서로 데 이 터 를 방문 하지 않도록 한다.본 고 는 주로 안 드 로 이 드 응용 샌 드 박스 의 몇 가지 기술 에 대해 간략하게 요약 하고 자 한다.
1.안 드 로 이 드 응용 DAC 샌 드 박스
u:r:untrusted_app:s0:c161,c256,c512,c768 u0_a161 16613 887 14608676 86088 0 0 S com.google.android.apps.photos
u:r:untrusted_app:s0:c138,c256,c512,c768 u0_a138 17204 888 1402772 138956 0 0 S com.android.chrome
앨범 애플 리 케 이 션 을 볼 수 있 는 사용 자 는 u0 입 니 다.a161,Chrome 브 라 우 저 사용 자 는 u0a1382.Android 응용 권한
Android 응용 권한 의 핵심 유형 은 네 가지 로 나 뉜 다.일반 권한,위험 권한,서명 권한,서명 또는 시스템 권한 이다.
권한 형식
권한 행위
일반 권한(일반)
일반 권한 은 AndroidManifest.xml 에서 만 설명 하면 사용 할 수 있 는 권한 입 니 다.
위험 권한(dangerous)
위험 권한 은 AndroidManifest.xml 에서 설명 해 야 하 는 것 을 제외 하고 Android 6.0 또는 더 높 은 버 전에 서 는 동적 권한 API 를 사용 하여 신청 해 야 하 며 사용자 가 동 의 를 클릭 해 야 사용 할 수 있 습 니 다.Android 5.1 및 이전 버 전에 서 는 설치 할 때 위험 권한 을 따로 표시 하여 사용자 에 게 특별히 알려 줍 니 다.사용자 정의 권한 이 위험 권한 으로 설정 되면 안 드 로 이 드 버 전이 얼마 든 설치 할 때 위험 권한 을 따로 표시 합 니 다.
서명 권한(서명)
서명 권한 은 이 권한 을 정의 하 는 가방 과 같은 서명 만 부여 합 니 다.
서명 또는 시스템 권한(signatureOrSystem)
signature|privileged 의 옛 동의어 입 니 다.서명 이나 시스템 권한 과 서명 권한 의 유일한 차이 점 은 서명 이나 시스템 권한 도 특권 응용(privapp)이 필드 는 현재 버 려 졌 습 니 다.
사용자 정의 권한 에 서 는 민감 한 인 터 페 이 스 를 보호 하기 위해 서명 권한 을 자주 사용 합 니 다.
3.응용 정보의 저장
응용 정보의 저장 은 앞에서 언급 한 바 와 같이/data/system/packages.xml 에 있 습 니 다.이 안 에는 응용 되 는 각종 정보 가 저장 되 어 있 습 니 다.다음은 예제 입 니 다.
<package name="com.android.storagemanager" codePath="/system/priv-app/StorageManager" nativeLibraryPath="/system/priv-app/StorageManager/lib" publicFlags="541605445" privateFlags="8" ft="165151eba60" it="165151eba60" ut="165151eba60" version="29" user appUseNotchMode="0" appUseSideMode="1" hwExtraFlags="0" isOrphaned="true" forceDarkMode="2">
<sigs count="1" schemeVersion="1">
<cert index="13" />
</sigs>
<perms>
<item name="android.permission.USE_RESERVED_DISK" granted="true" flags="0" />
<!-- ... -->
</perms>
<proper-signing-keyset identifier="3" />
</package>
<package name="com.android.settings" codePath="/system/priv-app/Settings" nativeLibraryPath="/system/priv-app/Settings/lib" publicFlags="675823173" privateFlags="8" ft="165151eba60" it="165151eba60" ut="165151eba60" version="10010400" sharedUser appUseNotchMode="0" appUseSideMode="1" hwExtraFlags="0" isOrphaned="true" forceDarkMode="2">
<sigs count="1" schemeVersion="1">
<cert index="0" />
</sigs>
<perms>
<item name="android.permission.REAL_GET_TASKS" granted="true" flags="0" />
<!-- ... -->
</perms>
<proper-signing-keyset identifier="1" />
</package>
4.567917.이 파일 에 많은 내용 이 저장 되 어 있 는 것 을 볼 수 있 습 니 다.가장 관건 적 인 정 보 는 응용 uid,가방 이름,각종 경로,그리고 정의 와 권한 을 포함 합 니 다44.567917.우 리 는 안 드 로 이 드 가 리 눅 스 커 널 을 사용 하 는 것 을 알 고 있 습 니 다.리 눅 스 의 안전 모델 에서 시스템 자원 에 접근 하려 면 시스템 자원 에 접근 하 는 사용자 와 프로 세 스 는 해당 하 는 권한 을 가 져 야 합 니 다
<permission name="android.permission.BLUETOOTH_ADMIN" >
<group g />
</permission>
<permission name="android.permission.BLUETOOTH" >
<group g />
</permission>
안 드 로 이 드 의 블 루 투 스 권한 두 개가 각각 net 에 대응 하 는 것 을 보 여 줍 니 다.bt_admin 과 netbt 두 리 눅 스 그룹 은 응용 에 해당 하 는 권한 을 부여 할 때 PMS 는 uid 를 이 두 그룹 에 자동 으로 추가 합 니 다.그러면 응용 은 해당 시스템 자원 에 대한 접근 권한 을 가 집 니 다.5.응용 SELinux 태그
안 드 로 이 드 가 SELinux 를 도입 한 후에 응용 권한 에 대한 구분 이 더욱 세밀 해 졌 다.안 드 로 이 드 는 기본적으로 응용 을 네 가지 로 나 누 었 다.믿 을 수 없 는 응용,특권 응용,플랫폼 응용 과 시스템 응용 이다.
SELinux 태그
태그 행동
믿 을 수 없 는 응용(untrustedapp)
신뢰 할 수 없 는 응용 프로그램 은 최소한 의 특권 을 가지 고 있 으 며,시스템 자원 에 접근 하 는 것 은 엄격 한 제한 을 받 고 있 으 며,모든 사용자 가 설치 한 응용 프로그램 과 일부 프 리 셋 응용 프로그램 은 이 탭 에 속 합 니 다.
특권 적용(priv-app)
특권 은/system/priv-app 디 렉 터 리 나 OEM 이 정의 하 는 다른 디 렉 터 리 에 있 습 니 다.마 운 트 해제 할 수 없 지만 system uid 로 실행 되 지 않 습 니 다.
플랫폼 응용(platformapp)
플랫폼 응용 프로그램 은 플랫폼 서명 을 갖 추고 있 지만 시스템 uid 로 실행 되 지 않 습 니 다.AOSP 와 일부 제3자 ROM 을 제외 하고 거의 모든 OEM 이 플랫폼 의 비밀 키 를 공개 하지 않 기 때문에 일반적인 상황 에서 플랫폼 응용 은 OEM 이 제공 할 수 밖 에 없다.
시스템 응용(systemapp)
시스템 응용 프로그램 은 플랫폼 서명 을 갖 추고 있 으 며 시스템 uid 로 실 행 됩 니 다(android:shared UserId="android.uid.system"설정).시스템 uid 를 사용 하여 실행 하 는 것 은 샌 드 박스 의 제한 을 받 지 않 고 대부분의 안 드 로 이 드 프레임 워 크 의 시스템 자원 에 접근 할 수 있다 는 것 을 의미 합 니 다.
다음은 Pixel 2 XL(RP1A.2010 05.004.A1)위의 예 입 니 다.
다음 과 같은 결론 을 얻 을 수 있다.
크롬 은 이 핸드폰 에 untrustedapp 4
분명히 설정 만 시스템 uid 로 실행 되 고 다른 프로 세 스 는 일반적인 uid 를 사용 합 니 다.
6.안 드 로 이 드 응용 MAC 샌 드 박스
위 에서 말 한 SELinux 태그,Android 는 소스 코드 에서 서로 다른 SELinux 정책 을 정의 하여 MAC 차원 의 샌 드 박스 강 화 를 실현 했다.
이상 은 안 드 로 이 드 응용 샌 드 박스 체제 에 대한 상세 한 내용 입 니 다.안 드 로 이 드 응용 샌 드 박스 체제 에 관 한 더 많은 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.