회원 모집 프로젝트 배포 후, 예상치 못한 대규모 공격 시도에 직면했다.
개발자라면 한 번쯤 겪을 수 있는 실전 보안 경험을 공유하고, 이를 AWS WAF로 어떻게 해결했는지 간단하게 정리해 보았다.
1. 문제 상황
배포 후 서버 로그를 분석하던 중, 매일 평균 약 210회의 무분별한 해킹 시도 정황이 포착되었다.
공격 유형은 주로 시스템 환경 변수나 인증 정보를 획득하기 위한 GET API 요청이었다. 이는 서비스의 취약점을 탐색하려는 전형적인 공격 패턴이다.
2. 문제 파악을 위한 로깅
단순히 공격 시도 횟수만으로는 대응이 불가능했기 때문에, 공격의 출처를 파악하기 위한 로깅 시스템을 구축했다.
수집 정보
정보 | 수집 이유 |
Request IP | 공격자의 위치 파악 |
HTTP Method | 어떤 방식으로 요청했는지 확인 |
Request URI | 어떤 엔드포인트를 노렸는지 확인 |
User-Agent | 공격에 사용된 도구 또는 시스템 정보 파악 |
3. 분석 결과: 좀비 PC를 이용한 해외발 공격
수집된 모든 IP 주소를 분석해보니, 해킹 시도는 모두 해외 IP에서 이루어졌다는 사실을 알 수 있었다.
이를 통해, 공격자가 전 세계에 퍼져있는 좀비 PC 네트워크(Botnet)를 통해 랜덤한 IP를 순환하며 공격을 시도하고 있다는 결론을 내릴 수 있었다.

4. 해결책: AWS WAF 도입으로 해외 IP 전면 차단
가장 간단하고 빠른 해결책은, 해외 IP 를 차단하는 것이다.
회원 모집 서비스의 사용자는 국내에 한정되어 있다.
따라서 해외 IP를 통한 접근을 전면 차단해도 서비스 운영에 지장이 없다고 판단했다.
해외 IP 를 차단하기 위해 AWS WAF를 도입했다. 악성 트래픽이 저희 EC2나 ALB에 도달하기 전에 차단하는 가장 효율적인 방법이라고 판단했기 때문이다.
WAF 생성 후, Source IP Address가 Korea일 때만 요청을 허용하고, 아니라면 Block하도록 설정하고, ALB에 WAF를 연결했다.
5. 최종 결과: 공격 횟수 0회 달성
WAF 도입 후, 이전 210회에 달했던 일일 해킹 시도 횟수는 0회로 줄었다.
만약, 서비스가 글로벌 사용자를 지원해야 한다면 어떤 방식을 사용할 수 있을 지 고민된다.
'멋쟁이 사자처럼(명지대학교 자연)' 카테고리의 다른 글
조금 많이 늦은 11기 마무리와 12기 운영진 시작 (1) | 2024.06.08 |
---|---|
8/18 ~ 8/19 해커톤 (1) | 2023.08.24 |
멋쟁이 사자처럼(명지대학교 자연) 11기 합격 (0) | 2023.03.27 |