Відкриття підкреслює зростання зусиль, спрямованих на розробку Mac infostealers.


Дослідники виявили раніше невідомий зразок шкідливого програмного забезпечення для macOS, який поєднує низку вдалих методів для прихованого зараження Mac та встановлення шпигунського коду, розробленого на замовлення.
Шкідливе програмне забезпечення розповсюджується у два етапи. Перший етап розповсюджується на диску зображення, який видає себе за Maccy — менеджер буфера обміну для Mac. Він скомпільований як AppleScript, що є помітним завдяки способу доставки другого етапу. Шкідливе програмне забезпечення отримало назву PamStealer, оскільки infostealer, написаний на Rust, використовує інтерфейс Pluggable Authentication Modules (PAM), вбудований у macOS, для перевірки пароля користувача перед надсиланням його на сервер, контрольований зловмисником.
Тихіший ланцюжок виконання
Використання як дисків зображень, так і AppleScript є поширеним у шкідливих програмах для Mac. Більш незвичним є спосіб, яким PamStealer поєднує їх для досягнення прихованості. Коли AppleScript відкривається подвійним клацанням, він відкривається в macOS Script Editor, де шкідлива функціональність закопана глибоко всередині файлу.
«Замість того, щоб покладатися на командні команди, такі як curl або zsh, AppleScript виконує самодостатній JavaScript для автоматизації (JXA) завантажувач, який отримує та готує корисне навантаження за допомогою нативних Objective-C API», — пишуть дослідники з Jamf, компанії з безпеки для користувачів macOS. «У поєднанні з другим етапом на основі Rust та робочим процесом захоплення паролів, який локально перевіряє облікові дані через PAM, результат — тихіший ланцюжок виконання, ніж ми зазвичай спостерігаємо в типових macOS stealers».
Коли користувач, очікуючи встановити надійний менеджер буфера обміну, стикається з диском зображення, йому пропонується натиснути Command-R одразу після подвійного клацання. Ця команда виконує шкідливий код всередині AppleScript безпосередньо. Це також дозволяє обійти com.apple.quarantine — атрибут macOS, який надає попередження та обмеження, коли виконувані файли були завантажені з Інтернету.
Як пояснює Jamf:
PamStealer поєднує нещодавно розповсюджену поверхню доставки з менш знайомим корисним навантаженням. У той час як клікабельні .scpt та імітація Script Editor спираються на методи, які вже набувають поширення в ландшафті загроз macOS, шкідливе програмне забезпечення відрізняється самодостатнім JXA дропером, другим етапом на основі Rust та робочим процесом захоплення паролів, який локально перевіряє облікові дані через PAM перед їх збором. Цей другий етап докладає значних зусиль для прихованості, видаючи себе за Finder, шифруючи трафік командно-контрольної взаємодії та відкладаючи запити, як-от запит на повний доступ до диска, на сорок хвилин, щоб його діяльність не збігалася із запуском. Разом ці поведінки ілюструють, як типові macOS stealers продовжують розвиватися, приймаючи тихіші ланцюжки виконання та нативні реалізації, які зменшують традиційні можливості виявлення, залишаючись при цьому сумісними зі стандартними функціями macOS.
Перший етап розміщує своє корисне навантаження всередині пакета додатків, який видає себе за справжні компоненти, вбудовані в macOS. Компонент змінюється від зразка до зразка шкідливого програмного забезпечення. Finder.app під com.apple.finder.core або com.apple.finder.monitor, і Software Update.app під com.apple.security.daemon — це два приклади. В обох випадках вони працюють приховано. Вони також відображають справжній Finder.icns macOS як свою іконку.
Другий етап — це мінімалістичний файл Mach-O, написаний для Mac, що працюють на процесорах Apple. Вибір зловмисником написати його на Rust є відносно незвичним для macOS infostealers. Більш поширеними є такі мови, як Swift, Go та Objective-C. Цей бінарний файл викликає інтерфейс читання вбудованого додатка SQLite. Це дозволяє infostealer читати файли бази даних безпосередньо.
PamStealer демонструє нативний запит пароля, розроблений для імітації системного запиту авторизації. Текст, що з’являється із запитом, говорить: «Maccy хоче внести зміни. Введіть свій пароль, щоб дозволити це». Як зазначено вище, після того, як ціль погоджується, шкідливе програмне забезпечення перевіряє його локально через API PAM.
«Ця перевірка здійснюється повністю через PAM: немає виклику до dscl, security, osascript або будь-якого іншого запущеного процесу для перевірки пароля, як це роблять багато типових macOS stealers», — заявили в Jamf. «Результатом є тихіша процедура, яка зберігає лише перевірений пароль, і менше ланцюжків процесів для виявлення захисниками».
Якщо перевірка не вдається, PamStealer повторно відображає запити, доки не отримає правильний. Як тільки ціль введе правильний пароль, PamStealer відображає повідомлення про те, що файл пошкоджений і не може бути встановлений. Це зроблено як приманка, щоб запобігти підозрам цілі, що щось не так.
Шкідливе програмне забезпечення використовує тактики для максимізації інформації, яку воно може викрасти. Одна з тактик — вимагати від цілі надати повний доступ до диска для підробленого додатка Maccy. Він також містить код, розроблений для доступу до облікових записів Ethereum.
Різноманітні техніки — зокрема, імітація Script Editor, самодостатній JXA дропер, другий етап на основі Rust та локальна перевірка облікових даних через PAM — усі є вартими уваги.
«Разом ці поведінки ілюструють, як типові macOS stealers продовжують розвиватися, приймаючи тихіші ланцюжки виконання та нативні реалізації, які зменшують традиційні можливості виявлення, залишаючись при цьому сумісними зі стандартними функціями macOS», — заявили в Jamf.
Інформація підготовлена на основі матеріалів: arstechnica.com
