L3: 인증은 특정 시점의 기록일 뿐, 공격은 런타임에 발생하기에 지속적인 런타임 모니터링을 구축했습니다
요약
인증은 특정 시점의 기록일 뿐이므로, 런타임 중 발생하는 설정 드리프트나 공급망 공격을 막기 위해 지속적인 모니터링이 필요합니다. L3는 샌드박스에서 기술을 재실행하여 동작 기준점과 비교함으로써 변화를 탐지합니다.
핵심 포인트
- 정적 분석과 스냅샷 방식의 한계(설정 드리프트, 공급망 업데이트 등) 지적
- L3: 샌드박스 재실행을 통한 지속적인 런타임 동작 모니터링 구축
- 6가지 드리프트 유형을 통한 권한 확장 및 새로운 도구 탐지
- 클라이언트 특화 동작 및 제로데이 공격에 대한 한계 명시
네 명의 독립적인 검토자들이 동일한 이야기를 했습니다:
"인증(Certification)은 특정 시점(point-in-time)의 기록입니다. 공격은 런타임(runtime)에 발생합니다."
— @correctover (CrewAI), @wrencalloway (dev.to), @mads_hansen (dev.to), @mayank609 (CrewAI)
4명의 사람이 독립적으로 동일한 격차(gap)를 식별했다면, 그것은 단순한 격차가 아니라 바로 '그 문제(THE problem)'입니다. 그래서 저는 L3를 구축했습니다.
격차 (The gap)
저의 8계층 Sentinel 파이프라인은 임포트 시점(import time)에 기술(skills)을 감사(audit)합니다:
- L1.5-L1.8: 정적 분석 (static analysis) (메타데이터, semgrep, 비밀 정보, 악성코드 패턴, 악성코드 패밀리)
- L2: gVisor 샌드박스 (sandbox) (기술을 한 번 실행하여 동작 기준점(behavior baseline)을 캡처함)
하지만 인증 이후에 기술은 변할 수 있습니다:
- 설정 드리프트(config drift)로 인해
allowed_paths가/data에서/로 변경됨 - 공급망 업데이트(supply chain update)가 새로운 페이로드(payload)를 주입함
- 탈취된 자격 증명(compromised credential)으로 인해 데이터를 유출함
- 도구 카탈로그(tool catalog)에 새로운 도구들이 나타남
정적 분석(Static analysis)은 이러한 변화를 볼 수 없습니다. L2는 스냅샷(snapshot)을 캡처했을 뿐입니다. 둘 다 드리프트(drift)를 잡아내지는 못합니다.
L3 — 지속적인 런타임 모니터링 (Continuous Runtime Monitoring)
L3는 스케줄에 따라(GitHub Actions를 통해 매주) 샌드박스에서 기술을 다시 실행하고, 런타임 동작(runtime behavior)을 L2 기준점(baseline)과 비교합니다. 동작이 드리프트되면 해당 기술은 플래그(flagged) 처리됩니다.
6가지 드리프트 탐지 유형
| 유형 | 심각도 | 탐지 내용 |
|---|---|---|
| TOOL_CATALOG_NEW_TOOLS | critical | 인증 이후 새로운 도구가 나타남 |
| ... |
각 공격 벡터(attack vector)를 해결하는 방법
"설정 드리프트(config drift)로 인해 allowed_paths가 /data에서 /로 변경됨"
→ L3는 현재 권한을 기준점(baseline)과 비교합니다. 경로가 확장되었다면 → CRITICAL 경고 → 기술을 다시 격리(re-quarantined)합니다.
"공급망 업데이트(supply chain update)가 페이로드를 주입함"
→ L3는 git 커밋 SHA와 npm 버전을 확인합니다. 인증 이후 변경되었다면 → CRITICAL 경고 → 기술을 다시 감사(re-audited)해야 합니다.
"탈취된 자격 증명(compromised credential)으로 인해 데이터를 유출함"
→ L3는 --network none 옵션으로 샌드박스를 다시 실행합니다. 기준점에서 자격 증명 접근이 0이었는데 L3에서 N으로 나타난다면 → HIGH 경고를 발생시킵니다.
L3가 해결하지 못하는 것 (솔직하게)
- 클라이언트 특화 동작 (Client-specific behavior): 스캐너에게는 깨끗한 도구 설명을 반환하지만, 실제 에이전트에게는 악성 설명을 반환하는 기술입니다. L3는 여러 개의 User-Agent 문자열을 사용하여 실행함으로써 이를 완화하지만, 완전한 해결책은 아닙니다.
- 제로데이 프로토콜 익스플로잇 (Zero-day protocol exploits): L3는 행동 드리프트 (behavioral drift)를 포착하며, 프로토콜 수준의 취약점을 포착하는 것은 아닙니다.
아키텍처 (Architecture)
전체 파이프라인은 이제 9개의 레이어로 구성됩니다:
L3 결과는 _data/l3_results/{skill_id}.json에 저장되며, 이는 공개적으로 감사 가능합니다. 만약 스킬의 드리프트 (drift)가 발생하면, /api/security?view=quarantine에서 reason: 'l3_drift_detected'와 함께 플래그가 지정됩니다.
시도해보기 (Try it)
- 보안 개요 (이제 9개 레이어를 보여줍니다): https://marketnow.site/api/security
- 신뢰 페이지 (Trust page): https://marketnow.site/trust
- GitHub: https://github.com/edgarfloresguerra2011-a11y/marketnow
— Edison Flores, AliceLabs LLC
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기