목록 보기
엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기! 🥊
백엔드

엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기! 🥊

마켓컬리
마켓컬리
2024년 10월 23일

두줄요약

엑셀 내부 styles.xml의 반복 스타일이 높은 압축률을 만들어 Apache POI의 Zip Bomb 탐지를 유발했습니다.\n압축 해제 비율을 조정해 우선 해결하고, 크기·중첩 레벨 제한을 보안 대안으로 제시했습니다.

문제 상황

  • 고객사 엑셀 업로드 중 Apache POI의 Zip bomb detected 오류 발생
  • .xlsx 내부 xl/styles.xml의 압축 비율이 최소 허용치 0.01 미만으로 판정

원인 분석

  • XLSX의 ZIP 기반 구조를 해제하고 XML을 파싱하는 과정에서 압축률 검사 수행
  • styles.xml 내 반복적인 셀 스타일 정의로 압축률 과도 상승
  • 압축 크기 4,059바이트 대비 해제 크기 406,416바이트, 비율 0.009987

해결 방법

  • 계약 사용자 중심 서비스 환경과 악의적 공격 가능성을 고려해 ZipSecureFile.setMinInflateRatio() 값 하향 조정
  • 압축 해제 크기 제한과 중첩 압축 레벨 제한을 추가 방어책으로 제시

주의할 점

  • 압축 비율 완화는 정상 파일 처리 범위를 넓히는 대신 Zip Bomb 방어 수준 저하 가능성
  • 로그의 파일 크기, 비율, 문제 엔트리 분석을 통한 원인 확인 필요

다음 읽기

#Java 주제를 이어서 읽기

엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기!

엑셀 업로드 중 Apache POI가 Zip Bomb으로 파일을 차단한 원인과 로그 분석 과정을 정리했습니다. 최소 압축 비율 조정과 파일 크기·중첩 레벨 점검으로 대응했습니다.

마켓컬리
마켓컬리
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...