사이버 공격 유형 정리 :: 인증 무력화형 (브루트포스, 사전 공격, 크리덴셜 스터핑)
브루트포스(Brute Force)
정의
가능한 모든 조합을 하나씩 무작위로 대입해서 비밀번호나 암호키를 알아내는 공격
이론적으로는 시간만 충분하면 반드시 뚫리는 방식이라, 얼마나 많은 시도를 얼마나 빠르게 막느냐가 방어의 핵심
동작 방식
로그인 페이지 같은 인증 지점에 자동화 도구로 아이디/비밀번호 조합을 계속 입력
숫자, 영문, 특수문자 조합을 순서대로 전부 시도하는 방식이라 비밀번호가 짧고 단순할수록 뚫리는 시간이 급격히 짧아짐
주요 변형
단순 브루트포스: 모든 문자 조합을 순서대로 시도
역브루트포스(Reverse Brute Force): 비밀번호 하나를 고정해두고, 여러 아이디에 대입 (자주 쓰이는 비밀번호로 이 계정 저 계정 찔러보는 방식)
크리덴셜 스터핑(Credential Stuffing): 다른 사이트에서 유출된 아이디/비밀번호 조합을 그대로 다른 서비스에 대입. 비밀번호를 여러 사이트에서 재사용하는 사용자가 많다는 점을 노림
방어 방법
계정 잠금 정책: 일정 횟수 이상 로그인 실패 시 계정 임시 잠금
CAPTCHA 적용으로 자동화 도구의 반복 시도 차단
다중 인증(MFA)으로 비밀번호만으로는 로그인 불가능하게 만들기
Rate Limiting으로 짧은 시간 내 반복 요청 제한
비밀번호 정책 강화(최소 길이, 복잡도)로 조합 경우의 수 자체를 늘림
사전 공격(Dictionary Attack)
정의
브루트포스의 한 종류. 모든 조합을 무작위로 시도하는 대신, 실제로 자주 쓰이는 비밀번호나 단어들을 모아놓은 목록(사전)을 가지고 순서대로 대입하는 공격
브루트포스와 차이
순수 브루트포스는 이론적으로 모든 경우의 수를 다 시도하기 때문에 시간이 오래 걸림
사전 공격은 “123456”, “password”, “qwerty” 같이 실제로 사람들이 많이 쓰는 값 위주로만 시도하기 때문에 훨씬 효율적이고 빠르게 뚫리는 경우가 많음
과거 유출 사고에서 나온 실제 비밀번호 목록을 사전으로 활용하기도 함(유출 데이터 기반 사전)
동작 방식
사전 파일(단어 목록)을 준비
로그인 폼이나 해시값에 사전의 단어들을 하나씩 대입하며 일치하는지 확인
오프라인 상황(탈취한 해시값 대상)에서는 서버 접속 없이 로컬에서 빠르게 대량 시도 가능
방어 방법
자주 쓰이는 취약한 비밀번호(사전에 흔히 포함되는 값) 사용 금지 정책 적용
비밀번호 해싱 시 솔트 적용으로 사전 대입 계산을 무력화(사용자마다 다른 결과가 나오게)
계정 잠금, MFA 등 브루트포스 방어와 동일한 대책 병행