Перед публикацией SVG иногда используют инструмент оптимизации вроде SVGO.
Это делают, чтобы уменьшить ненужные атрибуты, комментарии, метаданные и размер файла.
Это полезная работа.
Но при проверке анонимности нельзя сказать: «файл прошел через SVGO, значит безопасен». Информация, которую удаляет инструмент, и информация, которую должен увидеть человек, различаются.
В этой статье разобрано, зачем использовать SVGO и почему после этого нужна ручная проверка как XML.
Что такое SVGO
SVGO — инструмент для оптимизации SVG-файлов.
Его используют, чтобы удалить ненужные атрибуты и метаданные и сделать SVG легче. В официальном репозитории можно проверить использование, плагины и настройки.
Здесь рассматривается использование в локальной среде после проверки официальной информации. Если загрузить SVG в онлайн-сервис оптимизации, информация внутри XML и имя файла могут передаваться наружу.
SVGO удобен, но это не специализированный инструмент анонимизации.
Его цель в основном оптимизация. Он не решает и не удаляет всю информацию, связанную с анонимностью.
Что может уменьшить инструмент
В зависимости от настроек SVGO может уменьшать комментарии, метаданные, ненужные атрибуты, пустые элементы и другое.
Что иногда можно уменьшить
Описание
Осторожность
Комментарии
Удаление XML-комментариев
Зависит от настроек
Метаданные
metadata-элементы и похожее
Это не обязательно вся информация
Ненужные атрибуты
Атрибуты, не нужные для отображения
id и class могут остаться
Пустые элементы
Неиспользуемые элементы
Не значит, что вся скрытая информация распознана
Размер файла
Уменьшение лишней записи
Само по себе не является анонимностью
Оптимизация — важный этап перед публикацией.
Но оптимизация и анонимизация — не одно и то же.
Почему нужна ручная проверка
Инструмент не полностью понимает смысл строк.
Например, без контекста нельзя понять, project-alpha — внутреннее название проекта или просто ID фигуры. То же касается имени слоя school-map: связано ли оно с анонимностью, зависит от содержания публикации.
Информация, которая может остаться
Почему смотрит человек
id и class
Нужно понять, не внутренние ли это слова или названия дел
text-элемент
Нужно проверить, отображаемый это текст или скрытый
Имя файла
Не относится к обработке инструментом
Смысл внутри изображения
Фон и логотипы оптимизация не удаляет
Контекстная информация
Иногда понятна только связанным людям
В анонимности смотрят не только структуру файла, но и смысл.
Проверку смысла в итоге выполняет человек.
Порядок ручной проверки
После оптимизации через SVGO или похожий инструмент откройте SVG в текстовом редакторе.
Проверяйте в таком порядке.
Порядок
Что проверять
Причина
1
Имя файла
Видны настоящее имя, название дела, дата
2
metadata-элемент
Могут остаться автор или сведения инструмента
3
Комментарии
Остаются рабочие заметки или внутренняя информация
4
text-элемент
Остается невидимый текст или текст до удаления
5
id и class
Остаются имена слоев или внутренние слова
6
URL
Видны внешние ссылки или внутренняя среда
Искать только свое имя недостаточно.
Проверяйте также название компании, школы, отдела, проекта, почту, топонимы, старые ники и внутренние сокращения.
Нужна и визуальная проверка
Даже если XML чистый, информация может оставаться как видимое изображение.
Логотип, вывеска, карта, школьная эмблема, бейдж, имя пользователя, экранное уведомление, уникальный дизайн диаграммы — оптимизация этого не удаляет.
Видимая информация
Остающийся риск
Что проверять
Логотип
Видна организация или сервис
При необходимости заменить
Карта
Видны привычные места или локация
Снизить детализацию
Экранный UI
Видны аккаунт или уведомления
Проверить до краев
Уникальная диаграмма
Связывается с прошлыми материалами
Осторожно с повторным использованием шаблона
SVG проверяют и как XML-содержимое, и как видимое изображение.
Одной стороны недостаточно.
Выбор между SVG и PNG
Когда нужна анонимность, можно выбрать публикацию не SVG, а PNG или другого формата.
После PNG-конвертации XML-комментарии и id обычно не выходят наружу.
Но видимая информация остается и в PNG. Кроме того, в изображении после конвертации могут появиться свои метаданные.
Способ
Плюс
Осторожность
Публиковать как SVG
Четкое масштабирование, удобно редактировать
Проверять информацию внутри XML
Публиковать после SVGO
Можно уменьшить лишнюю запись
Нужна ручная проверка
Публиковать как PNG
Можно уменьшить XML-информацию
Смотреть информацию в изображении и метаданные
Подходящий формат зависит от цели и риска.
Если не нужно публиковать редактируемую схему, PNG тоже может быть вариантом.
Управлять настройками и исходными файлами
При использовании SVGO нужно думать не только об обработанном SVG, но и о настройках и исходном файле.
Если отправить исходный файл в той же папке, вместе с ним может уйти информация до оптимизации. В файле настроек тоже могут быть название проекта или внутренние комментарии.
Объект
Что проверять
Причина
Исходный SVG
Не осталась ли необработанная информация
Его могут случайно передать
Выходной SVG
Что осталось после оптимизации
Это итоговый публикуемый файл
Файл настроек
Внутренние комментарии и пути
Иногда попадает в передачу
Имя папки
Название дела или организации
Видно при передаче zip
README
Рабочие заметки и ответственные
Иногда идет вместе при публикации
В анонимности не всегда достаточно смотреть только обработанный файл.
Проверяйте, не попали ли в загружаемую папку или zip исходники и заметки.
Даже при автоматизации в конце смотрит человек
Если SVGO используется каждый раз по одному порядку, автоматизация помогает.
Но автоматизация не отменяет проверку. Скорее, это подготовка к финальному человеческому просмотру.
После автоматической обработки откройте содержимое в текстовом редакторе, отобразите в браузере, проверьте имя файла и вложенные файлы.
Для высокорисковых файлов можно рассмотреть проверку другим человеком. Но этому человеку тоже придется передать файл, поэтому место консультации выбирают осторожно.
Если публикуемый объект не отдельный файл, а zip или папка, проверяйте не только выходной SVG, но и вложенные материалы.
Старые SVG, исходные данные, рабочие заметки и файлы настроек могут попасть рядом с оптимизированным файлом и раскрыть информацию из другого места.
Итоги
SVGO — удобный инструмент для оптимизации SVG.
Он иногда уменьшает комментарии, метаданные, ненужные атрибуты и похожую информацию.
Но SVGO не является специализированным инструментом анонимизации. Внутренние слова, id, class, text-элементы, имя файла и видимую информацию в изображении нужно проверять человеку с учетом контекста.
Перед публикацией после обработки SVGO или похожим инструментом откройте файл как XML и проверьте содержимое.
В анонимности важно не то, что файл прошел через инструмент, а то, что в итоге осталось.
Связанные инструменты
Metadata inspection
ExifTool
Внешний ресурс, связанный с этой статьей. Открывайте его только если он подходит вашей ситуации и модели угроз.
Почему указано здесь: Он может помочь с темой статьи, но находится вне Anonymity Sense, поэтому перед использованием его нужно проверить.
SVGO помогает оптимизировать SVG, но не является инструментом анонимизации; после обработки нужно вручную проверить XML, видимое изображение, файл и вложения.