안녕하세요
이번에는 KT Cloud Tech Up 과정에서 마지막 실무 프로젝트를 진행하면서 발생했던 문제를 하나 소개하고자 합니다.
저희 팀에서는 CDN을 CloudFlare로 사용하였습니다. 저번 프로젝트에 이미 Cloudfront을 사용해보기도 했고 여러번 경험을 해봤기 때문에 다른 CDN을 사용하고자 했습니다. 찾아보니 Versel 등 여러 CDN 서버들이 있더라고요 그중에 많이들 접근해봤고 알고 있는 CloudFlare을 사용해보자 했습니다.

다들 많이들 보셨을 겁니다.
그래서 본 내용에 들어가기 전에 저희 팀이 CloudFlare을 어떻게 도입했고 어떤 방식으로 사용중인지에 대해 간략하게 소개하고자 합니다.
AWS의 CDN 처럼 프론트 웹 페이지를 S3에 담아서 운영하지 않습니다. 저도 놀랐던게 깃허브에 있는 리퍼지토를 기반으로 바로 서비스를 하는 형태였습니다.

그리고 이제 이 페이지에 WAF 설정을 걸을수가 있습니다.

이렇게 WAF 옵션을 걸을수가 있습니다.
이떄 주요하게 살펴볼것은
OWASP 설정 부분 입니다.
OWASP Top 10은 웹에서 가장 위험한 보안 취약점 10가지 목록 입니다.
실제 공격 데이터를 기반으로 OWASP 재단이 주기적으로 발표하는 가이드 라인입니다.
Top 10:2025 List
- A01:2025 - Broken Access Control
- A02:2025 - Security Misconfiguration
- A03:2025 - Software Supply Chain Failures
- A04:2025 - Cryptographic Failures
- A05:2025 - Injection
- A06:2025 - Insecure Design
- A07:2025 - Authentication Failures
- A08:2025 - Software or Data Integrity Failures
- A09:2025 - Security Logging and Alerting Failures
- A10:2025 - Mishandling of Exceptional Conditions
하지만 WAF 설정으로도 막을 수없는 항목들이 있습니다.
이게 지금 얘기하려는 중요한 포인트입니다.
당시에 해당 프로젝트에서 보안 공격을 수행하는 기간이 있었습니다.
저희 서비스를 마음대로 공격하고 그거에 대한 취약점을 공격팀이 발견하면 피드백해서 저희는 고치고 개선하는 기간이였죠

실제 이런식으로 계속 공격이 들어왔습니다. 그리고 CloudFlare가 이런식으로 공격이 어떻게 들어오고 있고 이런거를 관제 할 수 있었죠

그 당시 로그인을 수행하던 도중에 갑자기 모든 API가 동작을 하지 않는 겁니다. 그래서 저희는 그 순간 공격을 받고 있는 줄 알고 어떻게 대처하지, 지금 모니터링 관제해서 어디부분을 공격하고 있는 이런거를 부랴부랴 찾기 시작했습니다.
모니터링도 동작하지 않고, 접근은 가능하지만 매트릭을 확인하지 못하는 상황이였습니다.
그러다가 RDS의 상태를 확인해봤는데 RDS의 상태가

현재 활동 세션의 상태가 이상했습니다. 거기 들어가서 확인해보니 특정 쿼리문을 수행하는데 58초가 걸리는 겁니다.
RDS는 야구 더미 데이터를 천만건을 넣어둔 상황이였습니다.
해당 쿼리문이 경기에 대한 모든 데이터를 join형태로 다 가져오는 형태로 구성되어 있었고 , 그 많은 경기가 다 가져와지는 상황이였습니다.

그래서 해당 문제를 백엔드팀과 공유하였고 개선 하였습니다.

그리고 RDS의 성능을 높였더니 이제 제대로 동작하였습니다.
이러한 부분들이 OWASP 10 A6 Insecure Design 부분 입니다.
사실 그 순간에는 정말 공격을 받고 있다고 생각해서 많이 당황했습니다. 하지만 돌이켜보면 외부의 공격보다 우리가 만든 코드가 더 위험했던 순간이었습니다. Cloudflare가 수많은 공격을 막아주고 있었지만, 정작 서비스를 멈추게 한 건 페이지네이션 하나 없이 천만 건을 통째로 조회하던 우리의 쿼리였으니까요. 앞으로는 기능 구현만큼이나 설계 단계에서의 보안 고민도 함께 가져가고 싶습니다.
WAF 성능은 잘되는거 같습니다!!
'Network' 카테고리의 다른 글
| AWS VPC 물리서버 기준 통신 원리 (0) | 2026.06.01 |
|---|---|
| Docker란? (0) | 2026.06.01 |
| AWS SAA-CO3 합격 후기 (0) | 2026.03.07 |
| Terraform으로 EC2 관리하면서 겪은 AMI 필터링과 SSM 연결 이슈 (0) | 2026.02.25 |
| Kind 클러스터에서 SandboxChanged 에러 해결하기: systemd와 containerd의 갈등 해소 (1) | 2026.01.20 |
