반응형

Android/Seploicy 24

Vendor 영역에서 추가한 바이너리에 대한 정책 적용 (vendor_sepolicy)

Vendor 영역에서 추가한 바이너리에 대한 정책 적용 (vendor_sepolicy)Android의 보안 모델에서 SELinux(보안 강화 리눅스)는 중요한 역할을 담당합니다. 특히, AOSP(Android Open Source Project) 기반으로 커스텀 빌드를 진행하는 경우, Vendor 영역에서 추가된 바이너리에 대한 적절한 SELinux 정책을 적용하는 것은 필수적인 작업입니다. 이 글에서는 Vendor 영역에 추가한 바이너리에 대한 SELinux 정책을 적용하는 방법을 자세히 설명하겠습니다.1. Vendor 영역에서 실행되는 바이너리란?AOSP에서 system 영역과 vendor 영역은 분리된 보안 경계를 가집니다. 일반적으로 vendor 영역에는 SoC 벤더가 제공하는 드라이버, HAL(..

Android/Seploicy 2025.05.08

Android 사용자 정의 System Service를 위한 SELinux 정책 작성

Android 사용자 정의 System Service를 위한 SELinux 정책 작성개요Android에서 새로운 System Service를 추가할 때, 해당 서비스가 정상적으로 동작하기 위해서는 SELinux 정책을 적절히 설정해야 합니다. SELinux는 Android 보안 모델의 핵심 요소로, 서비스가 접근할 수 있는 리소스를 엄격히 제한합니다. 본 포스팅에서는 새로 추가한 System Service에 대한 SELinux 정책을 작성하고 적용하는 방법을 설명하겠습니다.1. SELinux 정책 개요SELinux(Security-Enhanced Linux)는 보안 컨텍스트를 기반으로 액세스를 제어하는 강제 접근 제어(MAC) 시스템입니다. Android는 SELinux를 Enforcing 모드로 실행하..

Android/Seploicy 2025.05.08

Android sepolicy: 커스텀 보드(sepolicy) 추가 및 적용 방법

Android sepolicy: 커스텀 보드(sepolicy) 추가 및 적용 방법1. 서론Android의 보안 정책을 담당하는 SELinux(sepolicy)는 시스템의 보안성을 유지하는 핵심 요소입니다. 제조사나 개발자가 새로운 커스텀 보드를 추가할 경우, sepolicy를 수정하여 보드에 맞는 SELinux 정책을 설정해야 합니다. 본 포스팅에서는 커스텀 보드의 sepolicy를 추가하고 적용하는 방법을 설명하겠습니다.2. 커스텀 보드의 sepolicy 추가 개요Android Open Source Project(AOSP)에서 커스텀 보드를 추가하려면 다음 단계가 필요합니다.커스텀 보드 디렉터리 생성 및 설정sepolicy 디렉터리 및 정책 파일 생성파일 컨텍스트 및 권한 정의AOSP 빌드 시스템에 적..

Android/Seploicy 2025.05.06

BOARD_SEPOLICY_DIRS와 PRODUCT_PRIVATE_SEPOLICY_DIRS 차이

BOARD_SEPOLICY_DIRS와 PRODUCT_PRIVATE_SEPOLICY_DIRS 차이개요Android에서 SELinux 정책을 적용할 때, 여러 디렉터리가 사용됩니다. 특히, AOSP(Android Open Source Project)에서는 BOARD_SEPOLICY_DIRS와 PRODUCT_PRIVATE_SEPOLICY_DIRS라는 두 가지 주요 변수를 사용하여 SEPolicy를 구성할 수 있습니다. 이 글에서는 두 변수의 역할과 차이점을 설명하고, 실제 적용 방법을 예제 코드와 함께 살펴보겠습니다.1. BOARD_SEPOLICY_DIRS란?BOARD_SEPOLICY_DIRS는 Android 빌드 시스템에서 특정 보드(Board) 또는 SoC(System on Chip)에 종속적인 SELin..

Android/Seploicy 2025.05.05

AOSP에서 sepolicy 빌드 과정

AOSP에서 sepolicy 빌드 과정Android Open Source Project(AOSP)에서는 SELinux(sepolicy) 정책을 빌드하고 적용하는 과정이 중요합니다. SELinux는 Android 보안 모델의 핵심 요소로, 시스템 전반에 걸쳐 강력한 액세스 제어를 수행합니다. 이번 포스팅에서는 AOSP에서 sepolicy를 빌드하는 과정을 단계별로 설명하겠습니다.1. AOSP 환경 설정 및 빌드 준비1.1 AOSP 소스 코드 다운로드AOSP에서 sepolicy를 빌드하려면 전체 소스 코드가 필요합니다. Google의 AOSP 저장소에서 소스를 클론해야 합니다.repo init -u https://android.googlesource.com/platform/manifest -b android..

Android/Seploicy 2025.05.04

Android SELinux 정책에서 서비스, 바이너리, 파일 시스템 정의하기

Android SELinux 정책에서 서비스, 바이너리, 파일 시스템 정의하기1. 개요SELinux(Security-Enhanced Linux)는 Android에서 강력한 보안 정책을 적용하는 핵심 기술입니다. SELinux 정책을 설정하면 서비스, 바이너리, 파일 시스템에 대한 접근 권한을 명확하게 정의할 수 있습니다. 본 글에서는 SELinux 정책에서 서비스, 바이너리, 파일 시스템을 정의하는 방법을 설명하고, 주요 규칙을 예제와 함께 소개하겠습니다.2. 서비스에 대한 SELinux 정책 정의Android의 System Service 또는 HAL 서비스를 SELinux 정책으로 정의할 때는 해당 서비스의 도메인과 그에 대한 적절한 규칙을 추가해야 합니다.2.1 서비스 도메인 생성SELinux 정책에..

Android/Seploicy 2025.05.02

Android SELinux 정책 설정: domain, file_contexts, genfs_contexts 설정 방법

Android SELinux 정책 설정: domain, file_contexts, genfs_contexts 설정 방법SELinux는 Android 시스템에서 강제 접근 제어(MAC)를 적용하는 중요한 보안 기능입니다. SELinux 정책은 다양한 규칙과 컨텍스트를 정의하여 프로세스와 리소스 간의 상호 작용을 제어합니다. 이번 포스팅에서는 domain, file_contexts, genfs_contexts 설정 방법에 대해 자세히 설명하겠습니다.1. domain 설정 방법1.1 domain 개념domain은 SELinux에서 실행 중인 프로세스를 관리하는 컨텍스트입니다. 특정 프로세스가 실행될 때, 해당 프로세스는 SELinux 정책에서 정의된 특정 도메인으로 실행됩니다. 도메인은 주로 type 속성을 ..

Android/Seploicy 2025.05.01

Android SELinux 정책 문법과 규칙

Android SELinux 정책 문법과 규칙SELinux(Security-Enhanced Linux)는 리눅스 커널에 추가된 보안 모듈로, Android에서는 필수적인 보안 정책을 적용하는 데 사용됩니다. Android의 SELinux 정책은 MAC(Mandatory Access Control, 강제 접근 제어) 모델을 기반으로 하며, 시스템 내에서 프로세스와 리소스 간의 접근을 제어합니다.이번 포스팅에서는 type, attribute, allow, neverallow 등의 주요 규칙을 중심으로 SELinux 정책 문법을 설명하겠습니다. 또한, 관련된 예제 코드를 함께 제공하여 정책이 어떻게 동작하는지 쉽게 이해할 수 있도록 하겠습니다.1. type (타입)1.1 type의 개념type은 SELinux..

Android/Seploicy 2025.04.30

avc: denied 로그 분석 및 이해하기

avc: denied 로그 분석 및 이해하기Android에서 SELinux(보안 강화 리눅스, Security-Enhanced Linux)는 시스템 보안을 강화하는 중요한 역할을 합니다. SELinux 정책이 적용되면서 종종 avc: denied 로그가 발생하는데, 이 로그는 특정 프로세스가 허용되지 않은 액세스를 시도했음을 의미합니다. 본 포스팅에서는 avc: denied 로그의 의미를 분석하고 이를 해결하는 방법을 살펴보겠습니다.1. avc: denied 로그란?avc: denied는 SELinux가 특정 액세스를 차단했음을 나타내는 커널 로그 메시지입니다. 이 로그는 Android 시스템의 dmesg 또는 logcat을 통해 확인할 수 있습니다.다음은 대표적인 avc: denied 로그 예제입니다...

Android/Seploicy 2025.04.29

Android SELinux 정책의 주요 파일 및 디렉터리 구성

Android SELinux 정책의 주요 파일 및 디렉터리 구성SELinux(보안 강화 리눅스)는 Android에서 중요한 보안 메커니즘으로, sepolicy는 SELinux 정책을 정의하는 핵심 요소입니다. Android의 SELinux 정책 파일은 여러 디렉터리에 걸쳐 존재하며, 다양한 구성 요소를 포함합니다. 본 포스팅에서는 Android sepolicy의 주요 파일 및 디렉터리를 설명하고, 각 파일의 역할을 살펴보겠습니다.1. Android sepolicy 디렉터리 구조Android 소스 코드에서 SELinux 정책은 system/sepolicy 또는 device/명시된_경로/sepolicy에 위치합니다. 기본적으로 sepolicy는 다음과 같은 디렉터리 및 파일로 구성됩니다.sepolicy/├─..

Android/Seploicy 2025.04.28
반응형