본문으로 이동
엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기! 🥊
문서

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

최지수 · 컬리 · 컬리 기술 블로그

원본 보기

소개

Zip Bomb 에러 소개 및 해결 방법 공유

AI 핵심 요약

엑셀 업로드 과정에서 Apache POI가 `Zip bomb detected` 오류를 냈고, 로그를 통해 `xl/styles.xml`의 압축 해제 비율이 기준에 조금 못 미친다는 점을 확인했습니다. 파일 내부를 살펴본 결과 반복된 스타일 정의가 높은 압축률을 만든 원인이었습니다. 계약 사용자만 접근하는 서비스라는 점을 고려해 우선 `ZipSecureFile.setMinInflateRatio()` 기준을 낮춰 검사를 완화했으며, 더 근본적인 보안 대책은 추후 마련하기로 했습니다. 이 사례는 오류 로그를 분석해 원인을 찾는 동시에, 압축 비율 조정이 보안 탐지 수준에도 영향을 준다는 점을 보여줍니다.

  • Apache POI의 `ZipSecureFile.setMinInflateRatio()`는 압축 해제 비율 기준을 조정하지만, 값을 완화하면 Zip Bomb 탐지 수준도 낮아집니다.
  • 오류 로그의 압축 전후 크기, 비율, ZIP 항목 경로를 함께 보면 문제 파일과 원인을 좁힐 수 있습니다.
  • `.xlsx`는 ZIP 기반 구조이므로 `styles.xml` 같은 내부 XML의 반복 데이터도 높은 압축률을 만들 수 있습니다.
  • 압축 해제 비율 외에도 항목별·전체 압축 해제 크기와 중첩 깊이를 제한하는 방안을 고려할 수 있습니다.