Password Spraying은 적은 수의 흔한 비밀번호를 여러 계정에 시도하는 유형이고, Credential Stuffing은 다른 곳에서 유출된 것으로 알려진 사용자명·비밀번호 쌍을 재사용하는 유형입니다. 핵심 구분은 계정 수의 많고 적음보다 공격자가 넣는 자격 증명의 출처와 조합입니다.

로그에 여러 계정의 실패가 분산됐다는 사실만으로 비밀번호가 추측됐는지 유출 쌍이 사용됐는지 확정할 수 없습니다. 서비스 운영자는 실패·성공 분포, 위험 신호, MFA와 제한 정책, 사용자의 보고 등 승인된 방어 자료를 함께 확인해야 합니다. 아래 예시는 실행법이 아닌 직접 만든 가상 방어 연습입니다.

차이는 공격자가 넣는 자격 증명의 출처에 있습니다

Password Spraying은 공격자가 선택한 적은 수의 흔한 비밀번호를 여러 사용자 계정에 적용하는 방식입니다. 한 계정에 많은 후보를 연속해서 대입하는 일반적인 brute force와 달리, 많은 계정에 시도가 흩어질 수 있습니다. OWASP의 개념 설명은 계정 잠금 정책을 피하려고 여러 계정에 한 비밀번호를 사용하는 예를 듭니다. 여기서 ‘적은 수’는 공격의 고정 숫자 임계값이 아니므로 답안에서 1개 또는 2개 같은 보편 기준으로 만들지 않습니다.

Credential Stuffing은 유출·도난된 것으로 알려진 username/password 쌍을 다른 서비스의 로그인에 재사용하는 시도입니다. 따라서 비밀번호를 새로 추측하는 것이 중심이 아닙니다. OWASP는 침해나 피싱 등으로 노출된 자격 증명이 여러 서비스에서 재사용되면 다른 계정도 영향을 받을 수 있다고 설명합니다. 어떤 공격이든 계정 실패 수와 IP 수만으로 공격 방법을 판별할 수 있는 것은 아닙니다. 로그 관측과 자격 증명 출처에 관한 별도 증거를 나눠야 합니다.

직접 만든 가상 방어용 인증 이벤트 요약
관측A: 계정 간 분산 실패B: 유출 자격 증명 재사용 정황
가상 이벤트여러 계정에서 낮은 횟수의 로그인 실패가 시간대별로 나타남한 이용자가 같은 비밀번호를 여러 서비스에서 재사용했다고 신고하고, 별도 침해 공지가 확인됨
가능한 분류Password Spraying 가능성을 조사할 단서일 수 있음Credential Stuffing 가능성을 조사할 단서일 수 있음
아직 확인되지 않은 것시도한 비밀번호 후보의 실제 내용, 공격자 신원, 침해 성공 여부해당 서비스 로그의 원인, 유출 자료와 로그인 시도의 직접 연관성
방어 확인계정별 실패 분포, 위험 기반 로그인 알림, MFA 및 제한 정책노출 자격 증명 대응 절차, MFA, 세션·복구 경로 이상 여부

실패 분포와 성공 여부를 별도로 읽습니다

가상 내부 포털 로그에 짧은 시간 동안 180개 계정의 실패가 각각 한두 건씩 기록됐다고 가정합니다. 한 계정에서 수십 개 후보가 실패한 로그보다 넓게 퍼진 모양은 Password Spraying 의심을 높일 수 있습니다. 그러나 사용자 일괄 로그인, 점검 도구, 잘못된 SSO 설정 같은 다른 원인도 있을 수 있으므로 이를 공격 확정으로 기록하지 않습니다. 확인할 것은 각 계정의 시간대, 로그인 성공 여부, 소스 범위와 정상 점검 작업의 기록입니다. 실제 비밀번호 값이나 목록을 수집해 재현할 필요는 없습니다.

다른 사례에서 보안팀은 여러 외부 웹사이트에서 같은 사용자 계정으로 성공·실패 알림이 난 사실을 사용자의 신고와 공개된 침해 공지로 확인했습니다. 유출 쌍 재사용을 의심할 수 있지만, 그 기록이 곧 특정 시도가 Credential Stuffing이었다는 완전한 증명은 아닙니다. 다른 서비스의 사건 자료와 우리 서비스의 시간·계정 이벤트가 연결되는지 확인해야 합니다. 또한 로그인 성공이 기록돼도 정상 사용자의 접속인지 공격자의 접근인지 MFA 결과와 세션 행위를 더 살펴야 합니다.

분류표에는 입력 자료·분포·성공 여부를 각각 씁니다

  1. 계정별 실패와 성공을 시간순으로 보고 여러 계정에 넓게 퍼졌는지, 일부 계정에 집중됐는지 적습니다.
  2. 공격 유형을 판단할 자료가 실제 비밀번호 추측 정황인지 알려진 유출 쌍의 재사용 정황인지 구분합니다. 민감한 비밀번호 원문을 수집하지 않습니다.
  3. 정상 배치 작업·SSO 오류·사용자 실수 등 대체 원인을 확인하고 필요한 범위의 보안 담당자에게 알립니다.
  4. MFA 적용·로그인 제한·비밀번호 재사용 방지·위험 세션 검토 등 방어 통제를 확인합니다.
  5. 근거가 없는 공격명이나 침해 성공은 미확인으로 남기고, 자료가 지지하는 관측 사실만 보고합니다.

이 분류는 방어팀이 로그를 읽는 기준입니다. OWASP가 소개하는 MFA와 인증 시도 제한을 비롯해 조직의 rate limiting, 이상 로그인 경보, 비밀번호 노출 대응 절차는 구현마다 다릅니다. 특정 제품에서 어떤 정책이 적용됐는지 확인하지 않고 설정이 켜져 있다고 단정하지 않습니다. 서비스 계정 잠금이 정상 사용자를 막을 수 있으므로 운영팀은 위험과 복구 절차를 함께 고려해야 합니다. 이 페이지는 공격 수행, 계정 수집, 자동화, 탐지 회피를 안내하지 않습니다.

계정이 많다는 이유만으로 Password Spraying을 확정하지 않습니다

흔한 실수는 여러 계정의 로그인 실패가 보이면 Password Spraying이라고 즉시 적거나, Credential Stuffing을 비밀번호 추측의 다른 이름으로 쓰는 것입니다. 앞의 관측은 분산된 시도를 보여도 입력된 값의 출처를 알려 주지 않습니다. 뒤의 개념은 유출된 자격 증명 쌍을 재사용한다는 점이 핵심입니다. 공격자의 비밀번호 원문을 저장하지 않고도 시간·계정 분포·노출 사고·MFA 결과를 나누어 분석할 수 있습니다. 확인되지 않은 부분을 쓰는 태도도 정확한 보안 답안의 일부입니다.

두 가상 로그에 결론의 강도를 표시합니다

회상 연습: A는 다수 계정에서 비슷한 시간대의 낮은 횟수 실패가 관측됐지만 입력값 출처는 없습니다. B는 한 사용자가 다른 곳에서 공개된 비밀번호를 재사용했다고 신고했고 우리 서비스에는 위험 로그인 경고가 있습니다. A는 Password Spraying 가능성을 조사할 분포 단서이지 확정이 아닙니다. B는 Credential Stuffing 의심과 맞는 정황이지만 서비스 이벤트와 침해 자료의 연관성을 확인해야 합니다. 두 경우 모두 성공 여부와 MFA·세션 로그를 별도로 봅니다. 사례는 직접 만든 학습 자료로 실제 기출이나 집중 180제 카드가 아닙니다. 상품 구성은 /decks/security#focus-180에서 확인하세요.

정답을 가리고 확인해 보세요

이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.

가상 로그 A는 다수 계정에 적은 로그인 실패가 분산됐지만 비밀번호 출처를 모른다. 로그 B는 침해로 노출된 자격 증명 쌍의 재사용 신고가 있고 로그인 위험 경고도 있다. 가능한 분류와 남은 확인사항을 구분하라.

정답과 해설 확인A는 Password Spraying을 조사할 분포 단서일 뿐 공격 확정은 아니다. B는 Credential Stuffing 가능성과 맞는 단서지만 유출 자료·서비스 로그인 간 연관성 및 성공 여부·MFA 결과를 확인해야 한다.

OWASP는 Password Spraying을 몇 개의 흔한 비밀번호를 여러 계정에 시도하는 방식으로, Credential Stuffing을 도난된 사용자명·비밀번호 쌍의 재사용으로 설명한다. 이벤트 분포만으로 자격 증명의 출처를 단정하지 않는다.

이 주제의 회상 연습 이어가기