Руководитель отдела разработки компании Malwarebytes Томас Рид на конференции Virus Bulletin обнародовал уязвимость в проверке кода приложений в macOS. По словам исследователя, баг позволяет злоумышленникам незаметно для системы и пользователя создавать вредоносные копии установленных программ.

Согласно политике Apple, macOS не допускает работу неподписанных приложений. Чтобы подтвердить надежность источника, загруженные программы помещаются в карантин и затем проходят проверку кода. Все попытки исполнения неподписанных файлов ОС автоматически блокирует. Такой подход дает Apple возможность тщательно контролировать прикладную среду, однако в самом процессе проверки обнаружился существенный изъян.

Проблема в том, что macOS проводит проверку только один раз — во время установки приложения. Как только карантин снят, взломщики могут модифицировать код, а система не заметит подмены. Когда пользователь запускает легитимную программу, зловред скрытно функционирует в фоновом режиме. Таким образом, у жертвы не возникает подозрений.

По словам Рида, исследователи уже сталкивались с похожими атаками. В качестве примера можно назвать инцидент с шифровальщиком KeRanger. В 2016 году злоумышленники внедрили вымогатель в BitTorrent-клиент Transmission и выложили вредоносную версию программы на официальный сайт. Однако случаи, когда преступники модифицировали уже установленное на macOS приложение, ранее не встречались.

Эксплуатация бага не требует серьезной технической подготовки: злоумышленнику достаточно знать базовые сценарии оболочки, AppleScript и иметь зачаточные представления о программировании в Swift. Поэтому, по мнению Рида, следует исходить из того, что такие атаки будут в первую очередь совершать дилетанты.

Представленный PoC-код состоит из 22 строк на Swift для исполняемого файла зловреда и 34 строк на AppleScript для двух частей дроппера. При этом успешная атака приводит к заражению всех установленных приложений.

Впрочем, существует несколько способов обнаружить зловред.

  • Во-первых, в показанном PoC зараженное приложение отображали две перекрывающие друг друга иконки — одна из них соответствовала вредоносному процессу, а вторая легитимному. Однако, по словам Рида, это можно исправить, если внести правки в код.
  • Во-вторых, в программе «Мониторинг системы» будут видны оба запущенных процесса. Пользователи также могут проверить внесенные изменения и подписи приложений с помощью фреймворка osquery.
  • В-третьих, все разработанные Apple приложения и некоторые сторонние программы постоянно выполняют внутренние проверки кода и в случае каких-либо подозрений отключаются.

По мнению Рида, в ближайшее время решить проблему можно, только если все разработчики приложений сами будут проводить диагностику кода после установки.

«Как ни печально, но, думаю, это единственный действенный способ. К сожалению, большинство создателей программ об этом не знает. А это значит, что в магазине находится множество уязвимых приложений для macOS».

Категории: Вредоносные программы, Уязвимости