블로그 | NGINX

F5 NGINX App Protect WAF로 GraphQL 및 gRPC 양방향 스트리밍 API를 보호하세요

NGINX-F5-수평-검정-유형-RGB의 일부
Thelen Blum 썸네일
텔렌 블럼
2023년 4월 27일 게시

디지털 경제는 COVID-19 팬데믹 이후 계속해서 확대되고 있으며, 90%의 기업이 최신 앱 아키텍처를 성장시키고 있습니다. F5의 2023년 애플리케이션 전략 보고서에 따르면 , 설문 조사에 참여한 전 세계 IT 의사결정권자 1,000명 중 40% 이상이 자사 앱 포트폴리오를 "현대적"이라고 설명했습니다. 이 비율은 지난 몇 년 동안 꾸준히 증가해 왔으며 2025년까지 50%를 넘어설 것으로 예상됩니다. 그러나 최신 앱과 마이크로서비스 사용이 증가하면서 API와 API 엔드포인트도 급증하여 취약성이 노출될 가능성과 공격 표면이 기하급수적으로 늘어났습니다.

F5 CTO 사무실의 보고서인 Continuous API Sprawl 에 따르면 2021년 전 세계적으로 약 2억 개의 API가 존재했으며, 2030년까지는 이 숫자가 20억 개에 도달할 것으로 예상됩니다.  이러한 급속한 API 성장으로 인해 발생하는 복잡성을 더욱 키우는 것은 하이브리드 및 멀티 클라우드 환경에서 분산된 애플리케이션을 관리하는 과제입니다. 2023년 애플리케이션 전략 보고서 응답자들은 멀티 클라우드 환경에 앱을 배포할 때 여러 도구와 API를 관리하는 데 따르는 복잡성을 가장 큰 과제로 꼽았습니다. 일관된 보안 정책을 적용하고 앱 성능을 최적화하는 것이 두 번째로 중요했습니다.

그림 1: 멀티 클라우드 환경에서 앱을 배포하는 데 따른 주요 과제(출처: 2023년 응용 프로그램 전략 보고서 현황).

API 보안이 최종 수익에 중요한 이유

API는 현대적 애플리케이션의 빌딩 블록일 뿐만 아니라 디지털 비즈니스의 핵심이기도 합니다. F5 2023 보고서에 따르면 설문 조사에 참여한 조직의 58%가 수익의 절반 이상을 디지털 서비스에서 얻는다고 답했습니다. API는 사용자 간, 앱 간 통신을 가능하게 하며, 개인 고객 데이터와 내부 회사 정보에 대한 액세스를 제공하므로 공격자에게 수익성 있는 표적으로 삼기에 적합합니다. 2022년에는 API가 공격 벡터로 선택되었습니다.

전반적인 애플리케이션 보안 전략에서 API를 보호하는 것은 가장 중요합니다. 공격은 소비자의 개인 정보를 침해하는 것을 훨씬 뛰어넘어(그것도 나쁘지만) 대중의 안전을 해치고 지적 재산의 유출로 이어질 수 있는 심각성이 커져 파괴적인 결과를 초래할 수 있습니다. 다음은 2022년에 발생한 각 유형의 API 공격에 대한 몇 가지 예입니다.

  • 소비자 개인 정보 보호 – Twitter는 수년간 API 공격을 겪었습니다. 2022년 12월 해커들은 트위터 사용자 2억 명의 프로필 데이터와 이메일 주소를 훔쳤습니다. 4개월 전, CloudSEK 연구원들은 유효한 Twitter API 키와 비밀을 유출하는 모바일 애플리케이션 3,207개를 발견했습니다. 그리고 그보다 한 달 전, 해커들은 API 취약점을 악용해 540만 명의 사용자 의 데이터를 압수해 판매했습니다.
  • 공공 안전 – 연구원 팀은 Toyota, Mercedes, BMW를 포함한 약 20개의 주요 자동차 제조업체에서 심각한 API 보안 취약점을 발견했습니다. 요즘은 많은 자동차가 스마트 기기처럼 작동하기 때문에 해커는 단순히 차량 식별 번호와 자동차 소유자의 개인 정보를 훔치는 데 그치지 않고 더 많은 일을 할 수 있습니다. 자동차 위치를 추적하고 원격 관리 시스템을 제어하여 자동차의 잠금을 해제하고 시동을 걸거나 자동차를 완전히 비활성화할 수 있습니다.
  • 지적 재산권 – 전 세계적으로 100만 명이 넘는 개발자가 코드를 제공하는 CI/CD 플랫폼인 CircleCI 의 한 직원이 맬웨어 공격을 받았습니다. 이 직원은 프로덕션 액세스 토큰을 생성할 수 있는 권한이 있었고 그 결과 해커는 고객의 API 키와 비밀을 훔칠 수 있었습니다. 이 침해는 거의 3주 동안 주목받지 못했습니다. CircleCI는 고객의 비밀이 도난당해 제3자 시스템에 대한 무단 액세스에 사용되었는지 알 수 없으므로 고객에게 프로젝트 및 개인 API 토큰을 교체하도록만 조언할 수 있었습니다.

이러한 API 공격은 경고의 의미가 있습니다. API에 보안 취약점이 있고 보호되지 않은 채로 방치하면 장기적인 피해가 금전적 비용을 훨씬 넘어설 수 있습니다. API 보안의 중요성은 지나치게 강조할 수 없습니다.

F5 NGINX가 API 보안을 지원하는 방법

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

NGINX Plus는 OWASP API 보안 상위 10개 취약점에 대한 즉각적인 보호 기능을 제공합니다. 또한 잘못된 형식의 쿠키, JSON, XML을 확인하고, 허용된 파일 유형과 응답 상태 코드를 검증하며, 공격을 가리는 데 사용되는 회피 기술을 감지합니다. NGINX Plus API 게이트웨이는 REST, GraphQL, gRPC를 비롯한 HTTP 또는 HTTP/2 API 프로토콜에 대한 보호를 보장합니다.

NGINX App Protect WAF는 OWASP API 보안 상위 10개 및 OWASP(애플리케이션) 상위 10개에 대한 기본적인 보호를 넘어 가볍고 고성능의 앱 및 API 보안을 제공하며, 7,500개 이상의 고급 시그니처, 봇 시그니처 및 위협 캠페인으로부터 보호합니다. 이를 통해 API 보안의 쉬운 자동화와 보안 코드를 CI/CD 파이프라인에 통합하여 좌측 이동 전략을 구현할 수 있습니다. AWS, Azure, Cloudflare WAF를 대상으로 테스트한 결과, NGINX App Protect WAF는 더 나은 성능과 낮은 대기 시간을 유지하면서도 강력한 앱 및 API 보안을 제공하는 것으로 나타났습니다. 자세한 내용은 GigaOm 보고서를 확인하세요.  

NGINX App Protect WAF는 NGINX Plus API 게이트웨이에 내장되어 있어 API 트래픽의 홉이 하나 줄어듭니다. 계층 간 홉이 줄어들면 지연 시간, 복잡성 및 장애 지점이 줄어듭니다. 이는 WAF와 통합되지 않는 일반적인 API 관리 솔루션과는 극명한 대조를 이룹니다(WAF를 별도로 배포해야 하며, 설정한 후 API 트래픽은 WAF와 API 게이트웨이를 별도로 통과해야 함). NGINX의 긴밀한 통합은 보안에 대한 타협 없이 높은 성능을 의미합니다.

GraphQL과 gRPC가 부상하고 있습니다

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

GraphQL API를 사용하는 이유는 무엇입니까?

GraphQL API를 사용하는 주요 이점은 다음과 같습니다.

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

GitHub은 GraphQL을 사용하는 잘 알려진 회사 중 하나입니다. 그들은 확장성과 유연성을 이유로 2016년에 GraphQL로 전환했습니다.

gRPC API를 사용하는 이유는 무엇입니까?

gRPC API를 사용하는 주요 이점은 다음과 같습니다.

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

대부분의 성능은 클라이언트 측에서 제공되고, 관리와 계산은 해당 리소스를 호스팅하는 원격 서버로 오프로드됩니다. gRPC는 마이크로 서비스 간 트래픽이나 요청자(예: IoT 장치)가 제한된 리소스를 보존해야 하는 데이터 수집 등 일정량의 데이터나 처리가 정기적으로 필요한 사용 사례에 적합합니다.

Netflix는 gRPC API를 사용하는 잘 알려진 사례입니다.

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를 공격으로부터 어떻게 방어하는지 알아보세요.

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

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

NGINX App Protect WAF를 사용하여 보안 gRPC 양방향 스트리밍 API

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

NGINX App Protect WAF는 스키마 적용, 크기 제한 설정, 알 수 없는 파일 차단, 리소스 고갈 유형의 DoS 공격 방지를 통해 gRPC API를 보호합니다. NGINX App Protect WAF에 IDL(인터페이스 정의 언어) 파일을 가져와서 gRPC 메시지의 구조와 스키마를 적용하고 올바른 위치에서 공격을 검사할 수 있습니다. 이를 통해 gRPC를 통해 애플리케이션을 악용하려는 시도를 정확하게 감지하고, 맥락 없이 잘못된 위치에서 보안을 스캔할 때 발생할 수 있는 거짓 긍정을 방지할 수 있습니다.

이 데모에서 NGINX App Protect WAF가 gRPC 양방향 API를 공격으로부터 어떻게 방어하는지 알아보세요.

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

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

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

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

NGINX App Protect WAF, Jenkins 및 Ansible을 사용하여 코드로 보안을 사용하여 왼쪽으로 이동하는 방법을 보여주는 다이어그램
그림 2: NGINX App Protect WAF를 사용하면 CI/CD 파이프라인에 API 보안을 통합하여 전체 API 수명 주기에 걸쳐 자동화된 보호를 제공할 수 있습니다.

보호가 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가 도움이 될 수 있습니다.

요약

최신 앱 포트폴리오는 계속해서 성장하고 있으며, 마이크로서비스를 사용하면서 API도 더욱 널리 확산되고 있습니다. API 보안은 복잡하고 어려운 문제이며, 특히 하이브리드 또는 멀티 클라우드 환경에서 운영하는 조직의 경우 더욱 그렇습니다. API 보안의 부족은 금전적 비용 이상의 파괴적인 장기적 효과를 초래할 수 있습니다. NGINX App Protect WAF는 REST, GraphQL, gRPC API를 보호하는 포괄적인 API 보안을 제공하며 SecOps 및 API 팀이 전체 API 라이프사이클과 분산 환경에서 보안을 전환하고 자동화할 수 있도록 지원합니다.

오늘 30일 무료 체험판을 통해 NGINX App Protect WAF를 테스트해 보세요.

추가 자료

블로그: NGINX App Protect WAF로 API 게이트웨이를 보호하세요
전자책: 최신 앱 및 API 보안
전자책: O'Reilly의 API 아키텍처 마스터링
데이터시트: NGINX 앱 보호 WAF


"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."