플랫폼 저작권 보안 강화 및 RateLimiter 구현

플랫폼 저작권 보안 강화 및 RateLimiter 구현

블로그 링크
업무 유형
기술부채
[기여도]
  • 백엔드 개발자(본인)

[문제 1]
약 6400개의 핵심 컨텐츠 교재에 대해 저작권 유출 우려
  • 약 6400개의 핵심 컨텐츠 교재에 대해 저작권 유출 우려 존재, 기존의 Public S3 Bucket을 사용함으로써 민감 데이터에 대한 보호와 접근 통제에 취약점이 존재
[해결방안]
Public S3 Bucket을 Private Bucket으로 이관
  • 민감 데이터를 보호하고 접근 통제를 강화. 이를 통해 데이터 유출 리스크를 해소하고, 저작권 보호를 강화하기 위한 보안 조치를 시행
[결과]
데이터 유출 리스크 해소, 민감한 컨텐츠에 대한 접근 통제 강화 → 저작권 유출 문제 해결

[문제 2]
모니터링 결과 1) 커뮤니티 광고성 게시글 증가 2) 악성 사용자 및 봇 활동 우려로 플랫폼의 보안 위협이 증가
[해결방안]
데이터 분석을 기반으로 RateLimit 정책 설계 및 구현
  • 1분 간 적정 횟수 조회 → 글쓰기, 댓글, 휴대폰 인증 API에 대한 호출량 제어
    • 1분 당 글쓰기 10회
    • 1분 당 댓글 쓰기 30회
    • 1분 당 휴대폰 인증 3회
외부 데이터 저장소 Redis 활용, Fixed Window 방식 구현
  • 동시성 문제 방지 → 원자적 연산인 INCR 연산 활용 → 호출 횟수 제한 및 정확한 횟수 카운팅 → 휴대폰 인증 메세지 중복 요청에 대한 과금 방지
  • 동시에 Fixed Window, Sliding Widnow 중 Redis에 부과되는 성능 상 부하를 최소화하면서 도배 활동을 효과적으로 막기 위해 Fixed Window 방식 활용
횟수 넘긴 유저에 대한 차단 처리
  • 1회 → 일주일 간 활동 정지 경고
  • 2회 이상 → 정지 처리
[결과]
시스템 안정성
플랫폼 보안 수준 향상 및 서비스 성능 최적화
[활용기술]
Java, Spring Boot, JPA, QueryDSL, Redis
Built with Potion.so