Kant's IT/Vulnerability

JPEG 2000 라이브러리의 취약점 발견

Kant Jo 2024. 9. 17. 19:27

Critical Vulnerabilities in JPEG 2000 Library Let Attackers Execute Remote Code

 

  • JPEG 2000 라이브러리의 취약점 발견
    • Kakadu JPEG 2000 라이브러리에서 발견된 취약점은 원격 코드 실행(RCE)을 가능하게 하며, 이는 공격자가 시스템을 제어할 수 있도록 함
    • 연구자들은 "조건부 손상(Conditional Corruption)" 기법을 개발하여 메모리 손상 취약점을 악용, 스스로 수정되는 이미지를 생성해 공격을 실행
  • JPEG 2000 파일 구조와 취약점
    • JPEG 2000 표준상자 구조를 통해 이미지 메타데이터(차원, 색상 정보 등)를 저장하며, 계층 구조를 허용
    • 실제 이미지 데이터는 코드스트림(Codestream) 이라는 컨테이너에 저장되며, 각각의 세그먼트 마커가 고유한 식별자와 길이 필드를 포함함
    • SOT(Start-of-Tile)SOD(Start-of-Data) 마커는 타일(이미지의 직사각형 단위)의 시작을 정의하며, 이미지에서의 위치를 계산하는데 사용됨
  • Kakadu JPEG 2000의 취약점 분석
    • 연구자들은 Codestream 분할 취약점을 이용하여 임의 파일을 읽는 데 성공함.
    • 사인드 정수 곱셈으로 인해 발생하는 힙의 경계 밖 쓰기 오류는 TALOS-2017-0309의 변형으로, 공격자는 로컬 파일에서 바이트를 이미지의 속성이나 픽셀에 삽입 가능
    • JPEG 2000 디코더의 타일 데이터와 코멘트 마커를 조작하여 민감 데이터 유출원격 코드 실행을 시도함
  • 타일 데이터 조작 및 힙 오버플로우 활용
    • 연구자들은 타일 번호 파라미터를 사용하여 제어된 데이터를 단일 타일에만 쓰는 이미지를 제작해 808080 아포칼립스(예상치 못한 충돌) 를 방지하고 신뢰성 있는 힙 오버플로우를 발생시킴
    • Kha-Kha 슬라이드를 사용하여 메모리 주소 정렬을 동적으로 결정, 충돌을 피하고 익스플로잇 신뢰성을 높임
  • 메모리 읽기 및 쓰기 원시 기능 활용
    • 파일 읽기 및 메모리 읽기 원시 기능을 활용하여 조건부 손상을 실행, 특정 프로세스를 타겟으로 하여 전역 변수의 위치를 파악하고, 제어 흐름을 탈취해 임의의 코드를 실행함