OWASP API 보안 10대 위험 개요 및 모범 사례

API는 현대 애플리케이션 아키텍처에서 핵심적인 역할을 하며, 이 OWASP 프로젝트는 일반적인 API 보안 취약점에 대한 인식을 높이는 데 중점을 둡니다.

The goal of the OWASP(Open Worldwide Application Security Project)가 선정한 10대 API 보안 위험 목록은 API 개발 및 유지 관리에 관여하는 사람들을 교육하고 일반적인 API 보안 취약점에 대한 인식을 높이는 것을 목표로 합니다. API가 점점 더 공격자들의 표적이 됨에 따라, OWASP의 API 보안 프로젝트는 API 고유의 취약점과 보안 위험을 이해하고 완화하기 위한 전략과 솔루션에 중점을 둡니다.

API란 무엇인가요?

API(애플리케이션 프로그래밍 인터페이스)는 애플리케이션이 다른 애플리케이션, 서비스 또는 플랫폼과 통신하고 데이터를 교환할 수 있도록 지원하므로 현대적인 애플리케이션 개발에 필수적입니다. API는 앱 현대화 전략의 핵심 요소이자 모바일 앱의 기반입니다. 기업은 API를 통해 외부 플랫폼 및 타사 서비스와 손쉽게 통합하고, 다양한 구성 요소를 연결하여 종합적인 솔루션을 구축할 수 있습니다. 이는 앱 개발에 모듈식 접근 방식을 도입하여 개발자가 기존 서비스와 기능을 활용하고, 코드 재사용을 촉진하며, 개발 주기를 단축하고, 생산성을 높일 수 있도록 합니다.

API는 공격 표면을 확대할 뿐만 아니라 멀티 클라우드 아키텍처 전반에 걸친 상호 의존성으로 인해 예기치 못한 위험을 초래하기도 합니다. 웹 앱과 마찬가지로 API도 취약점 악용, 자동화된 위협에 의한 오용, 서비스 거부, 잘못된 구성, 인증 및 권한 부여 제어를 우회하는 공격에 노출될 수 있습니다.

API는 본질적으로 사용자 데이터, 인증 자격 증명, 금융 거래와 같은 중요한 비즈니스 로직과 민감한 정보를 노출하므로 점점 더 공격자의 표적이 되고 있습니다. 특히 로그인, 계정 생성, 장바구니 추가, 송금 기능이 주요 표적입니다. API는 취약점이나 약점을 악용하거나 기반 인프라와 리소스를 노출하려는 공격자의 진입점이 될 수 있습니다.

API 보안 모범 사례란 무엇인가요?

강력한 API 보안 조치가 필요합니다. 이는 무단 액세스, 조작 또는 노출로부터 데이터를 보호하여 개인정보를 지키고 사용자와 이해관계자의 신뢰를 유지하는 한편, API의 기밀성, 무결성 및 가용성을 보장하기 위한 것입니다. API 보안을 위한 모범 사례는 다음과 같습니다:

  • 강력한 인증 및 권한 부여를 구현하세요. 인증된 클라이언트가 특정 리소스에 액세스하거나 특정 작업을 수행하는 데 필요한 권한을 보유하고 있는지 확인할 수 있도록 적절한 권한 부여 검사를 시행하세요. 세분화된 액세스 제어를 사용하여 민감한 API 엔드포인트나 데이터뿐만 아니라 관련 객체 및 함수에 대한 액세스를 제한하세요.
  • 입력 및 출력 인코딩을 검증하세요. API 클라이언트에서 수신한 모든 입력을 검증하고 정제하여 인젝션 공격을 방지하고, 악성 스크립트가 실행되지 않도록 출력을 적절히 인코딩하세요.
  • 안전한 통신을 사용하세요. API 클라이언트와 서버 간에 데이터를 전송할 때 보안 프로토콜을 사용하고, 전송 중이거나 저장된 민감한 정보를 암호화하여 데이터의 기밀성과 무결성을 보장하세요.
  • 속도 제한 및 스로틀링을 구현하세요. API 클라이언트가 지정된 시간 내에 보낼 수 있는 요청 수를 제한하여 분산 서비스 거부(DDoS) 공격 및 무차별 대입 공격과 같은 과도한 사용이나 무단 액세스 시도를 방지하세요.
  • 정기적인 보안 테스트 및 감사를 실시하세요. 정기적으로 보안 평가, 침투 테스트 및 코드 검토를 수행하여 API의 잠재적 취약점을 식별하고 해결하세요. 또한 보안 감사를 실시하여 취약점을 탐지하고 업계 표준 및 규정 준수 요건을 충족하는지 확인하세요. API와 기반 프레임워크 및 라이브러리가 서로 의존하고 있으므로 이는 특히 중요합니다.
  • 스키마 및 프로토콜 준수를 적용합니다. OpenAPI 사양을 사용하여 포지티브 보안 모델을 자동으로 생성하고 적용하면 일관된 보안 정책을 유지하는 데 유용합니다.
  • API를 동적으로 검색하고 지속적으로 평가합니다. API가 급증하면서 다음을 포함해 파악되지 않거나 유지 관리되지 않는 API가 생겨났습니다. 섀도 API. 보안 제어는 제로 트러스트 및 최소 권한 액세스 패러다임을 사용하여 API를 지속적으로 파악하고 보호함으로써 타사 상호 의존성으로 인한 예기치 못한 위험을 완화해야 합니다.
  • 포괄적인 위협 탐지. API는 취약점 악용, 잘못된 구성, 봇, 사기, 악용 등 다양한 위협에 노출될 수 있으므로 이러한 위협으로부터 보호해야 합니다.

OWASP API 보안 10대 주요 위험 — 2023

The OWASP API 보안 10대 위험 – 2023은 일반적인 API 보안 취약점에 대한 인식을 높이고, API 개발 및 유지 관리에 참여하는 개발자, 디자이너, 아키텍트, 관리자 등이 API 보안에 선제적으로 대응할 수 있도록 마련되었습니다.

2023년 OWASP API 보안 10대 위험은 다음과 같습니다.

  1. 객체 수준 권한 부여 취약점. 이 보안 취약점은 애플리케이션이 객체 또는 데이터 수준에서 액세스 제어를 제대로 적용하지 못할 때 발생하며, 공격자가 권한 부여 검사를 조작하거나 우회하여 애플리케이션 내 특정 객체 또는 데이터에 무단으로 액세스할 수 있게 합니다. 이는 권한 부여 검사의 잘못된 구현, 적절한 검증의 부재 또는 액세스 제어 우회로 인해 발생할 수 있습니다. 객체의 ID를 수신하고 해당 객체에 대해 작업을 수행하는 모든 API 엔드포인트는 로그인한 사용자에게 요청된 객체에 대해 요청된 작업을 수행할 권한이 있는지 검증하기 위해 객체 수준 권한 부여 검사를 구현해야 합니다.
  2. 취약한 인증. API의 인증 메커니즘이 잘못 구현되는 경우가 많아 공격자가 사용자 계정이나 민감한 데이터에 무단으로 액세스하거나 허가되지 않은 작업을 수행할 수 있습니다. 이는 일반적으로 인증 프로세스의 잘못된 구현 또는 구성, 취약한 비밀번호 정책, 세션 관리 결함 또는 인증 워크플로의 기타 취약점으로 인해 발생합니다.
  3. 객체 속성 수준 권한 부여 결함. 이 위협은 API가 객체 속성 수준에서 액세스 제어 및 권한 부여 검사를 제대로 적용하지 못할 때 발생합니다. API 엔드포인트가 민감한 것으로 간주되어 사용자가 읽어서는 안 되는 객체 속성을 노출하는 경우 이러한 공격에 취약하며, 이 익스플로잇은 과도한 데이터 노출이라고도 합니다. 또한 API 엔드포인트가 사용자가 민감한 객체 속성의 값을 변경, 추가 또는 삭제할 수 있도록 허용하는 경우에도 이러한 공격에 취약하며, 이 익스플로잇은 대량 할당이라고도 합니다.
  4. 무제한 리소스 소비. 리소스 고갈이라고도 하는 이 공격은 API 구현의 취약점을 악용하여 CPU, 메모리, 대역폭 또는 기타 시스템 리소스와 같은 리소스를 의도적으로 과도하게 소비하는 방식입니다. 이러한 서비스 거부(DoS) 공격은 API 또는 기반 시스템의 성능이나 가용성을 저하시키며, 서비스 중단으로 이어질 수 있습니다.
  5. 기능 수준 권한 부여 결함. 이 위협은 API가 기능 또는 작업 수준에서 권한 부여 검사를 제대로 적용하지 않아 공격자가 권한이 없는 기능에 액세스할 수 있을 때 발생합니다. 최신 애플리케이션은 다양한 유형의 기능별 역할과 그룹을 정의할 수 있고 공격자가 악용할 수 있는 복잡한 사용자 계층 구조를 포함하므로, 적절한 권한 부여 검사를 구현하는 과정에서 혼란이 발생할 수 있습니다.
  6. 민감한 비즈니스 흐름에 대한 무제한 액세스. 이 공격은 API에 적절한 액세스 제어나 권한 부여 검사가 없어 공격자가 API에서 지원하는 민감한 비즈니스 흐름에 대한 액세스를 자동화할 수 있을 때 발생합니다. 이러한 비즈니스 흐름은 티켓이나 운동화처럼 가치가 높고 재고가 적어 2차 시장에서 웃돈을 붙여 재판매할 수 있는 제품의 대량 구매를 지원할 수 있습니다. 공격자는 정교한 자동화 도구 키트를 사용해 공격 방식을 재정비하는 경우가 많으며, 대상의 웹 앱이 자동화 방지 수단으로 충분히 보호되어 있다면 API 이면의 비즈니스 로직으로 공격 대상을 전환할 수 있습니다.
  7. 서버 측 요청 위조(SSRF). 이 취약점은 공격자가 사용자가 제공한 URL을 허용하거나 외부 리소스에 서버 측 요청을 수행하는 취약한 API 엔드포인트를 식별할 때 발생합니다. 공격자는 표적으로 삼으려는 내부 리소스 또는 시스템의 URL을 지정하여 악성 요청을 만듭니다. 서버는 악의적인 의도를 인지하지 못한 채 지정된 URL로 서버 측 요청을 수행하며, 이로 인해 민감한 정보나 서비스가 노출될 수 있습니다.
  8. 보안 구성 오류. 공격자는 패치되지 않은 취약점, 일반적인 엔드포인트, 안전하지 않은 기본 구성으로 실행되는 서비스 또는 보호되지 않은 파일과 디렉터리를 찾아 API에 무단으로 액세스하려고 시도합니다. 이 취약점은 네트워크부터 애플리케이션 계층에 이르는 API 스택의 어느 계층에서든 적절한 보안 강화 조치가 누락되었거나 클라우드 서비스의 권한이 잘못 구성된 경우 발생할 수 있습니다. 구성 오류는 웹 앱과 API에 영향을 미치며, 아키텍처가 계속해서 탈중앙화되고 멀티 클라우드 환경 전반에 분산됨에 따라 그 위험이 커지고 있습니다.
  9. 부적절한 인벤토리 관리. API는 시간이 지남에 따라 변경되고 업데이트되지만, 오래되었거나 안전하지 않은 API 버전이 프로덕션 환경에 남아 있거나 이전 엔드포인트가 패치되지 않은 채 또는 더 취약한 보안 요구 사항을 적용한 상태로 계속 실행되어 보안 침해 위험이 커질 수 있습니다. 적절한 인벤토리 관리가 이루어지지 않으면 현재 사용 중인 버전, 오래되었거나 지원이 중단된 버전, 해결된 취약점을 추적하기 어렵습니다. 섀도 API와 좀비 API는 심각한 위험을 초래합니다, 이는 지속적인 탐지와 자동화된 보호의 중요성을 잘 보여줍니다.
  10. 안전하지 않은 API 사용. 개발자는 서드 파티 API, 특히 잘 알려진 기업이 제공하는 API에서 수신한 데이터를 신뢰하는 경향이 있으며, 입력값 검증 및 정제나 전송 보안 측면에서 해당 데이터에 더 낮은 보안 요구 사항을 적용합니다. 또한 안전하지 않은 프로토콜을 통해 API에 액세스하거나 적절한 암호화 메커니즘을 사용하지 않는 경우에도 API가 안전하지 않게 사용될 수 있으며, 이로 인해 도청, 데이터 가로채기, 민감한 정보에 대한 무단 액세스가 발생할 수 있습니다.

통합 보안 제어가 필요한 이유

F5, OWASP 보안 위험에 대응

F5는 소프트웨어 보안을 개선하고 웹 애플리케이션의 보안 위험과 취약성에 대한 인식을 다양한 수준에서 높이기 위해 헌신하는 OWASP 재단을 지원합니다. 실제로 보안 솔루션을 구현할 때는 앱과 API 모두에 공통적으로 존재하는 보안 위험을 고려해야 합니다. 예를 들면 다음과 같습니다.

  • 취약한 인증/권한 부여 제어
  • 잘못된 구성
  • 비즈니스 로직 악용(크리덴셜 스터핑, 계정 탈취)
  • 서버 측 요청 위조(SSRF).

F5는 증가하는 공격 표면과 새로운 위협으로부터 보호하는 솔루션을 통해 OWASP API Security Top 10에서 식별된 위험에 대응합니다. 앱이 발전하고 API 배포가 증가함에 따라 이러한 보호의 중요성은 더욱 커지고 있습니다. F5 웹 애플리케이션 및 API 보호(WAAP) 솔루션은 WAF, API 보안, L3-L7 DDoS 완화, 자동화된 위협 및 사기에 대한 봇 방어를 포함한 포괄적인 보호 기능으로 최신 앱의 전체 공격 표면을 방어합니다. 분산형 플랫폼을 통해 일관된 정책을 간편하게 배포하고 전체 앱 및 API 환경이 어디에 호스팅되어 있든 보안을 확장할 수 있으며, 보호 기능을 API 수명 주기와 광범위한 보안 에코시스템에 통합할 수 있습니다.

F5는 하이브리드 보안 아키텍처를 제공하여 코어부터 클라우드, 엣지에 이르기까지 앱과 API를 일관되고 지속적으로 보호합니다. F5 솔루션은 위협 인텔리전스, ML 기반 보안 및 제로 트러스트 원칙을 활용해 API 이면의 핵심 비즈니스 로직을 동적으로 탐지하고 자동으로 보호함으로써, API 중심의 디지털 경제에서 경쟁하는 데 필요한 복원력과 민첩성을 제공합니다.

F5 Web Application Firewall 솔루션은 다음에서 식별한 광범위한 위험도 차단하고 완화합니다. OWASP Top 10, 이는 가장 심각한 웹 애플리케이션 보안 위험을 정리한, 널리 인정받는 목록입니다. API는 웹 앱과 마찬가지로 잘못된 구성과 자동화된 위협에 취약하며, 취약점 악용, SSRF, 인증 및 권한 부여 제어를 우회하려는 공격의 표적이 될 수 있습니다. F5 WAF 솔루션은 F5 Labs의 위협 인텔리전스와 ML 기반 보안을 비롯한 시그니처 및 행동 기반 보호 기능을 결합하여 새롭게 등장하는 위협에 대응하며, 전문 봇 방어 제어 기능과도 통합할 수 있습니다.

이러한 솔루션은 클라우드, 온프레미스 및 엣지 환경 전반에서 애플리케이션을 일관되게 보호하는 데 따르는 부담과 복잡성을 줄이는 동시에, 중앙 집중식 SaaS 인프라를 통해 관리를 간소화합니다. 또한 F5 WAF는 핵심 보안 기능과 중앙 집중식 오케스트레이션을 개발 프레임워크 및 CI/CD 파이프라인에 통합하고, 분산된 애플리케이션 전반의 앱 성능과 보안 이벤트를 360도로 파악할 수 있는 단일 대시보드를 통해 감독함으로써 앱 보안을 간소화합니다.

F5는 OWASP의 웹 애플리케이션에 대한 자동화된 위협 프로젝트.F5 Distributed Cloud Bot Defense에서 설명하는 위험을 해결하기 위한 솔루션도 제공합니다. 기존 봇 관리 솔루션을 우회할 수 있는 사기와 악용을 방지하고, 실시간 모니터링 및 인텔리전스와 ML 기반의 사후 분석을 제공하여 사용자에게 불편을 초래하거나 고객 경험을 저해하지 않으면서 자동화된 공격으로부터 조직을 보호합니다. Distributed Cloud Bot Defense는 공격자가 수법을 어떻게 바꾸든, 공격 대상을 웹 앱에서 API로 전환하든, 텔레메트리를 위조하거나 사람 CAPTCHA 풀이 서비스를 이용해 자동화 방지 체계를 우회하려 하든 관계없이 효과를 유지합니다.

F5는 또한 고급 온라인 보안을 위한 다계층 DDoS 보호를 관리형 클라우드 기반 완화 서비스로 제공합니다. 이 서비스는 대규모 네트워크, 프로토콜 및 애플리케이션 대상 공격을 실시간으로 탐지하고 완화하며, 동일한 보호 기능을 온프레미스 하드웨어, 소프트웨어 및 하이브리드 솔루션으로도 제공합니다. F5 Distributed Cloud DDoS Mitigation은 볼류메트릭 공격, 애플리케이션별 레이어 3~4 공격 및 지능형 레이어 7 공격이 네트워크 인프라와 애플리케이션에 도달하기 전에 방어합니다.

F5 ADSP 플랫폼 구성 요소가 OWASP 보안 위험으로부터 보호하는 방법에 대한 자세한 내용은 다음 자료를 참조하세요: