인증? 인가?
| 항목 | 인증 (Authentication) | 인가 (Authorization) |
| 의미 | 사용자의 신원을 확인 (누구세요?) |
특정 작업, 자원 접근 권한 확인 (무엇을 할 수 있나요?) |
| 목적 | 신원 증명 | 권한 부여/제한 |
| 취약점 | 로그인 절차 우회, 타인 신분 도용 | 권한 없는 기능, 정보 접근 |
| 순서 | 먼저 인증 | 인증 이후 인가 진행 |
불충분한 인증
사용자의 인증 과정이 제대로 구현되지 않았거나, 비밀번호 정책이 약하고 인증 우회가 가능한 경우 발생하는 취약점
이를 통해 공격자는 취약한 인증 절차를 악용하여 비인가 접근, 계정 탈취, 세션 하이재킹 등이 가능
보안 대책
- 인증 절차를 서버에서 진행
- 클라이언트 요청은 변조가 가능해 신뢰를 100% 하면 안됨
- 추가 인증 절차 구현
- 중요 리소스에 접근 시 재인증(ex. 2차 인증)을 요구하여 권한 없는 접근 차단
- 인증 시도 제한 및 실패 로깅
- 로그인 시도 횟수 제한 (무차별 대입 공격 방지)
- 의심스러운 인증 실패 행동을 실시간 모니터링
- 세션 및 토큰 보안 강화
- 안전한 토큰 생성(예측 불가능성, 적절한 길이)
- 로그인 시마다 세션 재발급 → 세션 고정 공격 방어
- 세션 만료 및 강제 로그아웃 정책
불충분한 인가
사용자의 권한 검증이 미흡하거나, 인가 로직에 결함이 있을 때 발생하는 취약점
권한이 없는 사용자도 민감한 기능 또는 리소스에 접근할 수 있어, 데이터 유출, 권한 상승, 기능 오용 등이 발생할 수 있음
보안 대책
- RBAC(Role-Based Access Control, 역할기반 접근제어) 도입
- 사용자 역할에 따라 권한을 엄격하게 구분하고, 서버 측에서 권한을 검증하는 로직을 필수화
- 접근 권한 검증 로직 강화
- 모든 민감 기능, 데이터 접근 시 사용자 권한을 반드시 확인
- 권한 검증 수행을 서버 측에서 수행
- 권한 매트릭스 구축 및 관리
- 페이지 및 API별 권한 매트릭스를 작성하여, 체계적으로 권한 범위를 정의 및 점검
'Study > Web Hacking' 카테고리의 다른 글
| [Web] Spring4Shell 취약점 (0) | 2025.12.07 |
|---|---|
| [Web] Log4Shell 취약점 (0) | 2025.12.07 |
| [Web] SQL Injection (0) | 2025.11.05 |
| [Web] Command Injection과 대응법 (0) | 2025.10.13 |
| [Web] 파일 취약점 (0) | 2025.10.12 |