AppSuit Air — IPA 업로드형 SaaS 보안 솔루션
호스트 앱을 다시 빌드하거나 라이브러리를 넣을 수 없는 제약을, 서명된 IPA의 Mach-O를 후처리해 우회했습니다. 업로드만으로 보안을 입히는 SaaS 구조를 혼자 만들었고, LIEF 한계는 무파괴 재배치 구현으로 해결했습니다.
언어
- Swift
- Objective-C
- Python3
기술
- Mach-O
- LIEF
- Binary Instrumentation
- Dynamic Library Injection
- Code Signing
- Fat Binary
환경
- Xcode
- Hopper
- Mach-O Viewer
- Hex Edit
- PyCharm
AppSuit Premium의 보안 기능을 호스트 앱 빌드에 통합하지 않고, IPA 업로드만으로 적용하는 SaaS 보안 솔루션입니다. 협업 프로젝트에서 iOS 파트를 혼자 맡아 기획부터 인수인계까지 진행했습니다.
배경·과제
-
기존 Premium은 고객사가 자신의 앱 프로젝트에 정적 라이브러리를 직접 추가하고 빌드 설정을 일일이 구성해야 했습니다. 통합에 개발 리소스와 시행착오가 따랐습니다.
-
단순히 적용 편의를 올리는 게 아니라, framework 추가만으로 가능한 보호 기능의 범위를 넓히는 게 과제였습니다.
수행·기여 (iOS 1인 단독)
-
고객사가 하던 정적 라이브러리 통합과 빌드 설정 수작업을, 업로드된 IPA 후처리로 대체하는 구조를 설계하고 구현했습니다.
-
외부 IPA의 Mach-O 바이너리에 임의 섹션을 삽입하는 가공 기술을 만들어, 문자열 암호화·API 호출 은닉 같은 보호 기능을 framework 내부로 옮겼습니다.
오픈소스 한계 돌파 (LIEF)
-
LIEF가 Fat Binary 재저장 시 cstring offset이 어긋나고 임의 섹션 추가가 어려워 막혔습니다. 라이브러리를 버리고 직접 구현했습니다.
-
문자열 참조 구조를 깨지 않고 재배치하는 무파괴 보정 기법을 직접 만들었습니다. 이게 SaaS 출시의 핵심 기반이 됐습니다.
-
framework를 우회해 적용하려는 시도를 막는 무결성 보호 메커니즘을 설계했습니다.
-
서버 연동, 테스트, 패키징까지 iOS 전 과정을 혼자 맡아 7개월 만에 제품화했고, 이후 담당자에게 넘겼습니다.
성과
-
정적 라이브러리 통합과 빌드 설정 수작업 없이 IPA 업로드만으로 보안 SDK를 적용할 수 있게 됐습니다. Premium 적용 가능 영역이 도입 고객 전반으로 넓어졌습니다.
-
빌드 후처리에 의존하던 보호 기능(문자열 암호화·API 호출 은닉·리소스 복호화)을 framework 내부로 넣었습니다.
-
카카오뱅크·유튜브 같은 상용 앱 IPA에도 적용해 동작을 검증했습니다.