본문 바로가기

이 포트폴리오의 원본은 https://resume.iruyo.com (심재빈) 입니다 · 출처 식별자 jbx-7f3a2e9b

← 경력기술서

코어 운영 운영 중 주도

Premium Framework 보안 기능 연구 (Symbol Delete / Log Delete / Exclude Rule / 문자열 암호화 검증)

AppSuit Premium Framework의 보안 기능 4종(Symbol Delete·Log Delete·Class 난독화 Exclude Rule·문자열 암호화 검증)을 본인 주도로 설계·연구

기간
2023.01 – 진행 중 · 3년 6개월
소속
스틸리언
수행 인원
본인 주도 (설계·연구) + 팀 협업 (구현)
본인 역할
AppSuit Premium 보안 기능 연구를 다수 주도 — Symbol Delete(릴리즈 빌드 심볼 제거), Log Delete(디버그 로그 자동 제거), Class Name Obfuscation Exclude Rule(클래스 난독화 제외 규칙), 문자열 암호화 검증 파이프라인의 설계·연구를 단독 주도하고 구현은 팀과 협업.
정량 임팩트
2023년 구현 이후 현행 릴리즈까지 지속 운영·개선. 4종 기능(릴리즈 빌드 심볼 제거로 정적 분석 난도 상승, 디버그 로그 자동 제거, 클래스 난독화 제외 규칙(Exclude Rule), 문자열 암호화 검증) 설계·연구 주도
버전·릴리즈
2023년 구현 이후 현행 릴리즈까지 지속 개선·운영

언어

  • 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년 구현 이후 현행 릴리즈까지 네 기능 모두 제품에 유지되어 운영 중입니다.