최근 많은 기업들이 서버를 직접 관리하지 않고, 필요할 때만 기능을 실행하는 '서버리스 (Serverless)' 방식을 사용합니다. 마치 쇼핑몰에서 가게를 빌려 쓰는 것과 비슷합니다. 주인 (클라우드 업체) 이 건물을 관리하고, 가게 주인 (사용자) 은 상품 (프로그램) 만 팔면 됩니다.
하지만 문제는 여러 가게가 같은 건물 (서버) 을 공유한다는 점입니다.
기존의 문제: 이 공유된 공간에서 해커가 특정 피해자의 가게 바로 옆에 자리를 잡거나 (공존 공격), 너무 많은 손님을 불러와서 피해자의 가게에 손님이 들어갈 수 없게 만들 수 있습니다 (서비스 거부 공격).
연구의 어려움: 실제 쇼핑몰 (실제 클라우드) 에서 이런 실험을 하려면 비용이 너무 비싸고, 해커가 어디에 숨어 있는지 알 수 없으며, 실험을 통제하기 어렵습니다.
기존 도구의 한계: 기존 시뮬레이션 프로그램들은 "얼마나 빨리 처리되나?", "비용은 얼마나 드나?"만 계산할 뿐, **"해커가 피해자를 공격할 수 있는가?"**는 보안 문제는 잘 다루지 못했습니다.
2. 해결책: 쿠모 (Kumo) 는 무엇인가요?
"완벽한 통제 가능한 가상 쇼핑몰"
쿠모는 실제 쇼핑몰을 모방한 가상 실험실입니다. 하지만 일반적인 실험실과 달리, 보안에 초점을 맞췄습니다.
주인공 설정: 이 실험실에는 **'해커 (공격자)'**와 **'일반 고객 (피해자)'**이 명확하게 구분되어 있습니다.
실험 환경: 연구자들은 해커가 어떻게 움직이고, 시스템이 어떻게 반응하는지 완벽하게 통제할 수 있습니다.
핵심 기능:
배치 (Scheduling): 누가 어느 가게 (서버) 에 들어갈지 결정하는 '관리자'의 규칙을 바꿔가며 실험합니다.
공유 (Resource Sharing): 여러 가게가 같은 자원을 쓸 때 생기는 마찰을 관찰합니다.
대기열 (Queuing): 손님이 너무 많을 때 대기줄이 어떻게 생기는지, 그리고 해커가 그 줄을 막아 피해자를 밀어낼 수 있는지 확인합니다.
3. 주요 발견: 두 가지 중요한 실험 결과
쿠모를 통해 두 가지 큰 실험을 진행했는데, 결과는 매우 흥미로웠습니다.
실험 A: "누가 옆에 앉을까?" (공존 공격)
상황: 해커가 피해자의 가게 바로 옆에 자리를 잡으려 노력합니다.
발견:관리자의 규칙 (스케줄러) 에 따라 결과가 천차만별이었습니다.
어떤 규칙은 해커가 피해자 옆에 앉을 확률을 **0%**로 만들었습니다. (완벽한 격리)
어떤 규칙은 해커가 피해자 옆에 앉을 확률을 매우 높게 만들었습니다.
비유: 쇼핑몰 관리자가 "서로 다른 브랜드는 멀리 배치하라"고 지시하면 해커는 피해자를 찾을 수 없지만, "빈 공간이 어디든 상관없이 무작위로 배치하라"고 하면 해커는 쉽게 피해자 옆에 앉을 수 있습니다.
결론:어떤 배치 규칙을 쓰느냐가 보안의 1 순위입니다.
실험 B: "줄을 막아서 문을 닫게 만들자" (서비스 거부 공격)
상황: 해커가 가짜 손님 (요청) 을 무수히 보내서 피해자의 가게로 가는 줄을 막습니다.
발견: 이 경우 관리자의 규칙보다는 시스템 전체의 능력이 더 중요했습니다.
해커가 너무 많은 손님을 보내면, 어떤 규칙을 쓰든 피해자는 결국 문을 닫게 됩니다.
중요한 것은 대기줄의 길이와 쇼핑몰의 전체 크기였습니다. 줄을 너무 길게 만들면 손님은 들어오지만 기다리는 시간이 너무 길어지고, 줄을 짧게 하면 아예 들어오지 못합니다.
결론:시스템의 자원 (공간과 인원) 관리가 보안의 핵심입니다.
4. 요약 및 시사점
이 논문의 핵심 메시지는 다음과 같습니다.
보안은 단순하지 않습니다: "서버리스"가 안전하다고 생각할 수 있지만, 실제로는 **어떻게 자원을 나누어 주느냐 (배치)**와 **자원이 부족할 때 어떻게 대처하느냐 (대기열)**에 따라 보안 위험이 완전히 달라집니다.
두 가지 다른 적:
적 1 (공존 공격): 관리자의 배치 규칙을 잘만 정하면 막을 수 있습니다.
적 2 (서비스 거부): 배치 규칙만으로는 안 되고, 시스템의 전체적인 능력을 키워야 합니다.
쿠모의 역할: 쿠모는 실제 시스템을 망가뜨리지 않고, "만약 이렇게 규칙을 바꾼다면 해커가 얼마나 쉽게 공격할 수 있을까?"를 안전하고 저렴하게 미리 예측해 주는 도구입니다.
한 줄 요약:
**쿠모 (Kumo)**는 클라우드 시스템의 보안 구멍을 찾기 위해 만든 **'가상 시뮬레이션 게임'**으로, 해커가 어떻게 공격하는지 미리 연습해보고, 어떤 방어 규칙이 가장 효과적인지 찾아내는 데 도움을 줍니다.
Kumo: 보안 중심의 서버리스 클라우드 시뮬레이터 기술 요약
본 논문은 서버리스 컴퓨팅 환경에서 발생하는 보안 위험, 특히 스케줄링 및 리소스 공유로 인한 공격을 분석하기 위해 고안된 Kumo라는 보안 중심 시뮬레이터를 소개합니다.
1. 문제 정의 (Problem)
서버리스 컴퓨팅은 인프라 관리의 추상화를 제공하지만, 이는 스케줄링, 리소스 공유, 컨테이너 재사용과 같은 시스템 수준의 동작을 숨겨 보안 위험을 초래합니다.
기존 연구의 한계: 기존 서버리스 시뮬레이터나 성능 모델은 주로 비용 추정, 지연 시간 최적화, 용량 계획에 초점을 맞추고 있어, 명시적인 공격자 모델링이나 격리 (isolation) 관련 지표를 제공하지 못합니다.
실험의 어려움: 실제 생산 환경 (Production) 에서 보안 공격을 연구하는 것은 관찰 가능성 (observability) 부족, 높은 비용, 실험 제어의 어려움으로 인해 제한적입니다.
주요 위협: 공유 실행 환경을 악용한 공격자 - 피해자 동시 배치 (Co-location) 공격과 리소스 경쟁을 통한 가용성 저하 (DoS) 공격이 주요 위협으로 대두되고 있습니다.
2. 방법론 (Methodology)
Kumo 는 특정 상용 플랫폼을 완벽하게 복제하는 것이 아니라, 서버리스 보안에 가장 관련 깊은 메커니즘을 추상화하여 제어 가능하고 재현 가능한 분석을 제공합니다.
A. 아키텍처 및 핵심 기능
**이벤트 기반 시뮬레이션:**Invocation(호출) 도착, 스케줄링 결정, 실행 시작/종료, 리소스 회수 등을 이산 이벤트 (discrete-event) 프레임워크로 모델링합니다.
명시적 모델링: 공격자와 피해자를 1 순위 엔티티 (first-class entities) 로 명시적으로 모델링하여, 공유 리소스에서의 상호작용을 추적합니다.
플러그 가능한 스케줄러: 스케줄링 로직을 실행 엔진과 분리하여 다양한 스케줄링 정책 (Random, DoubleDip, Helper, OpenWhisk 등) 을 쉽게 교체하고 비교 분석할 수 있습니다.
리소스 및 대기열 모델링: CPU/메모리/스토리지 사용량, 컨테이너 재사용 (Cold/Warm start), 그리고 대기열 (Queuing) 과 포화 상태에서의 Invocation drop(기각) 을 정밀하게 시뮬레이션합니다.
B. 실험 설정
작업 부하 (Workloads): 균일 (Uniform), 포아송 (Poisson), 버스트 (Bursty) 등 다양한 도착 패턴을 지원합니다.
지표 수집: 동시 배치 확률, 첫 동시 배치 시간, Invocation drop rate, 꼬리 지연 시간 (Tail latency) 등 보안 및 성능 관련 지표를 수집합니다.
3. 주요 기여 (Key Contributions)
Kumo 시뮬레이터 개발: 서버리스 플랫폼의 보안 분석을 위한 구성 가능한 이벤트 기반 시뮬레이터를 설계 및 구현했습니다.
유연한 공격/피해자 모델링 프레임워크: 작업 부하 수준에서 공격자와 피해자를 모델링하여 동시 배치 확률, 가용성 저하 등 보안 관련 결과를 직접 측정할 수 있게 했습니다.
심층 사례 연구 (Case Studies): 스케줄러 설계와 시스템 수준의 리소스 관리가 서로 다른 종류의 서버리스 보안 위험에 미치는 영향을 입증했습니다.
4. 실험 결과 (Results)
사례 연구 A: 공격자 - 피해자 동시 배치 (Co-location)
스케줄러의 중요성: 동일한 작업 부하와 플랫폼 구성에서도 스케줄러 선택이 동시 배치 확률에 수백 배 (orders-of-magnitude) 의 차이를 만듭니다.
DoubleDip: 동시 배치를 효과적으로 제거 (확률 0).
Random: 높은 동시 배치 확률.
Helper/OpenWhisk: 중간 정도의 확률 (컨테이너 재사용을 우선시함).
성능과 보안의 트레이드오프: 동시 배치를 줄이는 것이 반드시 높은 Cold-start 오버헤드를 의미하지는 않습니다. DoubleDip 는 낮은 동시 배치 확률과 낮은 Cold-start 오버헤드를 동시에 달성했습니다.
공격 실행 가능성: Random 스케줄러는 공격자가 피해자와 빠르게 동시 배치될 수 있게 하지만, 다른 스케줄러는 이를 지연시킵니다.
사례 연구 B: 서비스 거부 (DoS) 및 가용성 저하
시스템 수준 요인의 지배: 동시 배치와 달리, DoS 공격 (가용성 저하) 은 스케줄러 설계보다는 서비스 시간, 대기열 정책, 클러스터 용량과 같은 시스템 수준 요인에 의해 주로 결정됩니다.
대기열 길이의 트레이드오프: 대기열 용량을 늘리면 Invocation drop(기각) 은 줄어들지만, 꼬리 지연 시간 (Tail latency) 은 크게 증가합니다.
클러스터 확장: 노드 수를 늘리면 가용성이 개선되지만, 일정 수준을 넘으면 체감 효과가 감소하며, 이는 일시적인 버스트와 대기열 효과에 의해 좌우됨을 보여줍니다.
5. 의의 및 결론 (Significance)
위험의 분리: Kumo 를 통해 **스케줄러에 의한 격리 위험 (Co-location)**과 **광범위한 리소스 고갈 취약점 (DoS)**을 명확히 구분할 수 있음을 입증했습니다.
격리 공격 방지는 스케줄러 정책이 핵심입니다.
가용성 공격 방지는 대기열 관리, 승인 제어 (Admission Control), 용량 계획이 핵심입니다.
플랫폼 설계에 대한 시사점: 스케줄러는 단순한 성능 최적화 도구가 아닌 보안 메커니즘으로 간주되어야 합니다. 또한, DoS 방어를 위해서는 스케줄링만으로는 부족하며 시스템 전체의 리소스 관리 전략이 필요합니다.
연구 도구로서의 가치: Kumo 는 비용이 많이 드는 실제 환경 실험 없이도 서버리스 보안 위험을 체계적이고 재현 가능하게 분석할 수 있는 유연한 기반을 제공합니다.
요약하자면, 이 논문은 서버리스 환경의 보안 위협을 이해하고 완화하기 위해, 스케줄링 정책과 시스템 리소스 관리가 어떻게 상호작용하여 서로 다른 보안 결과를 초래하는지를 Kumo 시뮬레이터를 통해 정량적으로 분석한 중요한 연구입니다.