Как проверить DMG-установщик macOS на наличие трояна перед установкой

Скачал программу не из App Store, а с сайта разработчика или вообще с неизвестного ресурса — и теперь переживаешь, что внутри может быть малварь? Это неной паранойя. Трояны под macOS существуют, и они чаще всего попадают в систему именно через «левые» DMG-файлы. Вот как реально проверить установщик перед тем, как запускать его.

Почему DMG — это риск

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

Основные сценарии заражения через DMG:

  • Скачали крякнутое платное ПО — внутри вместо патча троян
  • Нашли «бесплатную» версию программы на сомнительном сайте
  • Перешли по ссылке из письма или мессенджера — файл выглядит как обычный установщик
  • Скачали с торрент-трекера или форума

Шаг 1. Проверяем источник

Прежде чем открывать терминал и считать хеши, задайте себе вопрос: откуда этот файл?

Хорошие признаки:

  • Скачан с официального сайта разработчика
  • Сайт использует HTTPS
  • Разработчик известный, у него есть аккаунт на GitHub или в сообществе

Плохие признаки:

  • Сайт выглядит как одностраничный лендинг с кучей рекламы
  • Название программы написано с опечаткой или в странном стиле
  • Файл пришёл из мессенджера от незнакомого человека
  • Вы попали на сайт через рекламу или спам-ссылку

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

Шаг 2. Смотрим на сам DMG без монтирования

Не открывайте файл двойным кликом. Сначала посмотрите, что внутри, через терминал.

Откройте Терминал и выполните:

hdiutil attach -readonly -noverify /путь/к/файлу.dmg

Эта команда примонтирует образ в режиме «только чтение» без проверки подписи. Теперь посмотрите, что внутри:

ls -la /Volumes/НазваниеТома/

Обратите внимание на следующее:

  • Внутри должен быть один .app файл или .pkg установщик — это нормально
  • Если внутри несколько файлов, особенно с расширениями .command, .sh, .exe — это подозрительно
  • Скрытые файлы (начинаются с точки) — тоже повод насторожиться

Шаг 3. Проверяем подпись разработчика

Apple встроила в macOS систему подписи приложений. Если разработчик зарегистрирован в Apple Developer Program и подписал свой продукт — это хороший знак. Проверить так:

codesign -dvv /Volumes/НазваниеТома/Приложение.app

Смотрите на поля:

  • Authority — здесь должно быть имя разработчика и строка «Apple Developer ID Certification Authority»
  • TeamIdentifier — уникальный ID команды разработчика
  • Signature — должна быть указана подпись

Если видите «code object is not signed at all» — приложение вообще не подписано. Это не 100% признак трояна, но серьёзный красный флаг для программ, которые претендуют на доверие.

Дополнительно проверьте целостность подписи:

codesign --verify --deep --strict --verbose=2 /Volumes/НазваниеТома/Приложение.app

Если видите «valid on disk» и «satisfies its Designated Requirement» — подпись цела. Если есть ошибки — файл мог быть изменён после подписи.

Шаг 4. Проверяем Gatekeeper

macOS может сам проверить приложение через Gatekeeper. Это не идеальная защита, но базовый уровень есть:

spctl --assess --verbose /Volumes/НазваниеТома/Приложение.app

Результаты:

  • «accepted» — приложение подписано и нотаризировано Apple
  • «rejected» — подпись недействительна или отозвана
  • «unsigned» — вообще не подписано

Если Gatekeeper отклоняет приложение — не запускайте его. Никаких обходов через «Открыть всё равно» в настройках.

Шаг 5. Сверяем хеш-суммы

Если разработчик публихеш-суммы на сайте (обычно SHA-256), сверьте их. Это самый надёжный способ убедиться, что файл не был подменён.

Посчитайте хеш скачанного файла:

shasum -a 256 /путь/к/файлу.dmg

Сравните результат с тем, что указан на сайте разработчика. Даже одна отличающаяся буква — файл изменён.

Если хеш нигде не публикуется — это не всегда подозрительно (не все разработчики это делают), но тогда меньше оснований доверять файлу.

Шаг 6. Загружаем в VirusTotal

VirusTotal проверяет файл десятками антивирусных движков. Это не панацея, но даёт дополнительный слой уверенности.

Зайдите на virustotal.com, загрузите DMG-файл или скопируйте его SHA-256 хеш и поищите по базе. Если большинство движков показывают «чисто» — вероятность трояна ниже. Если несколько антивирусов ругаются — проверьте, что именно они находят. Иногда это ложные срабатывания на кряки и патчи, но иногда — реальная малварь.

Важно: не загружайте в VirusTotal конфиденциальные файлы — они становятся доступны подписчикам сервиса.

Шаг 7. Анализируем содержимое .app перед запуском

Если внутри DMG находится .app пакет, можно заглянуть внутрь него и посмотреть, какие файлы там лежат:

ls -la /Volumes/НазваниеТома/Приложение.app/Contents/MacOS/

Здесь должен быть основной исполняемый файл. Если видите подозрительные скрипты, бинарники с непонятными именами — это повод остановиться.

Также проверьте Info.plist:

cat /Volumes/НазваниеТома/Приложение.app/Contents/Info.plist

Обратите внимание на .bundle identifier — он должен соответствовать разработчику. Странные значения вроде com.xxx.helper или отсутствие каких-либо данных о разработчике — подозрительно.

Шаг 8. Запускаем в песочнице

Если приложение выглядит нормально, но доверия всё равно нет — запустите его в изолированной среде.

Варианты:

  • Виртуальная машина — например, UTM или Parallels с чистой macOS. Запускаете там, смотрите поведение
  • Отдельный тестовый Мак — если есть запасной компьютер
  • Песочница в командной строке — ограничьте права приложения через sandbox-exec

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

Что смотреть после установки

Даже если прошло проверку, после установки стоит понаблюдать за поведением программы:

  • Откройте Монитор активности (Activity Monitor) — нет ли подозрительных процессов от этого приложения
  • Проверьте, не появились ли новые агенты запуска: ~/Library/LaunchAgents и /Library/LaunchDaemons
  • Посмотрите сетевые соединения: lsof -i — не шлёт ли приложение данные на странные серверы
  • Проверьте в настройках → Пользователи и группы → Объекты входа — не добавилось ли что-то лишнее

Сравнение методов проверки

Метод Надёжность Сложность Что выявляет
Проверка источника Низкая Простая Очевидное мошенничество
codesign проверка подписи Средняя Средняя Изменённые или неподписанные приложения
Gatekeeper (spctl) Средняя Простая Отозванные или ненотаризированные приложения
Сверка хеш-сумм Высокая Средняя Подмену файла
VirusTotal Средняя–высокая Простая Известные сигнатуры малвари
Анализ содержимого .app Средняя Высокая Подозрительные файлы внутри пакета
Запуск в песочнице Высокая Высокая Реальное вредоносное поведение

Частые ошибки

  • Отключение Gatekeeper «ради удобства». Если вы однажды разрешили запуск от кого угодно (sudo spctl —master-disable), вы сняли базовую защиту. Не делайте этого.
  • Игнорирование предупреждений macOS. Система говорит «приложение не может быть открыто, неизвестный разработчик» — это не просто формальность.
  • Запуск .command или .sh файлов из DMG. Никогда не открывайте скрипты внутри установщика — это прямой путь к выполнению произвольного кода.
  • Скачивание «взломанных» программ. Кряки и кейгены — основной вектор заражения macOS. Если вам предлагают бесплатную версию платной программы — вероятность трояна очень высока.
  • Проверка только одного признака. Отсутствие подписи ещё ничего не значит, как и наличие подписи — не гарантия безопасности. Комбинируйте методы.

Что делать в зависимости от вашей ситуации

Скачали с официального сайта известного разработчика:

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

Скачали с неофициального сайта, но программа нужна:

Пройдите все шаги: подпись, хеш, VirusTotal, анализ содержимого. Если что-то смущает — ищите альтернативу в App Store или у другого разработчика.

Скачали кряк или «бесплатную» версию платного ПО:

Честно — не скачивайте. Если уже скачали: VirusTotal + запуск в виртуальной машине. Но лучше удалить и найти легальную замену. Риск слишком высок.

Файл пришёл от кого-то через мессенджер или почту:

Не открывайте, пока не убедитесь, что отправитель реален и действительно прислал этот файл. Многие трояны распространяются через взломанные аккаунты знакомых.

Инструменты, которые стоит иметь наготове

  • Objective-See — набор бесплатных утилит для анализа малвари на macOS (KnockKnock, BlockBlock, LuLu и другие)
  • LuLu — файрвол с открытым исходным кодом, показывает все исходящие соединения
  • ProcessMonitor — отслеживает запуск новых процессов в реальном времени
  • AppCleaner — если нужно полностью удалить подозрительное приложение со всеми его файлами

Итог

Проверка DMG перед установкой — это не разовое действие, а комбинация подходов. Начните с источника: если он сомнительный — даже не открывайте файл. Если источник нормальный — проверьте подпись, хеш и прогоньте через VirusTotal. Для максимальной уверенности запускайте в песочнице и следите за поведением после установки.

Главное правило: если что-то вызывает сомнения — не устанавливайте. Лучше потратить время на поиск альтернативы, чем чищать систему от трояна. И помните — самые опасные заражения происходят не из-за отсутствия проверок, а из-за решения «да ладно, один раз запущу, ничего не случится».

Оцените статью
PEFile — Безопасность и технологии простым языком