HOME
home
CV News
home

API Security Top 10(API6:2023 Unrestricted Access to Sensitive Business Flows)

DEV 속성
Security
날짜
2024/01/22

API6:2023 Unrestricted Access to Sensitive Business Flows

위협 요소/공격 경로
보안 취약점
영향
API 명세: 악용 용이함
확산성: 탐지 가능성->Average
기술적 심각도: 특정 비지니스
공격은 일반적으로 API가 지원하는 비즈니스 모델을 이해하고 민감한 비즈니스 흐름을 찾고 이러한 흐름에 대한 액세스를 자동화하여 비즈니스에 해를 끼칩니다.
API에 대한 전체적인 관점이 부족했을 때 해당 문제가 발생할 수 있습니다. 공격자는 워크 플로우와 연관된 리소스(예: end-points)가 무엇인지, 그리고 이들이 어떻게 동작하는지 확인합니다. 완화 메커니즘이 이미 실행 중인 경우 공격자는 이를 우회할 방법을 찾아야 합니다
일반적으로 기술적 영향은 예상되지 않습니다. 예를 들어, 공격은 합법적인 사용자가 제품을 구매하는 것을 막거나 게임의 내부 경제에 인플레이션을 초래하는 등 다양한 방식으로 비즈니스에 타격을 줄 수 있습니다.

취약한 API

API end-points를 작성할 때는 어떤 비즈니스 흐름을 노출시키는지 파악하는 것이 중요합니다. 어떤 비즈니스 흐름은 과도하게 접근할 경우 비즈니스에 해가 될 수 있다는 점에서 다른 비즈니스 흐름보다 더 민감합니다.
민감한 비즈니스 흐름과 이와 관련된 과도한 액세스 위험의 일반적인 예:
제품 구매 흐름 - 공격자는 수요가 많은 품목의 재고를 한 번에 모두 구입하여 더 높은 가격에 재 판매할 수 있습니다(스캘핑)
댓글/게시물 흐름 생성 - 공격자가 시스템에 스팸을 발송할 수 있습니다.
예약 - 공격자는 사용 가능한 모든 타임 슬롯을 예약하고 다른 사용자가 시스템을 사용하지 못하도록 할 수 있습니다.
과도한 액세스로 인한 위험은 산업과 기업에 따라 다를 수 있습니다. 예를 들어, 스크립트에 의한 게시물 작성은 한 소셜 네트워크에서는 스팸 위험으로 간주되지만 다른 소셜 네트워크에서는 권장될 수 있습니다.
API end-points는 액세스를 적절하게 제한하지 않고 민감한 비즈니스 흐름을 노출하는 경우 취약합니다.

공격 시나리오

Scenario #1

한 기술 회사가 추수감사절에 새로운 게임기를 출시할 것이라고 발표했습니다. 그 제품은 수요가 매우 많고 재고가 한정되어 있습니다. 공격자는 자동으로 새로운 제품을 구매하고 거래를 완료하기 위한 코드를 작성합니다.
공격자는 출시일에 다양한 IP 주소와 위치에 분산된 코드를 실행합니다. API는 적절한 보호 기능을 구현하지 않으며 공격자가 다른 합법적인 사용자보다 먼저 물건의 대부분을 살 수 있도록 해줍니다.
나중에 공격자는 훨씬 더 높은 가격에 다른 플랫폼에서 제품을 판매합니다.

Scenario #2

항공사에서는 취소 수수료 없이 온라인 항공권 구매 서비스를 제공합니다. 악의적인 의도를 가진 사용자가 원하는 항공편의 좌석을 90% 예약합니다.
항공편 출발 며칠 전에 악의적인 사용자가 모든 티켓을 한꺼번에 취소했고, 이로 인해 항공사는 항공편을 채우기 위해 티켓 가격을 할인해야 했습니다.
이 시점에서 사용자는 원래 티켓보다 훨씬 저렴한 단일 티켓을 구매합니다.

Scenario #3

차량 공유 앱은 추천 기능을 제공합니다. 사용자는 친구를 초대하고 앱에 가입한 각 친구에 대한 크레딧을 얻을 수 있습니다. 이 크레딧은 나중에 차량 예약 시 현금으로 사용할 수 있습니다.
공격자는 등록 프로세스를 자동화하는 스크립트를 작성하여 각 신규 사용자가 공격자의 지갑에 크레딧을 추가함으로써 이 흐름을 악용합니다.
공격자는 나중에 무임승차를 즐기거나 과도한 크레딧이 있는 계정을 현금으로 판매할 수 있습니다.

예방 방법

완화 계획은 다음과 같은 두 가지 계층으로 이루어져야 합니다:
Business - 과도하게 사용될 경우 비즈니스에 해가 될 수 있는 비즈니스 흐름을 파악합니다.
Engineering - 비즈니스 위험을 완화하기 위해 적절한 보호 메커니즘을 선택합니다.
일부 보호 메커니즘은 단순한 반면 메커니즘을 구현하기는 어렵습니다. 자동화된 위협의 속도를 늦추기 위해 다음과 같은 방법이 사용됩니다:
Device fingerprinting : 예기치 않은 클라이언트 장치(예: 헤드리스 브라우저)에 대한 서비스 거부는 위협 요소가 보다 정교한 솔루션을 사용하게 만드는 경향이 있으며, 따라서 위협 요소에 더 많은 비용이 소요됩니다.
Human detection: 캡차 또는 사람이라고 판단할 수 있도록 고안된 솔루션(예: 입력패턴)을 사용합니다.
Non-human patterns: 사용자 흐름을 분석하여 Non-human patterns을 탐지합니다(예: 사용자가 1초 이내에 "카트에 추가" 및 "완전 구매" 기능에 액세스함)
Tor exit노드 및 잘 알려진 프록시의 IP 주소 차단을 고려합니다.
머신이 사용하는 API(예: 개발자 및 B2B API)에 대한 보안 및 액세스 제한합니다. 필요한 보호 메커니즘을 모두 구현하지 않는 경우가 많기 때문에 공격자가 쉽게 목표로 삼는 경향이 있습니다.

References

OWASP