닿음
부모님 스마트폰의 의심 앱을 가족이 함께 확인하는 보안 케어 서비스
Problem디지털 취약 계층을 위한 보안 앱인데 정작 그 앱을 부모님이 직접 써야 하고 탐지 결과도 어려워서 실제 대응으로 이어지지 않음
Built정확 일치 → 벡터 유사도 → LLM 설명 3단계 탐지 · 애매하면 UNKNOWN으로 판단 보류 · reranking v1→v3
ResultPrecision 99% (threshold 0.80) · 200명 중 우수 수료생 20명
구조
정확히 일치하는 악성 앱은 바로 위험으로 판정하고 처음 보는 앱은 유사도로 판단합니다. 유사도가 기준보다 낮으면 안전하다고 말하지 않고 판단을 보류합니다.
초록 칸은 검색만 하고 파란 칸만 LLM을 호출합니다. LLM은 판정에 관여하지 않고 판정이 끝난 뒤 설명만 만듭니다.
핵심 결정
주 사용자를 부모님 → 자녀로
Before위험을 겪는 부모님이 직접 보안 앱을 설치하고 결과를 해석해야 함
After자녀가 부모님 폰의 위험을 확인하고 부모님이 따라 할 수 있는 안내문을 전달
Why디지털 취약 계층에게 디지털 도구를 쓰라고 하는 모순을 풀기 위해서
애매하면 판단 보류 (UNKNOWN)
Before유사도만으로 위험과 안전을 나누면 처음 보는 악성 앱이 안전으로 표시될 수 있음
After유사도 0.80 이상만 MEDIUM으로 판정하고 미만은 UNKNOWN으로 보류 · UNKNOWN도 절대 안전으로 표시하지 않음
Why보안에서는 틀린 "안전" 판정이 가장 위험해서 Precision을 우선함
탐지보다 탐지 이후 행동에 집중
Before기존 보안 서비스는 탐지와 차단에서 끝남
After판정 근거를 쉬운 말로 풀고 "지금 무엇을 해야 하는지"를 단계별 안내문으로 만듦
Why이스트시큐리티 데이터에서 악성 앱이 탐지된 뒤에도 사용자가 예외 처리한 기록을 직접 발견함
LLM은 판정하지 않고 설명만
BeforeLLM이 직접 판정하면 존재하지 않는 악성코드를 지어낼 수 있음
After판정은 규칙(정확 일치)과 RAG 검색으로만 하고 LLM은 판정 뒤 설명만 생성 · JSON 출력을 강제하고 검색 결과에 없는 정보는 생성하지 않도록 프롬프트 설계
Why보안 판정에서 환각은 곧 오탐이나 미탐이 되기 때문
결과
판단 보류 구조로 유사도 기준 0.80에서 Precision 99%를 확보했습니다. 해커톤 성과로 참가자 200명 중 우수 수료생 20명에 선발되어 4주 OJT로 이어졌습니다.
99%Precision (threshold 0.80)
v1 → v3검색 기준 개선
20 / 200우수 수료생 선발
핵심 인사이트
- 알약 모바일 탐지 로그 1만 건에서 23개 필드 중 3개를 남기고 패키지명이 빈 1,465건을 제외해 학습·검색 데이터를 만들었습니다. Riskware가 59%로 편중된 불균형을 확인하고 전처리 전후 건수와 분포를 대조해 데이터 손실을 검증했습니다.
- 검색 기준을 v1(패키지명만)에서 v3(이름 + 카테고리 + 판정 근거)까지 넓히며 비슷한 이름의 정상 앱과 악성 앱을 구분하도록 개선했습니다.
- 패키지 데이터는 이미 패키지명 단위로 정리되어 있어 청킹 없이 레코드 하나를 벡터 하나로 저장했습니다.
한계와 다음 단계
- UNKNOWN일 때 사용자가 무엇을 더 해야 하는지 안내가 부족함 → 판단 보류 이후 행동 안내 추가 예정
- 패키지명 외 권한·설치 경로 같은 보안 요소로 확장하면 문서 구조가 바뀌어 청킹 전략을 새로 세워야 함
- 임베딩은 한국어에 강한 Upstage Solar를 골랐지만 실제 검색 대상(패키지명)이 영어라 다른 모델과 비교가 필요함
- 자녀가 부모님 폰 권한을 받아 직접 후속 조치를 할 수 있도록 확장 · GraphRAG 적용 검토 중