Xakep #305. Многошаговые SQL-инъекции
Разработчик приложения Carbon Copy Cloner Майк Бомбич (Mike Bombich) обнаружил, что при определенных обстоятельствах macOS может попросту «потерять» пользовательские данные, копируя их в никуда. Баг связан с разреженными образами дисков (sparse disk image) и их использованием в файловой системе APFS.
Исследователь пишет, что проблема проявляется только в файловой системе APFS, которая была представлена с релизом macOS High Sierra весной 2017 года. Многие приложения для Mac работают именно с образами дисков, в частности, программы для резервного копирования данных позволяют пользователям создавать копии целых томов и быстро перемещать данные между образами старых бэкапов и новых. Разреженными образами называют образы дисков, которые со временем способны увеличиваться в объемах, по мере того, как пользователь добавляет новые данные.
Разумеется, разреженный образ не может расти бесконечно, ведь в конечном итоге он зависит от емкости физического накопителя и наличия на нем свободного места. Но, как обнаружил Бомбич, в случае работы с APFS разреженные образы не могут корректно синхронизироваться с диском и узнать, сколько свободного пространства на нем осталось. Это может привести к очень неприятным сценариям, например, пользователь может копировать данные в разреженный образ, предполагая, что свободного места еще достаточно. Но на самом деле, места давно не хватает, и информация в итоге копируется в пустоту, то есть пропадает бесследно. При этом пользователя о нехватке сводного места никак не уведомляют.
Исследователь подчеркивает, что операционная система предоставляет пользователю неверные и вводящие в заблуждение данные. К примеру, на протяжении короткого периода времени, после осуществления операции записи, macOS все еще имеет доступ к файлу и даже отображает верную контрольную сумму. Эта «иллюзия» пропадает лишь после перезагрузки системы, после которой копии данных, остававшиеся в памяти ОС, исчезают, а файл становится поврежденным и более недоступным. Как эта проблема выглядит в жизни, можно увидеть в ролике ниже.
Бомбич пишет, что согласно статистике, собранной его собственным ПО, проблема затрагивает лишь семь процентов пользователей Carbon Copy Cloner, которые пользуются разреженными образами дисков для резервного копирования данных. При этом только 12% из этих людей работают с файловой системой APFS.
Тем не менее, разработчик сообщил, что из-за обнаруженного бага его ПО временно не поддерживает работу с APFS, так как исправление инженеры Apple пока не выпустили.