기출 web XML

agnusdei·2025년 12월 18일

Information Security

목록 보기
83/96

웹 서비스의 신뢰 기반, XML 보안 (XML Security)

1. XML 보안의 정의 및 필요성

가. 정의

XML 보안이란 분산 컴퓨팅 환경(Web Services)에서 교환되는 XML 문서 자체에 암호화, 전자서명, 접근제어 정책을 적용하여 문서의 안전한 전송과 처리를 보장하는 기술 체계입니다.

나. 필요성

  1. 메시지 수준 보안 (Message-level Security): 전송 구간(HTTPS)뿐만 아니라 전송이 끝난 후 저장된 상태에서도 데이터 보호 필요.
  2. 부분 암호화 및 서명: 전체 문서가 아닌 특정 요소(Element)만 선택적으로 암호화하여 처리 효율 증대.
  3. 이종 시스템 간 상호운용성: 표준화된 XML 보안 규격을 통해 서로 다른 플랫폼 간의 신뢰 교환 가능.

2. XML 보안의 3대 핵심 표준 기술

표준 명칭주요 기능핵심 프로토콜/특징
XML Signature무결성, 인증, 부인 방지문서의 특정 부분만 서명 가능 (<Signature>)
XML Encryption데이터 기밀성 보장요소를 암호화하여 <EncryptedData>로 대체
XKMS (Key Management)공개키 관리 및 검증복잡한 PKI 구조를 XML 기반 서비스로 단순화

3. XML 주요 보안 위협 (Vulnerabilities)

가. XXE (XML External Entity) 공격

  • 개념: XML 문서 내부에 외부 엔티티를 정의하고, 이를 통해 서버 내부 파일(예: /etc/passwd)을 읽거나 내부망 스캐닝을 수행하는 공격.
  • 방어: XML 파서 설정에서 External Entity(DTD) 참조 기능을 비활성화.

나. XML Bomb (Entity Expansion)

  • 개념: 엔티티 치환 기능을 중첩적으로 사용하여 기하급수적으로 메모리를 소모시켜 가용성을 저해하는 DoS 공격 (예: Billion Laughs Attack).
  • 방어: 엔티티 확장 횟수 및 메모리 할당 제한 설정.

다. XPath Injection

  • 개념: 사용자의 입력값이 XPath 쿼리에 직접 포함되어 비인가된 데이터에 접근하거나 인증을 우회하는 공격 (SQL Injection과 유사).
  • 방어: 입력값 검증, 파라미터화된 쿼리 사용.

4. XML 보안 아키텍처 및 대응 방안

  1. 동작 원리 (Standard Process)

    • Canonicallization (C14N): XML은 스페이스, 줄바꿈 등에 민감하므로 서명 전 문서를 정형화(표준화)하는 과정이 필수적입니다.
    • Schema Validation: 전송된 XML이 정의된 스키마 구조를 따르는지 사전에 엄격히 검사하여 변조된 데이터 유입 차단.
  2. 관리적/기술적 대응

    • WAF (Web Application Firewall): XML 특화 공격 패턴을 탐지할 수 있는 웹 방화벽 운용.
    • Secure Coding: 파서 옵션 설정(setFeature 등)을 통한 취약 기능 제거.

5. 최신 동향 및 기술사적 제언

가. JSON과의 비교 (JSON Security)

최근 RESTful 환경에서는 JSON이 주류이나, 정교한 디지털 서명과 부분 암호화가 필요한 금융/정부 민감 시스템에서는 여전히 XML 보안 표준(SAML, XML-DSig)이 중추적인 역할을 합니다.

나. 제로 트러스트 관점의 검증

XML 메시지는 연계 시스템 간의 '신뢰'를 바탕으로 처리되므로, 메시지 수신 시점마다 1) 무결성 검증, 2) 권한 확인(XACML), 3) 구조적 타당성 검사를 수행하는 다층 방어 체계가 구축되어야 합니다.


6. 결론

XML 보안은 단순히 데이터를 암호화하는 것을 넘어, 비즈니스 로직의 무결성을 지키는 핵심 인프라입니다. 기술사는 변화하는 공격 기법에 기민하게 대응함과 동시에, 최신 웹 서비스 환경(Micro-services, Cloud Native)에 적합한 가볍고 강력한 XML/JSON 보안 프레임워크를 설계할 수 있어야 합니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글