NGINX App Protect WAF로 GraphQL 및 gRPC API 보호하기

F5 NGINX App Protect WAF를 사용하여 GraphQL 및 gRPC 양방향 스트리밍 API를 보호하는 방법을 알아보고 일반적인 취약성 및 공격으로부터 API를 보호하기 위한 모범 사례를 알아보세요.

코로나19 팬데믹 이후 디지털 경제는 계속 확장되고 있으며, 90%의 기업이 최신 앱 아키텍처를 확장하고 있습니다. F5의 2023 애플리케이션 전략 현황 보고서에서 설문조사에 참여한 1,000명의 글로벌 IT 의사 결정권자 중 40% 이상이 자사의 앱 포트폴리오를 “최신”이라고 설명했습니다. 이 비율은 지난 몇 년 동안 꾸준히 증가해 왔으며, 2025년에는 50%를 초과할 것으로 예상됩니다. 그러나 최신 앱의 증가와 마이크로서비스의 확산을 수반하여, 이로 인해 취약성 잠재력과 공격의 표면적 영역이 기하급수적으로 증가하고 있습니다.

F5 CTO 사무실의 보고서인 ‘지속적인 API 확산‘에 따르면 2021년에는 전 세계적으로 약 2억 개의 API가 존재했으며, 2030년에는 20역 개에 육박할 것으로 예상됩니다. 이러한 급속한 API 증가로 인한 복잡성은 하이브리드 및 멀티 클라우드 환경 전반에서 분산된 애플리케이션을 관리해야 하는 과제로 더욱 가중되고 있습니다. 2023년 애플리케이션 전략 현황 보고서의 응답자들은 멀티클라우드 환경에서 애플리케이션을 배포할 때 가장 어려운 점으로 여러 툴과 API 관리의 복잡성을 꼽았습니다. 일관된 보안 정책 적용과 앱 성능 최적화가 근소한 차이로 공동 2위를 차지했습니다.

현재 사람들이 멀티 클라우드에 애플리케이션을 배포할 때 겪는 어려움에 대한 설문조사 결과입니다. 복잡성 및 보안 문제는 계속되고 있으며, 2022년 1위였던 가시성은 7위로 떨어졌습니다.

목차

1. API 보안이 수익에 중요한 이유
2. NGINX가 어떻게 API 보안을 지원하는 방법
3. GraphQL과 gRPC가 증가하고 있습니다.
3-1. GraphQL API를 사용하는 이유는?
3-2. gRPC API를 사용하는 이유는?
4. NGINX App Protect WAF로 GraphQL API 보안 유지
5. NGINX App Protect WAF로 gRPC 양방향 스트리밍 API 보호
6. SecOps팀과 API 개발팀 모두 API 보안을 관리하고 자동화할 수 있습니다.
7. 요약

1. API 보안이 수익에 중요한 이유

API는 최신 애플리케이션의 구성 요소일 뿐만 아니라 디지털 비즈니스의 핵심입니다. F5 2023 보고서에서 설문조사에 참여한 조직의 58%가 디지털 서비스에서 매출의 절반 이상을 창출한다고 답했습니다. API는 사용자와 앱 간, 앱과 앱 간 통신을 가능하게 하며, 개인 고객 데이터와 기업 내부 정보에 대한 액세스를 제공하기 때문에 공격자들에게 수익성이 좋은 표적이 됩니다. 2022년에는 API가 가장 많이 선택된 공격 벡터였습니다.

API를 보호하는 것은 전반적인 애플리케이션 보안 전략에서 가장 중요합니다. 공격은 소비자 프라이버시 침해를 넘어 공공 안전을 해치고 지적 재산의 손실로 이어지는 심각한 수준의 결과를 초래할 수 있습니다. 다음은 2022년에 발생한 각 유형의 API 공격에 대한 몇 가지 예시입니다.

  • Consumer privacy(소비자 개인정보 보호) – 트위터는 다년간에 걸친 API 공격을 경험했습니다. 2022년 12월, 해커들은 2억 명의 트위터 사용자의 프로필 데이터와 이메일 주소를 탈취했습니다. 그보다 몇 개월 전에는 유효한 트위터 API Key와 비밀번호를 유출하는 3,207개의 모바일 애플리케이션이 CloudSEK 연구진에 의해 발견되었습니다. 그리고 해커들은 API 취약점을 악용해 540만 명의 사용자 데이터를 탈취해 판매하기도 했습니다.
  • Public safety(공공 안전) – 한 연구팀이 도요타, 메르세데스, BMW를 포함한 약 20개의 주요 자동차 제조업체에서 심각한 API 보안 취약점을 발견했습니다. 오늘날 수많은 자동차가 스마트 기기처럼 작동하기 때문에 해커는 차량 소유자의 차량 등록 번호와 개인정보를 훔치는 데 그치지 않고 더 많은 것을 할 수 있습니다. 해커는 자동차 위치를 추적하고 원격 관리 시스템을 제어하여 자동차의 잠금을 해제하고 시동을 걸거나 자동차를 완전히 비활성화할 수 있습니다.
  • Intellectual property(지적 재산) – 전 세계 100만 명 이상의 개발자가 코드를 배포하는 데 사용하는 CI/CD 플랫폼인 CircleCI의 한 직원이 멀웨어 공격의 표적이 되었습니다. 이 직원은 프로덕션 액세스 토큰을 생성할 수 있는 권한을 가지고 있었으며, 그 결과 해커는 고객의 API Key와 비밀을 훔칠 수 있었습니다. 이 침해는 거의 3주 동안 눈에 띄지 않았습니다. 고객의 비밀이 도난당해 third-party 시스템에 무단으로 액세스하는 데 사용되었는지 여부를 알 수 없었기 때문에 CircleCI는 고객에게 프로젝트 및 개인 API 토큰을 교체하라고 조언할 수밖에 없었습니다.

이러한 API 공격은 경각심을 불러일으킵니다. API에 보안 취약점이 있고 보호되지 않은 채로 방치되면, 금전적 비용을 훨씬 뛰어넘는 장기적인 결과를 초래할 수 있습니다. API 보안의 중요성은 아무리 강조해도 지나치지 않습니다.

2. NGINX가 어떻게 API 보안을 지원하는 방법

NGINX API 연결 스택 솔루션은 멀티 클라우드 환경 전반에서 API Gateway와 API를 관리하는 데 도움이 됩니다. NGINX App Protect WAF와 함께 NGINX Plus를 API Gateway로 배포하면 F5 2023 애플리케이션 전략 현황 보고서에서 확인된 상위 3가지 API 과제(멀티 클라우드 환경 전반에서 API 복잡성 관리, 보안 정책 보장, 앱 성능 최적화)와 이전 섹션에서 설명한 API 공격 유형을 해결하는 일반적인 API 악용을 방지하고 완화할 수 있습니다. NGINX Plus는 API 요청을 신속하게 라우팅하고, API 클라이언트를 인증 및 권한 부여하여 API를 보호하고, 트래픽을 제한하여 API 기반 서비스를 과부하로부터 보호하는 등 여러 가지 방법으로 사용할 수 있습니다.

NGINX Plus는 OWASP API Security Top 10 취약점뿐만 아니라 즉시 사용 가능한 보호 기능을 제공합니다. 또한 잘못된 쿠키, JSON, XML을 검사하고, 허용된 파일 유형과 응답 상태 코드의 유효성을 검사하며, 공격을 감추는 데 사용되는 우회 기법을 탐지합니다. NGINX Plus API Gateway는 REST, GraphQL, gRPC를 포함한 HTTP 또는 HTTP/2 API 프로토콜에 대한 보호를 보장합니다.

NGINX App Protect WAF는 7,500개 이상의 고급 시그니처, 봇 시그니처, 위협 캠페인으로부터 보호하여 OWASP API Security Top 10 및 OWASP (애플리케이션) Top 10에 대한 기본 보호를 뛰어넘는 경량 고성능 앱 및 API 보안을 제공합니다. 이 제품은 코드형 보안을 CI/CD 파이프라인에 통합하기 위한 shift-left 전략과 API 보안의 손쉬운 자동화를 지원합니다. AWS, Azure, Cloudflare WAF에 대한 테스트에서 NGINX App Protect WAF는 더 나은 성능과 짧은 시간을 유지하면서 강력한 앱 및 API 보안을 제공하는 것으로 확인되었습니다. 자세한 내용은 이 GigaOm 보고서를 확인하세요.

NGINX App Protect WAF는 NGINX Plus API Gateway에 내장되어 있어 API 트래픽에 대한 홉이 한 개 줄어듭니다. 레이어 간 홉 수가 적으면 지연 시간, 복잡성, 장애 지점이 줄어듭니다. 이는 WAF와 통합되지 않는 일반적인 API 관리 솔루션(WAF를 별도로 배포해야 하며, 설정된 후에는 API 트래픽이 WAF와 API Gateway를 별도로 통과해야 함)과는 완전히 대조적인 결과입니다. NGINX의 긴밀한 통합은 보안의 저하 없이 고성능을 제공합니다.

3. GraphQL과 gRPC가 증가하고 있습니다.

앱 및 API 개발자는 유연성, 속도, 사용 및 배포 편의성을 높일 수 있는 새로운 방법을 끊임없이 모색하고 있습니다. Postman의 2022 API 현황 보고서에 따르면, 현재 가장 많이 사용되는 API 프로토콜은 여전히 REST(89%)이지만 GraphQL(28%)과 gRPC(11%)의 인기도 계속 높아지고 있습니다. 궁극적으로 API 프로토콜의 선택은 애플리케이션의 목적과 비즈니스에 가장 적합한 솔루션에 따라 크게 달라집니다. 각 프로토콜에는 고유한 이점이 있습니다.

3-1. GraphQL API를 사용하는 이유는?

GraphQL API 사용의 주요 이점은 다음과 같습니다:

  • 적응성 – 클라이언트가 데이터 요청, 유형, 형식을 결정합니다.
  • 효율성 – 오버페칭이 없고, 요청은 생성된 스키마에 대해 실행되며, 반환되는 데이터는 요청된 데이터와 정확히 일치합니다. 요청된 데이터와 형식이 동일하므로 GraphQL API를 빠르고 예측 가능하며 쉽게 확장할 수 있습니다.
  • 유연성 – 12개 이상의 언어와 플랫폼을 지원합니다.

GitHub는 GraphQL의 잘 알려진 사용자 중 하나입니다. 확장성과 유연성을 위해 2016년에 GraphQL로 전환했습니다.

3-2. gRPC API를 사용하는 이유는?

gRPC API 사용의 주요 이점은 다음과 같습니다:

  • 성능 – 가볍고 컴팩트한 데이터 포맷으로 리소스 요구량을 최소화하고 빠른 메시지 인코딩 및 디코딩이 가능합니다.
  • 효율성protobufs 데이터 형식은 구조화된 데이터를 직렬화하여 통신을 간소화합니다.
  • 신뢰성 – HTTP/2 및 TLS/SSL이 필요하므로 기본적으로 보안이 향상됩니다.

대부분의 성능은 클라이언트 측에서 제공되며 관리 및 계산은 리소스를 호스팅하는 원격 서버로 offload 됩니다. gRPC는 마이크로서비스 간의 트래픽이나 요청자(예: IOT 디바이)가 제한된 리소스를 절약해야 하는 데이터 수집과 같이 일상적으로 일정량의 데이터 또는 처리가 필요한 사용 사례에 적합합니다.

Netflix는 잘 알려진 gRPC API 사용자의 예입니다.

4. NGINX App Protect WAF로 GraphQL API 보안 유지

NGINX App Protect WAF는 이제 REST 및 gRPC API 외에도 GraphQL API를 지원합니다. 공격 시그니처를 적용하고, 악용을 제거하고, 공격을 방어하여 GraphQL API를 보호합니다. GraphQL 트래픽은 기본적으로 구문 분석되므로 NGINX App Protect WAF는 GraphQL 구문 및 프로필을 기반으로 위반을 감지하고 공격 시그니처를 적용할 수 있습니다. 내부 쿼리에 대한 가시성을 통해 NGINX App Protect WAF는 이를 차단하고 응답에서 탐지된 패턴을 차단할 수 있습니다. 이 방법은 페이로드의 적절한 세그먼트에서 공격을 탐지하고 시그니처를 실행하는 데 도움이 되며, 이를 통해 오탐을 줄이는 데 도움이 됩니다.

NGINX App Protect WAF를 통한 GraphQL API 보안의 이점:

  • 보안 매개변수 정의 – 조직 정책에 따라 앱 보안 정책의 일부로 GraphQL 템플릿 및 콘텐츠 프로필에 있는 매개변수의 총길이와 값을 설정합니다.
  • 오탐 감소 – 세분화된 제어를 통해 공격 예방의 정확도를 향상시켜 GraphQL 요청에서 공격을 더 잘 탐지합니다.
  • 악용 완화 – 하나의 HTTP 요청에 최대 일괄 처리 쿼리를 정의하여 악의적인 악용 및 공격의 위험을 줄입니다.
  • DoS 공격 제거 – 콘텐츠 프로필에서 최대 구조 깊이를 구성하여 재귀 쿼리로 인한 DoS 공격을 차단합니다.
  • API 위험 노출 제한 – 침입으로 이어질 수 있는 API 구조를 해커가 이해하지 못하도록 내부 검사 쿼리에 제약을 적용합니다.

5. NGINX App Protect WAF로 gRPC 양방향 스트리밍 API 보호

이제 NGINX App Protect WAF는 단방향 메시지 유형 외에도 gRPC 양방향 스트리밍을 지원하므로 메시지 스트림(클라이언트, 서버 또는 둘 다)을 사용하는 gRPC 기반 API를 보호할 수 있습니다. 이를 통해 통신 유형에 관계없이 gRPC API에 대한 완벽한 보안을 제공합니다.

NGINX App Protect WAF는 스키마를 적용하고, 크기 제한을 설정하고, 알 수 없는 파일을 차단하고, 리소스 고갈 유형의 DoS 공격을 방지하여 gRPC API를 보호합니다. Interface Definition Language(IDL) 파일을 NGINX App Protect WAF로 가져와서 gRPC 메시지의 구조와 스키마를 적용하고 적절한 위치에서 공격을 검사할 수 있습니다. 이렇게 하면 gRPC를 통해 애플리케이션을 악용하려는 시도를 정확하게 탐지할 수 있으며, 컨텍스트 없이 잘못된 위치에서 보안을 검사할 때 발생할 수 있는 오탐을 방지할 수 있습니다.

NGINX App Protect WAF를 통한 gRPC API 보안의 이점:

  • 포괄적인 gRPC 보호 – 단방향에서 양방향 스트리밍까지 통신 유형에 관계없이 완벽한 보안 제공
  • 오탐 감소 – gRPC 메시지 구조 및 스키마 적용으로 정확도가 향상되어 gRPC 요청에서 공격을 더 잘 탐지합니다.
  • 악의적인 공격 차단 – 알 수 없는 필드를 차단하는 기능과 함께 gRPC 메시지의 각 필드에 올바른 유형과 예산 콘텐츠가 있는지 확인합니다.
  • DoS 공격 제거 – 메시지 크기 제한을 통해 리소스 고갈 유형의 DoS 공격 방지

6. SecOps팀과 API 개발팀 모두 API 보안을 관리하고 자동화할 수 있습니다.

Postman의 2022 API 현황 보고서에서 설문조사에 참여한 37,000명의 개발자 및 API 전문가 중 20%는 조직에서 한 달에 한 번 이상 API 사고가 발생하여 데이터 손실, 서비스 중단, 남용 또는 부적절한 액세스가 발생한다고 답했습니다. 반면 응답자의 52%는 API 공격을 1년에 한 번도 받지 않는다고 답해, API 보안을 위한 전략의 일환으로 보안을 조기에 도입하는 것이 중요하다는 점을 강조했습니다. API가 애플리케이션보다 더 자주 게시됨에 따라 API 보안에 대한 shift-left 전략이 점점 더 많이 적용되고 있습니다. 조직이 shift-left 문화를 채택하고 CI/CD 파이프라인에 코드형 보안을 통합하면 API 개발의 각 단계에 보안을 구축하고 개발자가 민첩성을 유지할 수 있으며 배포 속도를 가속화 할 수 있습니다.

NGINX App Protect WAF, Jenkins 및 Ansible 에서 보안을 코드로 사용하여 shift left 하는 방법을 보여주는 다이어그램

보호가 API별로 이루어져야 하는 핵심 영역은 gRPC IDL 파일 및 GraphQL 쿼리를 포함한 API 스키마의 유효성 검사입니다. 스키마는 각 API마다 고유하며 각 API 버전에 따라 변경됩니다. API 스키마를 자동화할 때 API를 업데이트할 때마다 해당 파일의 구성과 코드도 업데이트해야 합니다. WAF 구성을 자동화된 방식으로 배포하여 API 버전 변경을 따라잡을 수 있습니다. NGINX App Protect WAF는 스키마의 유효성을 검사하여 요청이 API가 지원하는 것(메서드, 엔드포인트, 매개변수 등)을 준수하는지 확인할 수 있습니다. NGINX App Protect WAF는 SecOps팀이 생성할 수 있는 선언적 정책으로 일관된 앱 보안을 지원하며, API 개발팀은 API 보안을 관리 및 배포하여 보다 세분화된 제어와 민첩성을 확보할 수 있습니다. 하이브리드 및 멀티 클라우드 환경 전반에서 대규모로 API 보안을 자동화하려는 경우 NGINX App Protect WAF가 도움이 될 수 있습니다.

7. NGINX App Protect WAF 요약

최신 앱 포트폴리오는 계속 성장하고 있으며, 마이크로서비스를 사용함에 따라 API가 훨씬 더 많이 확산되고 있습니다. API 보안은 특히 하이브리드 또는 멀티 클라우드 환경에서 운영되는 조직에게 복잡하고 까다로운 과제입니다. API 보안이 부족하면 금전적 비용을 넘어 파괴적인 롱테일 효과가 발생할 수 있습니다. NGINX App Protect WAF는 REST, GraphQL, gRPC API에 대한 보호를 포함하는 포괄적인 API 보안을 제공하며, SecOps 및 API팀이 전체 API 수명 주기 및 분산 환경 전반에 걸쳐 보안을 자동화할 수 있도록 지원합니다.

지금 바로 30일 무료 체험판으로 NGINX App Protect WAF를 테스트해 보세요.

NGINX에 대한 최신 정보들을 빠르게 전달받고 싶으시다면, 아래의 뉴스레터를 구독하세요.

NGINX STORE를 통한 솔루션 도입 및 기술지원 무료 상담 신청

* indicates required