방명록
- A01:2021-Broken Access Control2023년 08월 27일 12시 49분 54초에 업로드 된 글입니다.작성자: IIIIIIIIIIIIIIIIIIIIl
소개
본 취약점은 액세스 제어에 실패하여 인가되지 않은 사용자가 액세스하거나, 허용되지 않은 기능을 사용할 수 있는 취약점입니다. 예를 들어, 권한 없이 다른 사용자의 데이터를 볼 수 있는 경우, 관리자 권한을 가지지 않은 사용자가 시스템을 관리할 수 있는 경우 등이 있습니다.
일반적으로 웹애플리케이션에서는 관리자가 존재하고 관리자 페이지를 통해 사용자의 액세스 제어 규칙을 정의하고 부여 합니다. 보편적으로 액세스 제어 이슈가 발생하게 되면 심각한 취약성을 나타내는 경우가 많습니다.
액세스 제어 유형
보편적으로 사용자 관점에서 액세스 제어는 세 가지 통제 유형으로 분류할 수 있습니다.
- 수평적 액세스 제어(Horizontal Access Control): 같은 계층의 사용자들이 동일한 권한을 갖도록 하여 접근을 제어하는 방식으로 예를 들어 쇼핑몰 사이트에서 자신의 계정에서 거래를 보고 결제할 수 있지만 다른 사용자의 계정은 볼 수 없습니다. 일반적으로 역할 기반 액세스 제어(Role-Based Access Control)와 관련이 있습니다.
- 수직적 액세스 제어(Vertical Access Control): 서로 다른 계층의 사용자들이 다른 권한을 갖도록 하여 접근을 제어하는 방식으로 예를 들어 관리자는 사용자의 계정을 수정하거나 삭제할 수 있지만 일반 사용자는 이러한 작업에 액세스할 수 없습니다. 일반적으로 권한 기반 액세스 제어(Permission-Based Access Control)와 관련이 있습니다.
- 문맥 의존성 접근 통제(Context-dependent Access Control): 액세스 제어를 위해 어떤 요청이 들어오는지, 사용자가 누구인지, 시스템에서 어떤 정보가 처리되는지와 같은 추가적인 정보를 고려하여 접근을 제어하는 방식입니다. 예를 들어 같은 권한을 가진 사용자라 할지라도, 시간이나 장소에 따라 액세스할 수 있는 데이터가 달라질 수 있습니다.
취약한 예
- 수직 권한 상승 : 권한이 낮은 사용자가 액세스가 허용되지 않는 기능에 액세스할 수 있는 문제로 예를 들어 관리자가 아닌 사용자가 관리 페이지에 액세스할 수 있는 경우 이는 수직 권한 상승 문제입니다.
- Unprotected functionality : 사용자가 예측 가능한 키워드를 사용하여 관리자 페이지에 접속하고 이를 적절하게 제어하지 않아 권한이 낮은 사용자가 접근할 수 있는 문제
- Parameter-based access control methods : 로그인 시 사용자의 액세스 권한 또는 역할을 결정하는 정보를 숨겨진 필드, 쿠키 또는 쿼리 매개변수와 같이 사용자가 제어할 수 있는 위치에 저장하여 이를 악용하여 타인의 권한을 사용할 수 있는 문제
- 수평 권한 상승 : 사용자가 다른 사용자에게 속한 리소스에 액세스할 수 있는 문제로 예를 들어 사용자 인사정보는 본인만 액세스할 수 있어야 하지만 취약한 경우 다른 사용자의 인사 정보에 액세스할 수 있는 경우 이는 수평적 권한 상승 문제입니다.
참고자료
Access control vulnerabilities and privilege escalation | Web Security Academy (portswigger.net)
'웹애플리케이션 해킹 > OWASP Top 10:2021' 카테고리의 다른 글
A06:2021-Vulnerable and Outdated Components (0) 2023.08.30 A04:2021-Insecure Design (0) 2023.08.28 A03:2021-Injection (0) 2023.08.28 A02:2021-Cryptographic Failures (0) 2023.08.27 OWASP Top 10:2021 소개 (0) 2023.08.27 다음글이 없습니다.이전글이 없습니다.댓글