Специалисты безопасности Apple iOS поделились интересной информацией с изданием MIT Technology Review. Согласно их информации, Apple пошла на беспрецедентный для себя шаг, оставив код ядра iOS 10 в открытом виде. Известно, что Apple славится своим закрытым подходом не только к разработке приложений для iOS, но также к ее системным компонентам. До выхода предварительной версии iOS 10, Apple подвергала исполняемый код и данные ядра этой мобильной ОС операциям шифрования и обфускации, создавая тем самым большие проблемы даже тому узкому кругу security-ресерчеров, которые занимаются анализом безопасности iOS.



Известно, что в случае стоимости эксплойтов для актуальных версий iOS, речь идет о больших суммах денег. Недавно мы писали, что эксплойт для успешного обхода механизмов anti-bruteforce кода разблокировки iOS был продан неизвестными хакерами ФБР за сумму, превышающую миллион долларов. Компания Zerodium, которая также специализируется на покупке информации об уязвимостях и эксплойтах, предлагала миллион долларов за RCE+rootLPE эксплойт для iOS. Закрытость iOS, механизмы ее защиты и очень узкий круг исследователей безопасности iOS являются основными причинами таких высоких сумм, которые могут быть выплачены исследователям за эксплойты.

Ранее мы также писали, что Apple удалила из App Store легитимное приложение System and Security Info известного исследователя безопасности iOS под ником i0n1c. Приложение прошло все необходимые проверки, которые предъявляются App Store по отношению к размещаемым приложениям, но было удалено, поскольку, по мнению Apple, показывала слишком детальную информацию о системе пользователя. Этот шаг в очередной раз подогрел спекуляции по поводу закрытости iOS.

Apple часто обвиняют в отсутствии лояльности к security-ресерчерам, которые занимаются поиском уязвимость в iOS. Ранее в блоге мы указывали, что подобная тактика сыграла с Apple злую шутку, так как спецслужбы просто обратились к хакерам по поводу разблокировки iOS и отказались потом предоставлять Apple информацию об используемых уязвимостях. Такая ситуация является следствием того, что у компании отсутствует программа bug bounty и она не выплачивает денежное вознаграждение за найденные уязвимости в продуктах.

Вышеуказанное издание TechCrunch предполагает, что Apple пошла на своего рода уступки и упростила задачу security-ресерчерам iOS, которые могли бы сослужить хорошую службу компании и помочь более быстрому поиску уязвимостей в коде ядра. Как правило, подобные уязвимости относятся к типу Local Privilege Escalation (LPE) и присутствуют в системных компонентах и ядре iOS, они позволяют запускать в ОС произвольный код с высокими системными привилегиями.

The kernel cache doesn’t contain any user info, and by unencrypting it we’re able to optimize the operating system’s performance without compromising security

Комментарий эксперта Apple, который объясняет снятие крипто-защиты с ядра предварительной версии iOS 10 заботой о производительности.

Apple публикует информацию об обнаруженных уязвимостях в ядре с своих бюллетенях безопаности, а также рассылке Apple Product Security. Обнаруженные в ядре iOS уязвимости имеют следующее описание. В описании указывается список устройств под управлением iOS, которые подлежат обновлению, а также описание самой уязвимости.

Kernel
Available for: iPhone 4s and later,
iPod touch (5th generation) and later, iPad 2 and later
Impact: An application may be able to execute arbitrary code with
kernel privileges
Description: A use after free issue was addressed through improved
memory management.
CVE-ID

Описание типичной LPE-уязвимости в ядре iOS.

Ядро любой ОС имеет ключевую роль в вопросах ее функционирования, iOS не является исключением. Так, актуальные 64-битные версии Windows снабжены специальным механизмом защиты под названием PatchGuard, который контролирует целостность ядра Windows, а также указателей в критических структурах объектов ядра. Метод модификации ядра, а также системных указателей объектов ядра используется руткитами для получения управления в процессе работы Windows. Ядро Windows также использует механизмы обфускации и шифрования своего кода и данных при реализации PatchGuard.

Кроме реализации базовых примитивов ОС, таких как процессы, работа с памятью и микропроцессором, ядро iOS также специализируется на ключевых вопросах обеспечения безопасности, включая, проверку цифровой подписи запускаемых приложений, а также загрузчика, что является гарантом безопасности и легитимности используемой на устройстве копии iOS.
Поделиться с друзьями
-->

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


  1. Fen1kz
    23.06.2016 18:16
    -3

    Повышает ли это шансы на джейлбрейк?


    1. SarganSaor
      23.06.2016 21:05
      -4

      Повышает, для того и не шифровали, чтобы JB выпустили. Это конечно мои домыслы, но JB и как следствие пиратство, это необходимое условие популярности платформы iOS, поэтому парни из Купертино решили вот так вот завуалированно помочь.


      1. neomedved
        24.06.2016 11:32

        То есть при девяти прошлых версиях iOS Apple не знала секрет своего успеха, а сейчас догадалась?


      1. rubero
        24.06.2016 11:32

        Вы мобильные ОС перепутали.


    1. Jebediah_Kerman
      23.06.2016 23:15
      +1

      1. silvansky
        24.06.2016 10:48

        Осталось дождаться когда выйдет стабильная (читай — с минимальным риском окирпичивания) версия JB, да ещё и относительно простая в установке.


    1. yvm
      23.06.2016 23:32
      +4

      Повышает, но и закрывать их будут быстро. Похоже win-win.


      1. silvansky
        24.06.2016 10:51

        Так закрывают и сейчас быстро. Причём радикально — уязвимые версии нельзя больше ставить, Apple их не подписывает.


    1. d_olex
      24.06.2016 08:36
      +3

      Незначительно, у всех топовых джейлбрейк тим и так давно есть на руках 0day эксплойты которые дают доступ к GID ключу. Шансы на выпуск публичного джейлбрейка повысило бы снижение кол-ва $$$ которое за него можно выручить, чего в ближайшее время не случится совершенно точно :)


      1. creker
        24.06.2016 11:34

        А пруф где-то есть на это? Потому что мне лично pod2g рассказывал, что доступа к ядру у них нет и не сильно то нужно. Да, было легче раньше, когда был уязвимый bootrom и все прошивки можно было расшифровать, но это давно не так и особенно не мешает процессу.


        1. d_olex
          24.06.2016 11:47
          +1

          Какого рода пруфов вы хотите? Я знаю о конкретных рабочих атаках которые позволяют исполнить код на уровне бутлоадера на современных моделях, технических подробностей увы не раскрою (источник знаний — личное знакомство с технической стороной темы).


          1. creker
            24.06.2016 11:58
            -1

            Таких, которые бы позволили поверить в это балабольство. Раз нет, то остается то, что есть и слова самого автора джейлбрейков (из тех самых «топовых джейлбрейк тим») — доступа к бинарникам ядра нет и не сильно нужно


            1. d_olex
              24.06.2016 12:28

              За пруфами приходите на почту (pgp ключ в профиле), когда сможете учавствовать в дискуссии хотя бы на уровне «я считаю что таких багов нет потому что я провел следующие исследования ...» — подскажу в какую сторону копать :)


              1. creker
                24.06.2016 14:36

                Замечательный уровень дискуссии, где мне надо опровергать чужие бездоказательные утверждения. А тем более еще доказывать свою пригодность. Не хотите отвечать — ваше дело. До тех пор остается горькая правда — с тех пор, как пофиксили bootloader времен iPhone 4, никаких ключей достать не могут.


    1. creker
      24.06.2016 11:37

      Не особенно. В ядре все равно вряд ли кто копается в поисках уязвимости, слишком много там кода. Из того, что мне рассказывали, все банально и просто — фаззер API ядра, коих у iOS очень много. Упростит это разве что анализ потенциальных уязвимостей и, соответственно, как скоро выпустят рабочий джейл.


      1. d_olex
        24.06.2016 12:40

        Ерунда, не копаясь в ядре — full stack jailbreak будет тяжело сделать. Исполнить произвольный код и обойти sandbox с помощью чисто user mode багов еще можно, но для того что бы нормально исполнять неподписанный код — эксплойтить ядро в любом случае понадобится, в противном случае максисмум что у вас будет это ROP и исполнение кода в jit aware процессах типа сафари.


        1. creker
          24.06.2016 14:24

          Тяжело, но делают, как видим. Я нигде не говорил, что ядро не нужно ломать и прекрасно знаю, что одним user-land эксплоитом дело не обходится никогда. Я говорю то, что слышал от самих авторов джейлбрейка — расшифровать ядро они не могут, но справляются и без этого.


      1. d_olex
        24.06.2016 12:45

        > В ядре все равно вряд ли кто копается в поисках уязвимости.
        И да, запишитесь на тренинг к Стефану что-ли, они именно этим там и занимаются :)


  1. Delphinum
    23.06.2016 18:44
    +2

    Оу, Apple таки выросла из уровня — защищаю путем скрытия исходников, а не поиска дыр в безопасности. Это радует.


  1. BlackMetal
    23.06.2016 23:15
    -9

    Так когда они выпустят iOS под лицензией GNU GPL?


    1. Karamax
      24.06.2016 17:39

      GNU'того яблоко мы вряд ли дождёмся в обозримой перспективе. Хотя если пал Microsoft-цитадель проприетарщины, то всё возможно.


      1. BlackMetal
        25.06.2016 17:41

        Да нет, не пал, к сожалению.


    1. AntonVirtual
      27.06.2016 12:54

      А зачем им это делать?


      1. BlackMetal
        27.06.2016 13:08

        Для модифицирования системы другими людьми, использования кода, показа, что система действительно полностью безопасна.


        1. AntonVirtual
          27.06.2016 14:16

          Зачем Apple модифицирование ОС другими людьми и использование кода?


          1. BlackMetal
            27.06.2016 17:23

            1. Улучшения для их собственной ОС.
            2. Свобода для сообщества.


            1. AntonVirtual
              27.06.2016 17:52

              Отличный аргумент.

              — Когда Apple выпустит iOS в свободный доступ?
              — Зачем им это делать?
              — Чтобы выпустить в свободный доступ.
              — А зачем им это делать?
              — Чтобы сделать хорошо любителям open source.
              — А зачем Apple это нужно?


              1. BlackMetal
                28.06.2016 01:25

                Я же написал выше, ты чего.


  1. pirate_tony
    24.06.2016 11:32
    +1

    «Защита в windows» — это название такое, оправдание раздутого штата сотрудников. Получить доступ к ядру windows можно в тысячи раз проще чем к bsd подобным ос


    1. WGH
      02.07.2016 13:46

      Только на FreeBSD до сих пор ASLR нет…


      1. pirate_tony
        03.07.2016 14:53

        Ну как нет? ASLR разрабатывалась в ядре линуса более 10 лет назад и параллельно имплементировалось в BSD. Это показывает почему в xBSD внедрить было легче чем в wondows. Гораздо позднее появилась версия у microsoft. Например, эффективность (стоимость инструкций в секунду) ASLR в ядре дарвина на маках выше чем в windows — эхо из прошлого BSD.


        1. WGH
          03.07.2016 18:00

          Ну вот так нет. В других *BSD ASLR таки есть, но на FreeBSD нет.


  1. OdNairy
    24.06.2016 11:32
    +1

    Все-таки немного не так. Никакой код ядра в чистом виде не оставляли, обфускации кода в ядре тоже небыло. Была обфускация путем шифрования (в источнике: kernel obfuscated by encryption).
    В качестве ядра в macOS используется XNU (форк от BSD kernel) с открытым исходным кодом. Исходники версии, используемой в iOS, остаются закрытыми.

    То шифрование, которое использовалось над ядром само по себе не представляло большой защиты, так как ключи для расшифровки прошивок получали достаточно быстро. Достаточно погуглить «decrypt kernelcache», чтобы получить множество статей с описанием и страниц с ключами для дешифрования kernelcache.

    Если есть интерес к более подробной технической стороне работы ядра, советую почитать эти статьи:
    * www.theiphonewiki.com/wiki/Kernel
    * www.theiphonewiki.com/wiki/Kernelcache


    1. creker
      24.06.2016 11:40

      А можно все таки ссылку, как они эти ключи получали. Потому что я знаю только один способ — уязвимый bootrom iPhone 4. С тех пор никаких ключей нет и не предвидится, а с ними никакого доступа к образу прошивки и ядру в частности.


      1. OdNairy
        24.06.2016 16:00

        Могу поделиться с вами ссылкой https://ipsw.me/keys на которой вы сможете найти ключи и стартовые векторы для всех версий iOS всех 32-bit девайсов. Статьи о том, как именно происходит извлечение ram-ключей я не нашел, но вас может заинтересовать эта статья: https://www.theiphonewiki.com/wiki/Firmware_Keys
        К сожалению нет возможности получить ключи для ARM64. Извиняюсь, что ввел в заблуждение — был уверен, что у ребят все совсем на потоке.