사전 목록
Insecure Deserialization

안전하지 않은 역직렬화

안전하지 않은 역직렬화는 신뢰하지 않는 직렬화 데이터를 객체로 복원하는 과정에서 의도하지 않은 코드 실행, 권한 변경, 데이터 변조가 발생하는 약점입니다.

#보안 취약점#역직렬화#객체 주입#코드 실행

안전하지 않은 역직렬화

일부 객체 직렬화 형식은 클래스 정보와 메서드 호출 경로를 포함합니다. 공격자가 데이터 구조를 바꾸면 애플리케이션에 존재하는 위험한 클래스 조합이 실행될 수 있습니다.

핵심 정보

분류보안 취약점

핵심 질문이 개념이 어떤 데이터·시스템·업무에 적용되며 실패할 때 누구에게 어떤 피해가 생기는지 확인합니다.

판단 원칙실제 구현, 권한, 데이터 흐름, 로그와 예외 절차를 함께 평가합니다.

발생 원인과 악용 조건

세션, 캐시, 메시지 큐, 파일 업로드, API 토큰에서 직렬화 객체를 사용할 때 발생합니다. 서명이나 암호화가 없으면 내용 변조도 가능하며 서명이 있어도 비밀키 노출 시 방어가 무너집니다.

운영 효과는 데이터 생성 지점, 처리 목적, 사용자와 관리자 권한, 외부 연동, 백업과 로그, 삭제 절차를 연결할 때 확보됩니다. 설계 문서와 실제 운영 상태가 다를 수 있으므로 설정값, 표본 데이터, 접근기록, 변경 이력을 근거로 검증합니다.

영향 범위

원격코드 실행과 관리자 권한 위조, 세션 조작, 개인정보 변조가 가능합니다. 취약한 라이브러리와 클래스가 추가되면 기존 입력 경로가 새로 위험해질 수 있습니다.

개인정보 관련 위험에는 기밀성 침해, 잘못된 수정과 삭제, 서비스 중단, 부정확한 프로파일링, 차별적 의사결정, 계정 탈취, 사칭과 2차 피싱이 포함됩니다. 위험 평가는 정보의 민감도, 변경 가능성, 결합 가능성, 노출 기간, 대상 인원, 공격자의 실제 접근 능력을 반영합니다.

진단과 우선순위 판단

신뢰하지 않는 입력에서 네이티브 객체 역직렬화를 사용하는지, 허용 클래스 제한과 무결성 검증이 있는지 확인합니다. 예외 로그와 예상하지 못한 클래스 로딩을 분석합니다.

검토 결과에는 적용 범위, 남은 위험, 책임자, 개선 기한, 재검증 조건을 기록합니다. 외부 서비스와 오픈소스 구성요소가 관련되면 계약서와 보안 공지, 버전, 데이터 처리 위치, 하위 수탁·의존 관계도 확인합니다.

예방과 완화

보호조치는 예방, 탐지, 대응, 복구 단계에 나누어 배치합니다. 한 통제가 우회되거나 오작동해도 피해가 곧바로 전체 데이터로 확산되지 않도록 권한·네트워크·데이터·로그 통제를 겹쳐 적용합니다.

혼동하기 쉬운 개념

역직렬화약점은 JSON을 파싱하는 모든 기능을 뜻하지 않습니다. 객체 생성 과정이 코드와 권한에 영향을 주거나 타입을 공격자가 통제할 때 위험이 커집니다.

공식 참고자료

MITRE Common Weakness Enumeration

OWASP Top 10:2025