블로그

효과적인 API 보안을 위해 ML이 필수적인 이유

F5 썸네일
F5
2020년 8월 26일 게시

지난 10년 동안 더 빠른 개발 주기, 높은 가용성, 선택적 주문형 확장, 전반적인 분리에 대한 요구로 인해 기술 중심 조직이 마이크로서비스 아키텍처로 전환하게 되었습니다. 결과적으로 모놀리식 소프트웨어의 많은 보안 함수 호출이 비보안 네트워크를 통한 마이크로 서비스 간 API 호출로 바뀌었습니다. 즉, 이러한 전환으로 많은 운영 및 비즈니스 과제가 해결되었지만, 몇 가지 새로운 보안 과제도 생겨났습니다.

오픈소스 소프트웨어, 컨테이너화, 인프라스트럭처 코드(IaC)의 확산으로 인해 보안 상황은 더욱 악화되고 있습니다. 이제 마이크로서비스를 온보딩하거나 수정하는 데 15분이면 끝나는 작업이 되었기 때문에 보안 팀은 마이크로서비스의 보안을 적절히 분석할 적절한 기회가 없을 수 있습니다. 배포 파이프라인에 포괄적인 보안 평가를 게이팅 단계로 도입하는 것은 DevOps 팀으로부터 거의 항상 부정적인 반응을 받습니다. 배포를 효율적으로 제어하는 데 성공하더라도 배포 시점에는 많은 보안 문제(특히 런타임 공격)를 식별할 수 없습니다.

보안은 더 이상 동일하지 않습니다

개발자와 DevOps 팀이 마이크로서비스로의 전환을 따뜻하게 받아들일 만한 이유가 있는 반면, 보안 팀은 점점 늘어나는 API 볼륨, 변화하는 API 정의 및 동작, API 문서 부족(특히 오픈소스 구성 요소), 다양한 프로토콜 및 페이로드 구조에 대처하는 데 어려움을 겪고 있습니다. 이제 모듈 간의 내부 함수 호출이 마이크로서비스 간의 API 호출로 바뀌면서 공격 표면이 폭발적으로 확대되었고 보안 관리가 엄청난 부담으로 다가왔습니다.

마이크로서비스 환경에서 중간 규모일지라도, 마이크로서비스를 배포하거나 업데이트하기 전에 각 API 엔드포인트에 대한 정상적이고 허용되는 동작 목록을 정의하고 유지 관리하는 것은 매우 어렵거나 불가능합니다. 여기에는 각 API 엔드포인트에 대한 권한 부여 정책을 유지 관리하는 것도 포함됩니다. 새로운 마이크로서비스 추가, 더 이상 사용되지 않는 마이크로서비스 제거, 트래픽의 계절성은 "정상적이고 허용 가능한" 정의가 계속 변화하는 예측 가능한 이유입니다. 간헐적인 네트워크 중단, DDoS 공격, 업스트림 중단, 보안 악용 등 예측하기 어려운 이유도 주요한 역할을 할 수 있습니다.

적절한 보안을 위해 고려해야 할 모든 요소를 고려할 때, 합리적이고 시기적절한 보안 결정을 내리기 위해서는 대량의 데이터를 수집, 상관관계 분석, 처리 및 학습해야 합니다. 이러한 요구 사항으로 인해 기존 솔루션과 통제는 부적절합니다. 다행히도 지난 10년 동안 머신 러닝(ML)이 발전하고 학습 모델이 성숙해지면서 이러한 새로운 보안 과제를 해결할 수 있는 매우 강력한 플랫폼이 제공되었습니다.

ML이 구출에 나섰습니다!

ML의 힘은 보안 제어를 정의하고, 개선하고, 구현하는 방식을 재고할 수 있게 해줍니다. 이를 통해 API 상호작용의 역동적인 특성에 대처하면서도 효과적인 API 보안을 제공할 수 있습니다. 이제 포괄적이고 효과적인 ML 기반 솔루션을 달성하기 위한 세 가지 주요 단계에 대해 논의해 보겠습니다.

1. ML이 범위를 발견하도록 하세요... 먹이를 주지 마세요

앞서 논의한 대로, API의 동적 특성과 엄청난 양으로 인해 개발자나 보안 팀이 API 정의를 의미 있게 정의하고 API 엔드포인트를 보호하는 시스템에 제공하는 것이 비현실적입니다. ML 기반 모델을 사용하면 오프라인 학습 데이터를 입력하고 시스템이 API 엔드포인트(HTTP의 경우 URL 경로), 호출자, 페이로드 등을 기반으로 API 호출을 자율적으로 검색, 식별, 분류, 처리하고 허용/거부할 수 있습니다. 예를 들어, API 검색은 ML 기반 URL 그래프를 사용하여 수행되며 구성 요소 분류는 딥 러닝을 사용하여 수행될 수 있습니다. 이를 통해 시스템은 시간이 지남에 따라 API 통신의 범위와 특성을 구축하고 성장하고 학습할 수 있습니다.

이러한 범위 발견을 위한 잘 교정된 시스템은 각각의 업데이트된 배포에 소요되는 며칠 또는 몇 주가 걸리는 인적 노력을 몇 시간 만에 대체할 수 있습니다.

2. 배우고, 조정하고, 반복하세요

이는 ML 기반 보안 솔루션의 핵심 부분입니다. 우수한 솔루션을 사용하면 보안 제어를 통해 시스템의 동작을 관찰하고, 동작 프로필을 구축하고, 현재 모델(과거 관찰을 사용하여 구축)을 조정할 수 있습니다. 이는 지속적인 프로세스이며, 깔끔하게 구현된 솔루션을 통해 통제를 의미 있고 시기적절하게 적용할 수 있습니다. 예를 들어, 이전 프로필에서 특정 API 호출 시퀀스가 정상적인 흐름으로 나타났다면 흐름에 몇 가지 추가 호출을 구현하는 업데이트된 애플리케이션 빌드를 몇 시간 만에 학습하여 프로필에 추가할 수 있습니다.

ML 기반 솔루션에 대한 주장은 실제적으로 가능한 한 실시간으로 동작 프로파일링과 교정이 이루어지기 때문에 매우 이해하기 쉽습니다.

mlsecurity1
그림 1. ML 기반 프로파일링

3. 감지하다

처음 두 단계를 통해 시스템에서 "정상적이고 허용되는" 행동으로 간주되어야 하는 것이 무엇인지 학습하고 최신 정보를 얻을 수 있습니다. 마지막 단계는 해당 범위를 벗어나는 행동 패턴을 감지하고 찾아내는 것입니다. 예를 들어, 수백 명의 사용자의 정상적인 행동을 학습한 후, 시스템이 특정 사용자로부터 갑작스럽게 로그인이나 데이터 다운로드 시도가 쇄도하거나, 짧은 시간 안에 여러 사용자가 동일한 네트워크 주소에서 로그인을 시도하는 것을 감지하면 이러한 행동은 바로 이상 동작으로 분류될 수 있습니다. API 이상 감지는 순차적인 비지도 심층 학습을 사용하여 수행될 수 있습니다.

여기서 피드백 지연은 악의적인 행위자가 행동을 조정하고 "레이더 아래로 날아가는" 것을 허용하지 않기 위해 전체 학습 주기에서 매우 중요한 부분이라는 점을 주목하는 것이 중요합니다.

그림 2는 시스템에서 정상적이고 허용 가능한 것으로 프로파일링된 일련의 API 호출을 보여줍니다.

mlsecurity2
그림 2: API 호출의 정상적인 순서

그림 3은 시스템에서 감지하여 플래그를 지정하는 비정상적인 API 호출 시퀀스를 보여줍니다.

mlsecuirty3
그림 3: 비정상적인 API 호출 순서

여기서 피드백 지연은 악의적인 행위자가 행동을 조정하고 "레이더 아래로 날아가는" 것을 허용하지 않기 위해 전체 학습 주기에서 매우 중요한 부분이라는 점을 주목하는 것이 중요합니다.

이러한 솔루션이 구현되어 결과를 내기 시작하면 이를 활용하여 HTTP 기반 트래픽을 위한 웹 애플리케이션 방화벽(WAF)과 같은 기존 제어 기능을 강화할 수 있습니다.

마무리하기

ML은 강력하며 ML 기반 솔루션은 마이크로서비스 기반 환경의 전반적인 보안에 필수적인 부분이 되었습니다. Volterra에서는 내부 운영에 ML이 필요하다는 사실을 아주 일찍부터 인식했으며, 고객이 현대적 애플리케이션으로 효과적이고 안전하며 효율적으로 전환할 때 이를 핵심 역량으로 제공했습니다.