OWASP API 보안 Top 10 개요 및 모범 사례

API는 모던 애플리케이션 아키텍처에서 중요한 역할을 하며, 이 OWASP 프로젝트는 공통 API 보안 약점에 대한 인식에 중점을 둡니다.

Open Worldwide Application Security Project(OWASP)Top 10 API 보안 위협 목록의 목적은 API 개발 및 유지 관리에 참여하는 사람들을 교육하고 일반적인 API 보안 약점에 대한 인식을 제고하는 것입니다. API는 점점 더 공격자의 표적이 되고 있으며 OWASP의 API 보안 프로젝트는 API와 관련된 고유한 취약점 및 보안 위험을 이해하고 완화하기 위한 전략 및 솔루션에 중점을 둡니다.

API란?

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

API는 멀티 클라우드 아키텍처 전반의 상호 의존적인 특성으로 인해 위험 표면을 확장하고 특히 예기치 못한 위험을 초래합니다. 웹 앱과 마찬가지로 API는 취약점 익스플로잇, 자동화된 위협에 의한 악용, 서비스 거부, 구성 오류, 인증 및 권한 부여 제어를 우회하는 공격에 취약합니다.

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

API 보안 모범 사례

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

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

OWASP API 보안 Top 10 — 2023

OWASP API 보안 Top 10 – 2023은 일반적인 API 보안 취약점에 대한 인식을 제고하고 개발자, 설계자, 관리자 등 API 개발 및 유지 관리와 관련된 담당자들이 API 보안에 대한 사전 예방적 접근 방식을 유지하도록 돕기 위해 만들어졌습니다.

2023년 OWASP API 보안 Top 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 버전이 계속 실행되는 경우, 또는 오래된 엔드포인트에 패치가 적용되지 않은 상태로 운영되거나 약한 보안 요구 사항을 사용하는 경우 보안 침해의 위험이 증가할 수 있습니다. 적절한 인벤토리 관리가 이루어지지 않으면 사용 중인 버전, 오래된 버전 또는 지원이 종료된 버전, 해결된 취약점을 추적하기가 어렵습니다. Shadow 및 좀비 API는 심각한 위험을 초래할 수 있어 지속적인 검색과 자동화된 보호가 필요합니다.
  10. 안전하지 않은 API의 사용. 개발자는 타사 API, 특히 유명 회사가 제공하는 API로부터 받은 데이터를 신뢰하는 경향이 있으며, 입력 유효성 검사 또는 전송 보안 측면에서 이러한 데이터에 대해 약한 보안 요구 사항을 적용하는 경향이 있습니다. 안전하지 않은 프로토콜을 통해 API에 액세스하거나 적절한 암호화 메커니즘을 사용하지 않아 도청, 데이터 가로채기, 민감한 정보에 대한 무단 액세스가 발생할 때도 안전하지 않은 소비가 발생할 수 있습니다.

통합 보안 제어 사례

F5를 통한 OWASP 보안 위험 해결

F5는 OWASP Foundation과 소프트웨어 보안을 강화하고 다각도에서 웹 애플리케이션 보안 위험 및 취약성에 대한 인식을 제고하려는 재단의 노력을 지원합니다. 실제로 보안 솔루션을 구현할 때 고려해야 할 앱과 API 모두에 공통적인 보안 위험이 있습니다. 그 예는 다음과 같습니다.

  • 취약한 인증/승인 제어
  • 구성 오류
  • 비즈니스 논리 악용(크리덴셜 스터핑, 계정 탈취)
  • 서버 측 요청 위조(SSRF)

F5는 앱이 진화하고 API 배포가 증가함에 따라 확대하는 공격 표면과 새로운 위협을 차단하는 솔루션을 통해 OWASP API 보안 Top 10에 명시된 위험을 해결합니다. F5 Web Application and API Protection(WAAP) 솔루션은 WAF, API Security, L3-L7 DDoS 완화, 자동화된 위협 및 사기에 대한 봇 방어를 포함한 포괄적인 보호 기능을 통해 모던 앱 공격 표면 전체를 방어합니다. 분산 플랫폼을 사용하면 호스팅 위치에 관계없이 앱과 API 전체에 일관된 정책을 배포하고 보안을 확장하며 API 수명 주기 및 광범위한 보안 생태계에 보호 기능을 통합할 수 있습니다.

F5는 코어에서 클라우드, 엣지까지 앱과 API를 일관되고 지속적으로 보호하는 하이브리드 보안 아키텍처를 제공합니다. F5 솔루션은 위협 인텔리전스, 머신러닝 기반 보안, 제로 트러스트 원칙을 사용하여 API에 적용되는 중요 비즈니스 로직을 동적으로 검색하고 자동으로 보호하여 API 기반 디지털 경제에서 경쟁하는 데 필요한 탄력성과 민첩성을 제공합니다.

또한 F5 웹 애플리케이션 방화벽 솔루션은가장 중요한 웹 애플리케이션 보안 위험의 널리 알려진 목록인 OWASP Top 10에 명시된 다양한 위험을 차단하고 완화합니다. API는 웹 앱과 마찬가지로 구성 오류 및 자동화된 위협에 취약하며, 취약점 악용, SSRF, 인증 및 권한 제어 우회를 시도하는 공격의 대상이 될 수 있습니다. F5 WAF 솔루션은 F5 Labs의 위협 인텔리전스 및 머신러닝 기반 보안을 포함한 시그니처 보호와 행동 보호 기능을 결합하여 새로운 위협에 맞섭니다. 또한 전문화된 봇 방어 제어와 통합할 수 있습니다.

F5 WAF 솔루션은 중앙 집중식 SaaS 인프라를 통해 관리를 간소화하면서 클라우드, 온프레미스, 엣지 환경에 걸쳐 애플리케이션을 일관되게 보호해야 하는 부담과 복잡성을 완화합니다. 또한 F5 WAF는 분산된 여러 애플리케이션에 걸쳐 앱 성능 및 보안 이벤트를 전방위로 볼 수 있는 단일 대시보드를 통한 핵심 보안 기능, 중앙 집중식 오케스트레이션, 감독을 통해 보호 기능을 개발 프레임워크 및 CI/CD 파이프라인에 통합하여 앱 보안을 간소화합니다.

F5는 또한 OWASP의 Automated Threats to Web Applications Project에 명시된 위험을 해결하기 위한 솔루션을 제공합니다. F5 Distributed Cloud Bot Defense는 기존 봇 관리 솔루션을 우회할 수 있는 사기 및 남용을 방지하고 실시간 모니터링 및 인텔리전스뿐만 아니라 머신러닝 기반 소급 분석을 제공하여 사용자 불편을 더하거나 고객 경험을 방해하지 않고 자동화된 공격으로부터 조직을 보호합니다. Distributed Cloud Bot Defense는 공격자가 어떻게 리툴링하는지, 공격이 웹 앱에서 API로 피벗되는지 아니면 텔레메트리를 스푸핑하거나 인간 CAPTCHA 솔버를 사용하여 반자동화 방어 우회를 시도하는지에 관계없이 효율성을 유지합니다.

F5는 또한 대규모 네트워크, 프로토콜, 애플리케이션 대상 공격을 실시간으로 탐지하고 완화하는 관리형 클라우드 제공 완화 서비스로서 첨단 온라인 보안을 위한 다중 계층 DDoS 보호 기능을 제공합니다. 온프레미스 하드웨어, 소프트웨어, 하이브리드 솔루션과 동일한 보호 기능을 사용할 수 있습니다. F5 Distributed Cloud DDoS Mitigation은 볼륨 및 애플리케이션별 레이어 3-4 및 고급 레이어 7 공격이 네트워크 인프라 및 애플리케이션에 도달하기 전에 차단합니다.