해킹 기법 시리즈 세 번째 주제: 크리덴셜 스터핑
한 달에 260억 번. 전 세계에서 크리덴셜 스터핑(Credential Stuffing) 시도가 일어나는 횟수다. 지난 편에서 다룬 XSS가 브라우저를, 그 전편 SQL 인젝션이 서버를 노렸다면, 이번에 다룰 크리덴셜 스터핑은 아예 다른 쪽을 노린다. 코드의 허점이 아니라 사람의 습관, 정확히는 “비밀번호 재사용”이라는 습관이다. 미국 대형 패스트푸드 체인의 로열티 앱은 이 방식으로 2023년에 이미 한 번 뚫렸는데, 2026년 6월에 똑같은 수법으로 또 뚫렸다. 왜 이렇게 단순한 공격이 몇 년째 반복해서 통하는 걸까.
크리덴셜 스터핑이란, 열쇠 꾸러미에 빗대면
크리덴셜 스터핑을 한 문장으로 정리하면 “다른 곳에서 유출된 아이디·비밀번호 조합을, 전혀 상관없는 서비스에 그대로 대입해보는 공격”이다. 어느 아파트 단지에서 열쇠 꾸러미를 하나 주웠다고 해보자. 그 열쇠가 원래 어느 집 것인지는 몰라도, 옆 동 대문 하나하나에 꽂아보면 어떨까. 대부분은 안 맞겠지만, 세대수가 충분히 많으면 결국 몇 집은 문이 열린다. 크리덴셜 스터핑도 똑같다. 공격자는 비밀번호를 하나하나 추측하지 않는다. 이미 다른 사이트에서 유출된 진짜 아이디·비밀번호 목록을 손에 쥐고, 봇을 이용해 이 계정 저 계정에 자동으로 대입해볼 뿐이다.
이게 통하는 이유는 단 하나, 많은 사람이 여러 사이트에서 같은 비밀번호를 쓰기 때문이다. A 쇼핑몰에서 쓰던 아이디·비밀번호가 유출되면, 그 조합을 B 쇼핑몰이나 C 배달앱, D 커뮤니티에 그대로 넣어보는 식이다. 시도당 성공률은 업계 추정으로 약 0.1%에 불과하지만, 문제는 규모다. 유출된 자격증명이 이미 240억 쌍 넘게 다크웹에 돌아다니고 있고, 이걸 백만 건 단위로 밀어 넣으면 결국 수백~수천 개 계정이 열린다.

왜 이렇게 단순한 공격이 계속 통할까
원리는 초등학생도 이해할 만큼 단순한데, 왜 아직도 안 막힐까. 가장 큰 이유는 비밀번호 재사용이라는 습관 자체가 개인 차원에서 쉽게 안 고쳐진다는 점이다. 사이트마다 다른 비밀번호를 외워서 쓰는 사람은 생각보다 많지 않다.
여기에 또 다른 요인이 겹친다. 다중 인증(MFA)이 기술적으로는 오래전에 나왔는데도, 여전히 많은 서비스가 이를 ‘선택’으로만 제공한다. 뒤에서 볼 사례처럼, MFA 기능 자체는 있어도 필수로 걸어두지 않으면 공격자가 비밀번호만 맞히면 그만이다. 그리고 탐지도 쉽지 않다. 정상적인 로그인 시도와 겉모습이 똑같아서, 트래픽이 아주 짧은 시간에 몰리지 않는 이상 운영자가 이상 징후를 알아채기 어렵다. 마지막으로, 봇 도구 자체가 저렴해지고 접근성이 좋아지면서 기술 수준이 낮은 공격자도 대량 시도를 손쉽게 돌릴 수 있게 됐다. 이 네 가지가 겹치니, 알려진 지 오래된 공격인데도 매년 사고가 반복된다.

최근 실제 사례로 보는 크리덴셜 스터핑
가장 상징적인 사례는 미국 패스트푸드 체인 칙필레(Chick-fil-A)의 로열티 앱 ‘칙필레 원’이다. 이 앱은 2022~2023년에 이미 크리덴셜 스터핑 공격으로 약 7만 1,473개 계정이 뚫린 전력이 있다. 그런데 2026년 6월 17일부터 19일까지, 똑같은 방식의 공격이 다시 벌어졌다. 회사는 로열티 앱에 다중 인증 기능을 제공하고 있었지만, 이를 필수로 걸어두지 않았다는 게 그대로 반복됐다. 7월 22일 공식 통지에서 회사는 이름, 이메일, 적립금, 카드 뒷자리 4자리 등이 노출됐을 수 있다고 밝혔다. 자기 시스템이 뚫린 게 아니라 외부에서 유출된 비밀번호가 재사용된 결과라는 설명도 덧붙였다.
국내에서도 비슷한 사고가 있었다. 국내 1위 설문조사 플랫폼 엠브레인 패널파워는 2026년 6월, 제3의 경로에서 확보한 아이디·비밀번호를 무작위로 대입하는 크리덴셜 스터핑 공격으로 비정상 로그인 시도를 대거 포착했다. 휴대전화번호가 임의로 변경된 계정 83개, 적립금이 사용된 계정 75개가 확인됐다. 나이·소득 등 민감한 데이터를 다루면서 현금화 가능한 적립금까지 갖춘 플랫폼이라, 업계에서는 “해커들의 매력적인 자금 조달처”로 꼽히는 곳이었다.
두 사고 모두 회사 자체 시스템이 직접 뚫린 게 아니라, 이용자가 다른 곳에서 쓰던 비밀번호를 그대로 재사용한 데서 시작됐다는 공통점이 있다.

크리덴셜 스터핑 방어 체크리스트
일반 이용자가 할 수 있는 가장 확실한 방어는 사이트마다 다른 비밀번호를 쓰는 것이다. 번거롭더라도 비밀번호 관리자를 하나 설치해두면 이 문제는 사실상 해결된다. 여기에 더해 로그인 가능한 모든 서비스에서 다중 인증을 켜두는 게 좋다. 칙필레 사례가 보여주듯, MFA 기능이 있어도 켜지 않으면 무용지물이다. 유출 통지 메일이나 문자를 받았다면 미루지 말고 그 즉시 비밀번호부터 바꾸는 습관도 중요하다.
서비스를 운영하는 입장이라면 이야기가 다르다. 다중 인증을 선택 사항이 아니라 필수로 설계하는 게 출발점이다. 짧은 시간에 몰리는 로그인 시도를 자동으로 차단하는 레이트 리미팅, 실패한 로그인 패턴을 상시 모니터링하는 체계, 이미 유출된 자격증명 데이터베이스와 자사 회원 정보를 주기적으로 대조하는 작업까지 갖춰야 한다.

자주 묻는 질문
Q. 크리덴셜 스터핑과 무차별 대입 공격(브루트포스)은 뭐가 다른가요?
브루트포스는 비밀번호 자체를 무작위로 하나씩 추측하는 방식이다. 반면 크리덴셜 스터핑은 이미 검증된 진짜 아이디·비밀번호 조합을 그대로 가져다 쓴다. 그래서 성공률이 훨씬 높고, 계정 잠금 같은 일반적인 방어 수단도 덜 효과적이다.
Q. 내 계정이 크리덴셜 스터핑을 당했는지 어떻게 알 수 있나요?
개인이 직접 확인할 방법은 제한적이다. 다만 평소와 다른 로그인 알림, 모르는 기기 접속 안내, 적립금이나 결제 정보가 임의로 바뀌었다는 알림을 받았다면 의심해볼 만하다. 서비스 운영사가 유출을 인지하면 개별 통지를 하는 것이 원칙이므로, 그런 안내를 받으면 즉시 대응하는 게 좋다.
Q. 비밀번호를 자주 바꾸면 안전한가요?
비밀번호를 주기적으로 바꾸는 것보다 더 중요한 건 “사이트마다 다른 비밀번호를 쓰는 것”이다. 재사용만 안 해도 크리덴셜 스터핑의 위협은 거의 사라진다.
시리즈를 이어가며
SQL 인젝션과 XSS가 시스템의 허점을 파고드는 공격이었다면, 크리덴셜 스터핑은 사람의 습관을 파고드는 공격이라는 점에서 결이 다르다. 그런데도 결과는 똑같이 계정 탈취와 개인정보 유출로 이어진다. 다음 편에서는 이 계정 탈취 이후에 흔히 따라붙는 피싱·스미싱을 다뤄볼 예정이다.
출처
국내 기업 금융 보안 조직 8년차. 취약점 진단과 보안 기획 업무를 하며, 업계 밖에서는 잘 안 보이는 보안 이야기를 정리하고 있습니다. 개인 자격으로 쓰며 소속 조직과 무관합니다.