매일 업데이트
2023-08-14 11:15 11 min

GraphQL 보안 취약점을 찾아 수정하는 9가지 도구

GraphQL 보안 취약점 및 해결 도구 완벽 분석

혹시 GraphQL을 처음 접하는 분들을 위해 간략히 설명드리자면, GraphQL은 Facebook에서 개발한 API용 쿼리 언어이자 런타임으로, 현재는 오픈 소스 프로젝트로 운영되고 있습니다.

모든 소프트웨어와 마찬가지로 GraphQL 또한 장점과 단점을 동시에 지니고 있습니다.

기능적인 측면에서의 단점은 논외로 하더라도, GraphQL에도 분명히 취약점 목록이 존재한다는 사실을 알고 계셨나요?

하지만 너무 걱정하지 마세요. GraphQL의 보안 취약점을 찾아내고 수정하는 데 도움이 되는 다양한 도구들이 존재합니다.

이러한 도구들을 소개하기에 앞서, GraphQL이 무엇인지, 그리고 그 취약점은 어떤 것들이 있는지 먼저 알아보는 시간을 갖도록 하겠습니다.

GraphQL이란 무엇인가?

GraphQL에 대한 이해를 돕기 위해 한 가지 상황을 가정해 보겠습니다. 여러분이 식당에 앉아 점심 식사를 주문하는 상황입니다.

메뉴에 적혀 있는 대로 정확한 요리를 원하지 않을 수도 있습니다. 때로는 특정 재료를 추가하거나 빼고 싶을 수도 있을 겁니다. 예를 들어, 견과류 알레르기가 있다면 자신이 원하는 대로 음식을 맞춤화하고 싶을 것입니다.

GraphQL을, 고객이 원하는 대로 음식을 맞춤 제작하여 정확히 요청한 음식을 제공하는 웨이터라고 생각해 보세요. 단, GraphQL은 서버의 데이터를 대상으로 작동한다는 차이점이 있습니다.

이러한 기술을 활용함으로써 최신 애플리케이션은 불필요한 데이터 전송을 줄여 대역폭을 절약하고 사용자 경험을 향상시킬 수 있습니다.

더 자세한 내용은 최고의 GraphQL 소프트웨어에 대한 정보를 참고하세요.

GraphQL의 취약점

다음은 민감한 정보 탈취를 노리는 이들이 악용할 수 있는 잠재적인 취약점 목록입니다.

  • 과다 및 과소 페칭: 이 취약점은 서버 리소스를 과도하게 소모시킬 수 있습니다. GraphQL에서 데이터를 가져오는 방식이 적절하지 못하면, 과다 페칭(요청한 것보다 더 많은 데이터를 가져옴) 또는 과소 페칭(요청한 것보다 적은 데이터를 가져오게 하여 사용자가 여러 번 요청해야 하는 상황)을 초래할 수 있습니다.
  • 과도한 데이터 노출: 접근 제어가 제대로 구성되지 않은 경우 중요한 데이터가 노출될 수 있습니다. 서버가 무단 액세스를 허용하게 되면, 기술적으로 능숙한 해커라면 누구든지 쉽게 데이터를 유출할 수 있습니다.
  • 중첩 쿼리 문제: GraphQL은 기본적으로 복잡도 제한이 없기 때문에, 사용자는 복잡한 쿼리를 전송할 수 있습니다. 모든 시스템 리소스를 소모하여 응답 속도 저하나 잠재적인 서비스 거부(DoS) 공격으로 이어지는 여러 개의 중첩된 복잡한 쿼리를 상상해 보세요.
  • 주입 공격: GraphQL은 결국 사용자 제공 입력을 사용하는 쿼리 언어입니다. 즉, API가 안전하지 않다면 악성 코드가 삽입될 수 있으며 데이터베이스, 파일 시스템, 심지어 네트워크 및 운영 체제까지 공격 대상이 될 수 있습니다.
  • GraphQL 폭탄: 2022년 8월에 발견된 이 취약점은 구현된 API에 영향을 미칩니다. GraphQL 파일 업로드와 관련되어 있습니다. 이것은 GraphQL 엔드포인트에 많은 양의 HTTP 요청을 전송하여 서비스 거부(DoS) 공격을 유발하는 방식입니다.
  • 잘못 구성된 HTTP 헤더: 사소해 보일 수 있지만, 이것은 생각보다 훨씬 더 큰 피해를 초래할 수 있습니다. 제대로 구성되지 않은 HTTP 헤더는 CSRF(Cross-Site Request Forgery), MIME 스니핑, 중간자 공격 등의 공격에 대한 취약점을 노출시킬 수 있습니다.
  • 잘못 구성되거나 설정되지 않은 속도 제한: 속도 제한은 특정 시간 동안 클라이언트가 수행할 수 있는 쿼리 수를 제한하는 것입니다. 속도 제한을 설정하지 않으면 잠재적인 DoS 위협에 노출될 수 있습니다.

조금 무섭게 느껴지시나요? 당연합니다.

이제 GraphQL 취약점을 찾아내고 수정하며 서버를 보호하는 데 사용할 수 있는 최고의 도구들을 소개하겠습니다. 아래는 논의할 도구들에 대한 간략한 요약입니다.

제품 주요 기능
GraphQL 보안 탈출 빠른 스캔, 실제 위험 감지, 개발자 도구 통합
Inviciti GraphQL 스캐너 다양한 공격 유형 스캔, 최신 공격 보호
StackHawk GraphQL 테스트 지속적인 취약점 검사, 자동화된 보안
비글 보안 능동적 테스트, CI/CD 통합, 상세 보고서
GraphQL 도트 보안 무료 옵션, 엔드포인트 확인, 최신 데이터베이스
Qualysec GraphQL 펜 테스트 OWASP Top 10 분석, 동적/정적 API 테스트
AppCheck 보안 검사 API, SPA 및 엔드포인트 테스트, Jira/TeamCity 지원
시놉시스 API 보안 테스트 지속적인 백그라운드 테스트, 시각적 결함 매핑
밝은 보안 API 테스트 마이크로서비스 중심, CLI, SaaS 기반, CI/CD 통합

GraphQL 보안 탈출

Escape는 개발자를 염두에 두고 제품을 개발하며, GraphQL 보안 검사기도 예외는 아닙니다.

소수의 보안 서비스 제공업체 중 하나이므로, 최신 취약점에 대한 스캔이 빠르게 이루어진다는 것을 확신할 수 있습니다.

하지만 여기서 끝이 아닙니다.

  • 첫 번째 스캔을 시작하는 데 약 60초밖에 걸리지 않습니다!
  • Escape의 데이터베이스는 최신 취약점 정보로 꾸준히 업데이트됩니다.
  • 단순히 위험할 수 있는 문제점을 표시하는 것이 아니라, 실제 위험을 정확하게 보여줍니다.
  • 자주 사용하는 개발자 도구와 통합이 가능합니다.

만약 빠르고 쉬운 방법으로 GraphQL 취약점을 확인하고 싶다면 Escape가 좋은 선택이 될 수 있습니다.

Inviciti GraphQL 스캐너

이전에는 Netsparker로 알려졌던 Inviciti는 API 스캐닝 분야에서 가장 신뢰받고 인기 있는 이름 중 하나입니다.

고객들이 가장 알고 싶어 하는 점은 이 제품이 처리할 수 있는 공격 유형일 것입니다. 다음은 Inviciti로 스캔할 수 있는 주요 공격 및 취약점 목록입니다.

  • 블라인드 명령 주입
  • 블라인드 SQL 주입
  • 명령 주입
  • 원격 코드 실행
  • 서버 측 요청 위조

현대적인 공격으로부터 시스템을 보호할 수 있는 강력한 솔루션입니다.

StackHawk GraphQL 보안 테스트

StackHawk의 GraphQL 테스트를 사용할 때 가장 큰 장점은 모든 풀 요청에서 발생할 수 있는 GraphQL 취약점을 확인할 수 있다는 것입니다.

이 핵심 기능만으로도 충분히 매력적이지만, StackHawk에는 더욱 흥미로운 기능들이 많이 있습니다.

  • 자동화된 보안 테스트
  • 번개처럼 빠른 테스트 및 수정 속도
  • 직관적인 사용자 인터페이스
  • 자체 수정을 위한 상세한 문서

정말 훌륭하지 않나요?

비글 보안

비글 보안은 자동화된 웹 애플리케이션 보안 테스트 솔루션 제공을 전문으로 하며, 기업이 보안 결함을 식별하고 수정하는 데 도움을 줍니다.

이 제품은 다음과 같은 4가지 주요 기능으로 매우 특별합니다.

  • 집중적이고 능동적인 테스트
  • CI/CD와의 통합
  • 상세한 보고서
  • 보안 전문가의 자세한 수정 제안

또한, 웹사이트의 취약점을 확인하려면 무료 웹사이트 평가 검사기를 이용해 볼 수도 있습니다.

GraphQL 도트 보안(graphql.security)

만약 무료 옵션을 찾고 있고 제한된 기능으로도 충분하다면 graphql.security보다 나은 선택은 없을 것입니다.

이 제품 역시 Escape에서 개발되었기 때문에 테스트 품질과 신뢰성을 보장받을 수 있습니다.

주요 기능은 다음과 같습니다.

  • Escape의 최신 데이터베이스
  • 별도의 등록 절차 불필요
  • 클릭 한 번으로 엔드포인트 확인 기능
  • 무료 서비스

만약 막 온라인 비즈니스를 시작하여 예산이 제한적이라면 graph.security를 사용하는 것이 좋습니다.

Qualysec GraphQL API 침투 테스트

Qualysec는 전문적인 GraphQL API 침투 테스트와 사이버 보안 평가 서비스를 제공하여, 모든 보안 문제를 해결하고 취약점을 찾아 수정할 수 있도록 도와줍니다.

제공되는 몇 가지 흥미로운 기능은 다음과 같습니다.

  • 가장 일반적인 위협으로부터 보호하기 위한 OWASP Top 10 GraphQL API 테스트 분석
  • 동적 API 테스트
  • 정적 API 테스트
  • 소프트웨어 구성 분석

보안 기능 외에도 침투 보고서, 재시험 보고서, 증명 서신 및 보안 인증서와 같은 뛰어난 취약점 스캔 보고서를 제공합니다.

AppCheck 보안 검사

AppCheck는 API 테스트에 대한 완벽한 지원을 제공할 뿐만 아니라, SPA 크롤링, 엔드포인트 검색 등 다양한 기능을 제공합니다.

이 외에도 더 많은 장점이 있습니다.

  • 실용적인 워크플로우를 통해 시간 절약
  • Jira, TeamCity 및 기타 개발 도구와의 호환성
  • 제로데이 공격 및 10만 개 이상의 알려진 보안 결함 발견, 완전한 OWASP 지원

꽤 많은 기능이 제공되네요. 그렇지 않나요?

시놉시스 API 보안 테스트

시놉시스는 애플리케이션의 노출된 엔드포인트를 자동으로 감지하는 API 테스트 프로그램을 제공합니다. 이 모든 기능이 백그라운드에서 지속적으로 실행됩니다.

아직도 부족한가요? 그럼 더욱 놀라운 기능들을 소개합니다.

  • 시각적 매핑을 통해 코드 및 데이터의 결함을 정확하게 찾아냅니다.
  • 자동화된 취약점 검색
  • 위협 및 위험 평가

밝은 보안 API 테스트

밝은 보안 서비스는 최신 마이크로서비스 환경을 위해 설계되었으며, SDLC, CI/CD 및 git 워크플로우와의 원활한 통합을 제공하여 최대한 쉽게 취약점을 감지할 수 있도록 돕습니다.

밝은 보안의 주요 기능은 다음과 같습니다.

  • 개발자를 위한 편리한 CLI
  • 100% SaaS 기반
  • CI/CD 통합
  • OWASP API Security Top 10에 매핑된 취약점

마무리…

이 튜토리얼에서는 주요 GraphQL 취약점과 GraphQL 취약점을 찾아 수정하는 데 유용한 최고의 도구들에 대해 알아보았습니다.

이 가이드가 도움이 되었기를 바랍니다.

또한, GraphQL과 REST API의 차이점 및 언제 어떤 API를 사용하는 것이 적절한지에 대한 내용을 참고하시는 것도 좋습니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.