REST API 보안이란 무엇일까요?

REST API는 오늘날 널리 사용되고 있지만, 그 인기로 인해 사이버 공격의 주요 표적이 되고 있습니다. REST API 보안은 민감한 정보를 보호하고 웹 애플리케이션의 안정성을 보장하는 데 필수적입니다. 이 가이드에서는 암호화, 접속 제어, 전송률 제한, API 모니터링 등 다양한 보안 조치를 살펴보고 REST API를 보호하고 취약점을 방어합니다.

REST API 보안은 다양한 이유로 기업 사이버 보안 실무자에게 중요한 과제입니다. API는 애플리케이션과 민감한 데이터를 외부 접속에 노출시키기 때문에 데이터 유출을 일으키는 악의적인 공격자들이 가장 선호하는 표적입니다. 당연히 기업은 REST API를 보호하기 위해 API Security 툴에 투자해야 합니다. API Security는 암호화, 전송률 제한, 접속 토큰 등을 포함한 다양한 대응책으로 구성됩니다. 이러한 보안 제어와 이를 통해 REST API 보안을 강화하는 방법에 대해 알아봅니다.

REST API란 무엇일까요?

나머지 아키텍처 스타일은 2000년에 출판된 로이 필딩 박사의 논문에서 정의되었습니다. 이 백서의 목표는 웹에서 머신 간 통신을 위한 통일되고 일관된 아키텍처 접근 방식을 정의하는 것이었습니다. REST API는 REST(Representational State Transfer) 아키텍처 스타일을 사용해 데이터와 프로시저 호출을 보내고 받는 API입니다. REST API도 작동하려면 전송 프로토콜과 프로그래밍 언어가 필요합니다. REST API는 HTTP(Hypertext Transfer Protocol)를 통해 통신하며, 전송되는 메시지에 대해 선호되는 데이터 형식은 JSON(JavaScript Object Notation)입니다. 따라서 ‘API’라는 용어는 거의 항상 HTTP를 통해 JSON을 사용하는 REST API를 의미합니다.

REST API는 여러 가지 이유로 API의 주요 모드가 되었습니다. 첫째, 무료 표준 기반이기 때문에 도입에 장애물이 거의 없습니다. RESTful 프로그래밍은 "상태 비저장"이기 때문에 관리가 용이합니다. RESTful 인터페이스는 통일되어 있습니다. 쿼리 매개변수는 표준화되어 있습니다. 따라서 API를 생성하는 엔터티는 개발자가 API를 호출할 때 사용할 지침을 게시하는 것이 매우 쉽습니다. 예를 들어, API에서 데이터를 가져오는 방법은 JSON으로 반환됩니다. XML(Extensible Markup Language), 문서, 이미지 등 다른 유형의 응답도 가능합니다.

REST API 보안을 위한 모범 사례

적절한 보호 조치가 없으면 REST API는 광범위하고 취약한 공격 표면을 나타냅니다. 이전에는 기업이 해커가 API가 있는 네트워크 내부에서 데이터를 찾기 위해 열심히 노력해야 하는 "모호성을 통한 보안"에 의존할 수 있었지만, 기업은 문자 그대로 데이터를 찾아 훔치는 방법에 대한 지침을 게시합니다.

REST API 보안 관행은 성숙해졌습니다. 가장 효과적인 대응 방법은 다음과 같습니다.

API 검색

기업에는 아무도 모르는 API가 생각보다 많습니다. 대부분의 기업은 API 트래픽의 대부분에 대한 가시성이 거의 없거나 전혀 없는데, 모든 API가 API Gateway를 통해 라우팅된다고 가정하기 때문입니다. 하지만 사실은 그렇지 않습니다. 완전하고 정확한 인벤토리가 없으면 기업은 다양한 리스크에 노출됩니다. 필요한 핵심 기능은 다음과 같습니다.

  • 설정이나 종류에 관계없이 모든 API의 위치 및 인벤토리 파악
  • 휴면, 레거시, 좀비 API 탐지
  • 잊히거나, 방치되거나, 알려지지 않은 섀도 도메인 식별
  • 사각지대 제거 및 잠재적 공격 경로 파악

API 체계 관리

완전한 API 인벤토리를 구축한 후에는 API를 통해 어떤 종류의 데이터가 이동하고 있는지, 이것이 규제 요구사항을 준수하는 데 있어서 어떤 영향을 미치는지 파악해야 합니다. API 체계 관리는 트래픽, 코드, 설정에 대한 포괄적인 보기를 제공해 기업의 API 보안 체계를 평가합니다. 필요한 핵심 기능은 다음과 같습니다.

  • 인프라를 자동으로 스캔해 설정 오류와 숨겨진 리스크 발견
  • 주요 이해관계자에게 취약점을 알리는 맞춤형 워크플로우 생성
  • 민감한 데이터에 접속할 수 있는 API 및 내부 사용자 식별
  • 탐지된 문제에 심각도 순위를 할당해 해결 우선순위 지정

API 런타임 보안

‘유출 가정’이라는 개념에 대해 다들 잘 알고 계실 것입니다. API 관련 유출 및 공격도 이와 같이 불가피한 수준에 도달하고 있습니다. 프로덕션 환경에서 운영 중인 모든 API에 대해 실시간으로 공격을 탐지하고 차단할 수 있어야 합니다. 필요한 핵심 기능은 다음과 같습니다.

  • 데이터 변조 및 유출, 정책 위반, 의심스러운 행동, API 공격 모니터링
  • 추가적인 네트워크 변경이나 설치하기 어려운 에이전트 없이 API 트래픽 분석
  • 기존 워크플로우(티켓팅, SIEM 등)와 통합해 보안 및 운영팀에 알림 제공
  • 부분적으로 또는 완전히 자동화된 해결을 통해 실시간으로 공격 및 오용 방지

API 보안 테스트

API 개발팀은 가능한 한 빨리 작업해야 한다는 압박을 받고 있습니다. 모든 애플리케이션을 개발할 때 속도가 필수적인데, 개발 속도가 빠르면 취약점이나 설계 결함이 발생하고 이를 발견하지 못할 가능성이 큽니다. 개발 중인 API를 프로덕션에 출시하기 전에 테스트하면 취약한 API를 수정하는 데 드는 리스크와 비용을 크게 줄일 수 있습니다. 필요한 핵심 기능은 다음과 같습니다.

  • 악성 트래픽을 시뮬레이션하는 광범위한 자동화된 테스트 실행
  • API가 프로덕션 환경에 들어가기 전에 취약점을 발견해 공격 성공 리스크 줄이기
  • 확립된 거버넌스 정책 및 룰에 따라 API 사양 검사
  • 온디맨드 또는 CI/CD 파이프라인의 일부로 실행되는 API 중심 보안 테스트 실행

이 포괄적 접근 방식은 다음과 같은 기업의 기존 API 보안 기능을 보완합니다. 여기에는 다음이 포함될 수 있습니다.

보안 채널

  • API 호출 및 응답을 위한 통신 채널은 안전해야 합니다. 모범 사례는 SSL(Secure Socket Layer)로 알려진 TLS(Transport Layer Security)를 사용하는 것입니다. TLS 인증서는 엔드투엔드 암호화를 사용해 전송 중인 API 데이터와 접속 인증정보를 보호합니다. TLS는 해당 API를 통해 전송되는 모든 메시지를 암호화해 API를 통해 전송되는 정보를 보호합니다.
  • URL이 http가 아닌 https로 시작하면 웹사이트가 TLS를 지원한다는 것을 알 수 있습니다. TLS가 없으면 공격자는 전송 서버에서 정보를 가로채서 허가 없이 정보에 접속할 수 있습니다. 모든 인증 방법이 취약해집니다. TLS는 사용자에게 API가 합법적이고 보호되고 있음을 알리는 인증 기관의 인증서가 필요합니다.

API 키

API 키는 API 접속 인증정보로 작동하는 고유한 문자열입니다. API를 호출하는 클라이언트의 인증에 사용됩니다.

토큰

  • API 토큰은 API 사용자를 인증하는 고유한 디지털 식별자입니다. 토큰을 사용하면 2단계 인증 및 SSO(Single Sign-On)와 같은 부담스러운 인증 프로세스를 피할 수 있습니다. API 관리자는 API 사용자로부터 API 토큰을 부여하고 취소해 API 접속을 제어할 수 있습니다.
  • 토큰은 일반적으로 클라이언트 측 앱에서 사용할 수 있도록 API를 호스팅하는 서버에서 발행됩니다. 토큰 메커니즘은 일반적으로 상태 비저장 방식이라는 점에서 쿠키 기반 세션 관리와 다릅니다. 서버에서 세션 세부 정보를 저장할 필요가 없으므로 API를 사용하는 인프라를 쉽게 확장할 수 있습니다.

OAuth 2

이는 토큰을 기반으로 하는 안전한 표준 기반 인증 메커니즘입니다. API 사용자 인증 및 권한 확인에 사용됩니다.

JWT(JSON Web Token)

API 인증은 악성 공격자와 위협을 차단하는 데 중요한 장벽입니다. JWT는 JSON의 API 사용자에 대한 데이터가 포함된 디지털 서명된 인증 토큰입니다. JWT의 장점은 API 키보다 더 많은 데이터를 저장할 수 있다는 것입니다.

전송률 제한

  • API는 DDoS(Distributed Denial-of-Service) 공격의 표적입니다. 공격자는 API를 요청으로 플러딩해 종료할 수 있습니다. 이러한 문제를 방지하기 위해 API Security 툴은 클라이언트가 특정 기간 동안 API를 너무 자주 호출하려고 하면 접속을 차단하는 등 전송률 제한을 구현할 수 있습니다.

IAM과의 통합

  • API 관리를 IAM(Identity and Access Management) 시스템과 통합해 API 클라이언트에 대한 사용자 ID를 설정할 수 있습니다. 이렇게 하면 관리자가 API를 사용할 수 있는 사용자를 제어해 무단 접속을 방지할 수 있습니다.

매개변수 기반 쿼리 인풋 검증

  • 해커는 JSON 요청 데이터와 URL 매개변수를 수정해 API를 속이려고 할 수 있습니다. 이러한 매개변수 기반 인풋의 유효성을 확인하면 이러한 종류의 공격이 시작되기 전에 차단할 수 있습니다.

허용된 HTTP 메소드 허용 목록

이 대책은 API에 허용되는 HTTP 메서드(예: POST, GET, PUT)의 목록을 설정합니다. 기본적으로 이 제어는 DELETE와 같이 퍼블릭 API 사용자가 허용하지 않아야 하는 메서드를 차단합니다.

API 모니터링

  • 이상적으로는 실시간으로 API 사용량과 성능을 추적하는 것이 중요합니다. 관리자는 API를 모니터링해 공격이 진행 중임을 나타낼 수 있는 비정상적인 행동을 플래그할 수 있습니다. 여기에는 실패한 요청을 로깅하고 의심스러운 패턴을 찾는 것이 포함될 수 있습니다.

엔드포인트 보호 및 보안

REST API 아키텍처에서 API 엔드포인트의 중요한 역할을 고려할 때 엔드포인트 보호가 가장 중요합니다. 엔드포인트 보안 솔루션을 구축하면 각 엔드포인트를 무단 접속 및 악성 활동으로부터 보호할 수 있습니다. 여기에는 API Gateway를 사용해 API 트래픽을 관리 및 보호하고, 정책을 적용하고, 중앙 집중식 접속 제어 지점을 제공하는 것이 포함됩니다.

웹 애플리케이션 보안

REST API 보안은 웹 애플리케이션 보호에 필수적입니다. REST API는 웹 애플리케이션의 백본 역할을 수행해 클라이언트와 백엔드 서버 간의 통신을 가능하게 합니다. 애플리케이션 제어 및 접속 제어와 같은 보안 조치를 구축하면 API와 API가 지원하는 웹 애플리케이션을 모두 보호하는 데 도움이 됩니다.

FAQ

API Gateway는 API 요청에 대한 단일 진입 지점 역할을 함으로써 REST API 보안에서 중요한 역할을 합니다. 보안 정책을 적용하고 트래픽을 관리하며 권한이 부여된 사용자만 API 엔드포인트에 접속할 수 있도록 보장합니다. API Gateway는 전송률 제한, 인증, 데이터 암호화와 같은 기능을 제공해 보안 리스크를 방어하는 데도 도움이 됩니다.

쿼리 인풋의 유효성은 SQL 인젝션 및 기타 인젝션 공격과 같은 보안 취약점을 방지하는 데 필수적입니다. 기업은 모든 인풋의 유효성을 적절히 확인함으로써 검증되지 않은 데이터를 악용하는 악성 활동으로부터 API를 보호할 수 있습니다.

OAuth 2는 사용자를 인증하고 API 리소스에 대한 접속을 승인하기 위한 안전하고 표준화된 방법을 제공합니다. 토큰 기반 인증을 허용해 사용자의 프로세스를 간소화하는 동시에 권한이 부여된 개인만 민감한 정보에 접속할 수 있도록 합니다. 또한 OAuth 2는 써드파티 인증 공급업체와의 통합을 지원해 전반적인 보안을 강화합니다.

기업은 API 모니터링을 통해 API 사용을 추적하고 비정상적인 행동을 실시간으로 탐지할 수 있습니다. 관리자는 API 요청, 응답, 트래픽 패턴을 분석해 무단 접속 시도나 API 오용과 같은 잠재적인 보안 위협을 식별할 수 있습니다. 이러한 선제적 접근 방식은 리스크가 본격적인 공격으로 확대되기 전에 방어하는 데 도움이 됩니다.

고객이 Akamai를 선택하는 이유

Akamai는 온라인 비즈니스를 지원하고 보호하는 사이버 보안 및 클라우드 컴퓨팅 기업입니다. 시장을 대표하는 보안 솔루션, 탁월한 위협 인텔리전스, 글로벌 운영팀이 모든 곳에서 기업 데이터와 애플리케이션을 보호하는 심층적 방어 기능을 제공합니다. Akamai의 풀스택 클라우드 컴퓨팅 솔루션은 세계에서 가장 분산된 플랫폼에서 성능과 경제성을 제공합니다. 글로벌 기업들은 자신감 있게 비즈니스를 성장시키는 데 필요한 업계 최고 수준의 안정성, 확장성, 전문성을 제공하는 Akamai를 신뢰합니다.

Akamai 보안 솔루션 둘러보기