## 목표
직렬화 문제에 대처하는 방법을 알아보자
## 핵심 요약
- 자바 직렬화는 보안 취약점, 유지보수성 문제, 성능 저하 등의 단점이 있다.
- 역직렬화 과정에서 원격 코드 실행(RCE), 서비스 거부(DOS) 공격 등의 위협이 발생할 수 있다.
- 직렬화 대신 크로스-플랫폼 구조화된 데이터 표현을 활용해야 한다.
- 직렬화를 어쩔 수 없이 사용해야 할 경우에는 신뢰할 수 없는 데이터는 역직렬화하지 말아야 한다.
## Topics
[1] 역직렬화의 취약점 이해하기
출처 : [RED팀] 역직렬화 취약점, 이렇게 하면 극복 가능!

전송 받은 데이터를 역직렬화하는 과정에서 데이터 무결성을 검증하지 않고 그대로 서버로 전달하면 원격 코드 실행, DoS와 같은 공격에 노출될 수 있다.
[2] 역직렬화 취약점 시연
/invoker/JMXInvokerServlet경로의 응답 패킷을 확인해보면 content-type이 application/x-java-serialized-object로 직렬화된 데이터가 전달된 것을 알 수 있다.

Deserialization Scanner를 사용해서 요청 패킷의 HTTP method를 POST로 변경하고 body 부분에 파라미터를 지정한 후 스캔하면 해당 부분에 취약점이 존재한다는 걸 알 수 있다.

- 파라미터에
CommonCollections1 실행할 명령어를 공격 구문으로 입력합니다. 여기서는 calc를 입력하고 ysoserial 도구를 이용하여 전송할 공격 구문을 직렬화한다.
Ysoserial
Java 역직렬화 취약점을 악용하는 사이버 공격 도구로, 객체의 안전하지 않은 역직렬화를 수행하는 Java 및 .NET 애플리케이션을 공격할 수 있다.

- 대상 서버에 요청 패킷을 전송하면 서버에서 명령어가 실행되어 계산기 프로그램일 실행되는 것을 확인할 수 있다. 공격자는 이런 방식을 통해 원격 코드를 실행하거나 악성 파일을 업로드할 수 있다.

## 목표
직렬화 문제에 대처하는 방법을 알아보자
## 핵심 요약
## Topics
[1] 역직렬화의 취약점 이해하기
출처 : [RED팀] 역직렬화 취약점, 이렇게 하면 극복 가능!
전송 받은 데이터를 역직렬화하는 과정에서 데이터 무결성을 검증하지 않고 그대로 서버로 전달하면 원격 코드 실행, DoS와 같은 공격에 노출될 수 있다.
[2] 역직렬화 취약점 시연
/invoker/JMXInvokerServlet경로의 응답 패킷을 확인해보면content-type이application/x-java-serialized-object로 직렬화된 데이터가 전달된 것을 알 수 있다.Deserialization Scanner를 사용해서 요청 패킷의HTTP method를POST로 변경하고 body 부분에 파라미터를 지정한 후 스캔하면 해당 부분에 취약점이 존재한다는 걸 알 수 있다.CommonCollections1 실행할 명령어를 공격 구문으로 입력합니다. 여기서는calc를 입력하고 ysoserial 도구를 이용하여 전송할 공격 구문을 직렬화한다.