지난 수년 동안 많은 조직이 디지털 변혁을 겪고 있으며, 이 과정은 COVID-19 팬데믹으로 인해 더욱 가속화되었습니다.
그리고 API는 그러한 변화에서 중요한 역할을 합니다. 디지털 전환의 일환으로 이러한 조직 중 다수가 이제 자신들이 "API 우선" 조직이라고 선언하고 있습니다. "API 우선" 조직은 API를 먼저 설계하여 애플리케이션을 설계하는 조직입니다. 그런 다음 API를 기반으로 나머지 애플리케이션의 디자인을 시작합니다. 이 애플리케이션의 의도는 기본 API를 활용하여 다른 애플리케이션과 통신하고 정보를 검색하는 것입니다.
이러한 조직은 일반적으로 API를 개발하여 외부 조직과의 파트너십을 지원하고, 개발 시간과 비용을 줄이며, 내부 시스템, 도구, 팀 간의 상호 운용성을 향상하기 위해 사용합니다.
F5 Labs의 2021년 애플리케이션 전략 보고서에 명시된 대로 API는 애플리케이션 현대화를 위한 초석이기도 하며, 더 새롭고 모듈화된 애플리케이션 언어, 도구 및 플랫폼을 지원하도록 오래되고 고전적인 애플리케이션을 적응시키고 업데이트하는 데 도움이 됩니다. 또한, 좋은 API와 나쁜 API 모두 이제 전체 웹 트래픽의 대부분을 차지합니다.
이것이 API의 "양날의 검"의 첫 번째 날입니다.
API와 관련된 "양날의" 검의 두 번째 날은 Gartner에 따르면 API 남용이 2022년까지 가장 빈번한 공격 벡터가 될 것이라는 것입니다. 공격자는 API가 취약할 수 있거나 일부 조직에서 보호하지 못하는 경우가 있다는 것을 알고 있습니다. API는 애플리케이션 간에 공유되는 데이터 및 정보의 개방적인 흐름에 의존하기 때문입니다. 때로는 단순한 실수일 뿐이지만, 공격자에게 애플리케이션을 손상시킬 수 있는 빠르고 간단한 진입점을 제공하는 경우도 있습니다. 이러한 상황에서는 업계에서 사용하는 모든 API 프로토콜과 기술을 기본적으로 지원하는 등의 특별한 처리가 필요합니다.
지난 몇 년 동안 빠르게 성장하고 계속해서 인기를 얻고 있는 비교적 새로운 API 기술 중 하나가 GraphQL입니다. 2012년 Facebook에서 내부적으로 개발하여 현재는 Linux Foundation의 일부가 된 GraphQL은 REST API에 존재하는 상당한 과제를 극복하고 있습니다. 기업들은 REST나 SOAP 대신 GraphQL을 사용하여 API를 개발하고 있습니다.
이러한 과제로는 데이터 부족 및 과잉 페치, 새로운 API 엔드포인트가 필요 없이 더 빠른 프런트엔드 개발(GraphQL은 하나의 엔드포인트를 사용), GraphQL 쿼리를 사용한 뛰어난 백엔드 분석, 구조화된 스키마 및 유형 시스템 등이 있습니다.
작년에 GraphQL은 이미 업계에서 22% 이상의 채택률을 달성했습니다.1 혁신가, 초기 채택자 및 혁신 도입 수명 주기의 초기 대부분에 도달합니다.
GraphQL은 앞으로 몇 년 안에 API의 주요 표준 중 하나가 될 것으로 기대됩니다.
그러나 GraphQL의 급격한 성장과 수용은 사이버 적대자들의 주목을 끌었으며, 그들 중 일부는 이미 GraphQL 생태계의 취약성을 악용하기 시작했으며 이를 공격하기 위한 도구를 개발하기 시작했습니다.
GraphQL을 사용하는 API에 대한 공격 기술에는 오래된 SQL 주입과 GraphQL 사양을 활용하여 API에 대한 데이터를 공개하고 공격자에게 유리하게 사용하는 새롭게 형성된 공격이 포함됩니다.
또한 GraphQL로 구축된 API를 활용하여 서버 리소스를 빠르게 소모하는 서비스 거부(DoS) 공격에 대한 새로운 방법이 도입되었습니다.
Advanced WAF v16.1부터 F5는 이제 GraphQL API에 대한 보안을 기본적으로 지원합니다.
무엇보다도, F5는 GraphQL 트래픽에 대한 기본 구문 분석을 개발하여 고급 WAF 공격 시그니처를 적용할 수 있게 했습니다.
한편으로, 이 접근 방식은 페이로드의 올바른 위치에서 공격을 감지하고(값에 대한 시그니처 실행) 다른 한편으로는 GraphQL 요청의 잘못된 부분에서 공격 시그니처가 실행되어 발생하는 거짓 긍정을 차단합니다.
두 번째로, F5는 애플리케이션 보안 정책의 일부로 GraphQL 정책 템플릿과 콘텐츠 프로필을 생성합니다.
이 새로운 콘텐츠 프로필에서는 사용자가 매개변수의 총 길이와 값 길이를 구성하여 정책에 따라 이를 제한할 수 있습니다.
또한, 사용자는 DoS 공격으로 이어질 수 있는 재귀적 GraphQL 쿼리를 없애기 위해 최대 구조 깊이를 구성할 수 있으며, 최대 일괄 쿼리를 구성하여 하나의 HTTP 요청에서 서로 다른 GraphQL 쿼리의 수를 제한할 수 있습니다.
또한, 내부 검사 쿼리를 시행하여 공격자가 API 구조를 이해하고 앱을 침해할 가능성을 높일 수도 있습니다.
이를 방지하기 위해 F5는 선언적 정책 구성, 동작 DoS 기능을 사용한 볼륨형 DoS 보호, F5 Advanced WAF의 DataGuard 기능을 사용한 응답 필터링에 대한 지원도 추가했습니다.
요약하자면 GraphQL은 API를 생성하고 관리하고, 기존 클래식 애플리케이션의 현대화를 강화하고, 디지털 변환을 지원하는 새로운 방법을 제공합니다. 하지만 언제나 그렇듯이 새로운 기술의 틈새를 악용하려는 위협이 점점 더 늘어나고 있으며, 이에 대비하지 못할 수도 있습니다.
지금 당장 F5 Advanced WAF 로 GraphQL API를 보호하세요!
자세한 내용은 DevCentral 게시물 과 YouTube의 Lightboard 강의를 확인하세요.
1 2020 API 보고서 현황 , Postman