Скачал программу не из App Store, а с сайта разработчика или вообще с неизвестного ресурса — и теперь переживаешь, что внутри может быть малварь? Это неной паранойя. Трояны под macOS существуют, и они чаще всего попадают в систему именно через «левые» DMG-файлы. Вот как реально проверить установщик перед тем, как запускать его.
- Почему DMG — это риск
- Шаг 1. Проверяем источник
- Шаг 2. Смотрим на сам DMG без монтирования
- Шаг 3. Проверяем подпись разработчика
- Шаг 4. Проверяем Gatekeeper
- Шаг 5. Сверяем хеш-суммы
- Шаг 6. Загружаем в VirusTotal
- Шаг 7. Анализируем содержимое .app перед запуском
- Шаг 8. Запускаем в песочнице
- Что смотреть после установки
- Сравнение методов проверки
- Частые ошибки
- Что делать в зависимости от вашей ситуации
- Инструменты, которые стоит иметь наготове
- Итог
Почему 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. Для максимальной уверенности запускайте в песочнице и следите за поведением после установки.
Главное правило: если что-то вызывает сомнения — не устанавливайте. Лучше потратить время на поиск альтернативы, чем чищать систему от трояна. И помните — самые опасные заражения происходят не из-за отсутствия проверок, а из-за решения «да ладно, один раз запущу, ничего не случится».
