Research Institute
  • A01:2021-Broken Access Control
    2023년 08월 27일 12시 49분 54초에 업로드 된 글입니다.
    작성자: IIIIIIIIIIIIIIIIIIIIl

    소개

    본 취약점은 액세스 제어에 실패하여 인가되지 않은 사용자가 액세스하거나, 허용되지 않은 기능을 사용할 수 있는 취약점입니다. 예를 들어, 권한 없이 다른 사용자의 데이터를 볼 수 있는 경우, 관리자 권한을 가지지 않은 사용자가 시스템을 관리할 수 있는 경우 등이 있습니다.

    일반적으로 웹애플리케이션에서는 관리자가 존재하고 관리자 페이지를 통해 사용자의 액세스 제어 규칙을 정의하고 부여 합니다. 보편적으로 액세스 제어 이슈가 발생하게 되면 심각한 취약성을 나타내는 경우가 많습니다.

    [그림1]  Broken Access Control 취약점 예제

    액세스 제어 유형

    보편적으로 사용자 관점에서 액세스 제어는 세 가지 통제 유형으로 분류할 수 있습니다.

    1. 수평적 액세스 제어(Horizontal Access Control): 같은 계층의 사용자들이 동일한 권한을 갖도록 하여 접근을 제어하는 방식으로 예를 들어 쇼핑몰 사이트에서 자신의 계정에서 거래를 보고 결제할 수 있지만 다른 사용자의 계정은 볼 수 없습니다. 일반적으로 역할 기반 액세스 제어(Role-Based Access Control)와 관련이 있습니다.
    2. 수직적 액세스 제어(Vertical Access Control): 서로 다른 계층의 사용자들이 다른 권한을 갖도록 하여 접근을 제어하는 방식으로 예를 들어 관리자는 사용자의 계정을 수정하거나 삭제할 수 있지만 일반 사용자는 이러한 작업에 액세스할 수 없습니다. 일반적으로 권한 기반 액세스 제어(Permission-Based Access Control)와 관련이 있습니다.
    3. 문맥 의존성 접근 통제(Context-dependent Access Control): 액세스 제어를 위해 어떤 요청이 들어오는지, 사용자가 누구인지, 시스템에서 어떤 정보가 처리되는지와 같은 추가적인 정보를 고려하여 접근을 제어하는 방식입니다. 예를 들어 같은 권한을 가진 사용자라 할지라도, 시간이나 장소에 따라 액세스할 수 있는 데이터가 달라질 수 있습니다.

    취약한 예

    1. 수직 권한 상승 : 권한이 낮은 사용자가 액세스가 허용되지 않는 기능에 액세스할 수 있는 문제로 예를 들어 관리자가 아닌 사용자가 관리 페이지에 액세스할 수 있는 경우 이는 수직 권한 상승 문제입니다.
      1. Unprotected functionality : 사용자가 예측 가능한 키워드를 사용하여 관리자 페이지에 접속하고 이를 적절하게 제어하지 않아 권한이 낮은 사용자가 접근할 수 있는 문제
      2. Parameter-based access control methods : 로그인 시 사용자의 액세스 권한 또는 역할을 결정하는 정보를 숨겨진 필드, 쿠키 또는 쿼리 매개변수와 같이 사용자가 제어할 수 있는 위치에 저장하여 이를 악용하여 타인의 권한을 사용할 수 있는 문제
    2. 수평 권한 상승 : 사용자가 다른 사용자에게 속한 리소스에 액세스할 수 있는 문제로 예를 들어 사용자 인사정보는 본인만 액세스할 수 있어야 하지만 취약한 경우 다른 사용자의 인사 정보에 액세스할 수 있는 경우 이는 수평적 권한 상승 문제입니다.

    참고자료

    Access control vulnerabilities and privilege escalation | Web Security Academy (portswigger.net)

    액세스 제어 취약성 및 권한 에스컬레이션 | 웹 보안 아카데미 (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
    댓글