Premium Framework 보안 기능 연구 (Symbol Delete / Log Delete / Exclude Rule / 문자열 암호화 검증)
AppSuit Premium Framework의 보안 기능 4종(Symbol Delete·Log Delete·Class 난독화 Exclude Rule·문자열 암호화 검증)을 본인 주도로 설계·연구
언어
- Swift
- Objective-C
- Python3
기술
- Mach-O
- LIEF
- Binary Instrumentation
- LC_SYMTAB
환경
- Xcode
- Hopper
- Mach-O Viewer
- PyCharm
AppSuit Premium Framework의 보안 기능 4종(Symbol Delete, Log Delete, Class 난독화 Exclude Rule, 문자열 암호화 검증)을 직접 설계·연구하고, 구현은 팀과 협업한 작업입니다.
배경·과제
-
네 기능 모두 릴리즈 빌드의 정적 분석 방어와 맞물려 있어, 따로따로가 아니라 연계와 병행을 전제로 설계해야 했습니다.
-
전체 클래스 난독화를 적용하면 저장 데이터가 난독화된 이름으로 쌓여, 과거에 저장해 둔 데이터를 다시 불러올 때 unarchive가 실패합니다. 일부 클래스를 난독화에서 빼 주는 예외 규칙이 필요했습니다.
-
문자열 암호화를 적용한 뒤 실제 바이너리에 제대로 반영됐는지 확인할 검증 수단도 없었습니다.
수행·기여
-
Symbol Delete: 릴리즈 빌드에서 불필요한 심볼을 제거해 분석자가 얻을 단서를 줄이고 정적 분석 난도를 높이는 연구를 주도했습니다.
-
Log Delete: 릴리즈 빌드에서 디버그 로그(NSLog·printf·os_log·Swift print)를 자동 제거하고, Premium 컴파일러 옵션과 연동해 설정별로 켜고 끌 수 있게 구성했습니다.
-
Class Name Obfuscation Exclude Rule: NSCoding·NSKeyedArchiver 기반 저장·복원이나 Reflection으로 이름 기반 클래스 조회가 필요한 클래스를 난독화 대상에서 제외하는 규칙을 설계했습니다.
-
문자열 암호화 검증: 자체 제작한 Mach-O ARM64 분석 툴로 암호화 적용 전후를 교차 비교하고, 의심 문자열의 위치·주소 결과를 고객과 QA가 다시 쓸 수 있는 형태로 정리해 첨부했습니다.
성과
-
네 기능이 Premium에 자리 잡은 뒤, 고객 문의 회신과 설명, 기능 명세서 작성에 다시 꺼내 쓰는 자료가 됐습니다.
-
2023년 구현 이후 현행 릴리즈까지 네 기능 모두 제품에 유지되어 운영 중입니다.