접근 제어(Access Control)란 사용자에게 허용 또는 거부의 권한을 부여하여 사용자가 주어진 권한을 벗어나 행동하는 것을 막는 것이다. 접근 제어가 취약하게 구현되어 있을 경우 사용자는 주어진 권한을 벗어나 허용되지 않은 데이터나 자원에 접근하여, 조회, 삭제, 갱신 등을 할 수 있게 된다.
OWASP TOP 10 2017에서는 A05로 확인되나 2021에서는 4단계 상승한 A01로 선정되었다. 그만큼 공격자들이 관련된 취약점을 이용한다는 것으로 판단된다. 또한, 과거에 비해 다수의 서비스를 제공하고, 페이지 수정 및 추가 등으로 인한 접근통제의 어려운 문제도 영향을 주었을 것으로 판단된다.
적절한 대응 책으로는, 초기 계획 단계부터 접근 권한과 관련된 계획을 세워야 할 필요가 있다. 설계 및 구현 단계에 적용해, 테스트 단계에서 검증을 수행하는 것이다. 그리고, 서비스 및 페이지가 추가되거나 변경될 경우 접근 권한이 누락 없이 적절히 적용되도록 해야 한다. 또한, 접근 권한의 적정성에 대해 주기적인 검토가 필요하다. 추가적으로 기본적으로 모든 접근에 대해 차단 정책을 적용하고, 접근이 가능한 대상을 지정하는 화이트리스트 기반 정책을 수립한다.
취약점 유형
일부 사용자(ex. 관리자)에게만 부여되어야 하는 권한을 모든 사용자들에게 부여할 경우
URL 파라미터, 쿠키 값 등을 변조하여 인증이 필요한 페이지에 접근하거나 타 사용자의 권한을 사용할 수 있는 경우
사용자 권한으로 로그인 후 관리자 권한으로 권한으로 상승하거나 활동할 수 있는 경우
DELET, PUT 등의 API 요청에 대한 접근제어가 누락된 경우
API 서버의 보안 설정 미흡
대응방안
계획 단계부터 적절한 접근권한 계획 수립 및 적용
서비스, 페이지의 생성, 변경 등에 따른 접근권한이 누락없이 적용되도록 관리
접근권한 적정성 검토
기본적으로 모든 접근을 차단하고, 접근이 가능한 대상을 지정(화이트리스트 기반)
공격 시나리오
참고
'취약점 > OWASP TOP 10' 카테고리의 다른 글
A05: Security Misconfiguration (보안설정오류) (0) | 2022.09.13 |
---|---|
A04: Insecure Design (안전하지 않은 설계) (0) | 2022.09.10 |
A03: Injection (인젝션) (0) | 2022.09.07 |
A02 : Cryptographic Failures (암호화 오류) (0) | 2022.09.05 |
OWASP TOP 10 (0) | 2022.08.28 |