플랫폼 아키텍처

Contexa의 모듈들이 어떻게 협력하여 Spring Boot 애플리케이션에 AI 기반 Zero Trust 보안을 제공하는지 이해합니다 -- HTTP 요청 진입부터 AI 위협 분석을 거쳐 최종 접근 결정까지.

플랫폼 개요

Contexa는 Spring Boot를 위한 AI Native Zero Trust 보안 플랫폼입니다. 경계 기반 보안에만 의존하는 대신, Contexa는 AI 기반 보안 결정을 통해 인증 후 지속적인 검증을 제공합니다. 요청 시점에는 세션 컨텍스트와 기존 결정이 적용되고, 비동기 AI 분석은 후속 요청의 제어에 반영됩니다.

플랫폼은 각각 고유한 보안 영역을 담당하는 4개의 핵심 모듈과 원활한 Spring Boot 통합을 위한 자동 설정 및 스타터 지원으로 구성됩니다.

코드 기준 부트스트랩 체인. OSS 진입점은 contexa-common@EnableAISecurity입니다. 이 애노테이션은 AiSecurityImportSelector를 통해 AiSecurityConfiguration을 로드하고, 이어서 IdentitySecurityCoreAutoConfiguration과 모듈별 자동 구성이 요청 시점 런타임 제어 경로, 비동기 분석 경로, IAM 통합 지점을 연결합니다.
AI

contexa-core AI 엔진

플랫폼의 AI 기반 보안 두뇌입니다. LLM과 통신하여 자율적 보안 결정을 수행합니다.

  • LLM 통신 및 오케스트레이션
  • 리스크 분석 및 위협 평가
  • HCAD 이상 탐지
  • 계층형 분석을 갖춘 SecurityPlaneAgent
  • 핸들러 체인을 갖춘 자율 이벤트 파이프라인
  • RAG 기반 컨텍스트 검색
  • 행동 임베딩
ID

contexa-identity 인증

Spring Security 위에 구축된 커스텀 DSL로 모든 인증 플로우를 관리합니다.

  • 폼 로그인 및 REST API 인증
  • 적응형 MFA, Passkey/WebAuthn, OTT
  • OAuth2 통합
  • Zero Trust 챌린지 필터
  • 커스텀 보안 DSL 설정
AC

contexa-iam 인가

AI 기반 메서드 수준 보안과 함께 XACML을 사용하는 동적 정책 기반 접근 제어입니다.

  • XACML 엔진 (PAP/PDP/PEP/PIP/PRP)
  • AI 기반 메서드 보안을 위한 @Protectable 어노테이션
  • 정책 관리를 위한 관리자 콘솔
  • SpEL 기반 동적 URL 인가
  • 리소스 스캐닝 및 검색
CM

contexa-common 공유

모든 모듈에서 공유되는 공통 엔티티, 서비스 및 도메인 모델입니다.

  • 공유 엔티티 모델
  • 캐시 서비스 추상화
  • 중앙 감사 퍼사드
  • 공통 어노테이션
  • 도메인 값 객체

추가적으로, contexa-autoconfigure는 Spring Boot 시작 시 core, identity, IAM 모듈을 연결하는 자동 구성 경로를 제공하며, spring-boot-starter-contexa는 OSS 코어 모듈을 묶는 통합 스타터 의존성입니다.

AI Native Zero Trust 흐름

Contexa는 모든 HTTP 요청을 두 가지 별도의 파이프라인으로 처리합니다: 모든 요청에서 실행되는 동기 Filter Chain과 백그라운드에서 이벤트를 분석하는 비동기 AI 파이프라인입니다. 적용 대상 액션은 ZeroTrustActionRepository를 통해 유지되며 다음 요청에서 반영됩니다. distributed 모드에서는 이 공유 상태가 Redis와 Redisson으로 뒷받침됩니다. 이 논블로킹 설계는 분석을 직접 요청 경로 밖으로 유지합니다.

주요 코드 기준 지점. 요청 시점 경로는 AISessionSecurityContextRepository.loadDeferredContext(...), AbstractZeroTrustSecurityService.applyZeroTrustToContext(...), ZeroTrustAccessControlFilter.doFilterInternal(...), ZeroTrustChallengeFilter.doFilterInternal(...)로 이어집니다. 비동기 분석 경로는 ZeroTrustEventPublisher.publishMethodAuthorization(...), ZeroTrustEventListener.handleZeroTrustEvent(...), SecurityEventProcessor.process(...), SecurityDecisionEnforcementHandler.handle(...)로 이어집니다.

동기 Filter Chain

Spring Security Filter Chain은 모든 HTTP 요청을 순서대로 처리합니다. 필터는 요청을 검사, 게이트 또는 보강하지만 LLM을 직접 호출하지는 않습니다.

HTTP 요청
HCADFilter Host & Context Anomaly Detection -- 세션, 디바이스, 행동 신호를 추출하고 요청 속성을 설정합니다. 절대 차단하지 않습니다.
ZeroTrustAccessControlFilter 이 사용자에 대한 현재 액션을 ZeroTrustActionRepository에서 읽어옵니다. distributed 모드에서는 이 공유 상태가 Redis 기반으로 유지되며, 비동기 AI 파이프라인이 이전 요청에서 계산한 결정을 여기서 적용합니다.
ALLOW -> 계속 BLOCK -> 403 ESCALATE -> 423 PENDING -> 응답 래핑
ZeroTrustChallengeFilter CHALLENGE 권한이 감지되면 -> MFA 챌린지를 시작합니다
CustomDynamicAuthorizationManager URL 수준 인가 -- DB의 정책을 SpEL 표현식으로 평가합니다
AuthorizationManagerMethodInterceptor AOP 인터셉터 -- @Protectable 메서드 호출을 실행 이전에 가로챕니다. 접근 결정을 평가합니다.
GRANTED DENIED
ZeroTrustEventPublisher publishMethodAuthorization()를 통해 호출됨 -- Spring ApplicationEventPublisher를 통해 발행합니다 ZeroTrustSpringEvent
@Protectable 메서드 실행 위의 인터셉터에 의해 인가가 승인된 경우에만 실제 어노테이션된 메서드가 실행됩니다.
애플리케이션 로직

비동기 AI 파이프라인

ZeroTrustEventListener@EventListener를 통해 ZeroTrustSpringEvent를 동기적으로 수신하며, 비동기 처리 파이프라인으로의 브릿지 역할을 합니다. AI는 백그라운드에서 위협을 평가하고, 적용 대상 액션을 ZeroTrustActionRepository에 기록합니다. distributed 모드에서는 Redis 기반 저장소와 Redisson 전파가 이 상태를 후속 요청에 노출합니다.

ZeroTrustEventListener (@EventListener) ZeroTrustSpringEvent 이벤트를 동기적으로 수신 -- 동기와 비동기의 브릿지 역할. SecurityEventPublisher(Kafka 또는 인메모리)로 라우팅합니다.
SecurityPlaneAgent SecurityEventProcessor를 통한 배치 처리를 오케스트레이션합니다
ColdPathEventProcessor AI 분석 진입점 -- 컨텍스트 수집과 함께 Layer1/Layer2 계층형 분석을 오케스트레이션합니다
Layer1ContextualStrategy
세션 컨텍스트 + RAG + 행동 분석
/
Layer2ExpertStrategy
확장 포렌식 + SOAR 통합
SecurityPromptTemplate
UnifiedLLMOrchestrator Spring AI ChatClient -- 모델 선택, 어드바이저 체인, 재시도 로직 ExecutionContext
ALLOW BLOCK CHALLENGE ESCALATE
SecurityDecisionEnforcementHandler (order=55) 적용 대상 액션을 ZeroTrustActionRepository에 기록합니다. BLOCK 시에는 차단 상태를 세우고, distributed 모드에서는 Redisson RTopic 기반 전파가 이어질 수 있습니다.
ZeroTrustActionRepository(Redis 또는 인메모리)에 저장 -> 다음 요청에서 적용

Zero Trust 적용 (다음 요청)

위의 모든 것 -- 동기 이벤트 발행, 비동기 AI 분석, LLM 결정 -- 이 여기에서 수렴합니다. 이 사용자의 모든 후속 요청은 이제 AI의 판정에 의해 관리됩니다. 이 결정은 제안이 아닙니다; Spring Security의 Authentication 자체에 융합됩니다.

모든 사용자 요청 모든 HTTP 요청이 이 파이프라인을 통과합니다 -- 다음 요청만이 아닙니다. AI 결정은 새로운 분석이 이를 대체할 때까지 유지됩니다.
AISessionSecurityContextRepository
세션 기반 로그인
/
AIOAuth2ZeroTrustFilter
JWT / OAuth2
Spring SecurityContext 로딩
ZeroTrustSecurityService ZeroTrustActionRepository에서 현재 액션을 읽어오고, distributed 모드에서는 이 상태가 Redis 기반으로 유지되며, AuthenticationZeroTrustAuthenticationToken으로 교체합니다 AI 결정 -> Spring Security Authority
이 사용자에게 이미 할당된 액션
ALLOW BLOCK CHALLENGE ESCALATE
이 액션은 새로운 AI 분석이 이를 대체할 때까지 모든 요청을 관리합니다
ZeroTrustAccessControlFilter BLOCK -> 403 Forbidden, 세션 무효화, 크로스 인스턴스 브로드캐스트
ESCALATE -> 423 Locked, Retry-After: 30s, TTL 만료 시 자동으로 BLOCK으로 승격
PENDING -> 중간 스트림 종료를 위해 BlockableResponseWrapper로 응답을 래핑
ZeroTrustChallengeFilter CHALLENGE -> ChallengeMfaInitializer를 통해 MFA를 시작
1시간 내 최대 2회 시도 -- 실패 시 자동으로 BLOCK으로 승격
ALLOW -> 요청이 애플리케이션 코드에 도달  |  그 외 -> 컨트롤러에 도달하기 전에 차단

BlockableResponseWrapper, BlockingSignalBroadcaster 및 크로스 인스턴스 전파를 포함한 상세한 적용 메커니즘은 Zero Trust Flow -- 적용 인프라를 참조하세요.

모듈 의존성

모듈들은 계층형 의존성 그래프를 형성합니다. 상위 모듈은 핵심 AI 엔진과 공유 인프라에 의존하며, 스타터는 모든 것을 통합합니다.

spring-boot-starter-contexa | +-- contexa-autoconfigure | | | +-- contexa-identity | | +-- contexa-core | | +-- contexa-common | | | +-- contexa-iam | | +-- contexa-core | | +-- contexa-common | | | +-- contexa-core | +-- contexa-common | +-- contexa-identity +-- contexa-iam +-- contexa-core +-- contexa-common
의존성 기준. 이 그래프는 OSS 루트의 settings.gradle과 각 모듈의 build.gradle에 선언된 실제 모듈 구성을 반영합니다. 애플리케이션 진입 의존성은 starter이고, contexa-autoconfigure가 Spring Boot 런타임 배선을 담당합니다.
모듈 의존 대상
contexa-identity contexa-core, contexa-common
contexa-iam contexa-core, contexa-common
contexa-core contexa-common
contexa-autoconfigure 전체 모듈
spring-boot-starter-contexa 전체 모듈

인프라 모드

Contexa는 두 가지 인프라 모드를 지원하여, 개발 시에는 무의존성 설정으로 시작하고 프로덕션에서는 분산 아키텍처로 확장할 수 있습니다.

인프라 모드 코드 기준. 인프라 모드는 contexa.infrastructure.mode 아래의 ContexaProperties.InfrastructureMode로 바인딩됩니다. 분산 전용 빈은 조건부 자동 구성으로 활성화되고, standalone 모드는 인메모리 구현을 기본값으로 사용합니다.

STANDALONE

모든 서비스의 인메모리 구현입니다. 외부 의존성 제로 -- 개발, 테스트 및 빠른 프로토타이핑에 이상적입니다.

contexa.infrastructure.mode=STANDALONE
  • 인메모리 ZeroTrustAction 저장소
  • 인메모리 캐시 서비스
  • 인메모리 이벤트 버스
  • Redis 또는 Kafka 불필요

DISTRIBUTED

프로덕션 배포를 위한 Redis + Kafka 지원 서비스입니다. 수평 확장 및 다중 인스턴스 조율을 지원합니다.

contexa.infrastructure.mode=DISTRIBUTED
  • Redis 기반 ZeroTrustAction 저장소
  • TTL 관리가 포함된 Redis 캐시
  • Kafka 이벤트 스트리밍
  • 클러스터 인식 세션 관리

Shadow Mode

Contexa는 안전하고 점진적인 도입을 위한 Shadow Mode를 지원합니다. 단일 프로퍼티 security.zerotrust.mode로 제어되며, AI 결정이 적용되는지 아니면 로깅만 되는지를 결정합니다.

Shadow/Enforce 코드 기준. 이 동작은 SecurityZeroTrustProperties.SecurityMode로 제어됩니다. SHADOW에서는 분석은 계속 수행되지만 런타임 액션을 저장하거나 적용하지 않고, ENFORCE에서는 같은 분석 결과를 액션 저장소에 기록한 뒤 런타임 필터가 이를 소비합니다.

SHADOW

전체 AI 파이프라인은 계속 실행됩니다 -- HCAD 분석, 계층형 LLM 평가, 리스크 점수 산정까지 수행됩니다. 다만 런타임은 관찰 모드로 유지되며, 요청 시점 제어는 활성화되지 않습니다. 이 모드의 목적은 분석 결과와 운영 신호를 검토하는 것입니다.

security.zerotrust.mode: SHADOW

ENFORCE

기본 모드입니다. 적용 대상 액션이 ZeroTrustActionRepository에 기록되고, 후속 요청에서 ZeroTrustAccessControlFilter와 관련 제로 트러스트 필터가 이를 집행합니다. BLOCK, CHALLENGE, ESCALATE가 실제 요청 경로에서 활성화됩니다.

security.zerotrust.mode: ENFORCE

권장 도입 타임라인과 롤백 전략에 대한 상세한 안내는 Shadow Mode 마이그레이션 가이드를 참조하세요.

AI 통합 지점

AI 및 LLM 기능은 플랫폼 전반에 깊이 통합되어 있습니다. 다음은 AI 기반 결정이 이루어지는 주요 지점입니다.

이 섹션의 코드 앵커. 아래 항목은 SecurityPlaneAgent, Layer1ContextualStrategy, Layer2ExpertStrategy, UnifiedLLMOrchestrator, AIAdaptiveMfaPolicyProvider, ApprovalService.requestApproval(...), AuditingHandler, CentralAuditFacade 같은 실제 런타임 구성요소에 의해 뒷받침됩니다.
  1. 1
    Zero Trust 위협 평가 SecurityPlaneAgent는 계층형 LLM 전략을 사용합니다 -- Layer 1은 빠른 컨텍스트 분석, Layer 2는 심층 전문가 조사 -- 의심스러운 요청을 평가하고, 제안 액션과 최종 적용 액션을 담은 SecurityDecision를 생성합니다.
  2. 2
    @Protectable 메서드 인가 @Protectable로 어노테이션된 메서드는 메서드 수준에서 AI 기반 인가 결정을 트리거하며, 정적 역할 검사를 넘어 요청 컨텍스트를 동적으로 평가합니다.
  3. 3
    HCAD 베이스라인 학습 & 이상 점수 산정 Host & Context Anomaly Detection 시스템은 정상 행동 베이스라인을 학습하고 각 요청의 편차를 점수화하여, 이상 데이터를 위협 평가 파이프라인에 제공합니다.
  4. 4
    적응형 MFA 정책 결정 AIAdaptiveMfaPolicyProvider는 AI 분석을 사용하여 추가 인증 요소가 필요한 시점을 결정하며, 리스크 컨텍스트에 따라 챌린지 강도를 조정합니다.
  5. 5
    AI 보강 XACML 정책 맥락 플랫폼은 XACML 평가에 AI 기반 런타임 컨텍스트와 메서드 수준 보안 신호를 결합하여, 자동 정책 생성 자체를 핵심 모델로 내세우지 않으면서도 운영자가 정책 의도를 더 정교하게 다듬을 수 있게 합니다.
  6. 6
    행동 분석 행동 임베딩은 사용자 상호작용 패턴을 벡터로 캡처하여, AI 엔진이 규칙 기반 시스템이 놓칠 수 있는 미묘한 이상을 감지할 수 있게 합니다.
  7. 7
    SOAR 오케스트레이션 Layer 2 전문가 조사는 SoarApprovalNotifier를 통해 SOAR 워크플로우와 통합됩니다. 고위험 결정은 적용 전에 인간 승인을 요구할 수 있어, 자동화된 분석과 운영 감독을 연결합니다.
  8. 8
    중앙 감사 로깅 모든 AI 결정은 적용이 활성화된 경우(ENFORCE 모드)든 관찰 전용(SHADOW 모드)이든 관계없이 AuditingHandler를 통해 CentralAuditFacade에 기록됩니다. 컴플라이언스 및 포렌식을 위한 완전한 감사 추적을 제공합니다.