위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 가능성->Average | 기술적 심각도: 특정 비지니스 |
이 문제를 악용하려면 공격자가 대상 API와 통합된 다른 API/서비스를 식별하고 잠재적으로 손상시켜야 합니다. 일반적으로 이 정보는 공개적으로 제공되지 않거나 통합 API/서비스를 쉽게 이용할 수 없습니다. | 개발자는 외부 또는 타사 API와 상호 작용하는 end-points을 신뢰하고 검증하지 않는 경향이 있으며, 전송 보안, 인증/인가, 입력 유효성 검사 및 검사와 같은 취약한 보안 요구 사항에 의존합니다. 공격자는 대상 API가 (데이터 소스)와 통합되는 서비스를 식별하고 결국 이를 손상시켜야 합니다. | 그 영향은 대상 API가 pulled 데이터로 수행하는 작업에 따라 달라집니다. 공격이 성공하면 권한 없는 행위자에 대한 민감한 정보 노출, 여러 종류의 injections 또는 DoS가 발생할 수 있습니다. |
위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 가능성->Average | 기술적 심각도: 특정 비지니스 |
위협 요소는 일반적으로 이전 API 버전이나 패치가 적용되지 않고 보안 요구 사항이 적용 되어있지 않은 end-points를 통해 무단 액세스를 하게됩니다. 어떤 경우에는 익스플로잇이 가능합니다. 또는 데이터를 공유할 이유가 없는 제3자를 통해 민감한 데이터에 액세스할 수도 있습니다. | 오래된 문서는 취약점을 찾거나 고치는 것을 더욱 어렵게 만듭니다. 자산재고 및 폐기 전략이 부족하면 패치가 적용되지 않은 시스템이 실행되어 민감한 데이터가 유출될 수 있습니다. 애플리케이션을 쉽게 배포하고 독립적으로 만들 수 있는 마이크로서비스(예: 클라우드 컴퓨팅, K8S)와 같은 최신 개념으로 인해 불필요하게 노출된 API 호스트를 찾는 것이 일반적입니다. 간단한 Google Dorking, DNS enumeration또는 전문 검색엔진을 사용하면 대상을 발견하기 충분합니다. | 공격자는 중요한 데이터에 대한 액세스하거나, 서버를 장악할 수 있습니다. 종종 다른 API버전 배포가 실제 데이터로 동일한 데이터베이스에 연결됩니다. 위협 요소는 관리 기능에 액세스하거나 알려진 취약성을 이용하기 위해 오래된 API 버전에서 사용할 수 있는 사용되지 않은 end-points를 이용할 수 있습니다. |
위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 용이함 | 기술적 심각도: 특정 비지니스 |
공격자는 종종 패치 되지 않은 결함, common end-points, 안전하지 않은 기본 구성으로 실행되는 서비스 또는 보호되지 않은 파일 및 디렉터리를 찾기 위해 시스템에 무단으로 접근을 시도하는 경우가 많습니다. 이 중 대부분은 공개된 지식이고 악용이 가능합니다. | 보안 구성 오류는 네트워크 수준에서 애플리케이션 수준까지 API 스택의 모든 수준에서 발생할 수 있습니다. 불필요한 서비스나 레거시 옵션과 같은 잘못된 구성을 감지하고 활용하는 자동화된 도구를 사용할 수 있습니다. | 잘못된 보안 구성은 민감한 사용자 데이터뿐만 아니라 서버 전체를 손상시킬 수 있는 시스템 세부 정보도 노출합니다 |
위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 용이함 | 기술적 심각도: 특정 비지니스 |
악용하려면 공격자가 클라이언트가 제공한 URI에 액세스하는 API end-points를 찾아야 합니다. 일반적으로 기본 SSRF(공격자에게 응답이 반환될 때)는 공격 성공 여부에 대한 피드백이 없는 Blind SSRF보다 공격이 용이합니다. | 애플리케이션 개발의 최근 개념은 개발자가 클라이언트가 제공하는 URI에 액세스하도록 권장하는 것입니다. 그러한 URI들의 부족 또는 부적절한 유효성 검증은 흔한 문제입니다. 문제를 검출하기 위해 정기적인 API 요청과 응답 분석이 필요할 것입니다. 응답이 반환되지 않을 때 (Blind SSRF) 취약성을 검출하는 것은 더 많은 노력과 창의성을 요구합니다. | 공격이 성공하면 내부 서비스 스캐닝(예: 포트 스캔), 정보 노출, 방화벽 우회 또는 기타 보안 위협이 발생할 수 있습니다. 경우에 따라 DoS 또는 악의적인 활동을 숨기기 위해 프록시 서버로 사용될 수 있습니다. |
위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 가능성->Average | 기술적 심각도: 특정 비지니스 |
공격은 일반적으로 API가 지원하는 비즈니스 모델을 이해하고 민감한 비즈니스 흐름을 찾고 이러한 흐름에 대한 액세스를 자동화하여 비즈니스에 해를 끼칩니다. | API에 대한 전체적인 관점이 부족했을 때 해당 문제가 발생할 수 있습니다. 공격자는 워크 플로우와 연관된 리소스(예: end-points)가 무엇인지, 그리고 이들이 어떻게 동작하는지 확인합니다. 완화 메커니즘이 이미 실행 중인 경우 공격자는 이를 우회할 방법을 찾아야 합니다 | 일반적으로 기술적 영향은 예상되지 않습니다. 예를 들어, 공격은 합법적인 사용자가 제품을 구매하는 것을 막거나 게임의 내부 경제에 인플레이션을 초래하는 등 다양한 방식으로 비즈니스에 타격을 줄 수 있습니다. |
위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 용이함 | 기술적 심각도: 특정 비지니스 |
악용하려면 공격자가 API end-points에 합법적인 API를 전송해야 하며, API end-points는 익명의 사용자 또는 권한이 없는 일반 사용자로써 액세스할 수 없습니다. 노출된 end-points는 쉽게 악용될 수 있습니다. | 기능이나 리소스에 대한 권한 검사는 일반적으로 구성이나 코드 수준을 통해 관리됩니다. 현대의 응용 프로그램은 많은 유형의 역할, 그룹 및 복잡한 사용자 계층(예: 하위 사용자 또는 둘 이상의 역할을 가진 사용자)을 포함할 수 있으므로 적절한 검사를 구현하는 것은 혼란스러운 작업이 될 수 있습니다. API는 더 구조화되어 있고 다른 기능에 액세스하는 것이 더 예측 가능하기 때문에 API에서 이러한 결함을 발견하는 것이 더 쉽습니다 | 이러한 결함은 공격자가 권한 없는 기능에 액세스할 수 있도록 합니다. 관리 기능은 이러한 유형의 공격의 핵심 대상이며 데이터 노출, 데이터 손실 또는 데이터 손상으로 이어질 수 있습니다. 궁극적으로 서비스 중단으로 이어질 수 있습니다. |
위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 가능성 평균 | 확산성: 탐지 용이함 | 기술적 심각도: 특정 비지니스 |
악용하려면 간단한 API 요청이 필요합니다. 단일 로컬 컴퓨터에서 또는 클라우드 컴퓨팅 리소스를 사용하여 여러 동시 요청을 수행할 수 있습니다. 사용 가능한 대부분의 자동화 도구는 높은 트래픽 부하를 통해 DoS를 유발하여 API 서비스 속도에 영향을 미치도록 설계되었습니다. | 클라이언트 상호작용이나 리소스 소비를 제한하지 않는 API를 찾는 것이 일반적입니다. 반환될 리소스 수를 제어하고 응답 상태/시간/길이 분석을 수항하는 매개변수를 포함하는 API요청과 같이 작성된 API요청을 통해 문제를 식별할 수 있어야 합니다. 일괄 작업에도 동일하게 적용됩니다. 위협요소는 비용 영향에 대한 가시성을 가지고 있지 않지만, 이는 서비스 공급자(예: 클라우드 제공자)의 비즈니스/가격책정 모델을 기반으로 추론될 수 있다. | 악용된다면 자원부족으로 인한 DoS로 이어질 수 있지만 CPU수요증가, 클라우드 스토리지 요구 증가 등으로 인프라 관련 비용 증가로 이어질 수 있습니다. |
위협원/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 용이함 | 기술적 심각도: 특정 비지니스 |
API는 모든 개체의 속성을 반환하는 end-points를 노출하는 경향이 있습니다. 이는 특히 REST API에 유효합니다. GraphQL과 같은 다른 프로토콜의 경우 반환해야 하는 속성을 지정하기 위해 제작된 요청이 필요할 수 있습니다. 조작할 수 있는 이러한 추가 속성을 식별하려면 더 많은 노력이 필요하지만 이 작업을 지원하는 데 사용할 수 있는 몇 가지 자동화 도구가 있습니다. | API 응답을 검사하는 것만으로도 반환된 객체 표현에서 민감한 정보를 식별하는 데 충분합니다. 퍼징은 일반적으로 추가(숨겨진) 속성을 식별하는 데 사용됩니다. 변경 가능 여부는 API 요청을 작성하고 응답을 분석하는 문제입니다. API 응답에 대상 속성이 반환되지 않으면 부작용 분석이 필요할 수 있습니다. | 개인/민감한 개체 속성에 대한 무단 액세스로 인해 데이터 공개, 데이터 손실 또는 데이터 손상이 발생할 수 있습니다. 특정 상황에서는 개체 속성에 대한 무단 액세스로 인해 권한 상승 또는 부분/전체 계정 탈취가 발생할 수 있습니다. |
위협 요소/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 용이함 | 기술적 심각도: 특정 비지니스 |
인증 메커니즘은 모든 사람에게 노출되기 때문에 공격자의 쉬운 표적이 됩니다. 일부 인증 문제를 악용하려면 더 높은 수준의 기술이 필요할 수 있지만 일반적으로 악용 도구를 사용할 수 있습니다. | 인증 경계 및 고유한 구현 복잡성에 대한 소프트웨어 및 보안 엔지니어의 오해로 인해 인증 문제가 널리 퍼집니다. 손상된 인증을 감지하는 방법론을 사용할 수 있으며 쉽게 만들 수 있습니다. | 공격자는 시스템 내 다른 사용자의 계정을 완전히 제어할 수 있고, 개인 데이터를 읽고, 그들을 대신하여 민감한 작업을 수행할 수 있습니다. 시스템은 공격자의 행동과 합법적인 사용자의 행동을 구별할 수 없습니다. |
위협원/공격 경로 | 보안 취약점 | 영향 |
API 명세: 악용 용이함 | 확산성: 탐지 용이함 | 기술적 심각도: 특정 비지니스 |
공격자는 요청 내에서 전송되는 개체의 ID를 조작하여 손상된 개체 수준 권한 부여에 취약한 API end-points를 악용할 수 있습니다. 개체 ID는 순차 정수, UUID 또는 일반 문자열 중 무엇이든 될 수 있습니다. 데이터 유형에 관계없이 요청 대상(경로 또는 쿼리 문자열 매개변수), 요청 헤더 또는 요청 페이로드의 일부에서도 쉽게 식별할 수 있습니다. | 이 문제는 API 기반 애플리케이션에서 매우 일반적입니다. 서버 구성 요소는 일반적으로 클라이언트의 상태를 완전히 추적하지 않고 대신 액세스할 개체를 결정하기 위해 클라이언트에서 전송되는 개체 ID와 같은 매개 변수에 더 많이 의존하기 때문입니다. 일반적으로 서버 응답은 요청이 성공했는지 여부를 이해하는 데 충분합니다. | 다른 사용자의 개체에 대한 무단 액세스는 무단 당사자에게 데이터 공개, 데이터 손실 또는 데이터 조작을 초래할 수 있습니다. 특정 상황에서는 개체에 대한 무단 액세스로 인해 계정 전체가 탈취될 수도 있습니다. |
