Dialogflow 챗봇 품질·보안 연구를 위한 대규모 데이터셋
초록
본 논문은 GitHub에서 수집한 1,788개의 Dialogflow 챗봇을 포함하는 TOFU‑D 스냅샷과, 그 중 185개를 엄선·검증한 COD 데이터셋을 공개한다. 두 데이터셋은 도메인·언어·구현 패턴의 다양성을 제공하며, Botium 테스트와 Bandit 정적 분석을 통해 테스트 커버리지 부족과 보안 취약점이 빈번함을 확인한다.
상세 분석
TOFU‑D와 COD 데이터셋은 기존 Rasa 기반 데이터셋과 달리 상용 플랫폼인 Dialogflow의 실제 사용 사례를 포괄한다는 점에서 의미가 크다. 먼저, 저자들은 GitHub API를 활용해 “Dialogflow”와 “chatbot/agent” 키워드가 포함된 12 883개의 저장소를 검색하고, 최신 커밋 SHA를 기록해 스냅샷의 재현성을 확보하였다. 이후 저장소 내에 필수 구성 파일인 agent 파일이 존재하는지를 확인함으로써 실제 챗봇을 식별했으며, 이 과정에서 11 086개의 비챗봇 저장소를 제외하고 2 650개의 agent 파일을 확보하였다.
중복 제거 단계에서는 의도·엔티티·웹훅 구현이 거의 동일한 챗봇을 95 % 이상의 코드 유사도로 판단해 하나로 통합했으며, 최신 Dialogflow 버전·스타 수·포크 수 등을 기준으로 대표 챗봇을 선정하였다. 결과적으로 1 788개의 고유 챗봇이 TOFU‑D에 포함되었다.
COD 데이터셋은 세 가지 선정 기준을 적용했다. (1) 최소 대화 복잡도 – 적어도 하나의 의도와 엔티티를 보유, (2) 기능 복잡도 – 웹훅 서비스를 구현, (3) 활용도 – 영어 지원, Dialogflow v2 사용, 별표가 있는 저장소. 이 기준을 만족하는 191개의 챗봇을 추려낸 뒤, 실제 배포 테스트를 통해 6개를 제외해 최종 185개를 확보하였다.
데이터셋 분석 결과, TOFU‑D는 의도 수가 1316개, 엔티티 수가 0140개로 폭넓은 분포를 보였으며, 15 %는 정보를 전혀 처리하지 않는 단순 예시 챗봇이었다. 반면 COD는 이러한 저복잡도 챗봇을 배제하고, 웹훅 활용 비율이 62 %에 달하는 등 기능적 복잡도가 현저히 높았다. 또한 Google Assistant 연동 비율은 TOFU‑D의 32 %에서 COD의 51 %로 상승했으며, 클라우드 함수 사용 비율도 16 %→29 %로 증가했다.
프로그래밍 언어 측면에서는 JavaScript, Python, Java, TypeScript 등이 주류를 이루었으며, 특히 Dialogflow가 기본적으로 지원하는 JavaScript가 가장 많이 사용되었다. 언어 지원 측면에서는 영어 챗봇이 87 % 이상을 차지했으며, 다국어 지원 챗봇은 159개, 최대 12개 언어를 지원하는 경우도 있었다.
초기 검증 실험에서는 COD에서 무작위로 선정한 10개의 챗봇에 Botium을 적용했을 때, fallback 처리, 인사, 이전 대화 전제 조건 등 핵심 시나리오에 대한 테스트가 누락된 경우가 다수 발견되었다. 엔티티 커버리지 역시 30 %는 전혀 테스트되지 않았고, 70 %는 부분적으로만 다루어졌다. 또한 Bandit을 이용한 정적 분석 결과, 외부 API 타임아웃 누락, 약한 난수 생성기 사용, 예외 처리 부재, SQL 인젝션 위험 등 6가지 주요 취약점이 양쪽 데이터셋에서 공통적으로 나타났다. 특히 Dialogflow 챗봇은 웹훅 기반 아키텍처 특유의 API 오설정 취약점이 추가로 발견되었다.
이러한 결과는 (1) 테스트 자동화 도구가 플랫폼에 관계없이 의도·엔티티 전반을 포괄하도록 설계돼야 함을, (2) 웹훅과 외부 서비스 연동 시 보안 베스트 프랙티스를 적용해야 함을 시사한다. 데이터셋 자체는 향후 대규모 실증 연구, 테스트 기법 비교, 보안 취약점 탐지 및 완화 전략 개발 등에 활용될 수 있는 귀중한 자산이다.
댓글 및 학술 토론
Loading comments...
의견 남기기