SK쉴더스 루키즈

OWASP API Security TOP 10 2023

0v0k 2025. 1. 24. 17:42

OWASP : 웹에 관한 정보 노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 비영리단체

 

API1 : Broken Object Level Authorization (손상된 개체 수준의 권한 확인)

  • 취약점 설명 
  • 취약한  API 엔드포인트에 액세스할 수 있다.  
  • 예를 들어 운전자가 모바일 API를 통해 차량을 원격으로 제어할 수 있다. 이 때 운전자는 차량 식별 번호(VIN)를 API로 보낸다. API는 차량의 주인이 VIN을 보내는지 확인할 수 없다. 그래서 공격자는 자신의 차량이 아닌 차량에 액세스 할 수 있다.
  • 대응 방안
  • 사용자의 권한을 잘 확인해야 한다. 로그인한 사용자가 레코드에 대해 요청된 작업을 수행할 수 있는 액세스 권한이 있는지 확인하기 위해 권한 부여 메커니즘을 사용해야 한다.

API2 : Broken Authentication (취약한 인증)

  • 취약점 설명
  • 인증 메커니즘은 모든 사람들에게 노출되어 있어서 공격자의 쉬운 표적이 된다.
  • 공격자가 인증 토큰을 훼손하거나 구현 결함을 악용하여 일시적 또는 영구적으로 다른 사용자의 ID를 탈취할 수 있다.
  • 공격자가 유효한 사용자 이름과 비밀번호 목록을 이용해 무차별 대입 공격을 실시할 때 위험하다.
  • 대응 방안
  • 강력한 비밀번호를 사용하고, 다중 인증을 사용한다.
  • 시스템 인증 체계를 꾸준히 모니터링하고, 취약점을 보완하는 등 사전에 방지해야 한다.

API3 : Broken Object Property Level Authorization (손상된 개체 속성 수준 권한 부여)

  • 취약점 설명
  • API가 권한이 없는 사용자에게 리소스의 속성을 보거나 수정할 수 있도록 허용해 발생한다.
  • 개발자가 API를 설계할 때 개발의 편의성을 위해 모든 항목을 보고 편집할 수 있도록 개방적인 접근을 허용하게 되는 경우가 많다. 이때 취약점이 발견되면 공격자는 클라이언트로 전송되는 트래픽을 탈취해 계정번호, 이메일, 전화번호, 액세스 토큰과 같은 민감한 데이터에 무단으로 접근할 수 있다.
  • 대응 방안
  • API에서 반환된 속성이 최종 사용자 인터페이스에서 사용되고 있는지 확인하고, 불필요한 매개 변수를 제거해 과도한 데이터 노출을 지양해야 한다.
  • 엔드포인트의 비즈니스/기능 요구 사항에 따라 반환된 데이터 구조를 최소한으로 유지한다.

API4 : Unrestricted Resource Consumption (무제한 자원 소비)

  • 취약점 설명
  • API가 주어진 시간 내에 제공하는 요청 수나 데이터 양에 제한을 두지 않아 운영 비용이 증가할 수 있다.
  • API의 서비스 속도에 영향을 미친다.  
  • 대응 방안
  • 메모리, CPU, 최대 데이터 크기, 속도 등의 변수를 제한할 수 있는 솔루션을 활용해 해당 취약점을 방어할 수 있다.
  • 문자열의 최대 길이, 배열의 최대 요소 수, 최대 업로드 파일 크기 등 최대 데이터 크기를 정의한다.

API5 : Broken Function Level Authorization (손상된 기능 수준의 권한 확인)

  • 취약점 설명
  • 관리기능과 일반 기능이 명확하지 않은 복잡한 액세스 제어 정책은 권한 부여 문제가 될 수 있다.
  • 예를 들어 관리 엔드포인트가 일반 엔트포인트와 함께 다른 상대 경로 아래에 있는 경우, 공격자는 관리 엔드포인트에 액세스할 수 있다.
  • 대응 방안
  • 기본적으로 모든 액세스를 거부하고, 모든 기능에 대한 액세스 권한을 특정 역할에 부여해야 한다.

API6 : Unrestricted Access to Sensitive Business Flows (민감한 비즈니스 흐름에 대한 제한 없는 엑세스)

  • 취약점 설명
  • 공격자가 API의 비즈니스 처리 방식을 알아낸 뒤, 자동화된 방식으로 비즈니스 흐름을 노출한다.
  • 예를 들어 특정 제품을 모두 구매해 다른 사용자가 시스템에 접근하지 못하게 하거나, 더 높은 가격에 상품을 재판매한다.
  • 대응 방안 
  • API접근을 지속적으로 모니터링 하고, 의심스러운 사용자에 속도 제한을 걸어 과도한 API 호출을 방지한다.

API7 : Server Side Request Forgery (서버 사이드 요청 변조)

  • 취약점 설명 
  • API가 사용자 제공 URI의 유효성을 검사하지 않고 원격 리소스를 가져올 때 발생할 수 있다.
  • 공격자가 방화벽이나 VPN으로 보호될 때에도 임의의 도메인에 HTTPS 요청을 하도록 유도할 수 있다.
  • 대응 방안
  • 입력 값 검증 및 필터링, URL 화이트 리스트, 서버 사이드 보안 정책 등을 적용한다.

API8 : Security Misconfiguration (보안 오류 구성)

  • 취약점 설명 
  • 소프트웨어 및 DevOps 엔지니어가 잘못된 구성을 해 공격에 취약하게 만들 수 있다.
  • 최신 보안 패치를 하지 않거나, TLS(전송계층 보안)가 없을 때 공격자가 무단 액세스할 수 있다.
  • 대응 방안
  • 각 API에 액세스할 수 있는 HTTP를 구체적으로 지정하고, 다른 HTTP는 비활성화 해야한다.

API9 : Improper Inventory Management (부적절한 재고 관리)

  • 취약점 설명
  • 오래된 문서에 적용된 과거 API 버전 또는 손상된 API가 공격자에 의해 악용돼 중요한 데이터가 유출될 수 있다.
  • 대응 방안
  • 더 이상 사용하지 않는 API를 관리 및 갱신해야 한다.

API10 : Unsafe Consumption of APIs (안전하지 않은 API사용)

  • 취약점 설명
  • 개발자가 사용자 입력보다 서드파티 API를 사용할 때 발생할 수 있다.
  • 예로 들면 유명한 기업에서 제공하는 API를 맹신해 유효성 검증과 같은 보안 절차를 소홀이 적용하는 경우가 있다.
  • 내부데이터의 탈취, 외부 유출, 악성 데이터 유입 등의 피해가 발생할 수 있다.
  • 대응 방안
  • 통합 API에서 수신한 데이터를 사용하기 전에 항상 유효성을 검사하고 적절하게 정리한다.
  • 맹목적으로 API를 따르지 않는다.

새로 알게된 용어

 

엔드포인트 : 네트워크에 연결하고 네트워크를 통해 통신하는 모든 디바이스 / 예시) 노트북, 스마트폰, 스마트 워치 등

서드파티 : IT업계에서 외부의 개발자나 업체가 제공하는 소프트웨어, 서비스, API를 의미한다. 외부 솔루션의 전문성과 비용 효율성을 제공하지만 의존성, 보안 문제, 통합 문제 등의 리스트를 동반할 수 있다.

인증 매커니즘 : 사용자의 인증을 하기 위해서 사용되는 인증 방법이다. 예를 들어 패스워드를 사용해 인증하는 방법이 있다.

TLS : Transport Layer Security, 온라인 네트워크에서 데이터를 안전하게 주고받기 위한 암호화 프로토콜, 통신 데이터를 TLS프로토콜을 따라 암호화하면 누군가 데이터를 가로채도 복호화할 수 없어서 악성 공격으로부터 데이터를 보호할 수 있다. TLS가 적용된 HTTPHTTPS라고 부른다.

SSL : Secure Sockets Laye, HTTP 암호화 프로토콜, 보안에 취약해서 현재는 TLS를 많이 사용한다.

 

참고 

https://www.lgcns.com/blog/cns-tech/security/54998/

https://owasp.org/API-Security/editions/2023/en/0x11-t10/