Метаданные в изображениях
Всем привет. Сегодня хочу раскрыть тему о которой мало кто слышал, но в жизни она неплохо раскрывает пользователя или внутренние процессы компании. Речь про метаданные в изображениях.
Если совсем просто, изображение — это не только пиксели, которые мы видим глазами. Внутри файла могут лежать служебные данные: когда файл создан, чем сделан, на каком устройстве, где был сделан снимок, чем редактировался и иногда даже какие данные были до обработки.
━━━━━━━━━━ Что такое метаданные ━━━━━━━━━━
Метаданные — это дополнительная информация внутри файла.
Например: • дата и время съёмки • модель телефона или камеры • GPS-координаты • программа, через которую сделали скриншот • автор файла • цветовой профиль • история редактирования • комментарии • preview / thumbnail • иногда путь к локальному файлу
То есть человек может просто загрузить фото, а вместе с ним случайно отдать гораздо больше информации, чем хотел.
━━━━━━━━━━ В каких форматах это встречается ━━━━━━━━━━
Чаще всего метаданные можно встретить в: • JPG / JPEG — самый классический формат для фото. Часто содержит EXIF, GPS, модель устройства, дату съёмки, параметры камеры.
• HEIC / HEIF — часто используется на iPhone. Тоже может хранить дату, устройство, GPS и другие данные.
• PNG — часто используется для скриншотов. Обычно там меньше приватных данных, но могут быть Software, Creation Time, комментарии и другие text chunks.
• WEBP — часто появляется после загрузки изображения на сайт или в соцсеть. Может содержать EXIF/XMP, но часто уже очищен платформой.
• TIFF / RAW — профессиональные форматы, где метаданных может быть очень много: камера, объектив, серийные номера, настройки, GPS, preview.
• SVG — отдельная история, потому что это XML-файл. Там могут быть комментарии, metadata, скрытые слои, ссылки и иногда небезопасные элементы.
━━━━━━━━━━ Что интересно для атакующего ━━━━━━━━━━
Самое чувствительное: • GPS Latitude / Longitude Можно понять, где сделано фото: дом, работа, офис, мероприятие.
• DateTimeOriginal Можно понять, когда именно было сделано фото, а в связке с GPS это уже “где и когда был человек”.
• Make / Model Раскрывает модель телефона или камеры. Иногда это помогает профилировать пользователя или связывать разные публикации между собой.
• SerialNumber / LensSerialNumber Если есть серийник устройства, это уже сильный идентификатор.
• Author / Creator / OwnerName Может раскрыть имя автора, ник, компанию или рабочее окружение.
• Software / CreatorTool Показывает, чем файл создан или отредактирован: Photoshop, GIMP, Spectacle, ShareX, Android, iOS и т.д.
• Local path Иногда может всплыть что-то вроде /home/user/project/client/file.png или C:\Users\Ivan\Desktop\secret\image.jpg
• Comment / Description / Keywords Там могут быть внутренние заметки, название клиента, проекта, задачи или другой контекст.
• Thumbnail / Preview Опасная штука: пользователь мог обрезать или замазать часть фото, а внутри файла могла остаться старая миниатюра.
━━━━━━━━━━ Почему это важно для соцсетей и сервисов ━━━━━━━━━━
Когда пользователь загружает изображение на сервер, нормальная платформа должна не просто сохранить файл как есть.
По-хорошему должен быть пайплайн обработки: • проверить MIME type и реальный формат файла • убрать EXIF / GPS / XMP / IPTC / MakerNotes • удалить thumbnail и preview • пересобрать изображение в безопасный формат • создать новые preview уже из очищенного файла • не отдавать наружу оригинал, если в нём могут быть приватные данные • хранить оригинал отдельно и только если он реально нужен бизнесу • не полагаться только на расширение .jpg/.png/.webp
━━━━━━━━━━ Как посмотреть метаданные самому ━━━━━━━━━━
Самый удобный инструмент — exiftool.
Посмотреть все поля: ➤ exiftool -a -u -G1 -s -ee image.jpg
Отдельно проверить GPS: ➤ exiftool -gps -a -G1 -s image.jpg
Проверить даты: ➤ exiftool -time -a -G1 -s image.jpg
Тем самым перед публикацией фото, скриншотов и любых изображений лучше хотя бы один раз прогнать файл через exiftool и понять, что реально лежит внутри)