Подход Apple к информационной безопасности приводит к тому, что некоторые пользователи Mac не обращают внимание на то, что происходит с их компьютерами. В этом посте я старался разобраться в основных механизмах защиты macOS от вредоносных программ и выделить их недостатки, но в результате выяснилось, что «проблема» — это сама репутация macOS. В 2006-2009 годах Apple провела рекламную кампанию, в которой сравнивала PC и Mac. В одном из роликов явно простуженный Джон Ходжман (John Hodgman) в нескладном деловом костюме изображал PC. На этом фоне Джастин Лонг (Justin Long) в роли Mac, напротив, смотрелся молодо и стильно. Реклама продвигала мысль о том, что «Mac не заражаются вирусами». Однако это было не так. Прежде хакеры почти не обращали внимания на эту операционную систему из-за небольшой доли рынка, но, похоже, реклама спровоцировала их. В 2007 году появилось сразу несколько вредоносных программ, написанных специально для OS X. Первой была OSX/Leap-A (Oompa-A). Она распространялась через iChat. Затем был обнаружен RSPlug — первый зловред для этой платформы, нацеленный на кражу финансовых данных. Он изменял настройки DNS и перенаправлял пользователей на фишинговые сайты. ФБР справилось с RSPlug, однако бюро продолжало поддерживать DNS-сервер, на который ссылался вирус, еще несколько лет. Если бы они выключили его сразу, сотни тысяч пользователей Mac на время потеряли ли бы доступ к интернету. И это было только начало, вот еще несколько громких случаев: В 2016 году Mac был атакован программой-вымогателем KeRanger, которая проникала в систему через зараженный установщик Transmission. В 2019 году исследователь кибербезопасности Филиппо Кавалларин (Filippo Cavallarin) обнаружил в macOS Catalina уязвимость, которая позволяла обойти защитный механизм Gatekeeper (о нем я расскажу ниже). В 2018-2020 годах Mac был атакован трояном Shlayer, который маскировался под установщик Adobe Flash Player. В 2020 году пользователи Mac столкнулись с вымогателем ThiefQuest. В 2021 году много шума наделал XLoader — вредонос, который собирал учетные данные из браузеров, делал скриншоты, регистрировал нажатия клавиш и загружал другое вредоносное ПО. Также в 2021 году Эри Эрнандес (Erye Hernandez) обнаружил уязвимость CVE-2021-30869, которая позволяла выполнять произвольный код с привилегиями ядра. В 2022 году Apple выпустила срочное обновление, которое закрыло уязвимости, дающие полный контроль над устройством. Одна из них относилась к ядру, а другая затронула WebKit — базовую технологию браузера Safari. И так далее и так далее. Если вас интересует комплексный анализ свежего вредоносного ПО для Mac — рекомендую отчет Патрика Уордла (Patrick Wardle) из Objective-See. Я же лишь хотел привести примеры. Список вредоносов и инцидентов безопасности, связанных с macOS, можно продолжать долго. Конечно, они не сравнятся с зоопарком угроз для Windows, однако эти риски нужно принимать в расчет. Правда в том, что Mac, как и любой другой компьютер, может быть взломан. Apple понимает это и прикладывает много усилий, чтобы обезопасить своих пользователей. В отличие от Microsoft, Apple до сих пор не встроила в операционную систему хорошо заметный антивирус, подобный Windows Defender. Однако уже в 2009 году в macOS появились базовые защитные механизмы. С тех пор Apple незаметно, но последовательно ужесточает контроль над своей экосистемой. Современная macOS имеет разнообразные механизмы защиты данных: Secure Enclave, Keychain, System Integrity Protection (SIP), Application Sandbox. В широком смысле это и FileVault, Find My Mac и Touch ID, однако сейчас мы сосредоточимся на эшелонированной защите от вредоносного программного обеспечения: File Quarantine; Gatekeeper; XProtect; TCC; Malware Removal Tool (MRT); XProtect Remediator (XPR). File Quarantine — исторически один из первых механизмов защиты macOS. В 2007 году операционная система начала помечать загруженные из интернета файлы и требовать дополнительного подтверждения перед их запуском. File Quarantine срабатывает, когда пользователь загружает контент за пределами App Store, например, при помощи таких приложений, как браузер или торрент-клиент. При этом приложение добавляет специальную пометку в метаданные файла. По сути, это аналог Mark-of-the-Web в Windows. File Quarantine не гарантировал полной защиты от случайного запуска вредоносного ПО. Он плохо работал по двум причинам: MacOS применяла пометку ко всем загруженным файлам, а не только к приложениям, поэтому пользователи привыкли игнорировать всплывающие окна и машинально нажимали «Открыть». Во всплывающем окне не было объяснений и рекомендаций относительно выбора надежных источников файлов. Второй пункт иллюстрирует общую философию Apple в части безопасности macOS: компания старается не нагружать пользователей техническими деталями. Такой подход имеет определенные последствия в плане безопасности. Мы еще поговорим о них подробнее. В 2012 году поверх File Quarantine был построен новый защитный механизм — Gatekeeper. Это, пожалуй, основное средство обеспечения безопасности в работающей операционной системе. Привратник — условно, подобие SmartScreen в Windows — это подсистема, которая блокирует запуск непроверенных приложений. Он по прежнему использует атрибут com.apple.quarantine, но работает только с исполняемыми файлами. Если загрузить изображение из интернета и открыть его в родном приложении Apple Preview, оно не будет проверено Gatekeeper. Кроме того, Привратник работает только с файлами, по которым дважды кликнули мышью. Так, Gatekeeper не реагирует на простые сценарии .sh, запускаемые из командной строки, а если добавить к такому файлу расширение .command, получится интерактивный сценарий, и Gatekeeper проведет его проверку. Кроме того, пометка com.apple.quarantine устанавливается приложением, через которое получен файл (обычно этим занимаются браузеры). И без нее система не может определить его происхождение. Поэтому большинство вредоносных программ в MacOS используют Curl или Wget для заливки полезной нагрузки на компьютер. Эти утилиты не помечают скачанные файлы. Так, например, Trojan.OSX.Shlayer. имел в качестве основного исполняемого файла Bash или Python-скрипт в зависимости от версии, не попадал под проверку Gatekeeper и догружал свои компоненты через Curl Еще стоит отметить, что есть файловые системы, не поддерживающие метаданные, которые использует карантин, скажем, сетевые общие диски (smb и nfs). С этим связано несколько уязвимостей, например, CVE-2019-8656. Первое время Привратник проверял только валидность подписи и действительность связанного с ней идентификатора разработчика Apple. Однако де факто, подпись может получить любой желающий и ее наличие не гарантирует, что подписанный код не вредоносный. В 2019 году с выпуском macOS 10.15 (Catalina) Apple стала требовать от разработчиков, которые будут распространять свои приложения не через AppStore, отправлять свой код на ревью. Было введено так называемое нотариальное заверение (notarization status) приложений. Теперь Gatekeeper также проверяет статус нотариального заверения приложений. После проверки подписей Gatekeeper инициирует сканирование при помощи XProtect (о нем мы еще поговорим ниже). Однако я не зря упомянул про двойной щелчок. Если щелкнуть правой кнопкой мыши на приложение и нажать «Открыть», GateKeeper не сработает. Строго говоря, это не баг и не уязвимость, а фича, которую Apple ввела для удобства открытия неподписанных приложений. Вредоносы активно используют эту возможность, чтобы обойти GateKeeper при помощи социальной инженерии. Взять, например, установщик рекламного ПО Chropex. Он не подписан, но снабжен инструкциями, призывающими использовать для запуска правую кнопку мыши. Точно так же в 2020 году злоумышленники инструктировали пользователей перед установкой Shlayer. Существуют и другие способы обойти Gatekeeper. Некоторые расширения в macOS находятся в белом списке и не требуют заверения. Как и в Windows здесь существует вектор заражения через макросы Microsoft Office. Кроме того, некоторые злодеи используют краденые сертификаты разработчиков. XProtect — еще один защитный компонент, который появился в 2009 году в обновлении Snow Leopard в качестве дополнения к карантину. Как и многие другие улучшения безопасности macOS, запуск XProtect не афишировался. По сути, это статический список правил Yara — двоичных шаблонов с описаниями вредоносных программ. Их можно найти на компьютере через locate XProtect.yara. В дополнение к этому файлу существует еще набор списков свойств (plist). Например, XProtect.meta.plist — черный список плагинов Safari и gk.db и черный список приложений. XProtect предназначен для сигнатурного анализа. Причем, это не простое сравнение хэшей, а поиск подозрительных строк внутри файлов, байтовых последовательностей, атрибутов исполняемых файлов и так далее. Такой подход позволяет обнаруживать новые образцы вредоносных программ, основанные на уже известных фрагментах вредоносного кода. Если файл оказывается опасным, XProtect выдает зловещее предупреждение и предлагает переместить его в корзину. Если пользователь соглашается, система записывает файл диагностики: ~/Library/Logs/DiagnosticReports/XProtect_XXX-Mac.diag. XProtect запускает сканирование только при соблюдении одного из трех условий:  если файл запускается впервые; если хэш файла изменился; если обновлены правила XProtect Yara. Кроме того, правила Yara практически бесполезны против целевых атак. Разве что хакер пытается использовать какой-нибудь эксплойт с Metasploit как есть, без обфускации. TCC (Transparency, Consent, and Control) представляет собой набор баз данных SQLite, которые используются для контроля доступа приложений к различным сервисам и функциям компьютера. Одна база находится в корневом каталоге (/Library/Application Support/com.apple.TCC/TCC.db), еще одна располагается в библиотеке у каждого пользователя (по адресу: ~/Library/Application Support/com.apple.TCC/TCC.db). Базы содержат информацию о том, какие функции компьютера доступны конкретным приложениям, и когда пользователь дал или отозвал свое разрешение на такой доступ. Так, например, TCC запрашивает разрешение, когда пользователь запускает приложение, которому нужен доступ к микрофону. Идея TCC в том, чтобы ограничить возможности программ по взаимодействию с важными компонентами системы. Среди них есть, например, accessibility. Она нужна, чтобы люди с ограниченными возможностями могли пользоваться Mac, но с точки зрения разработчика — это специальный фреймворк, который позволяет приложениям взаимодействовать с системным интерфейсом с помощью вызовов API, скажем, двигать курсор. С его помощью малварь может, например, прокликивать предупреждения Gatekeeper. В теории, получив полный доступ к диску (FDA), злоумышленник может отредактировать базы TCC и обойти этот механизм, но для этого необходимо отключить SIP. С новыми версиями операционной системы провернуть такой трюк сложно, однако существуют примеры таких атак. Некоторые можно найти, например, в блоге исследователя, известного под ником theevilbit.  MRT — еще одно подобие антивируса в macOS. Это приложение и его можно запустить непосредственно из командной строки. Но обычно MRT запускается без взаимодействия с пользователем при входе в систему или при перезагрузке компьютера. Оно удаляет все файлы, которые соответствуют определенным статическим шаблонам или находятся в определенных каталогах. Если поместить исполняемый файл MRT в дизассемблер, можно увидеть различные пути, которые проверяет этот сканер. Все они ассоциированы с теми или иными вредоносными программами. В качестве эксперимента можно создать пустые файлы по одному из этих адресов, и MRT вскоре их удалит. При этом Malware Removal Tool не анализирует содержимое файлов. Это чрезвычайно простой инструмент, так что не удивительно, что Apple разрабатывает альтернативу. Скорее всего XPR постепенно заменит Malware Removal Tool, но пока они работают одновременно. XProtect Remediator представляет собой пакет из четырнадцати двоичных файлов, предназначенных для обнаружения определенных семейств вредоносных программ и борьбы с активным заражением. Он использует процедуры лечения, специально разработанные под конкретные семейства вредоносных программ. Изначально XProtect Remediator спроектирован как средство удаления компонентов вредоносных программ, обнаруженных при помощи XProtect. Сейчас XProtect Remediator также выполняет регулярные сканирования, которые делятся на три группы, отличающиеся глубиной и интервалом: fast — каждые 6 часов; regular — каждые 24 часа; slow — каждые 7 дней. Режимы сканирования XProtect Remediator можно найти по пути: /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Resources/com.apple.XProtect.agent.scan.plist Что интересно, Apple может изменять частоту сканирования XPR в зависимости от активности вредоносных программ. Большую часть лета 2022 года компания проводила ежедневные проверки на DubRobber. Теперь, когда пик эпидемии пройден, сканирование происходит реже. Кстати, предупреждения о вредоносах в далеко не всегда хорошо понятны. В индустрии до сих пор нет единого стандарта наименования вредоносных программ и Apple не исключение. Под капотом, например, в базе XProtect Yara, используется полурандомизированный шестнадцатеричный код. В то же время XProtect и XProtect Remediator оперируют другими кодовыми именами, которые не встречаются нигде, кроме как в экосистеме Apple. Это мешает пониманию того, с чем именно вы столкнулись. Более того, вы получаете только часть предупреждений. XProtect сообщает о срабатывании пользователю. Это хорошо, даже если имя вредоносной программы толком не гуглится, в то же время XProtect Remediator не показывает результаты регулярного сканирования в виде предупреждений или уведомлений. В macOS Catalina и Monterey XPR-отчеты записываются только в Unified Logs. В Ventura они также доступны для программных клиентов Endpoint Security, но в качестве такой утилиты по умолчанию с macOS поставляется довольно неудобный eslogger. Для записи событий и ведения журнала этот клиент нужно держать постоянно запущенным. Самая современная из систем защиты macOS толком не информирует пользователя о своей работе. А без обратной связи у пользователя нет стимулов менять свое поведение, даже если он неоднократно сталкивается с опасными файлами. Тем не менее, нужно признать: с точки зрения общественного мнения о безопасности macOS привычка Apple не обременять пользователей технической информацией отлично работает. Если вы обычный пользователь, то доверяете свою безопасность Apple и довольны тем, что компьютер не пугает вас свинячим визгом антивируса. И доверяете не зря. В сочетании с включенным SIP и регулярными обновлениями системы встроенные защитные механизмы MacOS обеспечивают высокий уровень защиты для рядовых пользователей с типичной моделью угроз. К тому же, вредоносных программ для MacOS все еще в разы меньше, чем для той же Windows. В итоге, многие аналитики из нашей, да и не только нашей компании, называют актуальные компьютеры Apple — наиболее защищенными устройствами для среднестатистического пользователя. Однако Mac становятся все более распространенными в корпоративной среде. Тут важно помнить, что безопасность Mac зависит не только от встроенных защитных механизмов, какими бы совершенными они ни были, но и от действий самого пользователя. Отключение SIP и XProtect, пропуск обновлений и неосторожное поведение заметно повышают риски. Кроме того, безопасность macOS все еще во многом построена на том, что система регулярно переспрашивает пользователя перед совершением тех или иных действий.  Вряд ли это можно назвать полноценным недостатком модели безопасности операционной системы, но со временем эти сообщения могут вызвать некий аналог баннерной слепоты. И мнение о том, что на Mac нет вирусов, которое до сих пор широко распространено, здесь играет злую шутку. Уверенные в своей безопасности пользователи легче поддаются на уловки из арсенала социальных инженеров и склонны прокликивать предупреждения которые выводит операционная система, не вникая в их содержание. Да, даже если пользователь не задумывается о цифровой гигиене, вероятность заражения одного конкретного Mac в течение его жизненного цикла низка, но когда в инфраструктуре сотни или тысячи таких машин, ситуация меняется. На больших масштабах даже маловероятные события случаются с завидной регулярностью. Поэтому хочется подчеркнуть, что в корпоративной безопасности нельзя полагаться исключительно на репутацию операционной системы, какими бы совершенными ни были ее защитные механизмы. В некоторых компаниях, которые пользуются Mac, просто уделяют недостаточно внимания ИБ. Например, я видел адвокатское бюро, специализирующееся на спорах между компаниями (у них было море чувствительной информации), которое полностью полагалось на дефолтные настройки Mac из-за их репутации и больше ничего не делало для защиты данных клиентов. Модели угроз, бэкапы, контроль доступов, обучение сотрудников, аудиты и обновления ПО — нет, не слышали. А в корпорациях со смешанной инфраструктурой компьютеры Apple порой оказываются неуправляемыми устройствами. — У нас банк, у нас тут нет компьютеров Apple! — А у вас есть приложение для iOS? А как оно разрабатывается? Ведь вы не можете скомпилировать iOS-приложение на Windows. Когда Mac оказываются слепым пятном и не контролируются SOC, на них встречаются базовые проблемы, например: пользователи, работающие из-под администратора и отключенные брандмауэры (и то и другое — стандартная конфигурация).  Таким образом, если собираетесь использовать компьютеры Mac в своей компании, будь то малый бизнес или корпорация, не бросайте их на произвол судьбы, не полагайтесь исключительно на Apple. Этим компьютерам и их пользователям следует уделить внимание, как и любым другим: Подключите все Mac к системе удаленного управления устройствами (MDM). Они нуждаются в централизованном управлении. Также MDM позволяет запретить пользователям загружать приложения вне App Store и помогает следить за установкой обновлений. Убедитесь, что на Mac активирована защита целостности системы SIP. Она затрудняет повышение привилегий для потенциальных атакующих. Включите брандмауэр, Gatekeeper и шифрование. Отключите макросы Word. Вряд ли вообще кто-то, кроме хакеров пользуется ими на этой платформе. Проведите инструктаж по цифровой гигиене среди сотрудников и закрепите результат при помощи учений, например, имитации фишинговой рассылки. Built-in macOS Security Tools — англоязычный разбор тематики безопасности macOS, откуда я почерпнул несколько интересных фактов о XProtect. Uncovering the security protections in MacOS - Gatekeeper — подробный разбор внутреннего устройства Gatekeeper. Jumping Over the Gate — анализ безопасности GateKeeper применительно к корпоративной среде. MaсOS security от школы информационной безопасности Академии Яндекс (видео) — разбор внутреннего устройства macOS с точки зрения безопасности от инженера SOC. Evolution of the Mac Threat Landscape (видео) — история развития угроз на Mac и сегодняшний ландшафт угроз. OBTS: Process injection: breaking all macOS Sec Layers with a Single Vulnerability (видео) — блестящая иллюстрация того, как единственная уязвимость может поставить под угрозу всю операционную систему. Cedric Owens - Gone Apple Pickin: Red Teaming MacOS Environments in 2021 (видео) — дает представление о том, как выглядят основные вектора атак на MAC в корпоративной среде. Яблоко раздора: охота на угрозы в macOS (видео) — свежий русскоязычный доклад о том, где искать различные индикаторы компрометации в macOS.  Главный по блогу Бастион, научный журналист