로깅과 모니터링은 시스템 활동을 기록하고 이상 징후를 실시간으로 감시하는 영역입니다. 제로 트러스트 환경에서는 지속적인 모니터링을 통해 정책을 개선하고 위협에 대응하는 것이 필수이며, LLM 애플리케이션에서도 사용자 활동, 모델 사용 내역, 보안 이벤트를 모두 기록하여 추적 가능하고 분석 가능해야 합니다. 또한 실시간 모니터링으로 침해 시도를 빨리 탐지하고 차단하는 체계를 갖춰야 합니다. 위협 (STRIDE):스푸핑: 적절한 모니터링이 없으면, 공격자가 시스템 내에서 악의적 활동을 해도 정상 사용자로 위장하여 지나칠 수 있습니다. 예를 들어 공격자가 탈취한 계정으로 행동해도 모니터링이 그 사용자의 일반 패턴과 비교해 이상함을 탐지 못하면 알아채지 못합니다.변조: 공격자가 로그를 임의로 조작하거나 삭제하여..
애플리케이션 보안은 LLM 애플리케이션 자체의 코드 및 운영 상 취약점을 식별하고 제거하는 영역입니다. RAG LLM 앱은 일반 웹/모바일 애플리케이션의 취약점에 더해 프롬프트 기반의 새로운 공격 벡터를 갖습니다. 예를 들어 프롬프트 인젝션을 통해 LLM의 의도치 않은 동작을 유발하거나, LLM이 생성한 출력을 악용하는 다운스트림 공격이 존재합니다. 따라서 전통적인 OWASP Top 10 웹 취약점 (XSS, SQL Injection 등)과 OWASP LLM Top 10에 나온 취약점 모두에 대비한 설계가 필요합니다. 위협 (STRIDE)스푸핑: 공격자가 애플리케이션의 합법적 부분(예: 다른 사용자나 서비스)인 것처럼 위장하여 악성 입력을 주입하거나 응답을 가로챌 수 있습니다. (예: 프롬프트에 시스템 ..
데이터 보호는 저장 중이거나 전송 중인 데이터의 기밀성, 무결성, 가용성을 보장하고, 민감 정보의 유출을 방지하는 것을 의미합니다. RAG LLM 시스템에서는 프롬프트/응답 내용, 벡터 DB의 지식베이스, 대화 기록, 사용자 개인정보 등이 모두 보호 대상입니다. 제로 트러스트 환경에서는 내부 네트워크도 불신해야 하므로, 데이터는 항상 암호화하고 접근을 엄격히 통제해야 합니다 . 또한 AI 서비스 특성상 훈련 데이터 및 모델 자산 보호도 중요한 부분입니다 (모델 유출 방지 등). 위협 (STRIDE)스푸핑: (데이터 측면에서는 주로 무결성 관련 이슈) 공격자가 데이터 접근 권한을 위조하여 무단으로 데이터에 접근하거나 변조할 수 있습니다. 예를 들어 API 요청에 위조된 자격증명을 포함해 저장된 벡터 임베딩..
인가는 인증된 주체에 부여된 권한을 검증하여, 적절한 권한으로만 자원에 접근하도록 통제하는 것입니다. RAG LLM 서비스에서는 사용자별로 볼 수 있는 데이터 제한, 기능별 관리자/일반 사용자 권한 차등, 마이크로서비스 간 권한 위임 등이 중요합니다. 제로 트러스트 맥락에서 모든 요청에 최소 권한 원칙을 적용하고, 접근 시마다 정책에 따라 권한을 재평가해야 합니다 . 위협 (STRIDE)스푸핑/권한 도용: 인증을 통과한 사용자가 다른 사용자인 척하면서 그들의 데이터나 기능에 접근할 수 있습니다. 예를 들어 URL이나 ID를 바꿔치기(IDOR 취약점)하여 남의 대화 히스토리나 프롬프트 결과를 열람하는 행위가 가능합니다.변조: 클라이언트 측에서 권한 정보(예: JWT의 role 클레임 등)를 조작하여 더 높..
인증은 사용자나 서비스의 신원을 확인하는 과정입니다. RAG 기반 LLM 애플리케이션에서는 최종 사용자, 내부 마이크로서비스, 외부 API 호출 등 다양한 주체에 대한 강력한 인증이 필수입니다. 제로 트러스트 원칙에 따라 모든 주체를 사전에 신뢰하지 않고, 모든 접근 요청마다 엄격한 신원 확인이 이루어져야 합니다 . 위협 (STRIDE)스푸핑(Spoofing): 공격자가 합법적 사용자나 서비스를 가장하여 LLM 애플리케이션에 접근할 수 있습니다. 예를 들어, 피싱이나 크리덴셜 탈취를 통해 토큰이나 세션을 가로챔으로써 공격자가 사용자로 위장할 수 있습니다.변조(Tampering): 인증 토큰이나 세션 ID가 탈취·위조되어 무단으로 사용될 수 있습니다. 전송 중 토큰이 노출되거나 위변조되면 인증 체계를 우회..
기업 내 RAG(Retrieval-Augmented Generation) 기반 LLM 애플리케이션(예: 챗봇, 검색 서비스)은 제로 트러스트(Zero Trust) 원칙 하에 철저한 보안 검토가 필요합니다. 본 글 시리즈는 인증, 인가, 데이터 보호, 애플리케이션 보안, 로깅 및 모니터링의 5대 도메인별로 위협 모델(STRIDE 기반), 보안 요구사항, OWASP LLM Top 10 대응, NIST SP 800-207 (Zero Trust) 및 NIST AI RMF 지침을 종합적으로 정리합니다. 또한 AWS 마이크로서비스 환경(특히 RAG 아키텍처)을 전제로 한 모범 사례와, 각 도메인별 보안 리뷰 체크리스트를 포함합니다. 이를 통해 제로 트러스트 접근 방식으로 RAG LLM 애플리케이션에 대한 체계적인 ..
1. 보안 3요소 기밀성 (Confidential) : 데이터를 의도하지 않은 수신자로부터 보호 HTTPS(TLS)를 아용하여 전송채널 암호화 (보안채널) 메시지 암호화를 적용할 경우, 안전하지 않은 채널(HTTP)을 이용 가능 (단, 메시지 암호화 과정에서의 노출 확인이 필요함) 애플리케이션에서 전송 전 데이터를 암호화 (메시지 암호화) 서버와 클라이언트가 미리 암/복호화에 대한 방법을 알아야 하므로 큰 분산시스템에서 적용의 어려움이 있음 이를 해결하기 위해 메시지 보안 표준을 사용 (XML 암호화, JSON 웹서명/암호화) 무결성 (Integrity) : 데이터의 정확성과 신뢰성을 보장하며 무단 수정을 탐지 예방 : 메시지 암호화 또는 보안 채널 이용 탐지 : 감사로그 이용 (감사로그 또한 무결성 요..
Application 보안을 설계할 때, 시스템의 안전성과 신뢰성을 보장하기 위해 여러 가지 중요한 원칙을 준수해야 합니다.아래는 Web/API Application 보안을 위해 반드시 고려해야 할 주요 설계 원칙들입니다. 최소 권한최소 권한 원칙은 사용자나 시스템 구성요소가 필요한 최소한의 권한만 부여받아야 한다는 원칙입니다.권한은 작업을 수행하는 데 필수적인 경우에만 부여되어야 하며, 더 이상 필요하지 않은 권한은 즉시 제거되어야 합니다.이를 통해 시스템 접근과 관련된 모든 활동을 추적하고, 승인된 작업만 수행될 수 있도록 보장합니다.기본적으로는 모든 접근이 차단된 상태에서, 필요한 경우에만 최소한의 권한이 부여되도록 설계해야 합니다. Fall-Safe Defaults시스템이 안전한 기본값을 가지도록..
세션고정 공격 로그인 인증 후에도 동일한 세션ID(식별자)를 사용할 경우, 공격자가 세션ID(ex. JSESSIONID)를 탈취하면 사용자명과 패스워드 없이 인증된 사용자의 세션을 사용할 수 있음 Spring Security의 세션고정 보호기능은 사용자가 인증된 후 명시적으로 새로운 세션을 생성하고, 기존 세션을 무효화할 수 있음 session-fixation-protection 속성 none() 세션 고정보호를 사용하지 않음 migrateSession() 사용자 인증 후 신규 세션 생성 시 기존 세션의 모든 속성이 새로운 세션으로 이동 newSession() 사용자 인증 후 신규 세션 생성 시 기존 세션의 몯ㄴ 속성은 새로운 세션으로 이동하지 않음 동시세션 관리 사용자가 동시에 고정된 수 (일반적으로는..
Spring Security WebSecurityConfigureAdapter를 상속받은 Config 클래스에 @EnableWebSecurity 어노테이션을 연결하면 SpringSecurityFilterChain이 자동으로 포함됨 #../configuration/SecurityConfig.java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { ... } WebSecurityConfigureAdapter 클래스는 Spring Security의 웹 보안 기능의 초기화 및 설정을 담당 HttpSecurity 클래스는 인증 및 인가 설정을 제공 WebSecurityConfigur..
- Total
- Today
- Yesterday