본문 바로가기
CS/보안

[보안] 크리덴셜 스터핑(Credential Stuffing) 개념 및 공격 방법, 예방 대책

by jangThang 2025. 9. 6.
반응형

 최근 개인정보 유출사고로 주목받고 있는 '크리덴셜 스터핑'의 개념 및 공격방법, 대처 방법에 대해서 알아봅니다.

 

[ Contents ]

     

     

    1. 크리덴셜 스터핑(Credential Stuffing)

     유출된 아이디와 비밀번호 목록을 다른 웹사이트에 무작위로 입력해 로그인 후 개인정보를 훔치는 방식

     

     보통 동일한 계정 아이디와 비밀번호로 여러 사이트에 회원가입을 합니다. 그렇지 않으면 본인이 계정 정보를 까먹어서 로그인을 못 하죠. 그래서 대부분 동일한 계정 정보를 갖고 있고, 유출된 계정 정보를 자동화 도구로 여러 사이트에 무차별 대입하는 공격 방식을 크리덴셜 스터핑이라고 합니다.

     

     

    2. 공격 방식

    1. 공격자가 다크웹, 피싱, 데이터 유출 사건 등을 통해 ID/비밀번호 목록 확보
    2. 자동화 도구(봇, 스크립트)로 다양한 웹사이트 로그인 시도
    3. 일부 사이트에서 로그인 성공 → 계정 탈취
    4. 탈취 계정을 이용해 개인정보, 금융정보, 포인트, 마일리지 등 악용

     

     다소 보안이 취약한 사이트에서 가입한 계정 정보는 유출될 가능성이 높으며, 유출된 계정정보로 다른 웹사이트 로그인을 시도합니다. 대부분의 사람들이 갖고 있는 구글이나 네이버, 카카오 계정부터 시작해서 SNS, 게임, 음악, 공공 서비스 계정까지 시도합니다.

     단순 로그인만으로 접속 가능한 사이트는 크리덴셜 스터핑으로 다 뚫린다고 해도 과언이 아니죠. 실제 사용자가 접속하는 것처럼 보이기 때문에 대처도 쉽지 않은 편입니다.

     

    반응형

     

    3. 대응 방법 및 예방 대책

    1. 다중 인증 방식 도입(MFA/2FA)

    비밀번호 외 OTP, SMS 인증 등 추가 인증방식 적용

     

     가장 많이 사용하는 예방 대책입니다. 대체로 MFA를 지원하며, 계정 탈취되었을 때의 위험성이 큰 서비스는 MFA 인증을 강제하는 편이죠. 예를 들어 정부24와 같은 공공서비스와 인터넷 뱅킹 같은 금융 서비스가 있습니다.

     

    네이버 2단계 인증(2FA)

     

     SNS 서비스는 기본적으로 ID/PW 로그인 방식이지만, 2차 인증도 설정할 수 있습니다. 저는 네이버와 페이스북 계정을 탈취 당한 적이 있어 2차 인증을 걸었습니다.

     패스워드를 바꾼다고 하더라도 또 공격자가 로그인 시도를 하더라고요. 가장 안전한 방법은 휴대폰 혹은 인증서 인증입니다.

     

     

    2. 로그인 이상 행위 탐지

    기존 로그인 지역 및 기기가 다를 경우를 탐지하여 모니터링 & 알림

     

     해외 IP에서 접속하거나, 다른 모바일/PC 기기에서 접속한 경우를 모니터링해서 사용자에게 알려주는 방식입니다. 간혹 네이버나 카카오에서 이런 알림이 올 때가 있죠.

     하지만 이는 알림이 가더라도 계정은 이미 탈취당한 후입니다. 사후 약방문이 될 수 있죠. 그래서 미리 예방하려면 로그인 설정에서 해외 IP접속 차단이나 인증된 기기만 로그인하도록 설정해야 합니다.

     

     

    3. 캡챠 및 계정 잠금 대책 설정

    캡챠 설정 및 5회 이상 비밀번호 틀릴 시 계정 잠금 등의 무분별한 로그인 방지

    정부 24 로그인 화면

     크리덴셜 스터핑보다는 사실 무차별 대입 공격(Brute Force)이나 사전 대입 공격(Dictionary Attack) 방지에 더 가까운 대응책입니다.

     봇이나 매크로 등의 자동화된 방식으로 로그인하기 어렵도록 캡챠나 로그인 횟수 제한을 둡니다. 크리덴셜 스터핑의 경우에는 유출된 계정 정보를 쓰므로 5회 이상을 초과하는 경우는 드물며, 캡챠와 같은 간단한 입력방식은 요즘 봇이나 매크로도 충분히 인식 가능합니다. 단지 시스템 자원을 좀 더 요구할 뿐이죠.

     

     

    4. 비밀번호 재사용하지 않기

    사이트마다 서로 다른 비밀번호 사용

     

     사용자가 지켜야할 수칙으로, salt라고 해서 사이트마다 1글자씩이라도 다르게 비밀번호를 설정할 것을 권고합니다. 그러면 비밀번호 헤시값이 달라져서 충분히 보안적으로 유의미한 차이를 둘 수 있습니다.

     하지만 그마저도 하기는 쉽지 않죠. 일반적으로 사용하는 패스워드에 사이트의 첫 이니셜 정도를 추가하는 방식을 추천하지만, 그 첫 이니셜을 뭘로 했는지도 헷갈리기 쉽습니다. 정부24 사이트이면 도메인 주소 기준으로는 plus.gov.kr이므로 p가 될 수 있고, 도메인명 기준으로는 government의 g일수도 있고, 정부24를 영어로 친 wjdqn24의 w가 될 수도 있죠.

     그 외에도 명확히 이름을 상정하기 어려운 사이트들도 많습니다. 'nh농협'인지, 그냥 '농협'인지 등... 그렇기 때문에 정말 자신만의 확고한 기준이 없으면 salt를 정하기도 어렵습니다. 몇 번 비밀번호를 틀려서 비밀번호 찾기를 하다보면 동일한 패스워드를 쓰게 되죠. 그래서 현 시점에서 가장 좋은 방법은 2차 인증 설정 정도가 되겠네요.

     

     

    star가 되고나서 Tistory

    반응형

    댓글