Jump to section

API 보안

URL 복사

API 보안은 사용자가 소유하는 API와 사용하는 API 모두의 무결성을 보호합니다. 이는 무슨 의미일까요?

컴퓨팅 성능이 일상의 사물에 임베드되어 있는 IoT(사물 인터넷)에 대해 들어보셨을 것입니다. IoT를 사용하면 휴대폰과 냉장고를 연결해주므로, 한 시간 후에 있을 즉석 저녁 파티에 뭐가 필요한지 정확히 파악하고 집에 오는 길에 마트에 들러 장을 볼 수 있습니다. DevOps팀에서 일하는 경우라면 마이크로서비스와 컨테이너를 이용해 빠르게 반복적으로 레거시 및 클라우드 네이티브 애플리케이션을 구축하고 배포할 수도 있습니다. API는 마이크로서비스와 컨테이너가 시스템과 애플리케이션처럼 통신하는 가장 흔한 방식 중 하나입니다. 통합 및 상호연결성과 마찬가지로 API도 그 중요성이 가중되고 있습니다.

기업은 API를 이용해 서비스를 연결하고 데이터를 전송합니다. API가 손상, 노출 또는 해킹되면 주요 데이터 보안 유출 사고의 원인이 됩니다. 이로 인해 민감한 의료, 금융 및 개인 정보가 노출됩니다. 하지만 모든 데이터가 동일한 것은 아니므로 이를 보호하는 방식도 달라야 합니다. API 보안 접근 방식은 전송되는 데이터의 종류에 따라 달라지게 됩니다.  

API가 제3자의 애플리케이션에 연결되는 경우, 해당 애플리케이션이 정보를 인터넷으로 전송하는 방식을 파악합니다. 위의 예를 적용해보면, 냉장고에 뭐가 있는지 누가 알게 되더라도 별로 신경 쓰이지 않을지도 모릅니다. 그러나 동일한 API를 사용해 사용자의 위치를 추적한다면 얘기는 달라집니다. 

웹 API 보안은 인터넷에 연결되는 API를 통한 데이터 전송과 관련되어 있습니다. OAuth(Open Authorization)는 액세스 위임의 오픈 표준입니다. 사용자는 이를 통해 비밀번호를 공유하지 않고도 제3자에게 웹 리소스 액세스 권한을 부여할 수 있습니다. OAuth는 “공유” 버튼을 사용하여 Corgi belly flop 편집 동영상을 사용자의 소셜 네트워크에 공유할 수 있도록 지원하는 기술 표준입니다.

대부분의 API 구현은 REST(Representational State Transfer) 또는 SOAP(Simple Object Access Protocol) 형식입니다.

REST API는 HTTP를 사용하며 TLS(Transport Layer Security) 암호화를 지원합니다. TLS는 인터넷 연결을 비공개로 유지하고 두 시스템(서버와 서버 또는 서버와 클라이언트) 간에 전송된 데이터가 암호화되어 수정되지 않았는지 확인하는 표준입니다. 이는 쇼핑 웹 사이트에서 사용자의 신용카드 정보를 노출시키려는 해커가 사용자의 데이터를 읽거나 변경할 수도 없다는 것을 뜻합니다. URL이 “HTTPS(Hyper Text Transfer Protocol Secure)”로 시작되는 경우, 웹사이트가 TLS로 보호되는지 알 수 있습니다. 

REST API는 웹 브라우저를 통해 데이터를 보다 쉽게 전송할 수 있는 파일 형식인 JSON(JavaScript Object Notation)을 사용합니다. REST API는 HTTP와 JSON을 사용함으로써 데이터를 저장하거나 다시 패키징할 필요가 없으므로 SOAP API보다 훨씬 속도가 빠릅니다.

SOAP API는 웹 서비스 보안(WS Security)이라는 기본 제공 프로토콜을 사용합니다. 이러한 프로토콜은 기밀성과 인증에 따른 룰 세트를 정의합니다. SOAP API는 OASIS(Organization for the Advancement of Structured Information Standards)W3C(World Wide Web Consortium)라는 두 가지 국제 표준화 기구에서 정한 표준을 지원합니다. 이는 XML 암호화, XML 서명 및 SAML 토큰을 결합해 인증 및 권한 부여를 확인합니다. 일반적으로 SOAP API는 보다 포괄적인 보안 조치를 갖추고 있는 것으로 높이 평가받고 있지만, 동시에 더 많은 관리가 필요합니다. 이러한 이유로 SOAP API는 민감한 데이터를 처리하는 조직에 권장됩니다.

보통은 현금을 매트리스 밑에 두는 방식으로 저축하지는 않을 것입니다. 대부분은 신뢰할 수 있는 환경(은행)에 현금을 맡기고, 개별적으로 결제를 승인하고 인증합니다. API 보안은 이와 비슷합니다. 인증 및 권한 부여 정책을 갖춘 신뢰할 수 있는 환경이 필요합니다.

API 보안을 강화할 수 있는 가장 일반적인 방법은 다음과 같습니다.

  • 토큰을 사용합니다. 신뢰할 수 있는 여러 Identity를 설정한 후 해당 Identity에 할당된 토큰을 사용하여 서비스 및 리소스에 대한 액세스를 제어합니다.  
  • 암호화 및 서명을 사용합니다. TLS와 같은 방법을 사용하여 데이터를 암호화합니다(위의 내용 참조). 올바른 사용자 외에 다른 누구도 내 데이터의 암호를 해제하고 수정할 수 없도록 서명을 요구합니다.
  • 취약점을 확인합니다. 운영 체제, 네트워크, 드라이버 및 API 구성 요소를 최신 상태로 유지합니다. 모든 구성 요소의 동작 방식을 파악하고 사용자 API 보안 침해에 사용될 수 있는 취약점을 확인합니다. 스니퍼를 사용하여 보안 문제를 감지하고 데이터 유출을 파악합니다.
  • 할당량 및 제한을 사용합니다. API 호출 빈도에 대한 할당량을 설정하고 사용 기록을 추적합니다. API 호출이 증가할 수록 이것이 악용되고 있다는 의미일 수 있습니다. API 호출 무한 반복과 같은 프로그래밍 상의 실수일 수도 있습니다. 제한 룰을 만들어 급격한 트래픽 증가와 DoS(서비스 거부) 공격으로부터 API를 보호합니다.
  • API 게이트웨이를 사용합니다. API 게이트웨이는 주요 API 트래픽 실행 지점 역할을 합니다. 안전한 게이트웨이를 이용하여 트래픽을 인증하고 API 사용 방식을 제어 및 분석할 수 있습니다.

API 보안을 유지하려면 API를 제대로 관리해야 합니다. API 관리 플랫폼의 대다수는 3가지 유형의 보안 체계를 지원합니다. 이는 다음과 같습니다.

  • API 키: 단일 토큰 문자열(즉, 고유 인증 정보를 제공하는 소규모 하드웨어 기기)
  • 기본 인증(APP ID / APP 키): 두 개의 토큰 문자열 솔루션(즉, 사용자 이름과 비밀번호)
  • OpenID Connect(OIDC): 널리 사용되는 OAuth 프레임워크를 기반으로 하는 단순 Identity 레이어(즉, 기본 프로필 정보를 획득하고 인증 서버를 사용하여 사용자 확인)

API 관리자를 선택하면 API 관리자가 처리할 수 있는 보안 체계 중 어떤 것을 얼마나 많이 처리할 수 있는지 파악하고 위에서 설명한 API 보안 적용 사례를 통합할 수 있는 방법에 대한 계획을 세울 수 있습니다.

데이터 보안 침해는 심각한 문제지만 보안을 한층 강화하여 이에 대비할 수 있습니다. 보안이 필요한 부분을 파악하고 API를 활용할 가치가 있습니다. Red Hat은 매년 엔터프라이즈 소프트웨어에 영향을 미치는 글로벌 보안 취약점과 Red Hat 제품에 대한 솔루션을 알리는 Red Hat 제품 리스크 보고서를 발표합니다. 주 내용은 적절한 질문을 통해 어떤 부분에 관심을 기울여야 할지 판단하고, 신뢰할 수 있는 API 관리자를 사용하여 지속적인 보안 조치를 마련해야 한다는 것입니다. 이를 위해 Red Hat은 적절한 지원을 제공해 드립니다.

Red Hat은 권위 있는 어워드를 수상한 Red Hat 3scale API Management를 권장합니다. 여기에는 다음이 포함됩니다.

  • API 애플리케이션과 개발자 역할을 관리하는 API 관리자
  • API 관리자의 정책을 시행하는 트래픽 관리자(API 게이트웨이)
  • 다양한 인증 프로토콜을 지원하는 IdP(Identity Provider) 허브

API 게이트웨이에서 Red Hat 3scale API Management는 만료된 타임스탬프 토큰을 디코딩하고 클라이언트 ID가 유효한지 확인하며 퍼블릭 키를 사용하여 서명을 확인합니다.

추가 자료

문서

DevSecOps란?

DevOps의 민첩성과 대응 능력을 최대한 활용하려면 IT 보안 팀이 애플리케이션의 전체 라이프사이클에서 주요 역할을 해야 합니다.

문서

클라우드 보안은 무엇이 다른가요?

매우 심각한 보안 문제는 기존 IT는 물론 클라우드 시스템에도 영향을 미칩니다. 차이점을 알아보세요.

문서

SOAR란?

SOAR은 사례 및 워크플로우 관리, 태스크 자동화, 중앙에서 위협 인텔리전스에 액세스하여 쿼리 및 공유할 수 있는 기능 등 보안 팀에서 사용하는 세 가지 주요 소프트웨어 기능을 가리킵니다.

보안에 대한 자세한 내용

제품

사용자 아이덴티티를 관리하고 커뮤니케이션을 비공개로 유지하는 보안 프레임워크입니다.

클라우드 네이티브 애플리케이션을 더 안전하게 빌드, 배포 및 실행할 수 있도록 지원하는 엔터프라이즈 수준의 쿠버네티스 네이티브 컨테이너 보안 솔루션입니다.

소프트웨어 개발 팀이 소프트웨어 공급망에서 취약점을 조기에 발견할 수 있도록 자동화된 통합 검사를 통해 보안을 강화하는 데 도움을 주는 기술 세트

빌트인 보안 정책을 갖춘 단일 콘솔로 쿠버네티스 클러스터와 애플리케이션을 관리합니다.

리소스