API Security 체크리스트란 무엇인가요?

이 API Security 체크리스트는 단순한 API 보안 모범 사례를 넘어 API 라이프사이클을 기반으로 합니다. 계획부터 시작해 개발 및 테스트를 진행하고 운영 및 보호로 마무리합니다. API에 대한 보안 SDLC(Software Development Lifecycle) 관리 프로세스를 생성하는 데 필요한 가이드입니다.

기업이 점점 클라우드 중심적이고 디지털화됨에 따라 애플리케이션 프로그래밍 인터페이스(API)의 범위와 규모가 증가하여 기업의 가치도 함께 증가합니다. API는 현재 다음과 같이 사용되고 있습니다.

  • 최신 AI 혁신을 비롯해 고객과 파트너에게 서비스를 제공하는 애플리케이션과 서비스의 핵심에서 운영됨
  • 개발자가 사용하는 서비스부터 엔지니어가 리프트 앤 시프트(lift and shift)하는 워크로드에 이르기까지 클라우드 환경 전반에 걸쳐 내장됨
  • 매출 흐름을 대변하고 비즈니스를 성장시키며 개발자 생태계를 구축

그러나 API 보안 인시던트를 경험한 IT 및 보안 전문가의 84%에 해당하는 분이라면 API가 점점 리스크로 다가오고 있다는 사실을 직접 확인하셨을 것입니다. 노출되었거나 설정 오류를 내재한 API를 쉽게 발견할 수 있고, 보안이 취약하며 쉽게 감염될 수 있습니다. 또한 API에는 해당 API에 접속하고 그 뒤에 있는 데이터를 확보하는 방법에 대한 지침이 포함되어 있습니다. 이것이 해커가 원하는 것입니다. ‘모호함을 통한 보안’은 존재하지 않습니다. 또한 API는 거의 항상 기업 내 서로 다른 그룹을 하나로 모읍니다. 이러한 그룹은 원하더라도 보안을 쉽게 조정하지 못할 수 있습니다. 단순히 ‘실제 환경에 놓인’ API의 수는 보안을 더욱 복잡하게 만듭니다. 많은 기업이 자사의 API에 대해 모든 것을 알고 있지는 않기 때문에 이를 관리하지 못하는 경우가 많습니다. 이러한 휴면 또는 좀비 API는 주요 공격 기법입니다. 

API 보안의 위험 부담은 큽니다. API에 대한 공격은 기업의 매출, 안정성, 규제 컴플라이언스에 심각한 영향을 미칠 수 있습니다. 대부분의 기업은 아직 API 공격을 방어할 수 있는 적절한 관리 능력 및 기능을 갖추고 있지 않습니다. 게다가 많은 기업들이 API Gateway 및 웹 애플리케이션 방화벽 등 기존 스택에 API 툴을 보유하고 있습니다. 그러나 이러한 툴은 일부 보호 기능을 제공할 수 있지만, 최신 API 공격을 방어하기 위한 가시성, 실시간 보안, 지속적인 테스트를 제공하도록 설계되지는 않았습니다.

이러한 이유로 Akamai는 API 보안을 위한 보다 엄격하고 체계적인 접근 방식으로 API Security 체크리스트를 개발했습니다. 각 라이프사이클 단계에서 4가지 권장 제어 기능을 통해 강력한 API 보안 체계를 구축할 수 있습니다. 이 보안 SDLC 관리 프로세스의 단계는 다음 차트에 나와 있습니다.

요금제

  • 역할 및 책임(거버넌스)
  • 정책, 표준 및 사양
  • 보안 지표
  • 라이프사이클 관리

개발

  • 개발자 교육
  • 개발자 환경(IDE, 리포지토리)
  • 설명서
  • 결함 추적 및 레졸루션

테스트

  • 소스 코드 테스트(정적 및 동적) 
  • 모의 해킹 
  • 컴플라이언스 검토
  • 변경 및 릴리스 관리

운영

  • API 인벤토리 
  • 민감한 데이터 인벤토리 
  • 취약점 식별 
  • 설정 관리

보호

  • 로그 또는 트래픽 수집 
  • 위협 탐지 및 알림 
  • 민감한 데이터 이동 
  • 차단 및 문제 해결

요금제

API Security는 누군가 코드 작성을 시작하기 전에 시작됩니다. 계획 단계에서부터 업무, 책임, 정책과 같은 거버넌스 문제를 반드시 고려해야 합니다. 계획 단계는 라이프사이클 관리 프로세스와 함께 보안 지표를 결정하기에 가장 좋은 시기이기도 합니다.

API 계획 보안 체크리스트:

  • 거버넌스, 역할 및 책임. API 자산을 보호하기 위한 역할과 책임을 명확하게 정의했나요? 여기에는 개발자와 보안 엔지니어에 대한 실무 수준의 책임과 리스크 의사 결정 및 정책 감독을 다루는 관리 감독 책임이 포함됩니다.
  • 정책, 표준 및 사양. API의 안전한 설계, 개발, 테스트, 운영에 대한 최소 기대치를 설명하는 정책, 표준, API 사양 라이브러리를 개발했나요?
  • 보안 지표. API 관련 리스크를 측정하고 관리할 수 있도록 일련의 정의된 API 보안 리스크 지표를 설정했나요? 이해관계자는 이러한 API 리스크 지표를 API 보안 리스크 관리를 지속적으로 개선하기 위한 피드백 루프로 사용할 수 있습니다.
  • 라이프사이클 관리. 귀사는 API를 유용한 라이프사이클 전반에 걸쳐 정의된 소유권을 가진 소프트웨어 자산으로 관리하고 있나요? 초기 배포, 지속적인 변경 관리, 자산 폐기에 특히 중점을 두는 것이 가장 좋은 방법입니다.

개발

개발 단계에서는 계획 단계에서 수립된 정책이 실현됩니다. 개발자는 다른 이해관계자 그룹과 협력해 안전한 API를 생성해야 합니다.

API 개발 보안 체크리스트:

  • 교육. API 관리 책임(예: 게이트웨이, 보안 운영)이 있는 API 개발자와 기타 직원에게 직무와 관련된 API 보안 측면에 대해 교육을 했나요?
  • 개발자 환경(예: IDE, 리포지토리). API 소스 코드가 승인된 관리형 소스 코드 리포지토리에서 개발되고 관리되나요? 개발자가 관리되거나 승인된 개발자 환경을 활용하고 있나요?
  • 문서화. API를 정확하게 문서화하고 사양/표준에 대한 컴플라이언스를 평가하고 있나요? API 스키마가 변경되면 API 문서가 업데이트되나요? 독립적인 검토 및 테스트/검증을 위해 문서를 이용할 수 있나요?
  • 결함 추적 및 레졸루션. 보안 관련 코드 결함이나 취약점의 우선순위를 정하고 문제 해결을 위해 추적하나요?

테스트

API가 개발되면 철저한 테스트 주기를 거쳐야 합니다. 다음은 애플리케이션 보안 테스트 체크리스트와 마찬가지로 API 테스트 프로그램에서 구현할 보안 제어에 대한 개요입니다.

API 테스트 보안 체크리스트:

  • 소스 코드 테스트. API 소스 코드를 프로덕션 단계로 이동하기 전에 정적 애플리케이션 보안 테스트(SAST)와 동적 애플리케이션 보안 테스트(DAST)를 적용하고 있나요?
  • 모의 해킹. 가능한 경우 프로덕션 환경 API 관리, 네트워크, 정책 변수를 재현하는 조건에서 프로덕션으로 전환하기 전에 API 엔드포인트에 대해 침투 테스트를 수행하나요?
  • 컴플라이언스 검토. 프로덕션으로 전환하기 전에 표준 및 사양에 대한 API의 컴플라이언스를 평가하나요(예: GDPR, PCI 컴플라이언스)? 이 프로세스에는 아키텍처/네트워크 배치 및 설정(예: WAF 보호, 네트워크 배치)에 대한 컴플라이언스가 포함되어야 합니다.
  • 변경 및 릴리스 관리. 명확히 정의된 소프트웨어 또는 IT 변경 정책에 따라 API를 배포하거나 변경하나요? 변경 사항은 소프트웨어 자산 인벤토리에 정확하게 반영하는 것이 이상적입니다.

개발 및 테스트 중인 API 보안 조치

인증 및 접속 제어: OAuth 및 API 키와 같은 강력한 인증 메커니즘을 구축해 개발 및 테스트 중에 API 엔드포인트를 보호합니다. 민감한 데이터에 대한 무단 접속을 방지하기 위해 접속 제어 정책을 적용합니다.

전송률 제한: 테스트 단계에서 전송률 제한을 구축해 악용할 수 있는 잠재적인 DDoS 공격으로부터 API를 보호합니다. 전송률 제한은 시스템을 마비시키고 서비스 거부로 이어질 수 있는 과도한 요청을 방지하는 데 도움이 됩니다.

SQL 인젝션(SQLi) 및 검증: SQL 인젝션(SQLi)과 같은 일반적인 API 공격을 테스트합니다. 엄격한 인풋 검증을 구축해 악성 인풋이 API를 감염시키는 것을 방지합니다. API를 통해 전달된 데이터의 위협 요소를 삭제하고 검증해 인젝션 공격으로부터 보호합니다.

운영

API가 프로덕션 환경에 배포될 때도 API 보안은 계속 유효해야 합니다. 실제로 이 단계에서 API가 손실되어 취약점이 되는 경우가 많습니다.

API 운영 보안 체크리스트:

  • API 인벤토리. API 문서를 포함한 모든 API 엔드포인트의 정확한 최신 인벤토리를 유지하고 있나요?
  • 민감한 데이터 인벤토리. API 엔드포인트가 처리하는 민감한 데이터의 정확한 최신 인벤토리 또는 매핑을 유지하고 있나요? 더 중요한 것은 어떤 사용자가 민감한 데이터에 접속하고 있는지 알고 있나요? 접속 관리는 보안과 컴플라이언스의 중요한 구성요소입니다.
  • 취약점 식별. 프로덕션 환경에서 취약점과 API 리스크 노출 영역을 파악하고 있나요?
  • 설정 관리. API 트래픽을 중개하고 보호하는 네트워크, 게이트웨이, 방화벽 구성요소의 취약점과 노출을 파악하고 있나요?

보호

API 보안은 API 라이프사이클 전반에 걸쳐 유지되어야 합니다. 이 워크로드는 로그 및 트래픽 수집, 위협 탐지, 알림 등을 다룹니다.

API 보안 체크리스트:

  • 로그 또는 트래픽 수집. 운영 및 보안 검사를 지원하기 위해 API 활동을 기록하고 데이터를 저장하고 있나요?
  • 위협 탐지 및 알림. 비정상적인 활동을 탐지하기 위해 API 활동을 분석하고 있나요? 이 프로세스에는 비정상 또는 오용 이벤트 발생 시 관련 보안 및 운영팀에 대한 관련 알림/표시가 포함되어야 합니다.
  • 민감한 데이터 이동. API 트래픽 내에 포함된 민감한 데이터의 이동을 모니터링하고 있나요? 이 프로세스에는 데이터 스트림을 분석해 무단 또는 비정상적인 사용을 탐지하고 민감한 데이터 이동을 관련 보안 및 운영팀에 알림/표시하는 작업이 포함되어야 합니다.
  • 차단 및 문제 해결. API를 통한 민감한 데이터의 무단 이동이나 기타 의심스러운 API 오용을 차단하고 해결하고 있나요?

사이버 보안 위협으로부터 API 보호

오늘날의 위협 환경에서는 API 검색, 체계 관리, 런타임 보호, API 보안 테스트를 제공하는 완벽한 API 보안 솔루션이 필요합니다.

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

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

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

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

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

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

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

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

이 포괄적 접근 방식은 다음과 같은 기업의 기존 API 보안 기능을 보완합니다.

  • 위협 탐지 및 DDoS 방어: 사이버 보안 툴을 활용해 잠재적인 API 공격을 실시간으로 탐지합니다. 전송률 제한 및 부하 분산과 같은 DDoS 공격을 방지하는 전략을 구축해 API 엔드포인트의 가용성과 보안을 유지합니다.
  • 차단 및 문제 해결: 자동화된 차단 및 문제 해결 조치를 구축해 무단 접속 시도와 민감한 데이터 노출을 방지합니다. WAF, 인증, 접속 제어 정책을 조합해 API Gateway 수준에서 보안을 적용합니다.

다음은 권장되는 제어입니다. 많은 부분을 고려해야 하며, 실제로 모든 기업이 이 모든 것을 제대로 다루지 못하는 것은 아닙니다. 그러나 체크리스트는 모범 사례를 수립하고 API 보안의 개선이 필요한 영역을 식별하는 데 유용한 방법입니다. 잘 실행되는 API 보안 운영에 유용한 기준선을 제공합니다.

FAQ

전송률 제한은 DDoS 공격을 방지하고 과도한 요청으로 인해 API 엔드포인트가 과부하되는 것을 방지하는 데 매우 중요합니다. 전송률 제한은 사용자 또는 클라이언트가 특정 기간 내에 요청할 수 있는 횟수를 제한함으로써 과부하 시에서도 API의 가용성과 응답성을 유지하는 데 도움이 됩니다.

OAuth는 널리 사용되는 인증 프로토콜로, 사용자가 인증정보를 공유하지 않고 데이터에 대한 접속 권한을 부여할 수 있도록 허용함으로써 API에 대한 보안 접속을 제공합니다. OAuth를 구축하면 권한이 부여된 사용자와 애플리케이션만 API 엔드포인트에 접속할 수 있어 무단 접속 및 데이터 유출 리스크를 줄일 수 있습니다.

인풋 검증은 SQL 인젝션(SQLi)과 같은 일반적인 API 공격을 방지하는 데 도움이 되는 중요한 보안 조치입니다. 사용자 및 기타 API로부터 수신된 데이터를 검증하고 정리함으로써 악성 인풋이 애플리케이션을 감염시키지 못하도록 방지하여 민감한 데이터를 보호하고 API의 무결성을 유지할 수 있습니다.

웹 애플리케이션 방화벽(WAF)은 HTTP 요청을 필터링 및 모니터링해 API에 대한 추가적인 보호 레이어를 제공합니다. WAF는 악성 트래픽을 차단하고, SQL 인젝션(SQLi) 및 크로스 사이트 스크립팅(XSS)과 같은 일반적인 위협을 방어하며, API Gateway 수준에서 접속 제어 정책을 적용해 다양한 사이버 보안 위협으로부터 API를 보호할 수 있습니다.

고객이 Akamai를 선택하는 이유

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

Akamai 보안 솔루션 둘러보기