블로그

API 보안 점검표: 모범 사례, 테스트, 그리고 NIST 기준

F5 뉴스룸 스태프 썸네일
F5 뉴스룸 직원
2025년 7월 7일 공개

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

API는 오늘날 디지털 환경의 근간이 되는 요소이기 때문에 기업들은 애플리케이션 설계를 API부터 시작하는 API 우선 접근 방식을 점점 더 많이 채택하고 있습니다. 이는 모놀리식 코드가 우선시되고 API 설계는 나중에, 심지어 아예 이루어지지 않는 기존의 "코드 우선" 접근 방식과는 대조적입니다.

API가 빠르게 늘고 있다는 점은 분명합니다. 평균적인 조직은 이제 디지털 인프라 내에서 400개가 넘는 API를 관리하며 68%에 달하는 조직이 앱 제공과 보안을 위해 API를 활용합니다. 많은 조직이 API 확산이 위험 요소임을 인지하고 있습니다: 58%의 조직이 API 확산을 주요 문제로 꼽습니다. API가 널리 사용되면서 조직의 공격 표면이 넓어지고, 멀티클라우드 아키텍처 내 상호 의존성으로 인해 예상치 못한 위협이 발생합니다.

API는 취약점 공격, 자동화된 위협 남용, 서비스 거부, 오구성, 인증과 권한 제어를 우회하는 공격에 쉽게 노출됩니다. API는 핵심 비즈니스 로직과 민감한 정보를 공개하므로, 사용자 데이터, 인증 정보, 금융 거래를 무단 접근, 변조, 노출로부터 보호하고 API 무결성과 가용성을 반드시 확보하는 강력한 API 보안 대책이 필요합니다.

이 블로그 게시물은 API에 대한 주요 보안 위협을 간략히 소개하며, 멀티클라우드 환경에서 API를 보호하는 핵심 전략과 모범 사례를 담은 체크리스트를 제공합니다. 여기에는 접근 제어, 입력 검증과 출력 관리, API 테스트 및 모니터링이 포함됩니다. 또한 이 글에서는 따라야 할 주요 API 보안 표준을 권장하고, 중요한 API를 지키는 데 도움을 주는 보안 도구도 소개합니다.

1. 접근 제어, 인증 및 권한 관리

접근 제어는 특정 자원에 대해 어떤 사용자에게 권한을 부여할지 체계적으로 결정하고 실행하는 과정입니다. 이 과정은 인증과 권한 부여를 모두 포함합니다. 인증은 사용자의 신원을 확인하는 절차이며, 권한 부여는 인증된 사용자가 허용된 접근 수준을 결정합니다.

API 보안을 강화하기 위한 액세스 제어 체크리스트의 핵심 제안을 소개합니다.

  • 액세스 제어에는 기본 인증 방식을 사용하지 마세요. 기본 인증은 대개 단순한 사용자 이름과 비밀번호로 구성되어, 보안에 집중하는 공격자에게 쉽게 뚫릴 수 있습니다. 대신, OAuth나 JSON 웹 토큰(JWT)과 같은 더 강력한 액세스 제어 방식을 사용하세요.
  • API 토큰 관리 모범 사례를 지키세요. API 토큰은 엔드포인트와 서비스 접근 권한을 부여하는 데 자주 쓰이며, 잘못 다루면 민감한 시스템이 무단 접근이나 악용에 노출될 수 있습니다. 토큰의 범위와 권한을 명확히 제한하고, 만료일을 꼭 설정하며, 토큰을 안전하게 저장하고 전송하세요.
  • 인증 및 권한 부여 취약점을 점검하세요. 사용자 인증 절차와 접근 권한과 관련된 일반적인 보안 약점을 찾아내고 해결해 드립니다. 공격자가 비밀번호, 키, 세션 토큰 또는 사용자 계정 정보를 훔쳐 합법 사용자를 가장하는 인증 실패 위험도 포함됩니다. 손상된 개체 속성별 권한 부여(BOLA)는 애플리케이션이 객체나 데이터 단위에서 접근 통제를 제대로 적용하지 못해 공격자가 권한 검사 우회로 특정 객체나 데이터에 무단 접근할 때 발생합니다. 기능 단위 권한 부여 실패는 API가 기능별 권한 검사를 제대로 수행하지 못해 공격자가 비인가 기능에 접근하거나 정상 기능을 조작할 수 있게 만들 때 발생합니다.
  • 신원 정보 저장소를 안전하게 보호하세요. API 키, 인증 기록, 사용자 자격 증명 등 민감한 신원 관련 데이터를 저장하는 시스템을 보호해야 합니다. 이를 위해 데이터 저장 시 암호화하고, 접근을 제한하며, 강력한 접근 제어를 적용합니다. 신원 정보 저장소를 보호함으로써 조직은 공격자가 중요한 인증 및 인가 정보를 무단으로 탈취하는 위험을 크게 줄입니다.
  • API 게이트웨이를 활용하세요. 모든 API에 대한 접근 제어를 한 곳에서 중앙 집중적으로 관리할 수 있습니다. 인증, 속도 제한, 권한 규칙 같은 일관된 정책 시행이 훨씬 수월해집니다. 게이트웨이를 통해 제어책을 적용하면, 조직은 잘못된 구성 위험을 줄이고 모든 API에 균일한 보호를 제공합니다.
  • 모든 민감한 데이터에 반드시 암호화를 적용하세요. 암호화는 API를 통해 오가는 데이터를 전송 중이든 저장 중이든 무단 접근으로부터 안전하게 보호합니다. 공격자가 네트워크 트래픽을 가로채거나 저장 시스템에 침입해도, 적절한 복호화 키 없이는 암호화된 데이터를 해독할 수 없습니다. 이로써 데이터의 기밀성과 무결성을 확실히 지키고, 규제 준수도 원활하게 유지할 수 있습니다.
  • 속도 제한을 적용하세요. 클라이언트가 일정 시간 내에 API 요청을 얼마나 자주 할 수 있도록 제어하면, 공격자가 대량 트래픽으로 API를 마비시키는 분산 서비스 거부 공격(DDoS)과 반복 로그인 시도를 막아 자격 증명 무차별 대입 공격을 효과적으로 차단할 수 있습니다.

2. 입력과 출력

API 입력 검증은 해커가 악성 API 요청을 보내지 못하도록 막고, 출력 관리는 API가 민감한 데이터를 노출하지 않도록 해 데이터 손실을 방지합니다.

API 보안을 강화하기 위한 입력 및 출력 체크리스트의 주요 제안을 소개합니다.

  • Content-Type 헤더와 데이터 형식에 대해 사용자 입력을 검증하세요. Content-Type 헤더는 API에 전송되는 데이터 유형을 알리며, 이를 검증하면 API가 예상하고 지원하는 형식만 처리하게 할 수 있습니다. 데이터 형식을 확인하면 전송되는 페이로드 구조가 API의 예상 또는 의도와 일치하는지 확인할 수 있습니다. 이 검증을 통해 예상치 못한 입력이나 잘못된 입력을 차단해 인젝션 공격을 예방할 수 있습니다.
  • 각 API 요청 유형에 맞는 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 취약점을 발견할 수 있습니다.

4. 모니터링

API 모니터링은 실시간으로 위협을 감지하고 이상 징후를 판단할 때 필요한 정상 활동 기준을 세우는 데 핵심 역할을 합니다. 지속적 모니터링을 통해 보안팀은 트래픽 급증, 반복되는 로그인 실패, 엔드포인트 비정상 사용 등 공격 징후가 될 수 있는 이상 패턴을 빠르게 찾아냅니다.

API 모니터링 체크리스트에는 다음 항목을 반드시 포함해야 합니다.

  • API 디스커버리 도구를 사용해 새로운 API를 지속적으로 모니터링하고 기록하세요. 존재를 모르는 것은 보호할 수 없습니다. 개발자는 공식 승인 없이 API를 배포하거나 테스트할 수 있어, 보안 팀이 놓치기 쉬운 추적되지 않은 엔드포인트(“섀도우 API”)가 생기고 공격 목표가 될 수 있습니다. 지속적인 디스커버리를 통해 모든 공개 API를 정확히 인벤토리, 평가, 보호, 관리할 수 있습니다.
  • 모든 API를 한 곳에서 체계적으로 관리하세요. 전체 API 생태계를 한눈에 파악할 수 있어 가시성을 높이고 관리가 간편해지며, 문제 발생 시 신속하게 대응할 수 있습니다.
  • API 트래픽을 기록하고 분석하세요. DDoS 공격을 의미할 수 있는 예상치 못한 요청량 급증을 발견하고, 정상 사용자가 드문 지역에서 오는 요청을 모니터링해 무단 접근 시도 여부를 확인하세요. 실패한 요청 급증은 자격 증명 스터핑 공격이나 오류가 있는 클라이언트가 잘못된 입력으로 API를 반복 호출하는 상황을 뜻할 수 있습니다.

5. API 보안 표준: OWASP와 NIST

OWASP(Open Worldwide Application Security Project)NIST(National Institute of Standards and Technology)는 모두 사이버 보안 모범 사례를 제공합니다.

6. API 보안 솔루션

API 우선 애플리케이션 설계와 API 확산에 따라, 포괄적인 웹 애플리케이션 및 API 보호(WAAP) 솔루션이 API 환경을 지키는 가장 강력한 방어 체계입니다. WAAP는 웹 애플리케이션 방화벽(WAF), API 탐지 및 보호 서비스, DDoS 완화, 봇 관리 기능을 하나로 통합해 전방위적인 보안을 제공합니다.

WAAP가 제공하는 주요 이점은 다음과 같습니다:

  • 강화된 가시성. 로그, 지표, 실시간 분석을 통해 웹 애플리케이션과 API 트래픽을 완벽하게 파악하여 보안 팀이 이상 현상을 빠르게 발견하고 문제를 신속히 해결하며, 사용자 활동과 새롭게 나타나는 위협 패턴에 대한 실행 가능한 인사이트를 얻을 수 있도록 지원합니다.
  • 통합적이고 포괄적인 보호를 제공합니다. WAAP는 강력한 API 탐색과 가시성에 핵심적인 제어 기능을 더해, 허용·차단 목록, 속도 제한, 지리적 IP 필터링, 맞춤 규칙 생성 등으로 API 위협을 관리하고 차단합니다. 여기에 레이어 7 DoS, 데이터 유출 방지(DLP) 기능으로 민감 정보를 탐지하고 마스킹하며, 봇 관리와 웹 애플리케이션 방화벽(WAF) 기능을 모두 하나의 솔루션에 통합했습니다. 이 포괄적 접근법이 API 가시성과 보안을 모두 확보해, 신뢰할 수 있는 거버넌스와 안정적인 API 성능을 실현합니다.
  • 중앙집중식 정책 관리 WAAP는 앱이 어디에 호스팅되든, 아키텍처가 어떻게 구성되든, 모든 웹 애플리케이션과 API의 보안 정책을 한 곳에서 관리합니다. 이 중앙 집중식 관리로 균일한 정책 적용, 구성 오류 감소, 다양한 환경에서 보안 운영 간소화를 보장합니다.
  • 간편해진 정책 관리와 유지. WAAP 솔루션이 애플리케이션과 API 전반의 정책 실행과 업데이트를 자동화하고 최적화하여, 새로운 위협과 변화하는 애플리케이션 동작에 맞춰 정책을 쉽게 적용하고 조정할 수 있도록 돕습니다. 이로써 수작업 부담을 줄이고, 신속하게 공격에 대응하며, 시스템 전반에서 정책을 일관되게 적용할 수 있습니다.
  • 명확한 감사 기록 확보. 액세스, 정책 변경, 보안 이벤트에 대한 상세 로그와 감사 기록은 API, 인프라, 데이터 등 애플리케이션의 모든 위협 지점과 구성 요소에서 규제 및 업계 표준 준수를 입증하는 데 필수적입니다.

F5가 제공하는 API 보안

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

F5의 WAAP 솔루션은 웹 애플리케이션과 API를 지원하는 핵심 비즈니스 로직을 끊임없이 보호해 위험을 줄이고 디지털 복원력을 강화합니다. 우리는 WAAP 솔루션을 통해 위협을 동적으로 탐지하고 지속적으로 모니터링하며, 효과적인 통제와 집행 기능으로 API 엔드포인트를 안전하게 지킵니다. 이를 기반으로 광범위한 API 가시성을 제공합니다. F5 WAAP 솔루션은 온프레미스, 클라우드, 서비스형 등 어떠한 환경에서도 유연하게 배포할 수 있습니다.