API 보안이란 무엇인가요?
IBM API 보안 솔루션 살펴보기 IBM CIO가 API 비용을 절감한 방법 알아보기
API 보안을 나타내는 그림

게시일: 2023년 11월 20일
기고자 Chrystal China, Michael Goodwin

API 보안이란 무엇인가요?

API 보안은 오용, 악성 봇 공격 및 기타 사이버 보안 위협으로부터 애플리케이션 프로그래밍 인터페이스(API)를 보호하는 관행과 절차를 말합니다. 웹 보안의 하위 집합으로 작동하지만 엔터프라이즈 IT 관리에 점점 더 중요해지고 있는 API에 특히 중점을 두고 있습니다.1

API는 기업이 외부 개발자 및 파트너에게 서비스를 제공할 수 있도록 지원하는 디지털 혁신의 기본 요소로 자리 잡았습니다. API는 앱 간의 통신과 데이터 교환을 조정하므로 더 연결된 사용자 경험을 촉진하고 전반적인 비즈니스 범위를 확장하며 경계를 뛰어넘는 기술 혁신을 촉진할 수 있습니다. API는 또한 기업이 시장 변화와 고객 요구에 신속하게 적응할 수 있도록 서비스 통합을 간소화합니다. 

하지만 API가 확산됨에 따라 수반되는 보안 문제도 증가하고 있습니다.  

API는 조직의 IT 리소스와 타사 소프트웨어 개발자 사이 또는 IT 리소스와 개인 사이에 위치하여 프로세스 엔드포인트에서 데이터와 정보를 제공합니다. 엔드포인트는 외부 세계에 노출되기 때문에 API는 다양한 유형의 공격에 수익성 있는 대상이 될 수 있습니다.  

API 보안의 진화  

API Management 및 API 보안의 발전은 본질적으로 API 자체의 발전과 연결되어 있습니다. 초기 API는 주로 단일 시스템 내의 프로세스 간 통신에 중점을 두었습니다. 따라서 통신이 단일 시스템에만 국한되었기 때문에 보안(또는 보안 기능 부재)은 그다지 문제가 되지 않았습니다. 

하지만 사물인터넷(IoT)과 클라우드 네이티브 마이크로서비스 아키텍처의 등장으로 API가 확장되면서 애플리케이션 간, 그리고 DevOps 환경 전반에서 원활한 통신과 호출 라우팅이 가능해 졌습니다. 표현 상태 전송(REST), 단순 객체 액세스 프로토콜(SOAP)과 같은 최신 고품질 API는 앱 통합을 조정하고, 데이터 형식을 지정하며, 호출 유형, 절차 및 규칙을 지시합니다. 

특히 GraphQL, REST API , SOAP API 등과 같은 웹 API는 무수히 많고 복잡한 네트워크 전반에 걸쳐 광범위한 통합 기능을 포함하도록 기능을 확장함으로써 환경을 변화시켰습니다. 

그러나 고급 기술은 기능을 위해 API 엔드포인트에 크게 의존하기 때문에 기업과 보안 팀은 데이터 및 웹 서비스를 보호하고 궁극적으로 IT 리소스를 최대한 활용하기 위해 강력한 보안 조치를 채택해야 합니다.

API 취약점

API 엔드포인트를 적절하게 보호하지 않으면 악의적인 공격자가 민감한 데이터에 무단으로 액세스하거나, 서비스 운영을 방해하거나, 두 가지 모두를 방해할 수 있어 잠재적으로 치명적인 결과를 초래할 수 있습니다. 일반적인 위협은 다음과 같습니다.

  • 인증 기반 공격 — 해커가 사용자 암호를 추측하거나 도용 또는 취약한 인증 메커니즘을 악용하여 API 서버에 액세스하려고 하는 공격입니다.

  • 중간자 공격 — 악의적인 공격자가 API 요청 또는 응답을 가로채 데이터(예: 로그인 자격 증명 또는 결제 정보)를 훔치거나 수정하는 공격입니다.

  • 코드 주입/삽입 공격 — 해커가 데이터를 읽고 변환하는 API 인터프리터의 약점을 악용하여 API 요청을 통해 유해한 스크립트(허위 정보 삽입, 데이터 삭제 또는 공개, 앱 기능 방해)를 전송하는 공격입니다.

  • 보안 구성 오류 — 부적절한 기본 구성, 지나치게 허용적인 교차 출처 리소스 공유(CORS) 또는 잘못된 HTTP 헤더로 인해 민감한 사용자 정보 또는 시스템 세부 정보가 노출되는 공격입니다.

  • 서비스 거부(DoS) 공격 —수많은 API 요청을 전송하여 서버를 다운시키거나 속도를 저하시키는 공격입니다. DoS 공격은 분산 서비스 거부(DDoS) 공격의 형태로 여러 공격자가 동시에 가하는 경우가 많습니다.

  • 손상된 개체 수준 인증(BOLA) 공격 — 사이버 범죄자가 API 엔드포인트에서 개체 식별자를 조작하여 공격 범위를 넓히고 사용자 데이터에 무단으로 액세스할 때 발생하는 공격입니다. BOLA 공격은 적절한 개체 수준 권한 부여 검사를 구현하는 것이 어렵고 시간이 많이 소요될 수 있기 때문에 특히 일반적입니다.   

 

API 보안 모범 사례  

역동적인 디지털 경제에서 API는 비즈니스 민첩성에 매우 중요하지만, 개방적인 특성으로 인해 데이터 보안에 심각한 위험을 초래할 수 있습니다. API 보안 침해로 인해 John Deere, Experian 및 Peloton과 같은 유명 대기업에서도 대규모 데이터 유출 사고가 발생했습니다.2

그리고 이러한 글로벌화된 기술 환경에서 보안 취약성은 산업이나 지리적 위치에 관계없이 모든 주요 서비스 제공업체를 위협합니다. 일례로, 2022년 호주 통신 회사인 Optus에 대한 API 공격으로 약 1천만 명의 고객 이름, 전화번호, 여권 정보, 운전면허 정보가 노출되었습니다.3

이러한 사고는 API 보호의 중요성을 강조하고 포괄적인 API 보안 전략 및 도구의 개발을 가속화했습니다.

엄격한 API 보안 프로토콜을 구현하면 API 엔드포인트가 노출하는 데이터, 앱 및 서비스를 보호하는 동시에 합법적인 사용자의 가용성을 보장할 수 있습니다. 하지만 API 보안은 엔드포인트 보호뿐만 아니라 API 라이프사이클 전반에 걸쳐 데이터 전송, 사용자 요청 및 앱 간 통신과 같은 네트워크 상호 작용의 보안도 우선시합니다.

IT 인프라를 강화하기 위한 가장 일반적인 API 보안 솔루션은 다음과 같습니다.

인증 및 권한 부여 프로토콜

인증은 사용자, 시스템 또는 프로세스의 신원을 확인하는 프로세스입니다. API의 맥락에서 이는 요청자가 자신이 주장하는 사람인지 확인하기 위해 OAuth 2.0, API 키 및 JWT 사양과 같은 사용자 인증 프로토콜을 사용하는 것을 의미합니다. 

반면에 권한 부여는 인증된 사용자가 액세스할 수 있는 항목을 확인하는 프로세스입니다. 사용자가 인증되면 역할 기반 액세스 제어는 사용자가 필요로 하거나 요청하는 리소스로만 액세스를 엄격하게 제한해야 합니다.

암호화

암호화를 사용하면 일반 텍스트 및 기타 유형의 데이터가 판독 가능한 형식에서 암호 해독 키를 가진 엔터티만 해독할 수 있는 인코딩된 버전으로 변환됩니다. 전송 계층 보안(TLS), SSL 연결 및 TLS 암호화 프로토콜과 같은 암호화 기술을 사용하여 팀은 악의적인 행위자나 권한이 없는 사용자가 API 트래픽을 가로채거나 변경하지 못하도록 보장할 수 있습니다. 

입력 유효성 검사

입력 유효성 검사 프로토콜은 입력이 처리되기 전에 입력이 특정 기준(길이, 유형, 형식, 범위 등)을 충족하는지 확인하여 SQL 주입 공격 및 교차 사이트 스크립팅과 같은 악성 데이터로부터 API를 보호합니다. 웹 애플리케이션 방화벽(WAF)과 XML 또는 JSON 스키마 유효성 검사를 활용하면 보안팀이 유효성 검사 프로세스를 자동화하여 수신 요청을 선제적으로 분석하고 악성 트래픽이 서버에 도달하기 전에 차단할 수 있습니다.  

속도 제한

속도 제한은 사용자 또는 IP 주소가 특정 기간 내에 수행할 수 있는 호출 수를 제한하여 무차별 대입 및 DoS 공격으로부터 API 리소스를 보호합니다. 속도 제한은 모든 API 요청을 즉시 처리하고 어떤 사용자도 시스템에 유해한 요청을 발생할 수 없도록 합니다.

할당량 및 스로틀링

속도 제한과 마찬가지로 스로틀링은 시스템이 수신하는 API 호출 수를 제한합니다. 하지만 스로틀링은 사용자/클라이언트 수준에서 작동하는 대신 서버/네트워크 수준에서 작동합니다. 스로틀링 제한 및 할당량은 API를 초당 특정 수의 호출, 메시지 또는 둘 다로 제한하여 API 백엔드 시스템 대역폭을 보호합니다. 

보안 헤더

보안 헤더는 클릭재킹 공격을 방지하는 데 특히 효과적일 수 있습니다. 예를 들어, 'content-security-policy' 헤더는 브라우저가 서버에 요청할 수 있는 리소스를 알려줍니다. 'x-content-type-option' 헤더는 브라우저가 MIME 스니프 콘텐츠 유형을 시도하는 것을 중지하고 'strict-transport-security' 헤더는 서버에 대한 보안(HTTP over SSL/TLS) 연결을 적용합니다. 

API 게이트웨이

API 게이트웨이 설치는 특히 개방형 API의 경우 API 액세스를 제한하고 네트워크 보안 계층을 추가하는 가장 쉬운 방법 중 하나입니다. API 게이트웨이는 시스템이 수신하는 모든 API 요청에 대한 단일 진입점 역할을 하며, API 상호 작용을 표준화하고 캐싱, 분석, API 구성, 속도 제한, 암호화, 로깅, 액세스 제어 등과 같은 보안 기능을 제공합니다.

감사 및 로깅

포괄적인 최신 감사 로그를 보관하고 자주 검토하면 조직은 데이터 액세스 및 사용 현황을 추적하고 모든 API 요청을 기록할 수 있습니다. API 에코시스템의 복잡성을 감안할 때 API 활동을 파악하는 것은 상당히 노동 집약적일 수 있지만, 감사 및 로깅 절차를 통해 팀이 데이터 침해 또는 규정 준수 기간이 만료된 후 절차를 다시 수행해야 할 때 시간을 절약할 수 있습니다.

오류 처리

API 환경에서 사전 예방적 오류 처리를 통해 사이버 범죄자가 API 프로세스에 대한 민감한 정보를 유출하는 것을 방지할 수 있습니다. 이상적으로 모든 API 오류는 오류의 특성을 광범위하게 나타내는 HTTP 상태 코드를 반환하고 팀이 과도한 데이터 노출 위험 없이 문제를 이해하고 해결할 수 있는 충분한 컨텍스트를 제공합니다.

API 모니터링 및 패치

다른 소프트웨어 애플리케이션이나 시스템과 마찬가지로, API 보안을 유지하려면 철저한 실시간 모니터링과 유지 관리가 필수적입니다. 비정상적인 네트워크 활동을 주시하고 최신 보안 패치, 버그 수정 및 새로운 기능으로 API를 업데이트합니다.

또한 조직은 오픈 웹 애플리케이션 보안 프로젝트(OWASP)의 API 보안 권장 사항과 같은 보안 표준을 적시에 채택해야 합니다. 예를 들어, OWASP API Security Top 10 목록은 손상된 인증, 대량 할당, 서버 측 요청 위조와 같은 가장 중요하고 일반적인 API 보안 위협을 이해하고 완화하기 위한 프레임워크를 제공합니다.

버전 관리 및 문서화

API 소프트웨어의 모든 새 버전에는 이전 버전의 보안 격차를 보완하는 보안 업데이트 및 버그 수정이 함께 제공됩니다. 그러나 적절한 버전 관리 관행이 없으면 사용자가 실수로(또는 고의로) 오래된 버전의 API를 배포하여 민감한 데이터가 위험에 노출될 수 있습니다. 세심한 버전 관리 및 문서화 관행을 통해 기업은 서비스 중단 없이 API 개발을 가속화하고 이전 API 버전을 단계적으로 폐기하여 사용자를 더 새롭고 안전한 반복 작업으로 유도할 수 있습니다.

예를 들어 팀이 API v1에서 보안 결함을 발견하면 v2에서 이를 수정할 수 있습니다. 또한 버전 관리를 통해 보안팀은 사용자가 자신의 속도에 맞춰 v1에서 v2로 마이그레이션하도록 권장하는 동시에 v1에 알려진 보안 취약점이 있음을 버전 설명서에 명시할 수 있습니다. 

보안 테스트

보안 테스트를 수행하려면 개발자가 API 클라이언트를 사용하여 표준 요청을 제출하여 시스템 응답의 품질 및 정확성을 평가해야 합니다. 보안 격차를 식별하고 해결하기 위해 정기적인 보안 테스트를 수행하면 공격자가 API 취약성을 악용하기 전에 팀이 API 취약점을 수정하는 데 도움이 됩니다. 

관련 솔루션
IBM API Connect®

IBM API Connect는 직관적인 경험을 통해 API를 일관되게 생성, 관리, 보호, 소셜화, 수익화하고 온프레미스 및 클라우드 전반에서 디지털 혁신을 지원하는 전체 라이프사이클 API Management 솔루션입니다. 

API Connect 살펴보기

IBM API Connect - API 보안 사용 사례

IBM API Connect는 API 액세스를 보호, 제어, 중재하는 다양한 기능을 제공합니다. OAuth, OpenID Connect 및 써드 파티 서비스를 통한 인증 및 권한 부여 기능을 사용하여 API에 대한 액세스를 제어하세요. DMZ뿐만 아니라 클라우드 네이티브 앱 및 마이크로서비스에 함께 배치하는 등의 방식으로 런타임 시 어디서나 액세스를 보호할 수 있습니다.

API 보안 사용 사례 살펴보기

Noname Advanced API Security for IBM

고급 AI 기반 기능으로 기업 전체의 API 보안을 강화하세요. API Management 및 Application Gateway 분야의 선두주자인 IBM은 API 보안 분야의 선두업체인 Noname Security와 협력하여 고급 API 보안 기능을 제공하고 있습니다. 새로운 수준의 보안 신뢰도를 달성할 수 있도록 공동 솔루션이 지원합니다.

Noname Advanced API Security for IBM 살펴보기
리소스 IBM App Connect 1페이지 개요

포괄적인 API Management 솔루션으로 API 가치를 극대화하고 디지털 비즈니스를 강화하세요.

IBM API Connect 튜토리얼

이 튜토리얼은 개발자가 프로젝트에서 기술을 사용하는 방법을 배우는 데 도움이 되는 실습 지침을 제공합니다.

IBM 통합 커뮤니티 허브

해답을 얻고 모범 사례를 확인해 보세요. 여러분의 참여를 기다립니다.

다음 단계 안내

IBM API Connect는 직관적인 사용자 경험을 통해 일관된 API 생성, 관리, 보호, 소셜화 및 수익화하고 온프레미스 및 클라우드 전반에서 디지털 혁신을 지원하는 보안 API 관리 솔루션입니다. 이를 통해 고객사와 고객사의 고객이 실시간으로 디지털 앱을 지원하고 혁신을 추진할 수 있습니다. IBM API Connect는 IBM Cloud Pak for Integration의 일부로 다른 기능과 함께 제공되며 클라우드로 전환 과정에서 애플리케이션 현대화 및 API Management를 자동화할 수 있습니다.

IBM API Connect 살펴보기
각주

 Research Brief: The Urgency of Addressing API Security in an Application Security Program (ibm.com 외부 링크), Enterprise Strategy Group, 2023년 10월 16일

2  On the Radar: Wib secures APIs throughout their full lifecycles (ibm.com 외부 링크), Omdia, 2023년 9월 1일

3 The next big API security breach looms: here’s how to prepare (ibm.com 외부 링크), SC Magazine, 2023년 10월 19일