
다음 동영상은 보이지 않는 위협에 대해 간략하게 소개한 영상입니다.
클라우드 네이티브 환경과 마이크로서비스 아키텍처가 확산되면서 API는 현대 애플리케이션의 핵심 통신 수단이 되었습니다. 모바일 앱, SaaS 서비스, IoT 기기에 이르기까지 모든 디지털 접점이 API를 통해 연결되고 있죠.
문제는 이러한 API 환경이 급속도로 확장되면서 보안 관리가 따라가지 못하고 있다는 점입니다. 특히 문서화되지 않은 Shadow API, 삭제되지 않은 구버전의 Zombie API, 그리고 마이크로서비스 간 내부 API까지 고려하면 실제 운영 중인 API의 전체 규모를 파악하기조차 어려운 상황입니다. 게다가 HTTPS 암호화로 인해 네트워크 레벨에서 API 내용을 분석하기 어렵고, JSON 기반의 동적 구조는 전통적인 시그니처 기반 탐지를 무력화시킵니다.
OWASP에서 정의한 API Security Top 10은 API 환경에서 발생하는 가장 치명적인 보안 위협들을 정리한 것입니다. 그중에서도 특히 주의해야 할 두 가지 유형이 있습니다.
BOLA(Broken Object Level Authorization)는 인증된 사용자가 권한 없는 객체에 접근할 수 있는 취약점입니다. 예를 들어, 미국의 한 자동차 제조사에서는 Connected Car API의 userId 파라미터를 조작하는 것만으로 다른 사용자의 차량 위치 추적, 원격 잠금 제어, 개인정보까지 열람할 수 있었습니다. 단순히 URL의 ID 값을 바꾸는 것만으로 심각한 보안 침해가 발생한 것이죠.
BFLA(Broken Function Level Authorization)는 일반 사용자가 관리자 권한의 API를 호출할 수 있는 취약점입니다. 호텔 예약 플랫폼 사례에서는 UI에서는 보이지 않던 관리자 API 엔드포인트가 인증 토큰만 있으면 누구나 호출 가능한 상태였고, 이를 통해 객실 가격을 임의 조작하고 허위 예약을 생성하는 공격이 발생했습니다.
API 보안의 출발점은 "우리 시스템에 어떤 API가 존재하는지" 파악하는 것입니다. 하지만 이것이 생각보다 훨씬 어렵습니다.
일반 사용자의 앱 호출, 내부 마이크로서비스 간 통신, 외부 파트너의 오픈 API 사용, IoT 디바이스의 API 호출 등 다양한 경로에서 API 트래픽이 발생하기 때문입니다. 특히 마이크로서비스 환경에서는 하나의 서비스가 50~300개의 다른 서비스와 API로 연결되어 있어 전체 API 맵을 그리는 것 자체가 프로젝트가 됩니다.
효과적인 API 가시성 확보를 위해서는 자동화된 API 디스커버리, 트래픽 기반 미사용 API 식별, 그리고 레거시 API 추적 시스템이 필요합니다. Imperva와 같은 전문 솔루션은 네트워크 트래픽을 분석하거나 Kubernetes 환경에 사이드카 센서를 배포해 자동으로 API 인벤토리를 구축하고, 각 API가 처리하는 데이터 유형까지 분류합니다.
API 보안은 개발 단계부터 시작되어야 합니다. ShiftLeft 보안은 코드가 프로덕션에 배포되기 전 OpenAPI Specification(OAS) 파일을 분석해 설계 단계의 보안 취약점을 찾아냅니다. 인증 메커니즘이 빠진 엔드포인트, 과도하게 많은 데이터를 반환하는 API, 민감한 정보가 평문으로 전송되는 구조 등을 사전에 발견할 수 있습니다.
ShiftRight 보안은 운영 환경에서 실제 API 공격을 시뮬레이션하는 것입니다. OAS 파일이나 실제 트래픽을 기반으로 자동화된 공격 시나리오를 생성해 BOLA, BFLA, SQL Injection 등 다양한 취약점을 테스트합니다. 이를 통해 개발 단계에서 놓친 보안 이슈를 운영 전에 발견할 수 있습니다.
두 접근법을 결합하면 DevSecOps 파이프라인 내에서 API 보안이 자연스럽게 통합되어, 보안이 개발 속도를 저해하는 것이 아니라 품질을 높이는 과정이 됩니다.
전통적인 시그니처 기반 방어로는 API 공격을 막기 어렵습니다. 공격자들은 정상적인 인증 토큰을 사용하고, 합법적인 API 엔드포인트를 호출하며, 암호화된 HTTPS 통신을 이용하기 때문입니다.
현대적인 API 보안 솔루션은 머신러닝을 활용한 이상 행위 탐지를 제공합니다. 예를 들어, 특정 사용자가 평소와 달리 수천 건의 사용자 정보를 조회한다면 데이터 대량 유출 시도로 판단합니다. 일반 사용자 계정에서 DELETE 메서드가 갑자기 호출되면 BFLA 공격 가능성을 의심합니다. 동일한 API 엔드포인트에서 다양한 사용자 ID를 순차적으로 조회하는 패턴이 감지되면 BOLA 공격으로 분류합니다.
또한 민감 데이터 유형별 임계치 설정을 통해 신용카드 정보, 주민등록번호 등의 과다 노출을 자동으로 탐지하고, 30일 이상 호출되지 않은 Zombie API를 식별해 공격 표면을 줄일 수 있도록 돕습니다.
API는 이제 선택이 아닌 필수입니다. 하지만 API가 늘어날수록 보안 위험도 함께 증가합니다. 전통적인 WAF나 방화벽만으로는 API 특화 공격을 방어할 수 없으며, 가시성 확보부터 개발 단계 검증, 실시간 이상 행위 탐지까지 통합된 접근이 필요합니다.
무엇보다 중요한 것은 "우리 시스템에 어떤 API가 있는지 모르면 보호할 수도 없다"는 사실입니다. 지금 바로 API 인벤토리 구축부터 시작해보시기 바랍니다.
| 관중석에서 스크린으로 - 사이버 보안으로 세계 스포츠 이벤트 보호하기 (2) | 2025.01.01 |
|---|---|
| 연말 쇼핑 시즌 대비: 쇼핑몰의 데이터 보안은 준비되어 있습니까? (1) | 2025.01.01 |
| AI 모델 (인공지능 언어모델) LLM 해킹에 대한 방어 - 챗GPT, 클로드 (0) | 2025.01.01 |
| OWASP API 보안 상위 10가지 이해: BOLA가 API의 가장 큰 위험인 이유 (1) | 2024.05.13 |
| 포괄적인 API 보안 전략의 준비가 필요한 이유 (1) | 2024.05.13 |