Команда Google Project Zero хорошо известна своим умением находить недостатки безопасности как в собственных продуктах компании, так и в продуктах других фирм. Её члены обнаруживают недостатки в программном обеспечении, сообщают о них производителям в частном порядке и дают им 90 дней на решение проблемы до ее публичного раскрытия.
В ноябре они нашли "серьезную уязвимость" в ядре macOS.
Исследователь безопасности из Google Project Project Zero обнаружил, если изменяется образ смонтированной файловой системы, принадлежащей пользователю, то подсистема виртуального управления не информируется об изменениях, а это означает, что злоумышленник может потенциально предпринять злонамеренные действия без ведома смонтированной файловой системы. Подробное объяснение ниже:
Copy-on-write поведение работает не только с анонимной памятью, но и с отображениями файлов. Это значит, что после того, как целевой процесс начал чтение из перенесенной области памяти, изменение памяти может привести к удалению страниц, содержащих перенесенную память, из кэша. Позже, когда удаленные страницы снова понадобятся, они могут быть перезагружены из резервной файловой системы.Если злоумышленник может изменить файл на диске без уведомления подсистемы виртуального управления, то это ошибка безопасности. MacOS позволяет обычным пользователям монтировать образы файловой системы. Когда образ смонтированной файловой системы изменяется напрямую (например, путем вызова
pwrite()
для образа файловой системы), эта информация не будет передана в смонтированную файловую систему.
Исследователи сообщили Apple об этой ошибке еще в ноябре 2018 года, но компания еще не исправила ее даже после превышения 90-дневного срока, поэтому ошибка теперь обнародована с ярлыком «высокая степень серьезности». Тем не менее, Apple приняла проблему и работает с Project Zero над патчем для будущего релиза MacOS. Также можно просмотреть проверочный код, демонстрирующий проблему, на специальной веб-странице здесь.
Автор: Anton Sorokin