2020.02.03

'위기의 API 보안' 당면 과제와 AI 중심의 해법

Sanjeewa Malalgoda, Lakshitha Gunasekara | InfoWorld

API가 디지털 트랜스포메이션 이니셔티브의 핵심으로 부상했다. 기업 직원, 파트너, 고객 및 기타 관계자는 디지털 생태계 전반에서 API를 통해 애플리케이션과 데이터, 비즈니스 기능에 액세스할 수 있다. 그 결과 API라는 중요한 기업 자산을 목표로 하는 해커들의 공격도 당연히 함께 증가했다.

 

ⓒ GettyImagesBank


게다가 문제는 갈수록 더 악화될 것으로 보인다. 가트너는 “2022년까지 API 오용이 가장 빈번한 공격 벡터가 되면서 기업 웹 애플리케이션의 데이터 침해로 이어질 것”이라고 예측했다.

많은 기업은 이에 대응해 인증, 승인, 쓰로틀링(Throttling)과 같은 메커니즘을 제공하는 API 관리 솔루션을 구축했다. API 생태계 전반에서 API에 액세스할 수 있는 사람과 그 빈도를 제어하려면 이러한 솔루션이 반드시 필요하다. 또한 조직은 내외부 API 전략을 수립하면서 동적인 인공지능(AI) 기반 보안을 구축해 API를 대상으로 한 더욱 교묘한 공격의 증가에도 대처해야 한다.

여기서는 조직이 API 생태계 전반에서 보안과 무결성, 가용성을 보장하기 위해 도입해야 하는 API 관리와 보안 툴을 살펴본다.
 

규칙 기반 및 정책 기반 보안 수단

규칙 기반 및 정책 기반 보안 확인은 정적 또는 동적으로 수행할 수 있으며, 모든 API 관리 솔루션의 필수 요소다. API 게이트웨이는 API 액세스를 위한 주 진입점 역할을 한다. 따라서 일반적으로 요청이 수신되면 보안, 속도 제한, 쓰로틀링 등과 관련된 정책 및 규칙을 기준으로 요청을 확인하고 정책을 적용한다. 정적/동적 보안 확인이 제공하는 부가적인 가치를 살펴보자.

정적 보안 확인
정적 보안 확인은 일반적으로 사전에 정의된 규칙 집합 또는 정책을 기준으로 메시지 데이터를 검증하므로 요청 볼륨이나 이전 요청 데이터에 대한 의존성이 없다. 게이트웨이에서 다양한 정적 보안 스캔이 실행되면서 SQL 인젝션, 결합 파싱(cohesive parsing) 공격, 엔티티 확장 공격, 스키마 포이즈닝(schema poisoning) 등을 차단한다.

정적 정책 확인은 페이로드 스캔, 헤더 검사, 액세스 패턴 등에 적용된다. 예를 들어 SQL 인젝션은 페이로드를 사용한 공격에서 흔한 유형이다. 사용자가 JSON(JavaScript Object Notation) 페이로드를 전송하면 API 게이트웨이는 사전 정의된 JSON 스키마를 기준으로 이 요청을 검증할 수 있다. 또한 게이트웨이는 유해한 데이터나 메시지 내의 텍스트 패턴으로부터 시스템을 보호하기 위해 필요에 따라 콘텐츠 내의 요소를 비롯한 기타 속성의 수를 제한할 수 있다.

동적 보안 확인
동적 보안 확인은 정적 보안 스캔과 달리 상시 확인하며, 확인의 기준은 수시로 바뀐다. 일반적으로 기존 데이터를 사용해서 의사 결정이 이뤄진 요청 데이터를 검증한다. 동적 확인의 예를 들면 액세스 토큰 유효성 검사, 이상 현상 감지, 쓰로틀링 등이 있다. 동적 확인은 게이트웨이로 전송되는 데이터의 볼륨에 대한 의존도가 크다. 이러한 동적 확인이 API 게이트웨이 바깥에서 실행되고, 그 이후 게이트웨이로 의사 결정이 전파되는 경우도 있다. 두 가지 예를 보자.

쓰로틀링과 속도 제한은 공격의 영향을 줄이는 데 중요하다. 공격자가 API 액세스 권한을 획득할 때 가장 먼저 하는 일은 최대한 많은 데이터를 읽는 것이기 때문이다. API 요청을 쓰로틀링하려면, 즉 데이터에 대한 액세스를 제한하려면 특정 기간 내에 수신되는 요청의 수를 유지해야 한다. 요청 수가 해당 시간에 할당된 수를 초과하는 경우 게이트웨이가 API 호출을 차단할 수 있다. 속도 제한으로는 특정 서비스에 허용되는 동시 액세스를 제한할 수 있다.

인증
인증은 API 게이트웨이에서 API를 고유하게 호출한 각 사용자를 식별하는 데 도움이 된다. API 게이트웨이 솔루션은 일반적으로 기본적인 인증인 OAuth 2.0, JWT(JSON 웹 토큰) 보안, 인증서 기반 보안을 지원한다. 일부 게이트웨이는 그 이상의 세부적인 권한 검증을 위해 추가로 인증 계층을 제공하는데, 일반적으로 XACML(eXtensible Access Control Markup Language) 스타일의 정책 정의 언어를 기반으로 한다. API에 여러 리소스가 포함되고 각 리소스에 대해 서로 다른 수준의 액세스 제어가 필요한 경우 이 기능이 중요하다.
 

전통적인 API 보안의 한계

인증, 승인, 속도 제한, 쓰로틀링을 중심으로 한 정책 기반 접근 방법은 효과적이긴 하지만 여전히 빈틈이 있고, 해커는 이 빈틈을 통해 API를 악용할 수 있다. 특히 API 게이트웨이는 여러 웹 서비스의 전방에 위치하며 게이트웨이가 관리하는 API에는 다수의 세션이 포함되는 경우가 많다. 정책과 프로세스를 사용해서 모든 세션을 분석했다 해도, 부가적인 컴퓨팅 역량 없이 게이트웨이에서 모든 요청을 검사하기는 어렵다.

또한 각 API에는 자체적인 액세스 패턴이 있다. 따라서 어느 API에서 정상적인 액세스 패턴이라도 다른 API에서는 악의적인 활동을 나타낼 수 있다. 예를 들어 누군가 온라인 쇼핑 애플리케이션을 통해 상품을 구매하는 경우를 보면, 구매자는 구매를 실행하기 전에 여러 차례 검색을 할 것이다. 따라서 한 명의 사용자가 짧은 시간 내에 검색 API에 10~20개의 요청을 보내는 것은 검색 API에서 정상적인 액세스 패턴일 수 있다. 그러나 같은 사용자가 구매 API를 대상으로 여러 요청을 보낸다면 그 액세스 패턴은 악의적인 활동을 나타낼 수 있다. 예를 들어 해커가 훔친 신용카드를 사용해서 최대한 많은 금액을 인출하려고 시도하는 중임을 나타낼 수 있기 때문이다. 따라서 각 API 액세스 패턴을 별도로 분석해서 올바른 응답을 확인해야 한다.




2020.02.03

'위기의 API 보안' 당면 과제와 AI 중심의 해법

Sanjeewa Malalgoda, Lakshitha Gunasekara | InfoWorld

API가 디지털 트랜스포메이션 이니셔티브의 핵심으로 부상했다. 기업 직원, 파트너, 고객 및 기타 관계자는 디지털 생태계 전반에서 API를 통해 애플리케이션과 데이터, 비즈니스 기능에 액세스할 수 있다. 그 결과 API라는 중요한 기업 자산을 목표로 하는 해커들의 공격도 당연히 함께 증가했다.

 

ⓒ GettyImagesBank


게다가 문제는 갈수록 더 악화될 것으로 보인다. 가트너는 “2022년까지 API 오용이 가장 빈번한 공격 벡터가 되면서 기업 웹 애플리케이션의 데이터 침해로 이어질 것”이라고 예측했다.

많은 기업은 이에 대응해 인증, 승인, 쓰로틀링(Throttling)과 같은 메커니즘을 제공하는 API 관리 솔루션을 구축했다. API 생태계 전반에서 API에 액세스할 수 있는 사람과 그 빈도를 제어하려면 이러한 솔루션이 반드시 필요하다. 또한 조직은 내외부 API 전략을 수립하면서 동적인 인공지능(AI) 기반 보안을 구축해 API를 대상으로 한 더욱 교묘한 공격의 증가에도 대처해야 한다.

여기서는 조직이 API 생태계 전반에서 보안과 무결성, 가용성을 보장하기 위해 도입해야 하는 API 관리와 보안 툴을 살펴본다.
 

규칙 기반 및 정책 기반 보안 수단

규칙 기반 및 정책 기반 보안 확인은 정적 또는 동적으로 수행할 수 있으며, 모든 API 관리 솔루션의 필수 요소다. API 게이트웨이는 API 액세스를 위한 주 진입점 역할을 한다. 따라서 일반적으로 요청이 수신되면 보안, 속도 제한, 쓰로틀링 등과 관련된 정책 및 규칙을 기준으로 요청을 확인하고 정책을 적용한다. 정적/동적 보안 확인이 제공하는 부가적인 가치를 살펴보자.

정적 보안 확인
정적 보안 확인은 일반적으로 사전에 정의된 규칙 집합 또는 정책을 기준으로 메시지 데이터를 검증하므로 요청 볼륨이나 이전 요청 데이터에 대한 의존성이 없다. 게이트웨이에서 다양한 정적 보안 스캔이 실행되면서 SQL 인젝션, 결합 파싱(cohesive parsing) 공격, 엔티티 확장 공격, 스키마 포이즈닝(schema poisoning) 등을 차단한다.

정적 정책 확인은 페이로드 스캔, 헤더 검사, 액세스 패턴 등에 적용된다. 예를 들어 SQL 인젝션은 페이로드를 사용한 공격에서 흔한 유형이다. 사용자가 JSON(JavaScript Object Notation) 페이로드를 전송하면 API 게이트웨이는 사전 정의된 JSON 스키마를 기준으로 이 요청을 검증할 수 있다. 또한 게이트웨이는 유해한 데이터나 메시지 내의 텍스트 패턴으로부터 시스템을 보호하기 위해 필요에 따라 콘텐츠 내의 요소를 비롯한 기타 속성의 수를 제한할 수 있다.

동적 보안 확인
동적 보안 확인은 정적 보안 스캔과 달리 상시 확인하며, 확인의 기준은 수시로 바뀐다. 일반적으로 기존 데이터를 사용해서 의사 결정이 이뤄진 요청 데이터를 검증한다. 동적 확인의 예를 들면 액세스 토큰 유효성 검사, 이상 현상 감지, 쓰로틀링 등이 있다. 동적 확인은 게이트웨이로 전송되는 데이터의 볼륨에 대한 의존도가 크다. 이러한 동적 확인이 API 게이트웨이 바깥에서 실행되고, 그 이후 게이트웨이로 의사 결정이 전파되는 경우도 있다. 두 가지 예를 보자.

쓰로틀링과 속도 제한은 공격의 영향을 줄이는 데 중요하다. 공격자가 API 액세스 권한을 획득할 때 가장 먼저 하는 일은 최대한 많은 데이터를 읽는 것이기 때문이다. API 요청을 쓰로틀링하려면, 즉 데이터에 대한 액세스를 제한하려면 특정 기간 내에 수신되는 요청의 수를 유지해야 한다. 요청 수가 해당 시간에 할당된 수를 초과하는 경우 게이트웨이가 API 호출을 차단할 수 있다. 속도 제한으로는 특정 서비스에 허용되는 동시 액세스를 제한할 수 있다.

인증
인증은 API 게이트웨이에서 API를 고유하게 호출한 각 사용자를 식별하는 데 도움이 된다. API 게이트웨이 솔루션은 일반적으로 기본적인 인증인 OAuth 2.0, JWT(JSON 웹 토큰) 보안, 인증서 기반 보안을 지원한다. 일부 게이트웨이는 그 이상의 세부적인 권한 검증을 위해 추가로 인증 계층을 제공하는데, 일반적으로 XACML(eXtensible Access Control Markup Language) 스타일의 정책 정의 언어를 기반으로 한다. API에 여러 리소스가 포함되고 각 리소스에 대해 서로 다른 수준의 액세스 제어가 필요한 경우 이 기능이 중요하다.
 

전통적인 API 보안의 한계

인증, 승인, 속도 제한, 쓰로틀링을 중심으로 한 정책 기반 접근 방법은 효과적이긴 하지만 여전히 빈틈이 있고, 해커는 이 빈틈을 통해 API를 악용할 수 있다. 특히 API 게이트웨이는 여러 웹 서비스의 전방에 위치하며 게이트웨이가 관리하는 API에는 다수의 세션이 포함되는 경우가 많다. 정책과 프로세스를 사용해서 모든 세션을 분석했다 해도, 부가적인 컴퓨팅 역량 없이 게이트웨이에서 모든 요청을 검사하기는 어렵다.

또한 각 API에는 자체적인 액세스 패턴이 있다. 따라서 어느 API에서 정상적인 액세스 패턴이라도 다른 API에서는 악의적인 활동을 나타낼 수 있다. 예를 들어 누군가 온라인 쇼핑 애플리케이션을 통해 상품을 구매하는 경우를 보면, 구매자는 구매를 실행하기 전에 여러 차례 검색을 할 것이다. 따라서 한 명의 사용자가 짧은 시간 내에 검색 API에 10~20개의 요청을 보내는 것은 검색 API에서 정상적인 액세스 패턴일 수 있다. 그러나 같은 사용자가 구매 API를 대상으로 여러 요청을 보낸다면 그 액세스 패턴은 악의적인 활동을 나타낼 수 있다. 예를 들어 해커가 훔친 신용카드를 사용해서 최대한 많은 금액을 인출하려고 시도하는 중임을 나타낼 수 있기 때문이다. 따라서 각 API 액세스 패턴을 별도로 분석해서 올바른 응답을 확인해야 한다.


X