일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- webhacking.kr문제풀이
- 모세포
- Django
- djangovscode
- 해커
- web
- 리버싱
- 해킹문제
- 정보보호영재원
- 취약점점검
- covid19
- rev-basic-3
- 파이썬웹
- 코로나바이러스
- 백준
- 코로나바이러스19
- AndroidOS
- 웹해킹
- 장고vscode
- 바이러스
- dreamhack
- 코로나
- csaw 2018
- 해킹
- jango
- csaw
- vscode
- 1546
- 파이썬
- 장고
- Today
- Total
Kilkat
안드로이드 OS 구조 본문
1. Linux Kernel
안드로이드의 경우 리눅스를 기반으로 만들어진 OS이다. 그로인해 당연하게도 Kernel의 경우도 Linux Kernel을 사용중이다. Kernel의 경우 하드웨어와의 통신을 담당을하고 메모리, 프로세스 등 여러 기능들을 담당하는 OS의 핵심 Layer라고 할 수 있다. 추가적으로 Linux Kernel의 경우 안정성 또한 뛰어나 다양한 기기에서 작동이 가능하다.
2. HAL(Hardware Abstraction Layer)
HAL의 경우 하드웨어와 OS의 중간에서 표준화된 인터페이스를 제공한다. 이러한 특징으로 인해 개발자는 안드로이드의 하드웨어에 대해서 자세히 몰라도 개발을 쉽게 할 수 있다. 확장성또한 좋아서 새로운 하드웨어가 개발되거나 업데이트 된다면 HAL 모듈을 추가, 수정으로 쉽게 적용이 가능하다.
3. Native C/C++ Libraries
Native C/C++ Libraries 의 경우 안드로이드에서 계산, 그래픽과 같은 작업 복잡한 연산등을 수행하는 계층이다. 뿐만 아니라 성능 최적화에 있어서도 중요한 계층이다. GPT에서 얻은 추가적인 답변으로는 보안적으로 취약할 수 있는 부분이니 개발 시 보안적인 부분을 고려해야 하는 계층이라고 나온다. 아마 C와 C++의 경우 개발자가 메모리 관리를 하는데 있어서 권한을 가지기 때문에 보안과 밀접한 관련을 가지지 않나 싶다. 추후에 bugbounty를 진행함에 있어 해당 계층을 유의깊게 볼 필요가 있어보인다.
4. ART(Android Run Time)
ART의 경우 안드로이드 OS에서 애플리케이션을 실행하기 위해 필수적으로 필요한 요소이다. 기존에 앞에서 설명한 계층의 경우 최적화 혹은 하드웨어와의 원활한 통신을 위해 주로 존재한 계층들이 많았는데 ART의 경우는 애플리케이션단을 위해 필요한 계층이다. 추가적으로 ART또한 최적화에 있어서 도움이 되는 계층이다. AOT라는 컴파일 방식을 통해 애플리케이션을 설치시 바이트코드의 애플리케이션을 기계어로 변환해 실행하는 부분에 있어서 우위를 가지게 만든다. 또한 메모리와 64비트 아키텍처를 지원한다.
5. Java API Framework
Java API Framework의 경우 운영체제의 상위 계층에 위치한다고 한다. 이로 인해 개발자들은 애플리케이션을 개발할 때 자주 사용하는 API와 서비스들을 쉽게 제공받을 수 있다. 또한 하드웨어를 쉽게 컨트롤할 수 있는 API들을 제공받을 수 있다. API를 통해 하드웨어를 컨트롤하다보니 개인적으로 생각할때 보안적으로 많은 기능구현 및 테스트가 필요해 보이는 계층이다.
6. System Apps
System Apps의 경우 안드로이드 OS와 같이 필수적으로 설치되어 있는 기본 App들을 의미한다. 보통 휴대폰 제조사나 OS개발 주체에 따라서 바뀌는 것 같다.
'Security > app application hacking' 카테고리의 다른 글
(drozer + nox) app 취약점 점검 환경 구축 (7) | 2024.11.09 |
---|