2023년 OWASP 상위 10대 API 보안 리스크 목록에 따르면 손상된 오브젝트 수준 권한(BOLA)는 애플리케이션 프로그래밍 인터페이스(API)에 대한 1위 위협으로 간주되는 보안 취약점입니다. BOLA 취약점은 웹 애플리케이션의 접속 제어 메커니즘의 결함으로, 사용자가 IT 환경 내의 데이터베이스 레코드, 파일 또는 기타 리소스에 접속하거나 오브젝트를 조작할 수 있도록 합니다. 애플리케이션의 메커니즘이 접속을 제대로 통제하지 않으면 권한이 없는 사용자가 접속할 수 없는 오브젝트에 대한 작업을 수행할 수 있습니다.
손상된 오브젝트 프로퍼티 수준의 권한 확인(BOPLA)은 애플리케이션 프로그래밍 인터페이스(API)의 보안 취약점을 말합니다. 권한 확인이 적절하지 않으면 해커가 민감한 오브젝트의 속성을 보거나 조작할 수 있습니다. 이로 인해 데이터 손실, 민감한 데이터 노출, 권한 상승 또는 계정 탈취가 발생할 수 있습니다. BOPLA는 2023년 OWASP 상위 10대 API 보안 문제 목록에서 3위에 올랐습니다.
BOPLA 취약점이란 무엇일까요?
웹 애플리케이션은 데이터베이스 레코드나 파일 같이 오브젝트에 대한 정보를 API에 쿼리해 데이터를 검색하고 프런트 엔드 페이지의 필드를 채웁니다. 각 오브젝트는 일반적으로 여러 데이터 포인트 또는 "속성"을 포함합니다. 예를 들어, 사용자 계정과 연결된 프로필에는 first_name, last_name, email_address, password, SSN_number, is_admin과 같은 속성이 포함될 수 있으며, 이는 사용자에게 관리 권한이 있는지 여부를 나타냅니다.
API 호출 중에 API는 응답 시 기술적으로 필요한 것보다 더 많은 정보를 전송하는 경우가 많기 때문에 클라이언트 애플리케이션이 필요한 데이터를 추출하고 사용자가 볼 수 있도록 렌더링합니다. 이 취약점은 아래의 두 가지 다른 방식으로 API 엔드포인트에 리스크를 만듭니다.
과도한 데이터 노출 API 응답에 요청된 API 호출보다 더 많은 정보가 포함될 때 노출이 발생합니다. 이 예에서는 사용자 또는 앱이 접속해서는 안 되는 민감한 정보(암호 및 SSN_NUMBER)가 포함되어 있습니다. 웹사이트나 앱에 표시되는 API 응답의 경우 과도한 데이터 중 일부는 API 응답 자체에만 있으며 쉽게 추출할 수 있습니다.
대규모 할당 이는 API 엔드포인트가 권한이 없는 사용자가 오브젝트 속성 값을 변경, 추가 또는 삭제할 수 있도록 허용할 때 발생합니다. 위의 예제 레코드에서 API 응답이 불필요하게 is_admin 속성이 존재함을 드러내면 공격자는 is_admin 속성을 true로 변경하여 무단으로 권한을 높일 수 있습니다. 이렇게 하면 공격자는 다른 속성을 변경하거나 액세스하지 말아야 하는 다른 오브젝트에 액세스할 수도 있습니다.
BOPLA는 2023년 OWASP 상위 10대 API 보안 문제에서 처음 도입되어, 이전 목록에서는 개별적이었던 과도한 데이터 노출과 대량 할당의 두 가지 위협을 결합했습니다.
BOPLA와 BOLA는 어떻게 다른가요?
BOPLA는 OWASP 상위 10대 API 보안 목록의 1위에 있는 손상된 오브젝트 수준 권한 확인(BOLA)과 관련이 있습니다. 그러나 BOLA는 전체 오브젝트에 접속할 수 있는 권한을 의미하는 반면, BOPLA는 오브젝트 내의 개별 속성에 영향을 주는 취약점을 의미합니다.
손상된 오브젝트 수준 권한(BOLA)과 BOPLA의 차이점은 BOLA는 전체 오브젝트를 참조하는 반면 BOPLA는 오브젝트 내의 속성을 참조한다는 점입니다.
API가 BOLA 공격을 방지하기에 충분한 오브젝트 수준 권한을 적용하더라도 이러한 조치는 BOPLA 공격을 방어하기에 충분하지 않을 수 있습니다. BOPLA 취약점을 경감하기 위해 팀은 오브젝트와 그 특성을 포괄하는 보다 구체적인 권한을 도입해야 하며, 종종 퍼블릭 및 프라이빗 속성을 모두 포함하는 API 오브젝트 내의 다양한 접속 수준도 고려해야 합니다.
BOPLA 공격은 어떤 피해를 줄 수 있나요?
공격자는 BOPLA 취약점에 초점을 맞춘 공격을 통해 다음을 수행할 수 있습니다.
- 액세스 권한이 없는 오브젝트의 속성 변경
- 접속이 금지된 민감한 데이터 확인
- 계정 탈취를 위한 권한 에스컬레이션
BOPLA 취약점을 탐지하기 어려운 이유는 무엇인가요?
전통적으로 보안팀은 웹 애플리케이션 방화벽과 API 게이트웨이 에 의존해 위협으로부터 API를 방어해 왔습니다. 그러나 WAF와 API 게이트웨이 보안은 비즈니스 로직과 API 컨텍스트를 고려하지 않기 때문에 API를 통해 전송되는 민감한 데이터를 탐지하거나 개별 데이터 자산이 나타내는 노출 수준을 파악할 수 없습니다. 또한 이러한 API 보안 솔루션은 정상적인 호출과 악성 활동을 항상 구분할 수 없습니다. 예를 들어, 추가 매개변수가 포함된 PUT 메소드를 사용해 요청을 보내는 악성 API 호출은 WAF 또는 API 게이트웨이에 대한 일반적인 API 호출처럼 보입니다.
BOPLA 취약점을 탐지하기 위해 보안팀은 API 요청 및 응답에 포함될 수 있는 광범위한 민감한 데이터 유형을 식별하고 보고할 수 있는 기술이 필요합니다. 우수한 솔루션은 공격자가 무단 매개변수로 API 요청을 조작하는 비정상적인 활동도 추적해야 합니다. 각 엔드포인트와 사용자에 대한 API 접속의 기준선 및 추적 기능은 과도한 소비를 식별하고 API 호출의 추가 매개변수가 정상적인 행동을 벗어나는 인스턴스를 발견하는 데 도움이 될 수 있습니다. 또한 API 보안은 API의 구조와 비즈니스 로직을 이해하려는 공격자가 공격 탐색 단계에서 API를 탐색하는 것을 알아내야 합니다.
BOPLA 공격은 어떻게 방지할 수 있나요?
코드가 안전한지, 오브젝트 속성 권한에 문제가 없는지 확인하는 것이 개발의 최우선 과제입니다. 그러나 보안팀이 통제할 수 없는 써드파티 API에서 BOPLA 취약점이 점점 더 많이 발생하고 있습니다.
보안팀은 BOPLA 공격을 방지하기 위해 몇 가지 필수 단계를 수행할 수 있습니다.
개발자에 대한 보안 코드 교육 보안팀은 개발자가 속성 수준의 권한을 올바르게 할당해야 한다는 점을 이해하는 동시에 모든 API 엔드포인트에 대해 표준화된 권한 부여 전략을 적용하도록 지원해야 합니다. 보안 코드는 모든 참조 리소스의 사용자 권한 수준과 권한 요구 사항을 고려해야 합니다. 보안 정책은 허용 목록을 통해 편집 가능한 필드가 무엇인지 엄격하게 통제해야 합니다. 또한 개발자는 API 응답에서 반환되는 데이터의 양과 종류에 대해 신중하게 생각해야 하며, 잘 알려진 사용 사례에 필요한 데이터만 포함해야 합니다.
제로 트러스트. 보안에 대한 제로 트러스트 접근 방식의 기본 요소인 최소 권한 원칙을 시행하면 사용자가 필요한 최소 수준으로 접속이 제한되어 BOPLA 공격을 방지하거나 이로 인한 피해를 제한할 수 있습니다.
식별. 팀은 취약한 API 엔드포인트를 식별함으로써 개발자에게 문제를 알리고 벤더사가 자신의 API가 취약한 시점을 알릴 수 있습니다.
모니터링: API 보안 툴은 BOPLA 취약점을 악용하는 대규모 할당을 비롯하여 공격에 대한 트래픽을 모니터링할 수 있습니다.
강력한 권한 확인 API 엔드포인트에서 오브젝트를 노출할 때 권한 확인 프로세스를 통해 사용자가 정말 오브젝트 속성에 접속이 허용되는지 확인해야 합니다. 역할 기반 접속 제어(RBAC)를 도입하면 권한이 부여된 개인만 특정 속성에 접속할 수 있습니다.
감사 및 업데이트. 권한을 지속적으로 확인하고 업데이트하면 최신 상태와 정확성을 유지할 수 있습니다.
자주 묻는 질문(FAQ)
API(Application Programming Interface)는 매우 다양한 소프트웨어 프로그램 및 구성요소가 통신, 데이터 교환 및 공유 기능을 지원할 수 있게 해주는 프로토콜 및 정의입니다. API는 애플리케이션이 상호 작용하는 방식을 정의함으로써 다양한 소프트웨어 시스템이 이커머스, 모바일 결제, 소셜 미디어 클라우드 서비스 및 기타 다양한 컴퓨팅 영역에서 중요한 기능을 지원하는 정보를 요청하고 공유할 수 있도록 지원합니다.
OWASP(Open Worldwide Application Security Project)는 소프트웨어 보안 향상을 목표로 하는 비영리 단체입니다. OWASP는 매년 웹 애플리케이션과 API에 대한 상위 10대 보안 리스크 목록을 발표합니다. 이 보고서는 전 세계 보안 전문가 팀이 작성합니다.
고객이 Akamai를 선택하는 이유
Akamai는 온라인 비즈니스를 지원하고 보호하는 사이버 보안 및 클라우드 컴퓨팅 기업입니다. 시장을 대표하는 보안 솔루션, 탁월한 위협 인텔리전스, 글로벌 운영팀이 모든 곳에서 기업 데이터와 애플리케이션을 보호하는 심층적 방어 기능을 제공합니다. Akamai의 풀스택 클라우드 컴퓨팅 솔루션은 세계에서 가장 분산된 플랫폼에서 성능과 경제성을 제공합니다. 글로벌 기업들은 자신감 있게 비즈니스를 성장시키는 데 필요한 업계 최고 수준의 안정성, 확장성, 전문성을 제공하는 Akamai를 신뢰합니다.