12 мая 2017 года по всему миру началась атака вирусом-шифровальщиком WannaCrypt0r: сотни тысяч компьютеров были зашифрованы, а для восстановления доступа к файлам требовалось заплатить злоумышленникам. Жертвами стали компьютеры с Windows, на которых не были установлены последние обновления безопасности.
Что вообще случилось?
Вирус проник на компьютеры с операционными системами Windows, от XP до 10-ой версии определенных сборок, воспользовавшись уязвимостью в протоколе SMBv1. Она позволила атакующему выполнить произвольный код на затронутых компьютерах и зашифровать файлы на них.
Как так?
Уязвимости с выполнением произвольного кода вообще не являются чем-то необычным, причем не только в Windows. Подобное уже случалось с Java, Acrobat Reader, Symantec, даже с игровыми движками Unreal Engine, CryEngine.
Об уязвимости CVE-2017-0147 стало известно еще в 2016 году. Несмотря на это, обновление безопасности Microsoft выпустили только в марте 2017 года. Обновленные компьютеры оказались вне зоны риска, но, как видно из новостей, сделали это далеко не все.
У меня Мак, может ли случиться такое со мной?
Теоретически, в macOS, как и в любом другом сложном программном обеспечении, существуют уязвимости, позволяющие выполнить на компьютере жертвы произвольный код. Такие компании, как Apple и Microsoft, выпускают обновления безопасности, чтобы такие уязвимости “закрывать”. Есть специальные сайты, на которых эти уязвимости публикуются, например cve.mitre.org. Но это помогает только в тех случаях, если обновления системы устанавливаются своевременно. Не спасёт это и от 0-day уязвимостей – тех, которые еще не обнаружены и против них не выработаны защитные механизмы.
Это еще не всё
Помимо уязвимостей в системе, злоумышленники пользуются вредоносным ПО, распространяя его под видом обычного, встраивая его в пиратский софт и даже файлы-вложения в письмах.
Как macOS защищается от таких приложений?
macOS содержит в себе защитный механизм, Gatekeeper, который следит за целостностью приложений и позволяет запускать только то, что “можно”. Например, Gatekeeper запретит запуск приложения без электронной подписи, содержащий в себе хэш приложения: уникальное число, которое вычисляется для каждого приложения перед его подписью. Если приложение модифицируется (например, в пакет добавят вредоносный код), то его его хэш-сумма изменится и подпись станет недействительной. Сертификат для подписи предоставляется компанией Apple, а в случае, если он был выдан ошибочно или был скомпрометирован (например, украден), сертификат отзывается и Gatekeeper запрещает его запуск. Конечно, можно отключить Gatekeeper, но делать это не рекомендуется. Мало того, в macOS 10.12 Sierra отключение этого механизма через меню настроек невозможно, теперь это делается только через терминал.
Служба File Quarantine, часть Gatekeeper, проверяет все приложения, загруженные из интернета. Когда вы открываете такое приложение, оно сравнивается со списком Xprotect, находящимся в файле /System/Library/Core Services/CoreTypes.bundle/Contents/Resources/XProtect.plist
. Если приложение присутствует в списке – отображается окно с информацией о том, что оно может повредить ваш Mac и будет перемещено в Корзину.

Представим себе другую ситуацию
В App Store попадает приложение с вредоносным кодом внутри и осталось незамеченным. Для того, чтобы такое ПО зашифровало ваши файлы, стерло информацию с диска, собрать информацию о компьютере, пользователе и других программах, а также данные вашей кредитки, ей потребуется доступ к ресурсам системы. Но у Apple есть обязательное требование ко всем приложениям, опубликованным в App Store – поддержка Sandboxing, системы ограничения доступа приложения к этим самым ресурсам системы. Однако Apple сами заявляют, что эта мера не есть Silver Bullet и механизм возможно “обойти”. И такие методы уже описаны.
Итак
Существующие образцы вредоносного ПО для Мака, как правило, работают по другому принципу: запросить у пользователя пароль администратора, а уже потом с полными привилегиями делать все, что хочется. И исключать вероятность появления похожего на WannaCrypt0r нельзя, но нужно понимать, что для того, чтобы зашифровать все данные, такому приложению потребуется:
- попасть на компьютер не через App Store
- приложение должно быть подписано сертификатом от Apple для обхода Gatekeeper
И только после всего этого получится зашифровать данные пользователя. Кстати получить возможность зашифровать данные всех пользователей на Mac, приложению потребуется запросить административные привилегии, запросив пароль.
К счастью, такие программы обычно быстро попадают в Xprotect.plist, обновления которого проходят без ведома пользователя. Информацию об этом можно найти в журнале /var/log/installer.log
May 7 22:03:24 Macintosh system_installd[2148]: Installed "XProtectPlistConfigData" (1.0)
SIP – еще один рубеж защиты
Начиная с OS X El Capitan, в систему встроена служба защиты системных файлов и приложений от модификации (в том числе и добавления к коду системы вредоносного кода) и удаления — System Integrity Protection, SIP. Причем эта служба включена по умолчанию. Например, при попытке удалить системные файлы появляется такое предупреждение:

Тем не менее, некоторые вполне легитимные приложения требуют для своей установки отключение SIP. Например, программа TotalFinder, которая модифицирует память Finder для того, чтобы, например, добавить Colored Labels, которых мы лишились в OS X Mavericks. Кстати, отключение SIP требуется и при установке Хакинтош.
Если коротко, SIP – служба, связанная с ядром системы, которая не дает модифицировать важные файлы даже с привилегиями суперпользователя (root). Также SIP ограничивает доступ к памяти процессов защищенных системных приложений.
***
И на старуху бывает проруха. Систему macOS нельзя назвать полностью защищенной от вредоносного ПО. Однако соблюдение основных мер безопасности и своевременная установка системных обновлений поможет снизить риски стать жертвой вредоносного ПО.
Что делать?
- не используйте для работы учетную запись администратора
- используйте встроенный механизм обновления системы и ПО
One more thing…
Значительная часть уязвимостей, связанных с выполнением произвольного кода на Маке, связана с приложениями пакета Microsoft Office. Например, атакующему достаточно отправить специальным образом сформированный документ Office, чтобы запустить нужный ему код. Рекомендуется использовать последнюю версию Microsoft Office 2016, а также настроить автоматическую установку обновлений.