Повторно открытые приложения в macOS автоматически запускаются при входе пользователя в систему - эта функция создана для удобства пользователей. Этому способствует файл списка свойств, в котором записаны приложения, запущенные во время последнего выхода из системы. Злоумышленники используют эту возможность, вставляя вредоносные приложения в этот список, обеспечивая их автоматическое выполнение при входе пользователя в систему, тем самым незаметно достигая стойкости.
Использование злоумышленниками переоткрытых приложений
Злоумышленники используют функцию macOS «Повторное открытие приложений», подделывая plist-файлы, например com.apple.loginwindow.<UUID>.plist, расположенный в пользовательском каталоге ~/Library/Preferences/ByHost. Этот plist-файл содержит конфигурацию приложений, которые автоматически перезапускаются при повторном входе пользователя в систему. Пользователи обычно соглашаются на эту функцию с помощью запроса при выходе из системы, что делает ее доверенным поведением.
Чтобы скомпрометировать эту функцию, злоумышленники манипулируют plist-файлом с помощью команд macOS.
Например:
1 | plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist |
Эта команда отображает содержимое файла plist, в который злоумышленники могут вставить записи, указывающие на их вредоносные приложения. Каждая запись содержит ключи для идентификатора пакета приложения, фонового состояния, настроек видимости и пути к файлу.
Пример измененной записи plist может выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | { "TALAppsToRelaunchAtLogin" => [ 0 => { "BackgroundState" => 2, "BundleID" => "com.apple.ichat", "Hide" => 0, "Path" => "/System/Applications/Messages.app" }, 1 => { "BackgroundState" => 2, "BundleID" => "com.google.chrome", "Hide" => 0, "Path" => "/Applications/Google Chrome.app" }, 2 => { "BackgroundState" => 2, "BundleID" => "com.example.attacker", "Hide" => 0, "Path" => "/Applications/AttackerApp.app" } ] } |
При этом вредоносная программа автоматически запускается при каждом входе пользователя в систему, используя легитимные функции macOS для поддержания скрытого присутствия.