Python tarfile 모듈의 경로 탐색 버그 이해하기

최근 보안 연구원 팀이 Python의 tar 파일 추출 기능에서 15년 된 버그를 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로 추적되었습니다. 공식 Python 문서에 관련 메모가 추가되었지만, 버그 자체는 수정되지 않은 상태로 남아 있었습니다.
이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 줄 수 있지만, 많은 사람이 이 상황이나 대처 방법을 잘 알지 못합니다. 그래서 Secure Code Warrior에서는 여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션하여 그 영향을 확인하고, 이 고질적인 버그의 작동 원리를 직접 경험해 볼 수 있는 기회를 제공합니다. 이를 통해 애플리케이션을 더 안전하게 보호하세요!
시뮬레이션된 미션을 지금 바로 체험해 보세요.
취약점: tar 파일 추출 중 발생하는 경로 탐색(Path Traversal)
경로 또는 디렉토리 탐색은 검증되지 않은 사용자 입력이 파일 경로를 구성하는 데 사용될 때 발생하며, 공격자가 파일에 접근하여 덮어쓰거나 임의의 코드를 실행할 수 있게 합니다.
이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 여러 파일을 메타데이터와 함께 패키징하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브의 각 구성 요소는 파일 이름, 수정 시간, 소유권 등의 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.
위험은 아카이브를 다시 추출할 수 있다는 점 때문에 발생합니다.
추출할 때 모든 구성 요소는 기록될 경로가 필요합니다. 이 위치는 기본 경로와 파일 이름을 결합하여 생성됩니다:

이 경로가 생성되면 추출을 수행하기 위해 tarfile.extract 또는 tarfile.extractall 함수로 전달됩니다:

문제는 파일 이름에 대한 검증이 부족하다는 점입니다. 공격자는 파일 이름을 변경하여 점 점 슬래시(../)와 같은 경로 탐색 문자를 포함시킬 수 있으며, 이로 인해 파일이 원래 있어야 할 디렉토리를 벗어나 임의의 파일을 덮어쓰게 됩니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 악용하기 매우 쉬운 상태입니다.
이 취약점은 식별 방법만 안다면 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도 zip 파일 추출 과정에서도 이 취약점이 존재합니다. 이는 zip slip 취약점과 같은 다른 이름으로 익숙할 수 있으며, Python 외의 다른 언어에서도 나타난 바 있습니다!
위험을 어떻게 완화할 수 있을까요?
이 취약점이 수년간 알려져 왔음에도 불구하고, Python 관리자들은 추출 기능이 의도된 대로 작동하고 있다고 판단합니다. 이 경우 누군가는 "버그가 아니라 기능"이라고 말할지도 모릅니다. 안타깝게도 개발자가 출처를 알 수 없는 tar 또는 zip 파일 추출을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 검증하는 것은 개발자의 몫입니다.
Python을 사용하여 안전한 코드를 작성하고 위험을 완화하는 방법에 대해 더 알고 싶으신가요?
더 많은 무료 코딩 가이드라인을 원하신다면 Secure Code Coach를 확인하여 최신 보안 코딩 관행을 유지해 보세요.
배포 전 AI 기반 개발 거버넌스 확보
AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.
더 많은 블로그 살펴보기
보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
배포 전 AI 기반 개발 보안 확보
소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.



.avif)