감자 생산 공장
[OWASP] 2 취약한 인증 (Broken Authentication) 개념 정리 및 대응 방안 본문
정의
취약한 세션 관리나 인증 관리 허점을 이용하여 공격자가 일반 사용자 또는 관리자로 위장 가능한 웹 어플리케이션 취약점
공격 사례
- ‘여기어때’ 해킹 사건에 세션 하이재킹 기법 사용됨
관련기사 : https://www.sedaily.com/NewsVIew/1OH13UE53K
- 취약한 인증은 거의 모든 공격에 전제되는 취약점인 듯!
취약한 상황**
URL에 세션 정보가 노출되는 경우 è Session ID URL Rewriting Exploit
- 공공 장소의 PC에서 사용되는 어플리케이션에서 세션이 유지되는 경우
- 세션 타임아웃이 없는 경우
- 로그아웃 없이 브라우저가 종료되는 경우 è Session Hijacking
- 쿠키 관리 미흡 è 쿠키 변조
- ID와 패스워드 관리 미흡 è Vulnerable Credential Management, Credential Stuffing, Password Spraying
공격 시나리오
알려진 암호 목록을 사용한 계정 정보 삽입이 일반적이다. 애플리케이션이 자동화된 위협 또는 계정 정보 삽입 방어를 구현하지 않은 경우, 애플리케이션을 암호 오라클로 사용하여 계정 정보가 유효한지 확인할 수 있다. 대부분의 인증 공격은 암호를 유일한 인증 요소로 계속 사용하는 것으로 인해 발생하기 때문에 모범 사례로 간주된 비밀번호 주기와 복잡성 요구사항은 사용자가 취약한 비밀번호를 등록하고 재사용할 수 있도록 한다. 애플리케이션 세션에 대한 적절한 만료 시간이 정해지지 않기 때문에 사용자는 공용 컴퓨터로 애플리케이션에 접근, 로그아웃을 선택하지 않고 단순히 브라우저 탭을 닫고 나갔을 때, 한시간 이후에 공격자가 같은 브라우저를 사용한다면 사용자는 여전히 인증되어 있다
대응 방안
세션 보안
1. 세션 만료 시간 설정
2. 세션 ID 재사용 금지 및 토큰 무효화
3. 세션 ID의 URL 노출 금지
4. 로그인 이후에 예측 불허한 무작위 세션 아이디를 생성하는 서버 측의 안전한 내장 세션 관리자를 사용.
인증 보안
1. 다중 인증(Multi-factor Authentication) 도입하기
2. 강력한 패스워드 정책(Strong Password Policy)
3. 패스워드의 평문 노출 금지
4. 로그인 실패 시 메시지 단일화
5. 로그인 시도 횟수 제한하기
6. Admin 계정은 기본 계정 정보를 사용하여 제공하거나 배포하지 않기
7. 계정 공격 시도의 모든 결과에 대해 동일한 메시지 사용하여 등록, 계정 정보 복구, API 경로를 강화함.
'감자 키우기' 카테고리의 다른 글
[OWASP] Injection 개념 정리 및 대응방안 (0) | 2021.07.02 |
---|