API 보안: 필수 도구와 방어 사례로 API 공격을 뚫지 않는 방법

API 사용이 증가함에 따라 종종 적절한 감독 및 관리 없이 API가 분산된 팀과 아키텍처 전체에 생성 및 배포되는 API 무분별한 확산의 위험이 있습니다. 각 API 보안 이란 공격자가 중요한 데이터 및 시스템에 무단 액세스할 수 있는 잠재적인 진입점을 나타내므로 기업에 새로운 보안 위험 집합을 생성할 수 있습니다.

최근 몇 년간 API의 대중화로 기업들의 운영 방식이 크게 변화되었습니다. API는 서로 다른 애플리케이션들이 통신하고 데이터를 교환할 수 있도록 해주어 더 효율적이고 효과적인 비즈니스 프로세스와 소프트웨어 개발이 가능하게 합니다.

목차

1. API 우선 소프트웨어 개발의 부상
2. API가 확산됨에 따라 공격 표면이 증가합니다.
3. API 공격을 저지하려면 올바른 전략과 도구가 필요합니다.
3-1. API 보안 태세 관리란?
3-2. API 보안 테스트란 무엇입니까?
3-3. API 런타임 보호란 무엇입니까?
4. API 보안 모범 사례
5. 결론

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

API 확산의 주요 동인 중 하나는 마이크로서비스의 확산입니다. 마이크로서비스 아키텍처는 더 큰 애플리케이션을 API를 통해 서로 통신하는 더 작은 개별 애플리케이션으로 나눕니다. 이것은 복잡한 애플리케이션을 개별 팀이 관리할 수 있고, 트래픽 수요를 충족하기 위해 서로 독립적으로 확장할 수 있는 개별 부분으로 나눕니다.

마이크로서비스는 향상된 유연성과 확장성을 포함하여 개발자에게 많은 이점을 제공합니다. 그러나 이러한 이점에는 추가 복잡성을 포함하여 장단점이 있습니다. 결과적으로 많은 기업이 마이크로서비스 구축에 API 우선 접근 방식을 채택합니다. 이 전략에서 애플리케이션 및 서비스에 대한 설계 프로세스는 API 작도 방식을 간략하게 설명하는 API 계약으로 시작하여 요청 및 응답 형식까지 내려갑니다.

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

2. API가 확산됨에 따라 공격 표면이 증가합니다.

API 우선 소프트웨어 개발의 이점은 특히 설계 및 배포 중에 API 보안을 심각하게 받아들이지 않으면 쉽게 약화될 수 있습니다. 가장 기본적인 수준에서 더 많은 API는 더 많은 공격 표면을 의미합니다. API는 최신 소프트웨어 개발에서 중요한 역할을 하는 동시에 악용하기 쉬워지고 있습니다.

2018년에 Gartner는 API가 2022년까지 애플리케이션에 대한 가장 일반적인 공격 벡터가 될 것이라고 예측했습니다. 어쨌든 그렇게 많은 지연에 대한 그들의 예측은 지나치게 낙관적이었습니다. 수백만 명의 사용자에게 영향을 주는 미친 주요 회사의 세간의 이목을 끄는 API 침해는 이미 발생했으며, 점점 더 흔해지고 있습니다.

  • 2018년 Facebook은 공격자가 회사의 개발자 API를 악용하여 이름, 성별, 고향을 포함하여 사용자의 프로필 페이지에 연결된 개인 식별 정보(PII)를 얻은 후 최소 5천 만 명의 사용자 데이터가 위험에 처했다고 보고했습니다.
  • 2019년 Linkedln은 해커가 API를 악용하여 7억 명 이상의 사용자 정보를 수집하여 다크 웹에 판매하는 데이터 스크래핑 기술을 사용했다고 보고했습니다.
  • 2021년에는 Peloton이 관리하는 API를 통해 악의적인 행위자가 연령, 성별, 도시, 체중, 생년월일을 포함한 PII를 요청할 수 있었습니다.
  • 2022년에 Twitter는 전화번호와 이메일 주소를 포함하여 540만 사용자 계정의 데이터를 노출한 API 위반 문제를 해결했습니다.
  • 2023년에 T-Mobile은 API 위반으로 인해 이름, 이메일, 주소, 전화번호, 생년월일 등 3,700만 고객의 데이터가 도난당했다고 보고했습니다.

이러한 공격의 범위와 다양성은 보안 및 엔지니어링 리더가 직면한 문제를 보여줍니다. 일부 공격은 인터넷에 잘못 노출된 API를 악용합니다. 다른 사람들은 코드 리포지토리에 잘못 노출된 API Key 또는 기타 인증 방법을 사용합니다. 또는 공격자가 VPN exploit을 통해 내부 환경에 액세스하고 내부 API를 사용하여 데이터를 유출합니다.

3. API 공격을 저지하려면 올바른 전략과 도구가 필요합니다.

API 위협으로부터 보호하는 가장 일반적인 방법은 기존 웹 애플리케이션 보안 전략과 최신 API 보안 기술을 결합하는 것입니다. 기존의 전략은 오늘날의 다양한 API 위협에 직면하여 부족한 경우가 많습니다. 자동화된 API 검색 및 API 대조 테스트와 같은 최신 기술은 이러한 격차를 좁히려고 시도합니다.

기업은 오른쪽을 보호하고(배포된 앱과 API를 보호하기 위해 전역 제어 및 보안 정책을 구현) 왼쪽으로 전환하는 것(앱과 API가 프로덕션에 들어가기 전에 취약성을 제거하기 위해 코드에 보안을 구축)하는 것이 중요합니다. 어떤 전략도 자체적으로 포괄적인 API 보안을 제공할 수 없으므로 위반을 방지하는 핵심은 API 보안 관행의 세 가지 범주에 걸친 전체적인 접근 방식입니다.

  • API 보안 태세 관리 – 노출된 데이터 유형 및 요청 방법을 포함하여 API 컬렉션의 보안 상태에 대한 가시성을 제공합니다.
  • API 보안 테스트 – 수명 주기의 주요 지점에서 API의 보안을 평가하여 잠재적인 취약성을 식별합니다.
  • API 런타임 보호 – 작동 중에 악의적인 요청이 API에 도달하는 것을 감지하고 방지합니다.
엔드투엔드 API 보안

올바른 전략과 올바른 도구를 결합함으로써 조직은 공격으로부터 API를 더 잘 보호하고 소프트웨어 시스템의 보안을 보장할 수 있습니다. 수명 주기 동안 API를 보호하기 위해 플랫폼 엔지니어링 리더가 구현해야 하는 중요한 기능과 도구를 살펴보겠습니다.

3-1. API 보안 태세 관리란?

API 보안 태세 관리는 API에서 노출되는 데이터의 수, types, locations 및 데이터에 대한 가시성을 생성합니다. 이 정보는 각 API와 관련된 위험을 이해하여 이를 보호하기 위한 적절한 조치를 취하는 데 도움이 됩니다.

주요 기능:

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

대표 기술:

  • 웹 애플리케이션 및 API 보호(WAAP) – API 인프라에서 권한 있는 글로벌 위치를 활용하여 환경에 들어오고 나가는 트래픽을 분석하고, API를 식별하고, 위험 노출 보기를 구축합니다.
  • 인라인 또는 에이전트 기반 검색 – 에이전트를 기존 API Gateway, Load Balancer 또는 Kubernetes Ingress Controller에 연결하여 API 트래픽을 미러링하고 분석합니다.
  • 대역 외 또는 에이전트 없는 검색 – 트래픽 미러링 또는 내보낸 로그 및 지표를 사용하여 API 트래픽을 분석합니다. 일반적으로 다른 기술보다 API 및 위협에 대한 가시성이 떨어집니다.
  • 도메인 크롤러 – API 보안 공급자는 트래픽이 보안 정책을 시행할 수 있는 API Gateway 및 Load Balancer를 우회하도록 허용하는 노출된 API endpoint에 대해 도메인을 조사하는 크롤러를 제공할 수 있습니다.

아키텍처에서 모든 API를 안정적으로 찾을 수 있는 기술은 없다는 것을 명심하는 것이 중요합니다. 대부분의 검색 기술은 기존 Load Balancer, API Gateway 및 Ingress Controller에서 제공하는 가시성에 의존하며 이러한 아키텍처 구성 요소를 우회하는 잘못된 구성을 포착할 가능성이 없습니다.

궁극적으로 코드 검토와 API 우선 모범 사례를 따르면 보다 효과적인 장기적 예방이 가능합니다. 그러나 자동화된 API 검색 도구는 보안 상태에 대한 보기를 신속하게 구축하지 않고 그렇지 않으면 관리되지 않고 보안되지 않을 수 있는 API를 포착하는 데 여전히 유용합니다.

3-2. API 보안 테스트란 무엇입니까?

API 보안 상태 관리는 전사적 보안과 관련이 있지만, API 보안 테스트는 개별 API에 관한 것입니다. 기본적으로 API 보안 테스트는 API 뒤에서 실행되는 애플리케이션인 API 런타임을 테스트하여 취약성과 관련 위험을 식별하고 방지하는 데 도움이 됩니다. 인증, 권한 부여, 속도 제한 및 암호화 조건을 포함하여 기본 보안 요구 사항이 충족되었는지 확인하는 데 도움이 됩니다.

주요 기능:

  • API 계약 테스트 – API의 OpenAPI 사양을 사용하여 클라이언트 요청과 서버 응답을 비교하여 설계된 대로 작동하는지 확인합니다. “inside out” 접근 방식을 사용하여 API가 배포되기 전에 취약한지 여부를 검색합니다.
  • DAST(Dynamic Application Security Testing) – API 런타임에 대한 공격을 시뮬레이션하여 취약점을 찾고 악의적인 사용자처럼 “outside in” API를 평가합니다.

대표 기술:

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

전용 API 보안 공급업체의 오픈 소스 계약 테스트 도구와 상용 제품이 모두 있습니다. AST(Application Security Testing) 시장은 수십 년 동안 존재해 왔으며, 점점 더 많은 벤더가 API 전용 스캐닝 및 테스트 도구를 제공합니다.

3-3. API 런타임 보호란 무엇입니까?

API 런타임 보호는 요청을 운영하고 관리할 때 API 보안을 의미합니다. 플랫폼 인프라와 API 자체의 코드에 대한 보안 구축을 우선시합니다. 목표는 배포 후 나타나는 악의적인 API 요청을 식별하고 방지하는 것입니다.

주요 기능:

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

대표 기술:

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

모든 API Gateway와 WAF/WAAP가 동일하게 생성되는 것은 아닙니다. 일부 서비스, 특히 클라우드 및 기타 플랫폼에서 사용할 수 있는 기본 솔루션은 다중 클라우드 및 하이브리드 아키텍처에 필요한 글로벌 가시성 및 표준화가 부족합니다.

4. API 보안 모범 사례

API 보안의 중요성을 고려할 때 체계적인 방식으로 API 보안에 접근하는 것이 필수적입니다. 플랫폼 엔지니어링 및 보안 리더는 API 수명 주기 전반에 걸쳐 보안 요구 사항을 해결하기 위해 협력해야 합니다. 이전에 살펴보았듯이 이는 API 보안 태세 관리, API 보안 테스트 및 API 런타임 보호의 세 가지 주요 실행 영역과 대략적으로 일치합니다. 즉, 보유한 API 수, 오류 테스트 방법, 코드에 보안을 구축하는 방법을 파악하는 데 집중해야 합니다.

API 보안 모범 사례 목록

5. 결론

모든 사이버 보안과 마찬가지로 API 보안은 네트워크 엔지니어, 보안 운영 리더, 플랫폼 엔지니어링 리더, 소프트웨어 개발 엔지니어를 비롯한 많은 이해관계자와의 협업이 필요한 지속적인 프로세스입니다. 좋은 소식은 API를 보호하는 방법이 큰 미스터리가 아니라는 것입니다.

대부분의 조직은 이미 Cross-Site Scriptiing, Injection, Disributed denial of service 및 API를 대상으로 할 수 있는 기타 공격과 같은 잘 알려진 공격에 대처하기 위한 조치를 취하고 있습니다. 그리고 위에서 설명한 많은 모범 사례는 노련한 보안 전문가에게 매우 친숙할 것입니다. 조직에서 운영하는 API의 수에 관계없이 목표는 견고한 API 보안 정책을 설정하고 시간이 지남에 따라 사전 예방적으로 관리하는 것입니다.

API를 관리, 통제 및 보호하기 위한 F5 NGINX Management Suite API Connectivity Manager가 포함된 NGINX API 연결 스택의 30일 무료 평가판을 시작하십시오. API Gateway로서의 F5 NGINX Plus; 및 F5 NGINX App은 고급 API 보안을 위해 WAF 및 DoS를 보호합니다.

NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.

아래 뉴스레터를 구독하고 NGINX의 최신 정보들을 빠르게 전달받아보세요.