Перейти к содержимому

Зачем открывать архив на 64 МБ

Ни блокировать архивы, ни пропускать их не открывая — неправильные ответы. Правильный — открывать с ограничениями. И ограничений должно быть два, а не одно.

Безопасность почты
/
2026-06-11
/
4 мин чтения

Два простых решения, и оба неверные

С архивами на почтовом шлюзе поступают двумя способами. Первый — блокировать вовсе. Это работает неделю, потом бухгалтерия не может отправить отчёт в ZIP, и правило выключают.

Второй — открывать только первый слой. Это готовая инструкция для атакующего: положи RAR внутрь ZIP, дальше не пойдут. Во многих шлюзах этот предел даже не показан в настройках.

Третий путь — открывать, но с бюджетом. Это единственный работающий вариант, и остальная часть статьи о том, как он настраивается.

Почему само открытие опасно

Открыть неизвестный архив — значит потратить ресурсы. Файл в 42 КБ при распаковке может превратиться в петабайт; это называется «зип-бомба», и это не вредоносный код, а обычная математика сжатия.

Бомбе не нужна сигнатура антивируса, и статическим анализом её не поймать — она проявляется только при распаковке. Поэтому защита должна быть не в сигнатуре, а в ограничении.

Открытие всегда идёт с бюджетом: глубина рекурсии, суммарный распакованный объём, число вложенных файлов и общий бюджет сканирования. У нас эти значения равны 4, 512 МБ, 5000 и 300 МБ соответственно.

Схема 1Один порог либо пропускает бомбу, либо блокирует честный отчёт. Два порога снимают этот размен: 100× — карантин, 500× — отказ.

Почему порогов сжатия два

Коэффициент сжатия — признак бомбы. Но и честный файл сжимается сильно: текстовый журнал со сжатием в 100 раз абсолютно нормален, потому что в нём много повторяющихся строк.

Один порог либо пропустит бомбу, либо заблокирует отчёт. Куда его ни двигай, ошибка переезжает на другую сторону.

Поэтому работают два порога. Мягкий (100×) — карантин: решение остаётся за человеком. Жёсткий (500×) — отказ: это уже не отчёт. Два числа вместо одного снимают размен между ложноположительным и ложноотрицательным.

Глубина и количество тоже ограничиваются

Глубина рекурсии — самый простой инструмент для бомбы: каждый слой умножает коэффициент. Четырёх слоёв достаточно для практики — в настоящей почте пятиуровневая вложенность почти не встречается.

Число вложенных файлов ограничивается отдельно. Архив со ста тысячами пустых файлов проходит по суммарному объёму, но душит файловую систему и сканер количеством операций.

И общий бюджет сканирования — по времени и по объёму. Он служит последним барьером для случаев, где все прочие ограничения оказались обойдены.

Пароль лежит в самом письме

Самый частый обход — архив под паролем. Сканер не может открыть, значит пропускает как «чистое». А пользователь берёт пароль из текста письма, потому что атакующий его туда и написал.

Решение настолько же простое: искать пароль в тексте письма, во вложенном документе или в тексте на картинке (через OCR) и пробовать открыть им. Мы перебираем до восьми кандидатов.

После открытия всё содержимое сканируется заново — то есть найденный пароль не завершает проверку, а начинает её. Если пароль не найден, архив попадает в состояние «не открылся», и применяется политика сбоя.

Схема 2Шлюз, открывающий только первый слой, выдаёт атакующему готовую инструкцию. Предел должен стоять на глубине рекурсии, а не на первом слое.

Архив — это не только ZIP

Файлы дисковых образов — VHD, VMDK, ISO — выглядят в почте обычным вложением, и большинство шлюзов их не открывает. А внутри спокойно лежит исполняемый файл.

Их нужно монтировать и сканировать содержимое так же, как архив. То же самое относится к OneNote, CHM и другим контейнерным форматам.

Второй случай — подделанное расширение. Даже если имя файла `.doc`, но внутри ZIP — это ZIP. Формат всегда определяется по магическим байтам, а не по имени.

Карантин должен быть работающим процессом

Мягкий порог отправляет в карантин, но если карантин — это папка, в которую никто не смотрит, он становится медленной формой блокировки.

Поэтому в карантине обязательны три вещи: уведомление получателю, внятный текст причины («архив сжат в 180 раз») и указание, кто принимает решение.

И метрика: сколько в среднем письмо лежит в карантине и какая доля в итоге выпускается. Если выпускается 95%, порог поставлен слишком низко; если 5% — карантин на деле является блокировкой.

Схема 3У открытого архива три исхода, и средний важнее всех: без состояния, где решает человек, политика сваливается в одну из крайностей.

Три теста для пилота

На следующей проверке отправьте на свой шлюз три вещи. Первую — RAR внутри ZIP с обычным тестовым файлом. Вторую — архив, пароль от которого написан в тексте письма. Третью — ISO с исполняемым файлом внутри.

Если прошли все три, слоя работы с архивами у вас нет. Если прошли две — настройка остановилась на полпути, и это самый частый случай.

Четвёртый тест необязателен, но полезен: отправьте файл с высоким коэффициентом сжатия, но абсолютно честный — например, большой текстовый журнал. Если он заблокирован, у вас один порог, а не два.

Все материалы

Познакомимся?

Покажите домен — дадим первичный анализ вашего текущего внешнего состояния. На этом этапе ничего не меняется.

Начнём
Связаться
Связаться