PlayStation Portal에서의 Exploit 가능성 분석
PlayStation Portal(PSP)은 커스텀된 Android 13을 실행하는 장치이며, Qualcomm Snapdragon 662(Adreno 610 GPU)를 탑재하고 있다. 분석 대상 코드들은 각각 HEVC 디코더 취약점과 Qualcomm KGSL 드라이버 익스플로잇과 관련이 있으며, 두 취약점을 조합하여 PlayStation Portal을 탈옥(Jailbreak)하거나 루트 권한을 획득할 가능성을 분석한다.
이 해킹 방법은 펌웨어 2.05에서 가능했으며, 현재는 2.06버전 이후로는 패치되었다.
1. 첫 번째 코드 - HEVC 디코더 취약점 분석
1.1 코드 개요
이 코드는 HEVC(H.265) 비디오 디코더에서 발생할 수 있는 버퍼 오버플로우(Buffer Overflow) 취약점을 나타낸다.
비트스트림을 파싱하면서 consume_bits() 함수를 이용하여 데이터를 읽고, 이를 기반으로 메모리를 직접 조작하는 구조다.
1.2 주요 취약점 분석
- consume_bits() 함수가 HEVC 비트스트림에서 특정 개수의 비트를 읽어오고 이를 정수 값으로 변환하는 것으로 보인다.
- v81과 v83은 비트 카운트이며, consume_bits()를 반복적으로 호출하여 1이 나올 때까지 계속 증가한다.
- 이후 v82와 v84를 통해 읽은 데이터를 *(_DWORD *)v131과 *(_BYTE *)(this + v128 + 0x168)에 저장하는데, 이 과정에서 **버퍼 오버플로우(Overflow)**가 발생할 가능성이 있다.
1.3 취약점 유형
- 정수 오버플로우(Integer Overflow) 및 메모리 오버플로우
- 1 << v81 또는 1 << v85가 너무 커지면 **오버플로우(Integer Overflow)**가 발생하여 예상치 못한 값이 할당될 수 있음.
- 이를 통해 Out-of-bounds Write(경계 초과 쓰기) 또는 힙 오버플로우가 발생할 가능성이 있음.
- HEVC 스트림을 통한 원격 코드 실행(RCE, Remote Code Execution) 가능성
- PS Remote Play나 기타 비디오 스트리밍 기능을 통해 조작된 HEVC 비디오를 실행할 경우, 메모리 조작이 가능해질 가능성이 있음.
- 특히, ASLR(주소 공간 배치 난수화)와 같은 보호 기법을 우회할 수 있다면 코드 실행 가능.
1.4 PlayStation Portal에서 익스플로잇 가능성
✅ 가능성이 높은 경우
- PlayStation Portal이 소프트웨어 HEVC 디코딩을 사용할 경우
- libavcodec, OMX 기반 HEVC 디코더를 사용할 경우, 익스플로잇이 가능할 가능성이 있음.
- 비디오 스트리밍(PS Remote Play) 취약점을 통한 원격 공격 가능
- 사용자가 원격 플레이를 통해 악의적인 HEVC 비디오를 재생할 경우, 취약점을 트리거할 가능성이 있음.
❌ 가능성이 낮은 경우
- PlayStation Portal이 하드웨어 HEVC 디코더(Qualcomm VPU)를 사용할 경우
- 하드웨어 디코딩이 적용되면, 버퍼 오버플로우가 발생할 가능성이 줄어듦.
- Android 13의 보안 기능 적용 여부
- PlayStation Portal이 SELinux, ASLR, Stack Protector를 강력하게 적용했다면 익스플로잇이 어려울 수 있음.
2. 두 번째 코드 - Qualcomm KGSL 드라이버 취약점
2.1 코드 개요
이 코드는 Qualcomm KGSL(Kernel Graphics Support Layer) 드라이버를 대상으로 하는 익스플로잇 코드다.
PlayStation Portal에는 Snapdragon 662(Adreno 610)가 탑재되어 있으며, /dev/kgsl-3d0 장치가 존재할 가능성이 높다.
2.2 주요 취약점 분석
aux.numsyncs = 0x1337; // > 32.
ioctl(fd_kgsl, IOCTL_KGSL_GPU_AUX_COMMAND, &aux);
- numsyncs 값이 32를 초과하는 경우, 힙 오버플로우(Heap Overflow) 또는 **커널 메모리 오버플로우(Kernel Heap Overflow)**가 발생할 가능성이 있음.
- IOCTL_KGSL_GPU_AUX_COMMAND는 GPU의 보조 명령을 실행하는 기능으로, 입력 값 검증이 미흡하면 커널 권한 상승(Privilege Escalation)으로 이어질 가능성이 있음.
2.3 취약점 유형
- Heap Overflow 또는 Use-After-Free(UAF)
- numsyncs 값이 너무 커질 경우, 커널 할당 크기보다 더 많은 메모리를 참조할 가능성이 있음.
- 힙 오버플로우를 통해 커널 메모리 조작이 가능해질 수 있음.
- 커널 권한 상승(Privilege Escalation) 가능성
- /dev/kgsl-3d0 장치 파일은 보통 root 권한으로 실행되므로, 이 취약점을 이용하면 루트 권한을 획득할 가능성이 있음.
2.4 PlayStation Portal에서 익스플로잇 가능성
✅ 가능성이 높은 경우
- PlayStation Portal이 KGSL 드라이버 보안 패치를 적용하지 않았다면
- 최신 패치가 적용되지 않은 경우, PlayStation Portal에서 KGSL 익스플로잇이 가능할 가능성 있음.
- Android 13의 SELinux 정책이 완벽하지 않다면
- SELinux에서 /dev/kgsl-3d0 접근이 허용된다면, 익스플로잇 가능성이 커짐.
- 커널 보호 기법이 우회 가능할 경우
- PlayStation Portal에서 CMA(Content-based Memory Allocation), Heap Canary, KASLR 등의 보안 기법이 약하게 설정된 경우, 익스플로잇이 가능할 가능성이 높아짐.
❌ 가능성이 낮은 경우
- PlayStation Portal이 최신 보안 패치를 적용했다면
- Android 13에서는 이미 Qualcomm KGSL 관련 취약점이 여러 개 패치됨.
- SELinux가 강하게 적용된 경우
- /dev/kgsl-3d0 접근이 차단되면, 일반 앱에서는 익스플로잇이 어려울 수 있음.
3. 두 취약점을 조합한 공격 시나리오
✅ 가능한 Exploit Chain
- HEVC 취약점을 이용해 사용자 공간에서 임의 코드 실행(RCE)
- 조작된 HEVC 비디오를 PlayStation Portal에서 재생
- 사용자 공간에서 메모리 오버플로우를 발생시켜 코드 실행
- KGSL 익스플로잇을 이용해 커널 권한 상승(Privilege Escalation)
- HEVC 익스플로잇을 통해 PlayStation Portal의 /dev/kgsl-3d0에 접근
- IOCTL_KGSL_GPU_AUX_COMMAND를 통해 커널 권한 상승
- PlayStation Portal 완전 탈옥(Jailbreak)
- setenforce 0으로 SELinux 비활성화
- 루트 파일 시스템 변경 및 사용자 애플리케이션 실행
결론
✅ PlayStation Portal에서 Exploit이 성공할 가능성 있음
- HEVC 취약점이 RCE까지 이어질 경우, KGSL 익스플로잇을 통해 루트 권한을 획득할 가능성이 높다.
- PlayStation Portal이 최신 보안 패치를 적용하지 않았다면, 두 취약점을 조합하여 탈옥(Jailbreak)할 가능성이 있음.
❌ 하지만, 최신 보안 패치와 SELinux 설정에 따라 실행이 어려울 수도 있음
- 최신 Android 13 보안 기법들이 적용되었다면 KGSL 익스플로잇이 차단될 가능성 높음.
- HEVC 디코딩이 완전히 하드웨어 가속(VPU)로 이루어진다면, RCE 가능성이 낮아짐.
➡ 결론적으로, 최신 보안 패치와 보호 기법을 분석하여 추가적인 우회 기법이 필요할 수 있다.
'IT생활' 카테고리의 다른 글
IPv6 자동 주소 할당 방법 (0) | 2025.03.18 |
---|---|
SATA SSD에 설치된 Windows를 M.2 SSD로 통째로 옮기는 방법 (0) | 2025.03.18 |
라우터 공유기에서 도메인 차단 설정 (0) | 2025.03.17 |
TheFlow0: 플레이스테이션 해킹의 핵심 인물 (1) | 2025.03.17 |
컨테이너 형식에 따른 차이: MP4 vs MKV (0) | 2025.03.17 |