허튼짓은 그만: Kafka Streams를 활용한 실시간 이상 로그인 감지 시스템 도입하기

허튼짓은 그만: Kafka Streams를 활용한 실시간 이상 로그인 감지 시스템 도입하기

1
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

Kafka Streams를 활용한 이상 로그인 감지 시스템 도입기

이 게시물은 무신사에서 Kafka Streams를 활용해 실시간 이상 로그인 감지 시스템을 구축한 경험을 소개합니다.

도입 배경 및 기술 선택

  • 가파른 사용자 증가에 따른 비정상 로그인 패턴 실시간 감지 필요
  • Kafka 메시지를 활용한 실시간 데이터 집계 및 패턴 분석
  • Apache Spark, Flink, Kafka Streams, KsqlDB 등 후보 중 Kafka Streams 최종 선정

Kafka Streams 주요 특징 및 활용

  • Java 라이브러리 기반, Kafka 클러스터와 긴밀한 통합
  • 상태 저장소로 RocksDB 사용, 내결함성 및 Exactly-once 처리 보장
  • Streams DSL과 Processor API를 통한 다양한 데이터 변환 및 집계 지원
  • Windowing 기능으로 시간 기반 집계 구현 가능

시스템 구현 및 이슈 대응

  • 이상 로그인 패턴을 감지해 Slack 알림 등 후속 처리 자동화
  • JDK 호환성 문제 및 리파티셔닝, 메모리 사용률 증가 문제 해결
  • 메트릭 모니터링과 Window 보존 시간 최적화, RocksDB 메모리 제한 적용

적용 성과

  • 크리덴셜 스터핑, 어뷰징, 명의도용 등 비정상 접근 사전 감지 및 대응
  • 무신사의 보안 강화 및 안정적 서비스 운영에 기여