라스컴 시큐리티
HOME
  • 수행실적
  • 정보보호가이드
  • 수행실적

    정보보호가이드

    OWASP Top 10 2021: A01 – Broken Access Control(취약한 액세스 제어)

    페이지 정보

    profile_image
    작성자 라스컴
    댓글 댓글 0건   조회Hit 6,522회   작성일Date 23-11-03 19:22

    본문

    "모의해킹 · 보안취약점진 · 정보보호컨설팅" 전문기업 『라스컴 시큐리티  www.lassecu.com  T:1522-3863  secu@lascom.co.kr      



    안녕하세요 라스컴 시큐리티입니다.


    2021년 발표된 OWASP Top 10을 하나씩 소개 드립니다.

    오늘 주제는 A01: Broken Access Control(취약한 액세스 제어) 입니다.



    취약점 설명


    접근 제어는 정책 집행을 통해 사용자들이 각기 부여된 권한을 벗어난 행동을 할 수 없도록 합니다.

    접근 제어에 실패하는 경우, 데이터가 무단으로 공개/수정/파기되거나 사용자가 제한된 범위 이상의 비즈니스 기능을 수행할 수 있습니다.


    액세스 제어 취약점은 일반적으로 다음과 같습니다:


    · 최소 권한 원칙/거부 기본 원칙의 위반. 특정 기능, 역할 또는 사용자에 대해서만 액세스 권한을 부여해야 하지만 누구나 액세스할 수 있게 된 경우.


    · 접근 제어 검사 우회. URL(매개변수 변조 또는 강제 브라우징)/내부 애플리케이션 상태/HTML 페이지를 수정하거나 공격 도구를 사용하여 API 요청을 수정하는 경우. 


    · 고유 식별자(불안전하고 직접적인 객체 참조)를 제공하여, 타인의 계정을 조회 또는 편집할 수 있도록 허용하는 경우


    · POST, PUT, DELETE에 대한 액세스 제어가 누락된 API에 액세스할 수 있는 경우.


    · 권한 상승. 로그인하지 않은 상태에서 사용자로 행동하거나 사용자로 로그인한 상태에서 관리자로 행동하는 경우.


    · 메타데이터 조작. 'JSON 웹 토큰'(JWT) 액세스 제어 토큰을 변조하거나 리플레이 하는 행위, 권한 상승/JWT 무효화를 위해 쿠키 또는 히든 필드를 조작하는 행위.


    · CORS(Cross-Origin Resource Sharing)가 잘못 구성되어 권한이 없거나 신뢰할 수 없는 출처에서 API에 액세스할 수 있는 경우.


    · 인증되지 않은 사용자가 인증된 페이지로, 일반 사용자가 권한이 필요한 페이지로 강제 브라우징(Force browsing) 되는 경우.



    방지 방법


    접근 제어는 신뢰할 수 있는 서버측 코드나 서버리스 API에서만 유효합니다(공격자가 접근 제어 검사 또는 메타데이터를 수정할 수 없는).


    · 공용 리소스를 제외하면 기본적으로 접근을 거부합니다.


    · 접근 제어 메커니즘을 애플리케이션 전체에 일괄 적용시킵니다(CORS 사용 최소화 포함). 


    · 사용자에게 레코드 생성, 읽기, 업데이트, 삭제를 허용하지 않습니다.


    · 도메인 모델에 따라 고유한 애플리케이션 비즈니스 제한 요건이 적용되어야 합니다.


    · 웹 서버 디렉토리 목록을 비활성화하고 파일 메타데이터(.git 등) 및 백업 파일이 웹 루트 내에 존재하지 않도록 합니다.


    · 액세스 제어 실패를 기록하고, 필요한 경우(반복되는 실패 등) 관리자에게 알립니다.


    · API와 컨트롤러 접근에 호출 제한(Rate limit)을 걸어 자동화 공격 도구로 인한 피해를 최소화합니다.


    · 로그아웃 후에는 상태 저장(Stateful) 세션 식별자가 서버에서 무효화되어야 합니다.

      상태 비저장(Stateless) JWT 토큰은 공격자의 공격 기회가 최소화되도록 수명이 짧은 것이 좋습니다.

      수명이 긴 JWT는 OAuth 표준에 따라 액세스를 취소하는 것이 좋습니다.


    개발자와 QA 담당자는 기능적 접근 제어 장치와 통합 테스트를 포함해야 합니다.




    공격 시나리오 예제 


    시나리오 #1: 애플리케이션이 계정 정보에 액세스하는 SQL 호출에 검증되지 않은 데이터를 사용하는 경우.

    409d022308128334438f777bbc58b83b_1699006776_5335.jpg
     

    공격자는 원하는 계정 번호를 전송하도록 하기 위해 브라우저의 'acct' 파라미터만 수정하면 됩니다. 

    이렇게 제대로 검증하지 않는 경우 공격자는 모든 사용자 계정에 접근할 수 있습니다.

    409d022308128334438f777bbc58b83b_1699006793_0302.jpg
     


    시나리오 #2: 공격자가 타겟 URL로 강제 브라우징하는 경우. 관리자 페이지에 액세스하려면 관리자 권한 필요.

    409d022308128334438f777bbc58b83b_1699006804_8846.jpg
     

    인증되지 않은 사용자가 각각의 페이지에 액세스할 수 있다면 취약점입니다. 관리자가 아닌 사용자가 관리자 페이지에 액세스할 수 있다면 취약점입니다.




    상세 원문은 아래 링크를 통해 확인하실 수 있습니다.

    https://owasp.org/Top10/A01_2021-Broken_Access_Control/ 




    전문 정보보안 컨설턴트가 제공하는 웹 취약점 점검 서비스가 필요하실 때, 

    라스컴 시큐리티로 문의 주시면 친절하고 상세하게 안내 드리겠습니다.


    감사합니다.


    모의해킹 · 취약점진단 · 정보보호컨설팅

    보안컨설팅 전문기업 - 라스컴 시큐리티
    www.lassecu.com         www.lascom.co.kr

    070-4910-9042           secu@lascom.co.kr 


    409d022308128334438f777bbc58b83b_1698827120_4552.png