용어와 정의
영문 또는 원어: Insecure Deserialization
한글명: 안전하지 않은 역직렬화
안전하지 않은 역직렬화는 신뢰할 수 없는 저장 형식이나 전송 자료를 프로그램 객체로 복원하면서 자료 변조 또는 위험한 동작을 허용하는 문제입니다.
정확한 의미와 원리
직렬화는 객체 상태를 저장하거나 전송할 형식으로 바꾸는 과정이고 역직렬화는 이를 되돌리는 과정입니다. 복원 대상의 자료형과 동작을 외부 입력이 결정하거나 복원 과정에서 코드가 실행되면 위험이 커질 수 있습니다.
쉽게 이해하는 예시
사용자에게 보냈던 객체 상태를 다시 받아 권한이나 가격 계산에 그대로 사용하는 상황입니다. 프로그램 실행으로 이어지지 않더라도 신뢰하면 안 되는 값이 업무 판단에 사용될 수 있습니다.
종류와 버전 및 관련 개념의 차이
자료 변조와 코드 실행
영향은 논리 변조, 권한 문제와 자원 소모에서 코드 실행까지 구현에 따라 다릅니다. 역직렬화라는 단어만으로 특정 결과를 단정하지 않습니다.
자료 읽기와 객체 복원
필요한 필드만 읽어 검증하는 방식과 임의 객체 형식을 복원하는 방식은 다릅니다. 전송 형식의 이름만 보고 안전하다고 판단하지 말고 분석기 설정과 복원 동작을 확인합니다.
적용 대상과 조건
외부 입력을 객체로 복원하는 서버와 세션 저장 기능에서 확인합니다. 허용하는 자료형, 무결성 검사와 외부 입력의 신뢰 경계를 설계해야 합니다.
확인할 부분과 오해하기 쉬운 점
서명이나 암호화가 있어도 잘못된 키 관리와 위험한 복원 동작까지 자동으로 해결되지는 않습니다. 언어와 라이브러리에 맞는 공식 보안 지침을 따라야 합니다.
공식 참고 자료
아래 공식 자료의 정의와 적용 범위를 바탕으로 작성했습니다. 예시는 개념을 설명하기 위한 상황이며 실제 작업 기록을 뜻하지 않습니다.
검토 기준일: 2026-10-26
함께 확인할 용어와 안내 글
관련 용어와 글
함께 비교할 용어
- BFLA (Broken Function Level Authorization) 기능 수준 권한 부여 취약점
- XXE (XML External Entity) 외부 엔터티 취약점
- Path Traversal 경로 탐색 취약점
- HTTP Request Smuggling (Hypertext Transfer Protocol Request Smuggling) 하이퍼텍스트 전송 프로토콜 요청 밀수
- Prototype Pollution 프로토타입 오염
- Credential Stuffing 유출 자격 증명 대입
- Password Spraying 비밀번호 스프레이 공격
- IDOR 안전하지 않은 직접 객체 참조