API1:2023 Broken Object Level Authorization
취약한 API
Object Level 인증은 사용자가 액세스 권한이 있어야 하는 개체에만 액세스할 수 있는지 확인하기 위해 일반적으로 코드 수준에서 구현되는 액세스 제어 메커니즘입니다.
객체의 ID를 수신하고 객체에 대한 작업을 수행하는 모든 API end-points는 객체 수준 인증 확인을 구현해야 합니다. 검사에서는 로그인한 사용자에게 요청된 개체에 대해 요청된 작업을 수행할 수 있는 권한이 있는지 확인해야 합니다.
이 메커니즘의 실패는 일반적으로 모든 데이터의 무단 공개, 수정 또는 파괴로 이어집니다.
현재 세션의 사용자 ID(예: JWT 토큰에서 추출)를 취약한 ID 매개변수와 비교하는 것은 BOLA(Broken Object Level Authorization)를 해결하는 데 충분한 솔루션이 아닙니다. 이 접근 방식은 사례의 작은 하위 집합만 처리할 수 있습니다.
BOLA의 경우 사용자가 취약한 API end-points기능에 액세스할 수 있도록 설계되었습니다. ID를 조작하여 개체 수준에서 위반이 발생합니다. 공격자가 액세스 권한이 없어야 하는 API endpoint/function에 액세스하는 경우 이는 BOLA가 아닌 BFLA(Broken Function Level Authorization)의 경우입니다.