API 보안을 위한 필수 도구와 모범 사례로 API 공격 방지

NGINX | 2023년 7월 18일

최근 몇 년간 API의 확산은 기업의 운영 방식을 크게 변화시켰습니다. API를 통해 서로 다른 애플리케이션이 상호 통신하고 데이터를 교환할 수 있게 되면서, 비즈니스 프로세스와 소프트웨어 개발의 효율성과 효과가 향상되었습니다.

그러나 API 사용이 증가함에 따라 API 스프롤의 위험도 커지고 있습니다. API 스프롤이란 적절한 감독과 관리 없이 분산된 팀과 아키텍처 전반에서 API가 생성되고 배포되는 현상을 말합니다. 이로 인해 기업에는 새로운 보안 위험이 발생할 수 있습니다. 각 API가 공격자가 민감한 데이터와 시스템에 무단으로 접근할 수 있는 잠재적 진입점이 되기 때문입니다.

API 우선 소프트웨어 개발의 부상

API 난립을 초래하는 주요 요인 중 하나는 마이크로서비스의 확산입니다. 마이크로서비스 아키텍처는 대규모 애플리케이션을 API를 통해 서로 통신하는 더 작은 개별 애플리케이션으로 분할합니다. 이를 통해 복잡한 애플리케이션을 개별 팀이 관리하고 트래픽 수요에 맞춰 서로 독립적으로 확장할 수 있는 독립된 구성 요소로 나눌 수 있습니다.

마이크로서비스는 유연성과 확장성 향상 등 개발자에게 많은 이점을 제공합니다. 하지만 이러한 이점에는 복잡성 증가와 같은 상충 요소가 따릅니다. 이에 따라 많은 기업이 마이크로서비스 구축에 API 우선 접근 방식을 채택합니다. 이 전략에서는 애플리케이션과 서비스의 설계 프로세스를 요청 및 응답 형식에 이르기까지 API의 작동 방식을 명시하는 API 계약에서 시작합니다.

API 수명 주기 전반에 보안 통합

API가 확산될수록 공격 표면도 확대됩니다

API 우선 소프트웨어 개발의 이점은 특히 설계 및 배포 과정에서 API 보안을 중요하게 다루지 않으면 쉽게 훼손될 수 있습니다. 가장 기본적인 수준에서 보면 API가 많아질수록 공격 표면도 넓어집니다. API는 현대 소프트웨어 개발에서 핵심적인 역할을 하지만, 동시에 악용하기도 점점 더 쉬워지고 있습니다.

2018년, Gartner는 예측했습니다 2022년까지 API가 애플리케이션을 대상으로 하는 가장 일반적인 공격 경로가 될 것이라고 말입니다. 오히려 그렇게 늦게까지 걸릴 것이라는 예측은 지나치게 낙관적이었습니다. 수백만 명의 사용자에게 영향을 미친 대기업의 세간의 이목을 끄는 API 침해 사고는 이미 발생하고 있었으며, 이후 더욱 빈번해졌습니다:

이러한 공격의 광범위함과 다양성은 보안 및 엔지니어링 책임자들이 직면한 과제를 여실히 보여줍니다. 일부 공격은 인터넷에 잘못 노출된 API를 악용합니다. 또 다른 공격은 코드 저장소에 잘못 노출된 API 키나 기타 인증 수단을 이용합니다. 또는 공격자가 VPN 취약점을 악용해 내부 환경에 접근한 뒤 내부 API를 통해 데이터를 유출하기도 합니다.

API 공격을 차단하려면 적절한 전략과 도구가 필요합니다

API 위협으로부터 보호하는 가장 일반적인 방법은 기존의 웹 애플리케이션 보안 전략과 최신 API 보안 기술을 결합하는 것입니다. 기존 전략만으로는 오늘날의 다양한 API 위협에 충분히 대응하지 못하는 경우가 많습니다. 자동화된 API 검색 및 API 대조 테스트와 같은 최신 기술은 이러한 보안 공백을 해소하는 데 목적이 있습니다.

기업은 오른쪽을 보호(배포된 앱과 API를 보호하기 위해 전역 제어 및 보안 정책을 구현)하는 동시에 왼쪽으로 이동(앱과 API가 프로덕션 환경에 배포되기 전에 취약점을 제거하도록 코드에 보안을 내재화)하는 것이 매우 중요합니다. 어느 전략도 단독으로는 포괄적인 API 보안을 제공할 수 없으므로, 침해를 방지하려면 다음 세 가지 API 보안 관행 범주를 아우르는 총체적인 접근 방식이 필요합니다:

  • API 보안 태세 관리– 노출되는 데이터 유형과 요청 메서드를 비롯해 API 모음의 보안 상태에 대한 가시성을 제공합니다
  • API 보안 테스트 – 잠재적 취약점을 식별하기 위해 API 수명 주기의 주요 단계에서 보안성을 평가합니다
  • API 런타임 보호– 운영 중 악성 요청이 API에 도달하는 것을 탐지하고 차단합니다

엔드투엔드 API 보안

올바른 전략과 적절한 도구를 결합하면 조직은 공격으로부터 API를 더욱 효과적으로 보호하고 소프트웨어 시스템의 보안을 강화할 수 있습니다. 플랫폼 엔지니어링 리더가 API의 전체 수명 주기에 걸쳐 API를 보호하기 위해 구현해야 하는 주요 기능과 도구를 살펴보겠습니다.

API 보안 태세 관리란 무엇인가요?

API 보안 태세 관리를 통해 API의 수, 유형, 위치 및 API를 통해 노출되는 데이터를 파악할 수 있습니다. 이 정보는 각 API와 관련된 위험을 이해하고 API를 보호하기 위한 적절한 조치를 취하는 데 도움이 됩니다.

주요 기능:

  • 자동화된 API 검색 – 환경에 배포된 API를 포괄적으로 파악할 수 있도록 API를 자동으로 지속 검색
  • API 특성 분석 – 프로토콜 또는 아키텍처(REST, GraphQL, SOAP 등)에 따라 API를 식별하고 분류하며, 민감한 데이터 흐름을 매핑하여 위험 노출 수준을 파악합니다
  • API 카탈로그화 – 소프트웨어 팀이 기존 API를 재사용하도록 장려하고 SecOps 팀이 보안 태세를 종합적으로 파악할 수 있도록 전체 API 목록을 유지 관리합니다

대표 기술:

  • Web application and API protection (WAAP) – API 인프라에서 확보한 유리한 글로벌 위치를 활용하여 환경으로 들어오고 나가는 트래픽을 분석하고, API를 식별하며, 위험 노출 현황을 파악합니다.
  • 인라인 또는 에이전트 기반 검색 – 기존 API 게이트웨이, 로드 밸런서 또는 Kubernetes Ingress 컨트롤러에 에이전트를 연결하여 API 트래픽을 미러링하고 분석합니다
  • 대역 외 또는 에이전트리스 검색 – 트래픽 미러링 또는 내보낸 로그와 메트릭을 사용하여 API 트래픽을 분석합니다. 일반적으로 다른 기술보다 API와 위협에 대한 가시성이 낮습니다.
  • 도메인 크롤러 – API 보안 제공업체는 도메인을 탐색하여 보안 정책을 적용할 수 있는 API 게이트웨이와 로드 밸런서를 우회하도록 트래픽을 허용하는 노출된 API 엔드포인트를 찾아내는 크롤러를 제공할 수 있습니다

다음 사항을 명심해야 합니다. 어떤 기술도 아키텍처 내의 모든 API를 확실하게 찾아낼 수는 없습니다. 대부분의 검색 기법은 기존 로드 밸런서, API 게이트웨이 및 Ingress 컨트롤러가 제공하는 가시성에 의존하므로, 이러한 아키텍처 구성 요소를 우회하는 잘못된 구성을 발견하지 못할 가능성이 높습니다.

궁극적으로는 코드 검토와 API 우선 모범 사례 준수가 장기적으로 문제를 예방하는 데 더 효과적입니다. 하지만 자동화된 API 검색 도구도 보안 태세를 신속하게 파악하고, 그렇지 않으면 관리 및 보안 조치 없이 방치될 수 있는 API를 찾아내는 데 여전히 유용합니다.

API 보안 테스트란 무엇인가요?

API 보안 태세 관리가 전사적 보안에 중점을 두는 반면, API 보안 테스트는 개별 API에 초점을 맞춥니다. 기본적으로 API 보안 테스트는 API 런타임, 즉 API 뒤에서 실행되는 애플리케이션을 테스트하여 취약점과 그에 따른 위험을 식별하고 방지하는 데 도움이 됩니다. 또한 인증, 권한 부여, 속도 제한, 암호화 등의 기본 보안 요구 사항이 충족되었는지 확인하는 데 도움이 됩니다.

주요 기능:

  • API 계약 테스트 – API의 OpenAPI 사양을 사용하여 클라이언트 요청과 서버 응답을 비교함으로써 API가 설계대로 작동하는지 확인합니다. API를 배포하기 전에 취약점이 있는지 파악하기 위해 '인사이드 아웃' 접근 방식을 사용합니다.
  • 동적 애플리케이션 보안 테스트(DAST) – API 런타임에 대한 공격을 시뮬레이션하여 취약점을 찾아내고, 악의적인 사용자처럼 API를 ‘외부에서 내부로’ 평가합니다.

대표 기술:

  • API 계약 테스트 소프트웨어 – API 요청과 응답을 구분하여 클라이언트와 서버의 동작이 API 계약을 준수하는지 검증하는 테스트를 실행하기 위한 전문 도구
  • 애플리케이션 보안 테스트(AST) 소프트웨어 – 공격을 시뮬레이션하여 API를 포함한 애플리케이션을 분석하고 테스트하는 도구

오픈 소스 계약 테스트 도구와 API 보안 전문 공급업체의 상용 제품이 모두 있습니다. 애플리케이션 보안 테스트(AST) 시장은 수십 년 전부터 존재해 왔으며, API 전용 스캔 및 테스트 도구를 제공하는 공급업체가 점점 늘어나고 있습니다.

API 런타임 보호란 무엇인가요?

API 런타임 보호란 API가 요청을 처리하고 관리하는 동안 API를 보호하는 것을 의미합니다. 플랫폼 인프라와 API 자체 코드 모두에 보안을 내재화하는 데 중점을 둡니다. 그 목적은 배포 후 발생하는 악성 API 요청을 식별하고 차단하는 것입니다.
주요 기능:

  • 액세스 제어 – 인증(authN) 및 권한 부여(authZ) 정책 적용
  • Network security – 네트워크 전반의 통신을 암호화하고 보호
  • 애플리케이션 보호 – 악의적인 API 요청 및 공격으로부터 API 런타임 보호
  • 실시간 모니터링 – API 인프라 전반의 공격을 시각화하고 추적하여 완화

대표 기술:

  • API 게이트웨이 – 인증, 권한 부여, 속도 제한, 액세스 제어 목록, 암호화 등의 보안 정책을 적용하고 시행합니다
  • 웹 애플리케이션 방화벽 (WAF) – 공격 시그니처를 기반으로 트래픽을 능동적으로 모니터링하고 필터링하여 정교한 계층 7 공격으로부터 API와 애플리케이션을 보호합니다
  • ID 공급자 (IdP) – 사용자 ID를 저장하고 확인하며, 일반적으로 SSO(Single Sign-On) 공급자와 연동하여 사용자를 인증하는 서비스

모든 API 게이트웨이와 WAF/WAAP가 동일한 수준으로 제공되는 것은 아닙니다. 일부 서비스, 특히 클라우드 및 기타 플랫폼에서 제공되는 네이티브 솔루션은 멀티 클라우드 및 하이브리드 아키텍처에 필요한 전역 가시성과 표준화가 부족합니다.

API 보안 모범 사례

API 보안의 중요성을 고려할 때, 체계적인 방식으로 API 보안에 접근하는 것이 필수적입니다. 플랫폼 엔지니어링 및 보안 책임자는 API 수명 주기 전반의 보안 요구 사항을 해결하기 위해 협력해야 합니다. 앞서 살펴본 바와 같이, 이는 크게 API 보안 태세 관리, API 보안 테스트, API 런타임 보호라는 세 가지 주요 실무 영역에 해당합니다. 즉, 보유한 API의 수를 파악하고, API의 오류를 테스트하는 방법을 마련하며, 코드에 보안을 내재화하는 데 집중해야 합니다.

API 보안 모범 사례 목록

결론

모든 사이버 보안이 그렇듯 API 보안도 네트워크 엔지니어, 보안 운영 책임자, 플랫폼 엔지니어링 책임자, 소프트웨어 개발 엔지니어 등 다양한 이해관계자와의 협업이 필요한 지속적인 과정입니다. 다행히 API를 보호하는 방법은 그리 어렵거나 복잡하지 않습니다.

대부분의 조직은 이미 크로스 사이트 스크립팅, 인젝션, 분산 서비스 거부 공격 등 API를 표적으로 삼을 수 있는 잘 알려진 공격에 대응하기 위한 조치를 마련해 두고 있습니다. 또한 위에서 설명한 여러 모범 사례는 숙련된 보안 전문가에게 매우 익숙할 것입니다. 조직에서 운영하는 API의 수와 관계없이, 목표는 견고한 API 보안 정책을 수립하고 지속적으로 선제 관리하는 것입니다.

NGINX API Connectivity Stack 30일 무료 평가판을 시작하세요. 여기에는 API를 관리, 통제 및 보호하는 F5 NGINX Management Suite API Connectivity Manager, API 게이트웨이로 사용되는 F5 NGINX Plus, 고급 API 보안을 위한 F5 NGINX App Protect WAF 및 DoS가 포함됩니다.

추가 리소스


공유

관련 블로그 게시물

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
NGINX | 2023. 11. 30.

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric

이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
NGINX | 2023. 03. 23.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법

앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
NGINX | 2021. 09. 27.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션

개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX | 2021. 07. 06.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법

NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX | 2021. 06. 30.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리

NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
NGINX | 2015. 03. 25.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유

Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.