harness/plugins/zioinfo/knowledge/kintex/docs/security/mobile-security-checklist.md
DESKTOP-TKLFCPR\ython 6caf43e1ed feat!: v2.0.0 — 4개 플러그인 zioinfo 단일 통합 + 최신 플러그인 기술 적용
- harness·zio-harness·proposal-builder·zioinfo → plugins/zioinfo (git mv 히스토리 보존)
- 스킬 4·커맨드 3(/zioinfo:pmo·proposal·wiki)·에이전트 15·graphify 훅·knowledge 통합
- 신규: /zioinfo:wiki (graphify LLM wiki — graphify-out/wiki/ 커뮤니티별 아티클)
- 신규: ZIO WISE 테마 (themes/zioinfo.json, experimental)
- manifest 최신화: $schema·displayName(ZIO INFOTECH Suite)·experimental.themes
- marketplace.json 단일 엔트리, 루트 plugin.json 제거
- CLAUDE.md·PROJECT_MAP·docs/plugins.md·README 3종·CHANGELOG·설치가이드 pptx 재구성

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 20:16:36 +09:00

6.6 KiB

KINTEX AI 모바일 앱 + 백엔드 보안 체크리스트

대상: mobile/(Expo SDK 51 · expo-router · RN 0.74) + src/backend(Spring Boot 3.x · MyBatis · PostgreSQL) 기준 표준: OWASP MASVS v2 / MSTG, 행안부·KISA "모바일 대민 서비스 앱 소스코드 검증 가이드", 전자정부 모바일 표준보안 요구사항 킨텍스는 공공 전시장(한국국제전시장) 대상 서비스 — 공공기관 대민 앱 기준을 함께 적용한다. 판정 결과는 mobile-security-audit.md, 개선 작업은 동 문서 하단 백로그 참조.

표준 매핑 표기

  • MASVS-STORAGE / -CRYPTO / -AUTH / -NETWORK / -PLATFORM / -CODE / -RESILIENCE
  • KISA: 대민 앱 검증 가이드 항목군(위변조·데이터보호·통신·인증·시큐어코딩·서버)

1. 앱 위변조 방지 (Anti-Tampering) — MASVS-RESILIENCE / KISA 위변조

ID 항목 기준 근거 표준
AT-1 루트/탈옥 탐지 루팅(Android)·탈옥(iOS) 단말에서 실행 시 경고·기능 제한·차단 MASVS-RESILIENCE-1, KISA 위변조-1
AT-2 앱 서명/무결성 검증 서명 인증서 지문 확인, 리패키징(재서명) 탐지, Play Integrity/App Attest 검토 MASVS-RESILIENCE-2, KISA 위변조-2
AT-3 코드 난독화 JS 번들 Hermes 바이트코드 컴파일, 네이티브 R8/ProGuard 난독화·최적화 활성 MASVS-RESILIENCE-3
AT-4 디버거/후킹 탐지 디버거 attach·Frida/Xposed 후킹·에뮬레이터 실행 탐지 MASVS-RESILIENCE-4
AT-5 디버그 비활성 릴리스 빌드 android:debuggable=false, JS __DEV__ 코드 제거 MASVS-RESILIENCE, KISA 위변조-3
AT-6 개발자모드/USB 디버깅 대응 민감 작업 시 개발자옵션·USB 디버깅 활성 감지·경고 KISA 위변조-4

2. 데이터 보호 (Data at Rest) — MASVS-STORAGE / KISA 데이터보호

ID 항목 기준 근거 표준
DP-1 토큰 안전저장 JWT·세션 토큰은 Keychain(iOS)/Keystore(Android) = expo-secure-store, 평문 AsyncStorage 금지 MASVS-STORAGE-1, KISA 데이터-1
DP-2 하드코딩 비밀 0 소스·설정에 API 키·비밀번호·토큰 하드코딩 없음(grep 0건) MASVS-STORAGE-2, KISA 데이터-2
DP-3 비밀번호 미저장 로그인 비밀번호를 단말에 어떤 형태로도 저장하지 않음 MASVS-STORAGE-1
DP-4 화면캡처/오버레이 방지 민감 화면(2FA·티켓QR·개인정보) FLAG_SECURE로 캡처·녹화·오버레이 차단 MASVS-PLATFORM-3, KISA 데이터-4
DP-5 백그라운드 스냅샷 앱 전환 시 민감 화면 마스킹(태스크 스위처 스냅샷 노출 방지) MASVS-STORAGE-7
DP-6 클립보드 보호 비밀번호·토큰·개인정보 필드 클립보드 복사 최소화·자동삭제 MASVS-STORAGE-8
DP-7 로그 내 민감정보 0 토큰·비밀번호·개인정보를 로그(console/logcat)에 남기지 않음 MASVS-STORAGE-3, KISA 데이터-3

3. 통신 보안 (Data in Transit) — MASVS-NETWORK / KISA 통신

ID 항목 기준 근거 표준
NW-1 TLS 강제 모든 API가 HTTPS. 평문 HTTP(cleartext) 차단 — Android networkSecurityConfig(cleartextTrafficPermitted=false), iOS ATS 유지 MASVS-NETWORK-1, KISA 통신-1
NW-2 인증서 검증 서버 인증서·호스트명 검증(기본 트러스트스토어). 검증 우회 코드 없음 MASVS-NETWORK-2
NW-3 인증서 피닝 공공/민감 앱 권고 — 서버 인증서·공개키 피닝 검토·적용 MASVS-NETWORK-4, KISA 통신-2
NW-4 API 키 미노출 통신에 클라이언트 하드코딩 API 키 사용 안 함(base URL만 공개) MASVS-STORAGE-2

4. 인증·세션 — MASVS-AUTH / KISA 인증

ID 항목 기준 근거 표준
AU-1 2차 인증(2FA) TOTP 기반 OTP 로그인 흐름(OTP_REQUIRED→재제출) 지원 MASVS-AUTH-1, KISA 인증-1
AU-2 생체·로컬 잠금 앱 로컬 생체(Face/Touch/지문) 재잠금 옵션(민감 진입) MASVS-AUTH-2
AU-3 세션 만료·재발급 액세스 토큰 TTL, 만료 시 401 처리·재로그인 유도 MASVS-AUTH-3
AU-4 로그인 실패 잠금 연속 실패 임계 초과 시 계정 잠금(서버), 계정 열거 방지 일반화 메시지 MASVS-AUTH-6, KISA 인증-2
AU-5 서버측 권한검증 행사 단위 RBAC를 서버에서 강제(클라이언트 신뢰 금지) MASVS-AUTH-4

5. 시큐어 코딩 — MASVS-CODE / KISA 시큐어코딩

ID 항목 기준 근거 표준
SC-1 입력검증 클라이언트·서버 이중 입력검증(이메일·비밀번호 길이·형식) MASVS-CODE-4, KISA SC-1
SC-2 SQL 인젝션 방지 MyBatis 파라미터 바인딩(#{}), 동적 ${} 미사용 또는 화이트리스트 가드 KISA SC-2
SC-3 안전한 난수 토큰·OTP·IV 생성에 CSPRNG(SecureRandom) 사용 MASVS-CRYPTO-3
SC-4 웹뷰 안전설정 (있으면) JS브리지 최소화·파일접근 차단·신뢰 URL만 로드 MASVS-PLATFORM-2
SC-5 딥링크 검증 커스텀 스킴(kintex://) 파라미터 검증, 미검증 라우팅 금지 MASVS-PLATFORM-1
SC-6 예외/스택트레이스 미노출 서버·클라이언트 모두 스택트레이스·내부 세부 미노출, 요약 메시지만 MASVS-CODE-5, KISA 서버-4
SC-7 암호화 저장 민감 시크릿(OTP secret 등) AES-256-GCM 저장 MASVS-CRYPTO-1

6. 빌드·배포 — MASVS-RESILIENCE / KISA 서버·배포

ID 항목 기준 근거 표준
BD-1 릴리스 로그/소스맵 릴리스 빌드에 디버그 로그·소스맵 미포함 MASVS-RESILIENCE-3
BD-2 최소 권한 app.json 권한 최소화, 불필요 권한 제거(blockedPermissions) MASVS-PLATFORM-1, KISA 서버-1
BD-3 서드파티 취약점 package.json 의존성 CVE 스캔(npm audit), 최신 유지 MASVS-CODE-3
BD-4 서버 오류응답 백엔드 오류 응답에 IP·SSH·비밀번호·스택트레이스 미노출 KISA 서버-3·4
BD-5 CORS/헤더 CORS 허용출처 명시(와일드카드 금지), 보안 헤더 KISA 서버-2
BD-6 시크릿 주입 JWT_SECRET·암호화 키·DB/SMTP 비번은 env 주입, 코드/커밋 미포함 MASVS-STORAGE-2

판정 기호

  • PASS — 기준 충족(증거 있음)
  • FAIL — 기준 미충족(구현 필요)
  • N-A — 현재 미적용 대상(해당 기능 부재)
  • 위험도: High(공공/민감 필수) · Med · Low