업로드는 끝났고 빈칸이 남았다 — TestFlight 에서 App Store 심사 제출 앞까지
TestFlight 업로드가 성공했다는 메시지를 보고 반은 끝났다고 생각했다. App Store Connect 에는 연령 등급 설문, 앱이 수집하는 개인정보 신고, 6.9형 스크린샷, 빌드 선택이 줄지어 기다리고 있었다. 내부 테스트와 심사의 경계부터 심사 제출 버튼 앞까지 채운 칸들, 그리고 아직 심사 전인 지금의 이야기로 연재를 마친다.
애드소프트 기술블로그
애드소프트 박재호입니다. IIS·ASP.NET 웹 서비스와 메일서버를 직접 운영하고, Unity 게임과 데스크톱 앱을 만들며 겪은 문제와 해결 과정을 기록합니다.
TestFlight 업로드가 성공했다는 메시지를 보고 반은 끝났다고 생각했다. App Store Connect 에는 연령 등급 설문, 앱이 수집하는 개인정보 신고, 6.9형 스크린샷, 빌드 선택이 줄지어 기다리고 있었다. 내부 테스트와 심사의 경계부터 심사 제출 버튼 앞까지 채운 칸들, 그리고 아직 심사 전인 지금의 이야기로 연재를 마친다.
식단서랍 웹에는 이메일 가입과 카카오 로그인이 있다. 그대로 아이폰 앱에 담으면 App Store 가이드라인 4.8 에 걸린다. 서버에 Sign in with Apple 을 넣고, Apple 이 form_post 로 돌아오는 웹 흐름을 WKWebView 안에서 끝까지 이어지게 하고, 내친김에 카카오 쪽에서 연결이 끊길 때의 처리까지 붙였다.
Kings Online Security(KOSSvc.exe, KOSinj.exe)는 킹스정보통신의 키보드 보안 프로그램이다. 이 PC 에서는 프로그램 폴더도 서비스도 앱 목록 항목도 이미 사라졌는데, 들어오고 나가는 연결을 모두 허용하는 방화벽 규칙 6개와 20년짜리 Local Root CA, 빈 레지스트리 키가 남아 있었다. 무엇이 남는지, 왜 신경 써야 하는지, 직접 정리하는 방법을 적었다.
작업 관리자의 ExECM.exe 는 CoreB2B ExEcm 1.1.5.4 로, 이노가드 서명이 붙은 .NET 프로그램이다. 서비스 ExEcmInstallerService 가 띄우고, 설정 파일에는 host 127.0.0.1 이라고 적혀 있지만 실제로는 0.0.0.0:18181·18281 에서 연결을 받는다. 설정 파일에 드러난 파일 전송 기능, 2023년에 만들어진 ExEcm-Root-CA, 지우는 방법을 정리했다.
작업 관리자의 UniCRSLocalServer.exe 와 CCDaemon.exe 는 한국전자인증(CrossCert)의 "CROSSCERT UniCRSV3" 다. 서비스 없이 Run 키 세 개로 뜨고, CCDaemon 이 로컬 서버를 띄우며, 0.0.0.0:15018 에서 연결을 받고 방화벽 허용 규칙도 있다. 폴더 안의 OpenSSL 1.0.2a, 그대로 남은 설치 파일, 지우는 방법을 정리했다.
작업 관리자의 kpmcnt.exe 와 kpmsvc.exe 는 한국정보인증(KICA)의 프로그램이고, 설치된 앱 목록에서는 SecuKit NXS 라는 다른 이름으로 보인다. 서비스 KicaPMSvc 가 kpmcnt.exe 를 띄우고 다시 살리는 구조, 127.0.0.1:14315, 2016년에 만들어진 KICA NXS Root CA, 이름이 세 갈래라 지울 때 헷갈리는 점을 정리했다.
작업 관리자의 SKCertService.exe 와 SignKoreaWD.exe 는 코스콤의 "SignKorea NA Certification Toolkit" 이다. 증권사 사이트가 공동인증서 서명용으로 설치를 요구하는 프로그램으로, 서비스가 프로세스를 지켜보며 띄우고 127.0.0.1:14098 에서 https 로 답한다. 실제 PC 에서 본 구조, 1년짜리 루트 인증서, 알려진 취약점과 지우는 방법을 정리했다.
연재 본편의 마지막 편이다. 설치된 앱·서비스·Run 키·예약 작업·커널 드라이버·로컬 포트·루트 인증서·폴더를 한 번에 뽑는 읽기 전용 PowerShell 스크립트를 만들고, 관리 프로그램부터 지우는 순서, 제거 뒤 다시 돌려 남은 것을 찾는 방법, 그리고 스물한 편을 쓰며 본 공통점을 정리했다.
작업 관리자의 시작 앱 탭에서 다 끄고 재부팅해도 보안 프로그램은 다시 떠 있다. 프로그램을 늘 떠 있게 만드는 방법이 서비스, Run 레지스트리 키, 예약 작업, 커널 드라이버 네 가지이기 때문이다. 이 PC 의 보안 프로그램이 각각 어느 방법을 쓰는지 표로 그리고, 화면마다 어디서 보이는지와 확인하는 PowerShell 을 정리했다.
금융·공공 사이트용 보안 프로그램은 대부분 PC 에 포트를 열고 웹 페이지의 요청을 기다린다. 이 PC 에서 Get-NetTCPConnection 으로 그 포트를 모아 보니 127.0.0.1 에 아홉 개 프로세스, 0.0.0.0 에 다섯 개 프로세스가 있었다. 두 주소의 차이, 웹 페이지가 로컬 프로그램을 부르는 방식, 0.0.0.0 쪽에 붙어 있던 방화벽 허용 규칙을 정리했다.