1. Немного истории
В январе 2023 года экспертами Саймон Ааронс и Дэвид Бьюкенен была обнаружена уязвимость в линейке смартфонов google pixel. При работе во встроенном редакторе изображений Markup и редактировании файлов .png
данные исходника не удалялись полностью и подлежали восстановлению. Таким образом, при обрезке или ретушировании изображений у злоумышленника была возможность полностью (или частично) восстановить данные исходника.
2. Чем опасен?
После обнаружения уязвимости злоумышленники могли восстанавливать исходники изображений из их изменённых версий.
Это может привести к:
Утечкам персональных данных.
Утечкам данных банковских карт.
Получению злоумышленником нежелательной информации (компрометирующих данных).
3. Как работает aCropalypse ?
Как же работала эта уязвимость и на чем она основана? aCropalypse была замечена в android 10 после обновления API. В этом обновлении для сохранения изменений изображения использовалось не перезапись файла а усечение. То есть данные исходного изображения сохранялись в данных обрезанного PNG файла.
Открытие измененного в Markup ".png" файла :
4. Нанесенный ущерб и исправление уязвимости
Экспертами в области информационной безопасности было подтверждено, что уязвимость находится в системе с 2018 года. Можно только предполагать насколько большой ущерб она нанесла и сколько данных было получено нежелательными лицами за все время присутствия этой уязвимости. Об уязвимости сообщили в январе, а исправлена она была в марте компанией Google. После исправления бага уязвимость не была задокументирована компанией и ни как не афишировалась.
5. Как исправить?
Уязвимость была исправлена очень быстро, но несмотря на это нанесла немалый ущерб. Проблема решалась простой перезаписью данных и удалением исходников при изменении изображения.
6. Выводы по уязвимости
Данная уязвимость является примером того, как простая ошибка в коде может оказаться критической дырой в безопасности у огромной корпорации.
Этот пример подчеркивает важность пентеста, баг хантеров и анализа кода на защищенность. Пишите безопасный код!