반응형
**Broken Authentication(취약한 인증)**을 정리해줄게.
보안관제 관점 + 개발 보안 관점까지 실무 위주로 설명할게.
🔥 1. Broken Authentication이란?
정의:
Broken Authentication은 인증(로그인) 기능이 안전하게 설계되지 않아 공격자가 계정을 도용하거나 인증을 우회할 수 있는 취약점을 의미해.
쉽게 말해:
👉 로그인/세션 관리가 허술해서 공격자가 사용자의 계정으로 들어오는 상황
🔹 2. Broken Authentication이 발생하는 대표 상황
✔ 1) 취약한 비밀번호 정책
- 너무 짧거나 쉬운 비밀번호 허용
- 비밀번호 복잡도 없음
- 중복 비밀번호 허용
✔ 2) Brute-force / Credential Stuffing 방어 미흡
- 로그인 횟수 제한 없음
- CAPTCHA 없음
- 2FA 없음
✔ 3) 세션 관리 취약
- 세션 ID가 예측 가능
- 로그인 후 세션 재발급 안 함(Session Fixation)
- 세션 만료 시간 과도하게 김
- 세션이 HTTPOnly/secure 옵션 없음
✔ 4) 인증 우회 가능
- 직접 URL 접근으로 로그인 우회
- 잘못된 인증 로직
✔ 5) MFA(2단계 인증) 부재 또는 우회 가능
✔ 6) 비밀번호 찾기/재설정 기능 취약
- 이메일 검증 없음
- 토큰이 너무 단순 / 만료 없음
- 누구나 비밀번호 리셋 메일 요청 가능
🔹 3. 실무 공격 예시
✔ 1) Brute-force 공격
사용자ID를 고정하고 여러 비밀번호 시도:
POST /login username=admin&password=123456
✔ 2) Credential Stuffing
유출된 이메일/비밀번호 조합 대량 대입
✔ 3) Session Fixation 공격
공격자:
sessionid=knownvalue
피해자가 로그인하면 → 해당 세션이 그대로 유지 → 계정 탈취
✔ 4) 인증 우회 취약점
/login → /home
로그인 검사 없이 접근 가능하면 인증 우회.
✔ 5) 비밀번호 재설정 링크 탈취
재설정 링크가 너무 단순:
/reset?token=12345
🔹 4. 공격자가 할 수 있는 일
- 계정 탈취
- 관리자 계정 장악
- 대량 로그인 시도로 서비스 마비
- 내부 정보 열람
- 악성 게시글/댓글 업로드
- 금전적 피해(결제 시스템이면 더 위험)
🔹 5. WAF / 보안관제 관점 대응
✔ 1) 로그인 실패 반복 탐지
- 동일 IP에서 여러 계정 시도
- 동일 계정에서 여러 IP 시도
- 짧은 시간에 과도한 실패 → 차단
✔ 2) Credential Stuffing 패턴 차단
- 유출 PW 목록 기반 탐지
- User-Agent 비정상 반복
✔ 3) 세션 관련 탐지
- 세션ID 값 비정상 패턴
- 여러 지역에서 동일 세션 사용
✔ 4) MFA 우회 탐지
- 로그인 성공 후 MFA 실패 반복
🔹 6. 개발 단계 방어책 (중요!)
🔸 A. 인증 로직 강화
✔ 비밀번호 정책 강화
- 대문자 + 소문자 + 숫자 + 특수문자 조합
- 최소 8~12자 이상 권장
✔ 로그인 시도 제한
- 5회 이상 실패 시 잠금 처리
- IP 기반 rate-limit 적용
✔ CAPTCHA 적용
- 자동화 공격 방지
✔ MFA 필수 적용
🔸 B. 세션 관리 강화
✔ 로그인 성공 시 새로운 세션ID 발급
(Session Fixation 방지)
✔ Secure + HttpOnly + SameSite 옵션 적용
예:
Set-Cookie: session=xyz; Secure; HttpOnly; SameSite=Lax
✔ 세션 타임아웃 설정
- 일정 시간 후 만료
🔸 C. 취약한 비밀번호 재설정 기능 방지
- 토큰 랜덤 길이 32바이트 이상
- 10~30분 이내 만료
- 단일 사용 후 삭제
- 동일 이메일 요청시 의도치 않은 정보 노출 방지
🎯 한 문장 요약
Broken Authentication = 취약한 인증/세션 관리로 인해 공격자가 사용자 계정을 탈취하거나 인증을 우회할 수 있는 모든 문제를 말하며, 비밀번호 정책·세션 관리·로그인 보호 기능 강화로 방어해야 한다.
반응형
'2. 보안 > 2. 보안 관제' 카테고리의 다른 글
| [보안_GPT] 직렬화 / 역직렬화란? (0) | 2025.11.14 |
|---|---|
| [보안_GPT] Broken Access Control이란? (0) | 2025.11.14 |
| [보안_GPT] XXE(XML External Entity)란? (0) | 2025.11.14 |
| [보안_GPT] SSRF(Server-Side Request Forgery)란? (0) | 2025.11.14 |
| [보안_GPT] RCE(Remote Code Execution) 란? (0) | 2025.11.14 |