Search
Duplicate

API Hooking이란?

생성일
2024/08/16 00:57
태그
지혜로운 회사생활

API Hooking이란?

API Hooking은 프로그램이나 운영체제에서 실행 중인 함수의 동작을 가로채거나 수정하는 기법이다.

API Hooking의 개념

API (Application Programming Interface)

프로그램이 운영체제나 다른 소프트웨어 컴포넌트와 상호작용할 수 있게 해주는 인터페이스

Hooking

특정 이벤트가 발생할 때 원래의 동작을 가로채거나 수정하는 기법
API Hooking은 이 Hooking을 API 호출에 적용하는 것이다.
즉, 특정 API가 호출될 때, 원래의 기능을 가로채서 다른 동작을 수행하거나, 결과를 변경할 수 있게 한다.

API Hooking의 사용 사례

보안

API Hooking은 악성 코드가 시스템 API를 가로채고 악의적인 코드를 실행하는 방식으로 사용될 수 있다.
이를 막기 위해 보안 모듈에서 Hooking 여부를 감지하거나, 예상치 못한 Hooking 시도를 차단하는 방법을 사용한다.

디버깅 및 트러블슈팅

개발자는 API Hooking을 사용해 특정 API 호출을 가로채고, 로그를 남기거나 수정된 데이터를 반환하여 문제를 진단할 수 있다.

기능 확장

기존 애플리케이션의 기능을 변경하거나 추가하기 위해 사용되기도 한다.
예를들어, 이미 배포된 애플리케이션에 새로운 기능을 추가하려고 할 때, API Hooking을 통해 기존 코드를 수정하지 않고도 새로운 동작을 추가할 수 있다.

iOS에서의 API Hooking

iOS는 보안을 매우 중시하는 운영체제 이기 때문에, API Hooking이 기본적으로 허용되지 않는다.
하지만 탈옥(Jailbreak)된 iOS 기기에서는 시스템 보호 메커니즘이 무력화되기 때문에, API Hooking이 가능해진다.
탈옥된 환경에서는 악성 코드나 해커들이 API Hooking을 사용해 애플리케이션의 동작을 가로채거나 변경할 수 있다.
따라서 iOS 앱 개발 시, 보안을 강화하기 위해서 API Hooking 시도를 감지하고, 의심스러운 동작을 차단하는 로직을 추가하는 것이 중요하다.
대표적으로, API Hooking 탐지를 위한 여러 보안 라이브러리를 사용하거나, 코드 무결성 체크, 난독화(Obfuscation) 등의 방법을 사용할 수 있다.