Более точная идентификация запущенных приложений в Mac OS - PullRequest
0 голосов
/ 29 января 2019

Используя runningApplications NSWorkspace, можно получить список запущенных приложений в Mac OS в виде объектов NSRunningApplication, и из этого получить дополнительную информацию, например, какое приложение находится на переднем плане.

идентифицируйте запущенное приложение, используя его имя (localizedName), но я уверен, что это может быть подделано мошенническими приложениями.Другие вещи, такие как bundleIdentifier, кажутся лучше, но я считаю, что это тоже может быть подделано.

Я бы предположил, что почти все метаданные могут быть подделаны для приложений за пределами общедоступного магазина приложений, но для любых приложений, полученных из магазина приложений, такие вещи, как bundleIdentifier, должны быть безопасными способами идентификации приложения, верно?

Если мы включаем произвольные приложения, которые кто-то загружает из Интернета, есть ли лучший способ определить приложение для фильтрации мошеннических приложений?Я понимаю, что не может быть решения, которое не имеет недостатков, но ищет попытки с максимальными усилиями.

1 Ответ

0 голосов
/ 29 января 2019

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

Поддержание этой базы данных очень велико и требует постоянных усилий.Вот где большая часть стоимости продукта.Код агента не так сложен.Современная база данных - это то, за что платят клиенты.Это довольно трудное место.

Вы правы в том, что вы можете проверить подписи, чтобы убедиться, что вещи, загруженные из MAS или части ОС, являются такими, какими они себя считают.Это поможет вам начать, но этого недостаточно;Просто так много, что не исходит от MAS.

Другая головная боль в том, что вы можете видеть, какие «приложения» в настоящее время работают в NSWorkspace, но это довольно грязно, что это значит.Множество вещей, которые вы не считаете «приложениями», обнаруживаются в запущенных приложениях, например MobileDeviceUpdater и nbagent.С другой стороны, такие вещи, как MySQL не являются.Отпечатки пальцев при запуске приложения могут пропустить вещи, которых нет в этом списке, или вредоносные приложения могут лгать о своем пути к пакетам, чтобы выглядеть законно.Вы можете использовать такие инструменты, как lsof, чтобы увидеть, какие файлы действительно открыт у процесса , но он становится все более и более сложным.

Удачи;это глубокая кроличья нора с десятками угловых коробок и очень небольшим количеством документации.

...