본문 바로가기

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

← 경력기술서

코어 운영 운영 중 주도

AppSuit Premium — 정적분석 방어 4종

전체 클래스 난독화가 저장 데이터 unarchive를 깨고, 문자열 암호화는 바이너리 반영을 확인할 길이 없던 제약을, 난독화 제외 규칙과 자체 Mach-O ARM64 분석 툴로 해결한 Premium 정적분석 방어 4종

기간
2022.06 – 진행 중 · 4년 1개월
소속
스틸리언
수행 인원
본인 주도 (설계·연구) + 팀 협업 (구현)
본인 역할
AppSuit Premium 보안 기능 연구를 다수 주도했습니다 — Symbol Delete(릴리즈 빌드 심볼 제거), Log Delete(디버그 로그 자동 제거), Class Name Obfuscation Exclude Rule(클래스 난독화 제외 규칙), 문자열 암호화 검증 파이프라인의 설계·연구를 단독 주도하고 구현은 팀과 협업했습니다.
정량 임팩트
기능별 도입 시점은 Log Delete 2022년, Framework Symbol Delete 2025년 등으로 달랐지만, 4종 모두 현행 릴리즈까지 제품에 포함돼 운영 중입니다. 릴리즈 빌드 심볼 제거로 정적 분석 난도를 높였고, 디버그 로그 자동 제거, 클래스 난독화 제외 규칙, 문자열 암호화 검증까지 직접 연구를 이끌었습니다.
버전·릴리즈
2022년부터 기능별로 나눠 설계·구현했고, 현행 릴리즈까지 운영 중

언어

  • 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, 문자열 암호화 검증)을 설계·연구했고, 구현은 팀과 함께 진행했습니다.

Premium 정적분석 방어 — 릴리즈 빌드 파이프라인컴파일 시 3종 동시 적용 → 빌드 후처리 Symbol Delete → 자체 툴로 암호화 검증 · 본인 주도 설계·연구Premium 정적분석 방어 — 릴리즈 빌드 파이프라인컴파일 시 3종 동시 적용 → 빌드 후처리 Symbol Delete → 자체 툴로 암호화 검증 · 본인 주도 설계·연구컴파일 시 동시 적용 — 정적 분석 단서 축소Premium 컴파일러 옵션과 연동 · 설정별 on/offbefore/after 교차비교릴리즈 빌드 컴파일Swift · Objective-C 소스Log DeleteNSLog·printf·os_log·print 자동 제거Class 난독화 + Exclude RuleNSCoding·Reflection 클래스는 제외문자열 암호화민감 문자열 평문 노출 차단빌드 후처리 — Symbol DeleteLC_SYMTAB 심볼 제거 · 분석 난도↑자체 제작 Mach-O ARM64 분석 툴암호화 적용 전/후 교차 비교의심 문자열 위치·주소를 QA·고객에 첨부정적 분석 방어 검증 완료바이너리 반영 확인 · 2023~현행 운영Symbol·Log·Exclude Rule·문자열 암호화 검증 4종 설계·연구 주도(구현 팀 협업) · 2023 구현 후 현행 릴리즈까지 운영

배경·과제

  • 네 기능 모두 릴리즈 빌드 정적분석 방어에 걸려 있어, 서로 연동되는 구조로 설계해야 했습니다.

  • 전체 클래스 난독화를 적용하면 저장 데이터가 난독화된 이름으로 쌓여, 이전 데이터 unarchive가 실패했습니다. 일부 클래스를 난독화에서 빼는 예외 규칙이 필요했습니다.

  • 문자열 암호화를 걸면, 실제 바이너리에 제대로 반영됐는지 확인할 방법이 없었습니다.

수행·기여

  • Symbol Delete: 릴리즈 빌드에서 불필요한 심볼을 제거해 분석 단서를 줄이고, 정적분석 난도를 높이는 연구를 맡았습니다.

  • Log Delete: NSLog, printf, os_log, Swift print 등 디버그 로그를 릴리즈 빌드에서 자동 제거했습니다. Premium 컴파일러 옵션과 연동해 설정별로 제어할 수 있게 했습니다.

  • Class Name Obfuscation Exclude Rule: 저장 데이터 복원이나 이름 기반 클래스 조회가 깨지는 상황을 막기 위해, 특정 클래스를 난독화 대상에서 제외하는 규칙을 설계했습니다.

  • 문자열 암호화 검증: 자체 만든 Mach-O ARM64 분석 툴로 암호화 전후를 비교했습니다. 의심 문자열의 위치·주소 결과를 고객사와 QA가 다시 검증할 수 있는 형태로 정리했습니다.

성과

  • 네 기능이 Premium에 포함된 뒤, 고객 문의 대응과 설명, 명세서 작성 시 참고 자료로 바로 쓸 수 있었습니다.

  • 2022년부터 단계적으로 구현해, 지금까지 네 기능 모두 제품에 유지되어 운영 중입니다.