API 보안 체크리스트: 모범 사례, 테스트 및 NIST

F5 에코시스템 | 2025년 7월 07일

API(애플리케이션 프로그래밍 인터페이스)는 서로 다른 애플리케이션, 소프트웨어 시스템 또는 구성 요소가 상호 통신할 수 있도록 하는 프로토콜, 루틴 및 도구의 집합입니다. API는 분산 플랫폼 전반에서 애플리케이션, 서비스, 시스템 및 데이터를 연결하는 핵심 연결 고리 역할을 하므로 현대 디지털 인프라에서 그 중요성이 점점 더 커지고 있습니다.

API는 오늘날의 디지털 환경을 뒷받침하는 핵심 기반이므로, 점점 더 많은 조직이 애플리케이션 설계를 API에서 시작하는 API 우선 접근 방식을 채택하고 있습니다. 이는 모놀리식 코드를 우선시하고 API 설계는 나중에 고려하거나 아예 고려하지 않는 기존의 ‘코드 우선’ 접근 방식과 대조됩니다.

API가 급증하고 있다는 데는 의심의 여지가 없습니다. 현재 일반적인 조직은 디지털 인프라 내에서 400개가 넘는 API를 관리하고 있으며 조직의 68%는 애플리케이션 제공 및 보안을 관리하는 데 API를 사용합니다. 또한 대부분의 조직은 API의 무분별한 확산이 위험을 초래한다는 사실을 인식하고 있습니다. 조직의 58%는 API의 무분별한 확산을 심각한 문제로 여깁니다. API가 널리 사용될수록 조직의 공격 표면이 확대되고, 멀티클라우드 아키텍처 전반에 걸친 API 간 상호 의존성으로 인해 예기치 못한 위협이 발생하기 때문입니다.

“API는 분산 플랫폼 전반에서 애플리케이션, 서비스, 기기 및 데이터를 연결하는 결합 조직 역할을 하므로 현대 디지털 인프라에서 갈수록 중요한 역할을 하고 있습니다.”

API는 취약점 악용, 자동화된 위협에 의한 남용, 서비스 거부, 잘못된 구성, 인증 및 권한 부여 제어를 우회하는 공격에 노출될 수 있습니다. 강력한 API 보안 조치는 필수적입니다. API는 핵심 비즈니스 로직과 민감한 정보를 노출하므로 사용자 데이터, 인증 자격 증명 및 금융 거래를 무단 액세스, 조작 또는 노출로부터 보호하는 동시에 API의 무결성과 가용성을 보장해야 합니다.

이 블로그 게시물에서는 API에 대한 주요 보안 위협을 간략히 살펴보고, 액세스 제어, 입력 검증 및 출력 관리, API 테스트, 모니터링 등 멀티클라우드 환경 전반에서 API를 보호하기 위한 핵심 API 보안 전략과 모범 사례를 설명하는 체크리스트를 제공합니다. 또한 준수해야 할 주요 API 보안 표준을 권장하고, 중요한 API를 보호하는 데 유용한 API 보안 도구를 제안합니다.

1. 액세스 제어, 인증 및 권한 부여

액세스 제어는 특정 리소스에 액세스할 권한을 어떤 사용자에게 부여할지 결정하고 이를 적용하는 체계적인 프로세스입니다. 이 프로세스에는 인증과 권한 부여가 모두 포함됩니다. 인증은 사용자의 신원을 확인하는 프로세스이며, 권한 부여는 인증된 사용자에게 허용되는 액세스 수준을 결정합니다.

API 보안을 강화하기 위한 액세스 제어 체크리스트의 주요 권장 사항은 다음과 같습니다:

  • 액세스 제어에 기본 인증을 사용하지 마세요. 기본 인증은 일반적으로 단순한 사용자 이름과 비밀번호 자격 증명으로 구성되므로, 집요한 공격자에게 쉽게 탈취될 수 있습니다. 대신 OAuth 또는 JSON 웹 토큰(JWT)과 같은 더 강력한 액세스 제어 방식을 사용하세요.
  • API 토큰 모범 사례를 따르세요. API 토큰은 API 엔드포인트와 서비스에 대한 액세스 권한을 부여하는 데 자주 사용되며, 잘못 취급하면 민감한 시스템이 무단 액세스나 악용에 노출될 수 있습니다. 토큰의 범위와 권한을 제한하고, 액세스 토큰에는 항상 만료일을 설정하며, 토큰을 안전하게 저장하고 전송하세요.
  • 인증 및 권한 부여 취약점을 확인하세요. 사용자 인증 방식 및 액세스 권한과 관련된 일반적인 보안 취약점을 식별하고 해결하세요. 이러한 위협에는 취약한 인증이 포함됩니다. 이는 공격자가 비밀번호, 키, 세션 토큰 또는 사용자 계정 정보를 탈취하여 정상적인 사용자로 위장할 수 있을 때 발생합니다. 객체 속성 수준 권한 부여 취약점(BOLA)은 애플리케이션이 객체 또는 데이터 수준에서 액세스 제어를 제대로 적용하지 못할 때 발생하며, 이로 인해 공격자가 권한 부여 검사를 조작하거나 우회하여 애플리케이션 내 특정 객체 또는 데이터에 무단으로 액세스할 수 있습니다. 기능 수준 권한 부여 취약점은 API가 기능 또는 작업 수준에서 권한 부여 검사를 제대로 적용하지 못할 때 발생하며, 이로 인해 공격자가 권한이 없는 기능에 액세스하거나 정상적인 기능을 조작할 수 있습니다.
  • ID 저장소를 보호하세요. API 키, 인증 로그, 사용자 자격 증명 등 민감한 ID 관련 데이터를 저장하는 시스템을 보호하세요. 이를 위해 저장 데이터를 암호화하고, 접근을 제한하며, 강력한 접근 제어를 적용해야 합니다. ID 저장소를 보호하면 공격자가 중요한 인증 및 권한 부여 정보에 무단으로 접근할 위험을 줄일 수 있습니다.
  • Use an API 게이트웨이를 사용합니다. 모든 API에 대한 액세스 제어를 중앙에서 통합 관리합니다. 이를 통해 인증, 요청 속도 제한, 권한 부여 규칙과 같은 정책을 일관되게 적용하기가 쉬워집니다. 조직은 게이트웨이를 통해 이러한 제어를 적용함으로써 잘못된 구성으로 인한 위험을 줄이고 모든 API를 일관되게 보호할 수 있습니다.
  • 모든 민감한 데이터에 암호화를 적용하세요. 암호화는 API를 통해 전송되는 데이터를 전송 중이거나 저장된 상태에서 무단 액세스로부터 보호합니다. 공격자가 네트워크 트래픽을 가로채거나 스토리지 시스템에 액세스하더라도, 암호화된 데이터는 올바른 복호화 키 없이는 읽을 수 없습니다. 이를 통해 데이터의 기밀성과 무결성을 보장하고 규제 요건을 준수하는 데 도움이 됩니다.
  • 속도 제한을 구현하세요. 클라이언트가 일정 시간 동안 API 요청을 보낼 수 있는 빈도를 제어하면 공격자가 API에 과도한 트래픽을 보내지 못하도록 하여 분산 서비스 거부 공격(DDoS)을 방지하고, 반복적인 로그인 시도를 늦추거나 차단하여 크리덴셜 스터핑 공격을 방지하는 데 도움이 됩니다.

2. 입력 및 출력

API 입력 유효성 검사는 해커가 악의적인 API 요청을 제출하지 못하도록 방지하며, 출력 관리는 API가 민감한 데이터를 유출하지 않도록 하여 데이터 손실을 방지합니다.

API 보안을 강화하기 위한 입력 및 출력 체크리스트의 주요 권장 사항은 다음과 같습니다:

  • Content-Type 헤더와 데이터 형식에 대한 사용자 입력을 검증합니다. Content-Type 헤더는 어떤 종류의 데이터가 전송되는지 API에 알려 주며, 이를 검증하면 API가 예상되고 지원되는 형식만 처리하도록 할 수 있습니다. 데이터 형식을 확인하면 페이로드의 구조가 API에서 예상하거나 의도한 형식과 일치하는지 확인할 수 있습니다. 이러한 검증을 통해 예기치 않거나 잘못된 형식의 입력을 거부하여 인젝션 공격을 방지할 수 있습니다.
  • 각 API 요청 유형에 적합한 HTTP 메서드를 적용하세요. HTTP 메서드를 엄격하게 적용하면 API가 예측 가능한 방식으로 동작하고 오용이나 권한 상승을 방지할 수 있습니다. 예를 들어 GET은 데이터를 변경하지 않고 조회하는 데만 사용해야 하며, POST는 생성 요청에, PUT/PATCH는 교체/업데이트 요청에, DELETE는 삭제 요청에 사용해야 합니다. 이러한 HTTP 메서드를 엄격하게 적용하지 않으면 악의적인 사용자가 GET 엔드포인트에 POST 또는 PUT 요청을 보내는 등 승인되지 않은 메서드로 API를 악용하여 조회만 허용된 데이터를 수정할 수 있습니다.
  • 악의적이거나 잘못 구성된 입력을 테스트하세요. 인젝션 취약점과 잘못된 구성을 테스트하려면 API가 공격을 방지할 수 있도록 사용자 입력을 적절히 처리하고 정제하는지 적극적으로 확인해야 합니다. SQL 인젝션은 공격자가 데이터베이스 쿼리를 조작하도록 설계된 입력을 제출할 때 발생하며, 이로 인해 데이터가 노출되거나 변경 또는 삭제될 수 있습니다. 한편, 입력 설정이 잘못 구성되면 공격자가 통제 장치를 우회하거나 민감한 데이터에 접근할 수 있습니다.
  • API가 민감한 데이터를 절대 반환하지 않도록 하세요. API 응답에 기밀 정보나 보안상 중요한 정보가 노출되지 않도록 구성하세요. 자격 증명과 비밀번호는 가로채이거나 악용될 수 있으므로 오류 메시지를 포함한 어떠한 API 응답에도 절대 포함되어서는 안 됩니다. 액세스 토큰, 리프레시 토큰 또는 세션 ID는 안전하게 보호해야 하며, 통제된 보안 환경에서만 반환해야 합니다. 핑거프린팅 헤더는 서버나 애플리케이션 스택에 관한 정보를 노출하여 공격자가 표적형 익스플로잇을 설계하는 데 악용될 수 있습니다.
  • API가 요청 처리를 완료하면 적절한 상태 코드를 반환하도록 하세요. API는 표준 상태 코드를 사용하여 요청 처리 결과를 정확하게 전달해야 합니다. 이를 통해 명확성과 일관성을 유지하고 안전하게 동작할 수 있습니다. 이러한 상태 코드에는 200 OK, 400 Bad Request, 401 Unauthorized, 405 Method Not Allowed 등이 있습니다.
  • API가 일반적인 오류 메시지를 반환하도록 하세요. 자세한 오류 메시지는 데이터베이스 구조, 서버 구성 또는 인증 로직과 같은 API의 내부 작동 방식을 노출할 수 있습니다. 공격자는 이 정보를 이용해 SQL 인젝션, 권한 상승 또는 자격 증명 무차별 대입 공격과 같은 표적 공격을 설계할 수 있습니다.

3. API 보안 테스트

API는 동적으로 변화하며 자주 업데이트되거나 새로운 기능이 추가되므로, API 보안 테스트는 초기 배포 시에만 수행하는 것이 아니라 지속적으로 실시해야 합니다. 또한 공격자들이 끊임없이 새로운 기법을 개발함에 따라 위협 환경도 계속 진화합니다.

다음은 API 보안 테스트 체크리스트에 포함해야 할 주요 권장 사항입니다:

  • 기능 테스트를 수행합니다. API의 핵심 기능이 의도한 대로 작동하고, 새로운 기능이 도입되거나 패치가 적용된 후에도 안정적으로 유지되는지 확인합니다.
  • 성능을 테스트합니다. API에 부하 테스트를 수행하여 성능 한계를 파악하고, 장애 발생 후 API가 복구되는 데 걸리는 시간을 확인합니다.
  • 취약점 스캔 및 침투 테스트를 수행합니다. 자동화된 API 스캐너를 사용하여 소스 코드를 테스트하고 런타임 오류를 탐지하며, 정기적인 침투 테스트를 통해 더욱 정교하거나 새롭고 참신한 공격에 노출될 수 있는 API 취약점을 식별합니다.

4. 모니터링

API 모니터링은 위협을 실시간으로 탐지하고 이상 징후를 식별하는 데 필요한 ‘정상’ 활동의 기준선을 설정하는 데 도움이 되므로 매우 중요합니다. 지속적인 모니터링을 통해 보안 팀은 트래픽 급증, 반복적인 로그인 실패, 비정상적인 엔드포인트 사용 등 공격의 징후일 수 있는 이례적인 패턴을 신속하게 포착할 수 있습니다.

API 모니터링 체크리스트에는 다음 항목이 포함되어야 합니다:

  • 새로운 API를 지속적으로 모니터링하고 문서화하려면 API 검색 도구를 사용하세요. 존재 여부를 모르는 것은 보호할 수 없습니다. 개발자가 공식 승인 없이 API를 배포하거나 테스트하면 추적 또는 문서화되지 않은 엔드포인트(‘섀도 API’)가 생길 수 있습니다. 이러한 엔드포인트는 보안 팀이 놓치기 쉬우며 공격자의 손쉬운 표적이 될 수 있습니다. 지속적인 검색을 통해 외부에 노출된 모든 API를 목록화하고 평가하여 안전하게 보호하고 적절히 관리할 수 있습니다.
  • 모든 API의 중앙 집중식 카탈로그를 유지하세요. 전체 API 생태계를 하나의 체계적인 뷰로 관리하면 가시성이 향상되고 관리가 간소화되며 인시던트 대응이 빨라져 API 모니터링이 더욱 쉬워집니다.
  • API 트래픽을 기록하고 분석하세요. DDoS 공격의 징후일 수 있는 예기치 않은 요청량 급증을 식별하고, 정상적인 사용자가 일반적으로 접속하지 않는 지역에서 발생하는 요청을 모니터링하세요. 이러한 요청은 무단 액세스 시도를 나타낼 수 있습니다. 실패한 요청이 급증하면 크리덴셜 스터핑 활동이 발생했거나 잘못 구성된 클라이언트가 유효하지 않은 입력으로 API를 반복 호출하고 있음을 의미할 수 있습니다.

5. API 보안 표준: OWASP 및 NIST

오픈 월드와이드 애플리케이션 보안 프로젝트(OWASP)와 미국 국립표준기술연구소(NIST)는 모두 사이버 보안 모범 사례를 발표합니다.

  • OWASP는 특히 애플리케이션 보안에 중점을 두고 웹 애플리케이션과 대규모 언어 모델에서 가장 흔히 발생하는 위험 목록을 발표합니다. OWASP API 보안 10대 위험은 안전한 API 설계와 보안 테스트를 위한 실용적인 가이드입니다.
  • NIST는 사이버 보안 전반에 중점을 두고 NIST 사이버 보안 프레임워크(CSF)를 발행합니다. NIST CSF는 API 보안을 보다 광범위한 전략에 맞추는 데 유용하며, 식별, 보호, 탐지, 대응, 복구, 거버넌스라는 6가지 핵심 요소로 구성되어 있습니다.

6. API 보안 도구

API 우선 애플리케이션 설계로의 전환과 API의 확산으로 인해, 포괄적인 웹 애플리케이션 및 API 보호(WAAP) 솔루션은 API 환경을 위한 가장 강력한 방어 수단입니다. WAAP는 통합 보안을 제공하며 웹 애플리케이션 방화벽(WAF), API 검색 및 보호 서비스, DDoS 완화, 봇 관리를 하나의 솔루션으로 통합합니다.

WAAP의 주요 이점은 다음과 같습니다:

  • 향상된 관측 가능성. 로깅, 메트릭 및 실시간 분석을 통해 웹 애플리케이션과 API 트래픽을 포괄적으로 파악할 수 있으므로, 보안 팀은 이상 징후를 식별하고 문제를 더 신속하게 해결하며 사용자 활동과 새롭게 부상하는 위협 패턴에 관한 실행 가능한 인사이트를 도출할 수 있습니다.
  • 통합된 종합 보호. WAAP는 강력한 API 검색 및 가시성과 핵심적인 정책 적용 기능을 결합하여 API 위협을 제어하고 차단합니다. 여기에는 허용/차단 목록, 요청 속도 제한, Geo-IP 필터링을 위한 세부 제어 기능과 사용자 지정 규칙 생성 기능이 포함됩니다. 또한 WAAP는 단일 솔루션 내에서 레이어 7 DoS 방어, 민감한 데이터를 탐지하고 마스킹하는 데이터 손실 방지(DLP) 기능, 봇 관리 및 WAF를 제공합니다. 이러한 총체적 접근 방식은 API의 가시성과 보안을 모두 보장하여 적절한 거버넌스와 안정적인 API 성능을 지원합니다.
  • 중앙 집중식 정책 관리. WAAP는 애플리케이션의 호스팅 위치나 기반 아키텍처에 관계없이 단일 제어 지점에서 모든 웹 애플리케이션과 API의 보안 정책을 관리합니다. 이러한 중앙 집중식 접근 방식은 일관된 정책 적용을 보장하고 구성 오류를 최소화하며 다양한 환경 전반에서 보안 운영을 간소화합니다.
  • 간소화된 정책 관리 및 유지보수. WAAP 솔루션은 애플리케이션과 API 전반에서 정책 적용 및 업데이트를 자동화하고 최적화함으로써, 진화하는 위협과 애플리케이션 동작에 대응할 수 있도록 모든 앱과 API에 적절한 정책을 적용하고 개선하며 조정하는 작업을 간소화합니다. 이를 통해 수작업을 줄이고, 새롭게 등장하는 익스플로잇에 더 빠르게 대응하며, 시스템 전반에서 일관된 정책 적용을 보장합니다.
  • 명확한 감사 추적 기록. 액세스, 정책 변경 및 보안 이벤트에 대한 상세한 로그와 감사 추적 기록은 API, 인프라, 데이터를 비롯한 애플리케이션의 모든 위협 벡터와 구성 요소 전반에서 규제 및 업계 표준 준수를 입증하는 데 필수적입니다.

F5의 API 보안

F5는 API 보안을 웹 애플리케이션 및 API 보호(WAAP) 솔루션의 일부로 제공합니다. 이 솔루션은 복잡한 하이브리드 및 멀티클라우드 패브릭 환경 전반에서 API를 보호하여 복잡성을 줄이는 동시에 운영 효율성을 높입니다. F5의 WAAP 솔루션은 빌드 및 테스트 단계부터 출시, 운영, 모니터링에 이르기까지 API의 전체 수명 주기 전반을 보호하는 포괄적인 접근 방식을 제공합니다.

F5의 WAAP 솔루션은 웹 앱과 API를 지원하는 핵심 비즈니스 로직을 지속적으로 방어하여 위험을 완화하고 디지털 복원력을 향상합니다. API를 동적으로 검색하고 지속적으로 모니터링하며 위협을 탐지함으로써 모든 API에 대한 가시성을 제공하는 동시에, 핵심 제어 및 정책 적용 메커니즘으로 API 엔드포인트를 보호합니다. F5의 WAAP 솔루션은 온프레미스, 클라우드, 서비스형 등 모든 환경에 배포할 수 있습니다.

공유

관련 블로그 게시물

성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A
F5 에코시스템 | 2023. 07. 13.

성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A

F5의 ‘성평등을 향한 여정’ 시리즈 네 번째 Q&A에서는 Rachael Shah와 NGINX 제품 마케팅 책임자 Jenn Gile이 사이버 보안 직종에 대한 오해를 바로잡고, 사이버 보안 분야의 성별 격차를 해소하기 위한 조언과 그 이점에 대해 이야기합니다.

TLS 검사에서 피터 파커 원칙 다루기
F5 에코시스템 | 2019. 12. 09.

TLS 검사에서 피터 파커 원칙 다루기

“큰 힘에는 큰 책임이 따른다.” 볼테르와 처칠도 이와 비슷한 말을 남겼지만, 이 문구는 스파이더맨 코믹스에서 벤 삼촌의 말로 가장 널리 알려져 있습니다. 물론 이 문구가 문화적으로 널리 통용되는 이유 중 하나는 TLS 검사를 비롯해 수많은 상황과 주제에 적용할 수 있기 때문입니다.

Venafi와 F5를 통한 머신 아이덴티티 보호
F5 에코시스템 | 2018. 12. 11.

Venafi와 F5를 통한 머신 아이덴티티 보호

‘머신 아이덴티티’란 간단히 말해 자동화된 프로세스가 자신의 신원을 식별할 수 있도록 하고, 다른 자동화 시스템과 프로세스가 관련 리소스에 적절한 수준의 접근 권한을 부여하도록 하는 방법을 의미합니다. 이 개념 자체는 새로운 것이 아닙니다. 비교적 새로운 점은 이를 구현해야 하는 규모입니다.

마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다
F5 에코시스템 | 2018. 07. 23.

마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다

물론 데이터 유출은 더 큰 비용을 초래할 수 있고(적어도 지금은), 실패 사실을 세상에 드러낼 수밖에 없게 합니다(통지 의무가 있으니까요). 하지만 보안을 단순히 데이터 노출 문제로만 봐서는 안 됩니다. 요즘은 데이터가...

내 클라우드에서 나가!
F5 에코시스템 | 2016. 10. 12.

내 클라우드에서 나가!

F5의 Jay Kelley가 전하는 최신 소식에는 Microsoft Office 365용 신규 ID 및 액세스 솔루션을 배포할 때 고려해야 할 사항이 정리되어 있습니다.

Shift(웹 앱) 보안 레터
F5 에코시스템 | 2015. 07. 06.

Shift(웹 앱) 보안 레터

웹 앱 보안을 개발 초기 단계로 앞당기세요. F5 블로그에서 DevOps 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.