Чуть больше недели назад Apple выпустила обновление macOS High Sierra с новой файловой системой APFS. Прошло всего пару дней — и в системе обнаружили неприятный баг, который можно назвать потенциальной уязвимостью.

Дело в том, что при создании в дисковой утилите (Disk Utility) зашифрованного контейнера APFS с указанием пароля и парольной подсказки, если отмонитровать этот контейнер, а затем примонтировать снова — то macOS High Sierra вместо парольной подсказки показывает пароль!

Бразильский разработчик Матеус Мариано (Matheus Mariano) пишет, что проблема затрагивает только «маки» с SSD-накопителями из-за ограничений файловой системы. Матеус Мариано очень удивляется, как такой баг не заметили сотрудники, тестеры Apple или кто-нибудь ещё. Неужели они не пользуются зашифрованными контейнерами или не указывают подсказки?

Баг подтвердили другие пользователи, пароль действительно демонстрируется в открытом виде в macOS High Sierra, включая версии 10.13 и 10.13.1 beta. В базе данных уязвимостей этому багу присвоен номер CVE-2017-7149.

Судя по всему, если не задавать подсказку-напоминание при указании пароля, то впоследствии баг не проявляется (негде показать пароль, если нет подсказки). И если не пользоваться дисковой утилитой, тоже всё будет нормально — баг присутствует именно в дисковой утилите. Так что если вы создаёте зашифрованные тома через консоль, то замены пароля на подсказку не произойдёт. В этом случае система корректно показывает подсказку, а не пароль.


Компания Apple признала наличие уязвимости и 5 октября опубликовала официальную рекомендацию, как устранить уязвимость:

  1. Установить обновление macOS High Sierra 10.13 Supplemental Update со страницы обновлений App Store.
  2. Создать резервную копию зашифрованных данных из поражённого тома APFS.
  3. Открыть дисковую утилиту (Disk Utility) и выбрать том.
  4. Отмонтировать его (Unmount).
  5. Нажать «Стереть» (Erase).
  6. Когда спросят, указать имя тома в поле «Имя» (Name).
  7. Изменить формат на APFS.
  8. Ещё раз изменить формат на APFS (Encrypted).
  9. Ввести новый пароль в диалоговое окно. Вввести его ещё раз для подтверждения, а при желании ввести подсказку-напоминание для тома APFS. Нажать «Выбрать» (Choose).
  10. Нажать «Стереть» (Erase). Можно наблюдать процедуру удаления.
  11. Нажать «Готово» (Done), когда процедура завершена.
  12. Восстановить данные из резервной копии, сделанной на этапе 2, в новый зашифрованный том, который вы только что создали.

Apple рекомендует считать скомпрометированными пароли от старых зашифрованных томов APFS — и поменять их везде, где они использовались, на компьютере и в интернет-сервисах.

Баг также исправлен в основной версии macOS High Sierra, если вы ещё не установили это обновление. То есть после его установки не нужно отдельно скачивать патч.

Сразу после CVE-2017-7149 в базе уязвимостей зарегистрировали ещё один баг CVE-2017-7150: неподписанные приложения имеют доступ к секретным данным, которые хранятся в «Связке ключей» (Keychain) — программе, предназначенной для хранения паролей и учётных данных. Пользователь при этом не получает никаких уведомлений, что программа обратилась к «Связке ключей» (см. видео), хотя даже подписанные нормальные приложения должны справшивать разрешение пользователей или пароль. Уязвимость обнаружил специалист по безопасности Патрик Уордл (Patrick Wardle) ещё в сентябре, но Apple не успела её устранить до выхода macOS High Sierra.


По мнению многих комментаторов на форумах и в соцсетях, Apple явно нуждается в найме дополнительных квалифицированных сотрудников в отдел тестирования, даже в iOS 11 полным-полно очевидных ляпов. А если с той же дисковой утилитой macOS поработать пять минут — то вы найдёте с десяток ляпов и любительских ошибок разработки — а ведь когда-то она была одной из самых лучших системных утилит OS X, как сумели так всё испортить? Может, не стоит так часто выпускать большие обновления ОС, а больше времени уделить тестированию?

Хотя кто-то шутит, что при замене подсказки на пароль формально тестеры не увидели ошибки: разве пароль сам по себе не считается подсказкой-напоминанием? Всем известно, что операционная система от Apple очень удобна и дружественна к пользователю. Вот и здесь: если человек забыл пароль, macOS его напоминает.

Комментарии (27)


  1. kozyabka
    06.10.2017 15:08
    +11

    Верно понимаю, что это свидетельствует о том что макось хранит пароли к этим зашифрованным контейнерам где-то у себя? Если так, то это очень плохо и странно что нет на этом акцента.


    1. klinifini
      06.10.2017 15:19
      +10

      Макось хранит подсказку в незашифрованном виде. А дисковая утилита при создании тома сохраняет пароль как подсказку.


      1. kozyabka
        06.10.2017 15:21
        +2

        Спасибо, буду так и думать)


      1. za121
        06.10.2017 16:20

        Это не баг-это фича ))


    1. BarredEwe
      06.10.2017 15:36
      +2

      Нет, из за бага пароль записывается в поле с подсказкой, а это поле уже хранится «где-то у себя».


    1. pftbest
      06.10.2017 15:36

      Похоже что утилита записывала пароль вместо подсказки в поле для подсказки. Я уверен что разработчики файловой системы не настолько глупы чтобы хранить пароль в открытом виде.


      1. ivlis
        07.10.2017 02:11
        +2

        Вместо

        SaveHint(Hint)
        SendPassToNSA(Password)

        написали
        SaveHint(Password)
        SendPassToNSA(Password)


        Ну с кем не бывает? :)


        1. BubaVV
          08.10.2017 14:31

          Интересно, статический анализатор такое поймает?


  1. karminski
    06.10.2017 15:30
    -6

    Т.е. получается, что они хранят пароль в открытом виде что-ли?


  1. famiak
    06.10.2017 18:13
    +6

    Установить обновление macOS High Sierra 10.13 Supplemental Update со страницы обновлений App Store.
    Создать резервную копию зашифрованных данных из поражённого тома APFS.
    Открыть дисковую утилиту (Disk Utility) и выбрать том.
    Отмонтировать его (Unmount).
    Нажать «Стереть» (Erase).
    Когда спросят, указать имя тома в поле «Имя» (Name).
    Изменить формат на APFS.
    Ещё раз изменить формат на APFS (Encrypted).
    Ввести новый пароль в диалоговое окно. Вввести его ещё раз для подтверждения, а при желании ввести подсказку-напоминание для тома APFS. Нажать «Выбрать» (Choose).
    Нажать «Стереть» (Erase). Можно наблюдать процедуру удаления.
    Нажать «Готово» (Done), когда процедура завершена.
    Восстановить данные из резервной копии, сделанной на этапе 2, в новый зашифрованный том, который вы только что создали.


    А потом говорят про дружественный интерфейс и юзабилити и вот это вот все.


    1. Ilyasyakubov
      06.10.2017 20:25

      А что не так? Разработчики пользовательского интерфейса должны были заранее менюшку специальную придумать для разруливания этой довольно серьезной проблемы?


      1. famiak
        06.10.2017 20:36

        Встроить простенький скрипт в обновление?


        1. kekekeks
          06.10.2017 21:24
          +1

          Простенький скрипт, который стирает и переформатирует диск? Это бамблби какой-то уже.


          1. Cenzo
            06.10.2017 23:48
            +2

            Интересно, а просто затереть подсказку они не смогли? Похоже проблема не такая, как её описывают — пароль сохранили в подсказке. Там что-то хуже.


            1. 0o0
              08.10.2017 13:12

              Там написано «Changing the password on an affected volume clears the hint but doesn’t affect the underlying encryption keys that protect the data.».
              Т.е., как я понял, раз пароли, попавшие в хинт надо считать скомпрометированными, то и ключи шифрования тоже. Поэтому контейнер лучше пересоздать.


              1. Cenzo
                10.10.2017 04:03
                +1

                Даже линуксовый LUKS умеет делать перешифрование «на лету», без пересоздания устройства. Удивлён, что на МАКе такую очевидную вещь не сделали.


            1. lohmatij
              08.10.2017 13:12

              При смене пароля меняется только пароль, а ключ шифрования остаётся прежним.


              То есть если пароль скомпрометировали и ключ уже украли, то смена пароля не поможет.


  1. ruzhovt
    06.10.2017 19:41
    +1

    ух, пятой точкой чуял что не стоит переходить с 10.12 до 10.13 :)


    1. Vitalley
      06.10.2017 19:48

      Да и с 10.11 я не переходил.


      1. Goodkat
        07.10.2017 10:58

        10.10.3, кто больше?


        1. Shushpangever
          08.10.2017 13:12

          Ты хотел сказать «кто меньше»?)


    1. Ilyasyakubov
      06.10.2017 22:49
      +1

      Зря. Мой MacBook Air 13 (2014 года) ожил. Батарею стал держать очень хорошо, субъективно система стала работать быстрее.


      1. Celtis
        07.10.2017 01:21
        +1

        Как раз в Вашем случае есть нюанс: в Metal2 есть веселый баг с компиляцией шейдеров, который приводик к крешу при старте очень разных приложений. Закономерность пока не ясна. Затронуты Intel HD 4000-5000 и некоторые Iris.


    1. Dmitry_7
      07.10.2017 12:03

      Страшно жить в этом вашем мак мире


    1. dmial
      07.10.2017 17:46
      -2

      Ух, пятой точкой чуял, что не стоит переходить с Windows и Linux на macOS :-)


      1. Valery4
        07.10.2017 21:46

        Не стоит. Теперь то вы уже достоверно убедились.


  1. fukkit
    09.10.2017 00:41

    Эпл, чо ты делаешь?! *****, прекрати!