일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- cloud
- hacking
- Vulnerability
- 클라우드
- 웹 개발
- 인터랙티브 자바스크립트
- VUL
- VPC
- web
- EC2
- Lambda
- JavaScript
- owasp
- API Gateway
- aws
- S3
- Today
- Total
yubyeong
OWASP TOP 10 -A07 (Identification and Authentication Failures :식별 및 인증 오류) 본문
OWASP TOP 10 -A07 (Identification and Authentication Failures :식별 및 인증 오류)
yubyeong 2025. 5. 7. 19:01A01 | Broken Access Control (접근 권한 취약점) |
A02 | Cryptographic Failures (암호화 오류) |
A03 | Injection (인젝션) |
A04 | Insecure Design (안전하지 않은 설계) |
A05 | Security Misconfiguration (보안설정오류) |
A06 | Vulnerable and Outdated Components (취약하고 오래된 소스) |
A07 | Identification and Authentication Failures (식별 및 인증 오류) |
A08 | Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 오류) |
A09 | Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패) |
A10 | Server-Side Request Forgery (서버 측 요청 위조) |
A07 : Identification and Authentication Failures (식별 및 인증 오류)
- Previously known as Broken Authentication, this category slid down from the second position and now includes Common Weakness Enumerations (CWEs) related to identification failures. Notable CWEs included are CWE-297: Improper Validation of Certificate with Host Mismatch, CWE-287: Improper Authentication, and CWE-384: Session Fixation.
- 이전에는 ‘Broken Authentication(취약한 인증)”으로 알려졌던 이 카테고리는 2등에서 하락하여 이제 Identification failures(식별 실패)까지 포함하여 더 넓은 범위를 포함할 수 있도록 변경되었다.
- 주요 공통 취약점 목록(CWE)
- CWE-297: 호스트 불일치로 인한 인증서의 부적절한 유효성 검사
- CWE-287: 부적절한 인증
- CWE-384: 세션 고정
- 주요 공통 취약점 목록(CWE)
설명
- 사용자의 신원확인, 인증 및 세션 관리가 적절히 되지않을 때 취약점이 발생.
- 공격자가 유효한 사용자 이름과 비밀번호 목록을 가지고 있는 자격 증명 채우기와 같은 자동화된 공격을 허용.
- 무차별 대입 공격이나 기타 자동화된 공격을 허용.
- "Password1"이나 "admin"과 같은 기본, 취약한 또는 잘 알려진 비밀번호를 허용.
- URL에 세션 식별자를 표시.
- 로그인에 성공하면 세션 식별자를 재사용.
- 사용자가 로그 아웃해도 사용자 세션 ID, 인증 토큰(주로 SSO) 를 올바르게 무효화하지 않는다.
예방법
- 다중 요소 인증을 구현.
- 최악의 비밀번호 상위 10,000개와 비교 검증하여 취약한 비밀번호 검사를 구현.
- 로그인 실패 횟수를 제한하거나, 지연시키되 서비스 거부(DoS) 시나리오를 만들지 않게 한다.
- 크리덴셜 스터핑(다른 서비스에서 도난당한 사용자 이름과 비밀번호 쌍을 웹사이트 로그인 양식에 자동으로 주입해 사용자 계정에 대한 무단 접속), 무차별 대입 공격(브루트 포스) 또는 기타 공격이 감지되면 관리자에게 알린다.
- 개발자들은 권장되는 암호 길이, 복잡성 및 암호 회전 정책을 준수.
- 세션 식별자를 URL에 포함시켜서는 안 되며, 세션 ID는 로그아웃, 유휴 상태, 절대 시간 초과 후에는 무효화되어야 한다.
공격 시나리오 예시
시나리오 1: 알려진 비밀번호 목록을 사용하는 크리덴셜 스터핑은 흔한 공격. 애플리케이션이 자동화된 위협 또는 크리덴셜 스터핑 방어 기능을 구현하지 않았다고 가정한다. 이 경우, 해당 애플리케이션은 크리덴셜의 유효성을 판단하는 비밀번호 오라클(어떤 정보를 유추할 수 있게 해주는 시스템 또는 응답)로 사용될 수 있다.
시나리오 2: 대부분의 인증 공격은 비밀번호만을 유일한 인증 요소로 계속 사용하기 때문에 발생한다. 한때 모범 사례로 여겨졌던 비밀번호 주기적 변경과 복잡성 요구 사항은 오히려 사용자들이 약한 비밀번호를 사용하고 재사용하도록 만든다. 조직에서는 NIST 800-63에 따라 이러한 관행을 중단하고 다중 요소 인증을 사용할 것을 권장.
시나리오 3: 애플리케이션 세션 시간 제한이 올바르게 설정되지 않았다고 가정. 사용자가 공용 컴퓨터를 사용하여 애플리케이션에 접속. "로그아웃"을 선택하는 대신, 사용자는 브라우저 탭을 닫고 자리를 떠난다. 공격자가 한 시간 후에 동일한 브라우저를 사용하더라도 사용자는 여전히 인증된 상태.
Identification and Authentication Failures 항목의 CWE 목록
CWE-255 Credentials Management Errors
CWE-259 Use of Hard-coded Password
CWE-287 Improper Authentication
CWE-288 Authentication Bypass Using an Alternate Path or Channel
CWE-290 Authentication Bypass by Spoofing
CWE-294 Authentication Bypass by Capture-replay
CWE-295 Improper Certificate Validation
CWE-297 Improper Validation of Certificate with Host Mismatch
CWE-300 Channel Accessible by Non-Endpoint
CWE-302 Authentication Bypass by Assumed-Immutable Data
CWE-304 Missing Critical Step in Authentication
CWE-306 Missing Authentication for Critical Function
CWE-307 Improper Restriction of Excessive Authentication Attempts
CWE-346 Origin Validation Error
CWE-521 Weak Password Requirements
CWE-613 Insufficient Session Expiration
CWE-620 Unverified Password Change
CWE-640 Weak Password Recovery Mechanism for Forgotten Password
CWE-798 Use of Hard-coded Credentials
CWE-940 Improper Verification of Source of a Communication Channel
CWE-1216 Lockout Mechanism Errors
참고자료
https://owasp.org/www-project-top-ten/
https://velog.io/@minjeong-dev/2021-OWASP-10대-취약점
https://oobwrite.com/entry/OWASP-TOP10-2023-소개-및-정리