[보안권고] API 접근통제 및 객체 수준 권한 검증(BOLA) 취약점 대응 가이드
1. 개요
2026년 10월 들어 웹 서비스 및 API(Application Programming Interface)를 대상으로 한 공격이 지속되고 있으며, API의 접근 통제 미흡을 악용해 개인정보와 계정 관련 정보를 무단으로 조회하는 보안 위협에 주의가 필요합니다.
특히 BOLA(Broken Object Level Authorization)는 API 요청에 포함된 객체 식별자(예: 회원 번호, UID, 문서 번호 등)를 변조해 다른 사용자의 데이터에 무단으로 접근할 수 있는 취약점입니다.
이러한 취약점은 서버 측에서 요청 주체가 해당 객체에 접근할 권한이 있는지 충분히 검증하지 않을 때 발생합니다.
공격자는 이를 악용해 다른 사용자의 개인정보를 조회하거나 데이터를 무단으로 변경·삭제할 수 있으며, 노출된 정보와 서비스 구조에 따라 추가적인 계정 탈취 공격으로 이어질 수 있습니다.
또한 내부용 회원 조회 API나 관리자용 API가 적절한 접근통제 없이 외부에 노출된 경우, 개인정보 유출 및 서비스 침해 위험이 더욱 커질 수 있습니다.
2. 주요 취약점 발생 원인
- 객체 수준 권한 검증 미흡: API 요청에 포함된 객체 식별자를 기준으로 데이터를 조회하면서, 요청 주체가 해당 객체에 접근할 권한이 있는지 서버 측에서 검증하지 않는 경우
- 예측 가능한 객체 식별자: 순차적인 회원 번호 등 추측하기 쉬운 식별자를 사용해 공격자가 다수의 객체를 열거하거나 반복적으로 조회하기 쉬운 경우
- 내부용 API의 외부 노출: 내부용 회원 조회 기능이나 관리자용 API가 외부 인터넷 구간에 노출되어 있거나, 접근 가능한 사용자와 기능에 대한 통제가 미흡한 경우
- 비정상적인 데이터 조회 탐지 미흡: 짧은 시간 동안 다수의 회원 정보를 조회하거나 여러 객체 식별자를 반복적으로 변경하는 행위를 탐지·차단할 수 있는 체계가 미흡한 경우
3. 권고사항
① 서버 측 객체 수준 권한 검증 강화
- API 요청을 처리할 때마다 인증된 사용자 또는 요청 주체가 해당 객체에 접근하거나 변경할 권한이 있는지 서버 측에서 검증합니다.
- 데이터베이스 조회 시 객체 식별자만으로 데이터를 반환하지 않도록 하고, 사용자·조직·역할 등 서비스의 권한 정책에 따른 접근 조건을 함께 적용합니다.
- 조회뿐 아니라 데이터 생성·수정·삭제 등 객체에 영향을 미치는 모든 API에 대해 적절한 권한 검증을 수행합니다.
- 사용자 또는 조직별 접근 권한이 변경되더라도 검증 절차가 누락되지 않도록 공통 권한 검증 로직과 관련 테스트를 적용합니다.
② 객체 식별자 관리 및 개인정보 반환 최소화
- 객체 식별자가 외부에 노출되는 경우 예측하기 어려운 식별자를 적용하는 방안을 검토합니다.
단, UUID 등 예측하기 어려운 식별자를 사용하더라도 권한 검증을 대체할 수 없으므로 반드시 서버 측 접근통제를 함께 적용합니다. - API 응답에는 서비스 제공에 필요한 최소한의 정보만 포함하고, 불필요한 개인정보와 계정 관련 정보가 반환되지 않도록 점검합니다.
- 오류 응답에 내부 시스템 정보나 민감한 데이터가 노출되지 않도록 예외 처리와 응답 데이터를 관리합니다.
③ 내부용·관리자용 API 접근통제 강화
- 내부용 회원 조회 기능과 관리자용 API가 외부 인터넷 구간에 불필요하게 노출되어 있는지 점검합니다.
- 내부 업무용 API는 업무상 필요한 접근 경로를 식별하고, 네트워크 분리, VPN, API 게이트웨이, IP 허용 목록(Allowlist) 등 적절한 통제 수단을 적용합니다.
- API의 기능과 사용자 역할에 따라 접근 권한을 최소한으로 부여하고, 불필요한 API 엔드포인트는 비활성화하거나 외부 접근을 차단합니다.
- 내부망이나 허용된 IP에서 접근하는 경우에도 사용자 인증과 권한 검증을 생략하지 않도록 합니다.
④ 비정상적인 API 요청 탐지 및 접근 제한
- 단일 계정이나 IP에서 짧은 시간 동안 다수의 회원 정보 또는 서로 다른 객체를 반복적으로 조회하는 행위를 모니터링합니다.
- 반복적인 식별자 변경, 비정상적인 조회량, 평소와 다른 접근 패턴 등을 탐지할 수 있도록 API 로그와 보안 모니터링 정책을 점검합니다.
- 서비스 특성에 맞춰 레이트 리미팅(Rate Limiting), 요청 빈도 제한, WAF(Web Application Firewall) 등의 보안 통제를 적용합니다.
- 비정상적인 접근이 확인되면 해당 요청을 제한하고, 관련 로그를 분석해 개인정보 유출 여부와 추가적인 침해 가능성을 확인합니다.
4. 자체 점검 항목
시스템 운영·개발 담당자는 다음 항목을 중심으로 주요 API의 보안 설정과 접근통제 상태를 점검하시기 바랍니다.
- 회원 정보 및 개인정보 조회 API에 객체 수준 권한 검증이 적용되어 있는가?
- 다른 사용자 또는 다른 조직의 객체 식별자로 요청했을 때 권한이 없는 접근이 차단되는가?
- 비로그인 사용자와 권한이 없는 계정의 API 접근이 적절히 차단되는가?
- 내부용 회원 조회 API와 관리자용 API가 불필요하게 외부에 노출되어 있지 않은가?
- API 응답에 불필요한 개인정보나 계정 관련 정보가 포함되어 있지 않은가?
- 다수의 객체를 반복적으로 조회하는 비정상적인 요청을 탐지하고 기록할 수 있는가?
5. 대응 및 조치 권고
API 접근통제 미흡으로 인한 개인정보 유출과 계정 침해를 예방하기 위해 운영 중인 주요 API 엔드포인트와 권한 검증 로직을 점검하시기 바랍니다.
특히 회원 정보 조회 기능, 내부 업무용 API, 관리자용 API 등 민감한 정보에 접근할 수 있는 기능을 우선적으로 확인하고, 권한 검증 누락이나 불필요한 외부 노출이 확인되면 신속히 개선하시기 바랍니다.
이미 비정상적인 API 접근이나 개인정보 유출이 의심되는 경우에는 관련 로그와 접근 이력을 보존하고, 영향 범위 및 추가적인 계정 침해 여부를 확인하는 등 필요한 대응 조치를 수행하시기 바랍니다.