Plit00's Story

[Mac OS] - Architecture 본문

Security/Forensic

[Mac OS] - Architecture

plit00 2023. 2. 6. 01:56

——————————
GUI(“Aqua”)
- API
  -Carboon
  -BSD
  -Classic(x)
  -Cocoa
-Core OS(“Darwin”)
  -System utilities
-Kernel(“XNU”)
  -BSD
  -Mach
    -I/O Kit
    -Drivers
——————————

32/64 bit 커널을 모두 사용할 수 있는 운영체제로, BSD 커널(유닉스계열의 운영체제)에 마크 커널을 얹은 XNU커널과 그것을 기반으로 하는 다윈을 기반으로 한다.(=유닉스기반) OS자체가 유닉스기반계열이므로 명령어는 터미널내에서 다 동작한다.

 

다윈이란?

Apple에서 만든 오픈 소스 유닉스 운영체제이다. OS X 와 ios를 기반으로 한 구성 요소를 형성하고 있다. 또한 독립형 운영 체제로 실행할 수 있기도 한다.

 

API 

API는 세가지로 되어있는데 Classic , Carbon , Cocoa 가 있다.


1.Carbon(32bit) 카본은 기존 맥 OS API의 부분집합이라고도 할 수 있기 때문에, 카본 라이브러리 확장파 일이 설치된 맥 os 8.6 이나 9에서 실행이 가능하였다. API의 기존 응용 프로그램을 손쉽게 Mac OS 네이티브 응용 프로그램으로 포트할 수 있 도록 한다는 장점을 있었으나, 본래의 API가 아니였기떄문에 맥 자체에서 제공하는 기능 을 모두 사용할 수 없다는 문제가 있다.

 

2.Cocoa 응용 프로그램이 맥의 모든기능을 사용하려면 기본적으로 코코아로 작성되어야 한다. 오브젝트C 와 밀접한 관련을 가진 객체지향적 API이다. (Swift를 이용하려면 Cocoa API를 이용해야한다.)

 

 

FileSystem(APFS)

ls

상세 자료 

 

File System Basics

File System Basics A file system handles the persistent storage of data files, apps, and the files associated with the operating system itself. Therefore, the file system is one of the fundamental resources used by all processes. APFS is the default file s

developer.apple.com

 

 

 

메모리 관리

  • APP Memory
  • Wird Memory
  • Cash file
  • zRam 
버그 헌팅 2017년에 10.13.1 버전에서 치명적인 보안 취약점이 공개되었는데, 패스워드를 입력하 지 않고도 맥에 root로 로그인이 되었다.

맥os에서 버그헌팅을 하려면 rootless 보안기능으로 인해서 유저레벨에서 익스를 해서 루트를 따내도 System, usr, sbin, bin 파일에 대한 접근권한이 없다 주요 취약점 벡터는 IOKit과 Extension인데 Core os아래 아키텍쳐부터 공략해야한다.

I/O Kit이란 뭘까?(ATA/ATAPLI,그래픽,네트워크 등)
OS X에서 장치 드라이버를 생성하기위한 시스템 프레임 워크, 라이브러리,도구 및 기타 리소스 모음이다.이것은 위에서 설명한것과 같이 C++로 구현 된 객체 지향 프로그래밍 모 델을 기반으로 한다.
I/O 전송 처리 전송은 시스템 메모리와 장치의 하나 이상의 버퍼간 데이터이동이다.
Context의 “System memory”는 OS X의 사용자 및 커널 작업에서 사용되는 가상 메 모리 주소 공간이 아닌 물리적 메모리를 말한다.



XNU 커널  (opensource.apple.com/source/xnu)   
 XNU 커널의 기본인 Mach는 간단한 마이크로 커널이다. OS의 코어 부분을 분리된 프로세스에서 실행할 수 있고, 높은 유연성이 있다.(GNU 허드에 기초한다)

 

Source Browser

 

opensource.apple.com

마이크로 커널

 마이크로 커널은 컴퓨터에서 운영체제에 추가되어야 하는 메커니즘을 제공하는 커널이다.
이 메커니즘은 주소 공간 관리, 스레드 관리, 프로세스 간 통신도 있다.

Comments