본문 바로가기
자격증/정보보안기사

[OWASP 2017] A8 안전하지 않은 역직렬화

by Berasix 2023. 1. 28.
반응형

1. 개요

다소 어려운 공격이다.

​객체 및 데이터 구조 관련 공격, 일반적인 데이터 변조 공격이다.

직렬화는 RPC/IPC, 유선 프로토콜, 웹 서비스, 메시지 브로커, 캐싱/지속 연결, DB, 캐시 서버, 파일 시스템, HTTP 쿠키, HTML 양식 파라미터, API 인증 토큰에 사용된다.

2. 영향

원격코드 실행 공격이 발생할 수 있다.

3. 취약점 확인

1) 공격자가 애플리케이션 로직을 수정하거나 애플리케이션에 사용 가능한 클래스가 있는가?

=> 임의의 원격 코드 실행으로 역직렬화 중이나 이후에 동작을 변경할 수 있다.

​4. 시나리오

1) 공격자가 자바 직렬 킬러 도구를 사용하여 애플리케이션 서버에서 원격 코드 실행을 얻을 수 있다.

2) PHP에서 super 쿠키 저장 후 공격자가 직렬화된 객체를 변경하여 관리자 권한을 얻는다.

a:4:{i:0;i:132;i:1;s:7:"Mallory";i:2;s:4:"user"; i:3;s:32:"b6a8b3bea87fe0e05022f8f3c88bc960";}

=>

변경 : a:4:{i:0;i:1;i:1;s:5:"Alice";i:2;s:5:"admin"; i:3;s:32:"b6a8b3bea87fe0e05022f8f3c88bc960";}

​5. 보안 대책

1) 신뢰할 수 없는 출처로부터 직렬화된 객체를 허용하지 않거나 원시 데이터 유형만 허용한느 직렬화 매체를 사용한다.

2) 직렬화된 객체에 대한 디지털 서명과 같은 무결성 검사 구현

3) 낮은 권한 환경에서 역직렬화하는 코드를 분리하여 실행한다.

4) 역직렬화 실패에 대한 로그를 남긴다.

출처 : OWASP Top Ten Web Application Security Risks | OWASP

728x90

댓글