
Известно, что в случае стоимости эксплойтов для актуальных версий 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)
Delphinum
23.06.2016 18:44+2Оу, Apple таки выросла из уровня — защищаю путем скрытия исходников, а не поиска дыр в безопасности. Это радует.
BlackMetal
23.06.2016 23:15-9Так когда они выпустят iOS под лицензией GNU GPL?
Karamax
24.06.2016 17:39GNU'того яблоко мы вряд ли дождёмся в обозримой перспективе. Хотя если пал Microsoft-цитадель проприетарщины, то всё возможно.
AntonVirtual
27.06.2016 12:54А зачем им это делать?
BlackMetal
27.06.2016 13:08Для модифицирования системы другими людьми, использования кода, показа, что система действительно полностью безопасна.
AntonVirtual
27.06.2016 14:16Зачем Apple модифицирование ОС другими людьми и использование кода?
BlackMetal
27.06.2016 17:231. Улучшения для их собственной ОС.
2. Свобода для сообщества.AntonVirtual
27.06.2016 17:52Отличный аргумент.
— Когда Apple выпустит iOS в свободный доступ?
— Зачем им это делать?
— Чтобы выпустить в свободный доступ.
— А зачем им это делать?
— Чтобы сделать хорошо любителям open source.
— А зачем Apple это нужно?
…
pirate_tony
24.06.2016 11:32+1«Защита в windows» — это название такое, оправдание раздутого штата сотрудников. Получить доступ к ядру windows можно в тысячи раз проще чем к bsd подобным ос
WGH
02.07.2016 13:46Только на FreeBSD до сих пор ASLR нет…
pirate_tony
03.07.2016 14:53Ну как нет? ASLR разрабатывалась в ядре линуса более 10 лет назад и параллельно имплементировалось в BSD. Это показывает почему в xBSD внедрить было легче чем в wondows. Гораздо позднее появилась версия у microsoft. Например, эффективность (стоимость инструкций в секунду) ASLR в ядре дарвина на маках выше чем в windows — эхо из прошлого BSD.
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/Kernelcachecreker
24.06.2016 11:40А можно все таки ссылку, как они эти ключи получали. Потому что я знаю только один способ — уязвимый bootrom iPhone 4. С тех пор никаких ключей нет и не предвидится, а с ними никакого доступа к образу прошивки и ядру в частности.
OdNairy
24.06.2016 16:00Могу поделиться с вами ссылкой https://ipsw.me/keys на которой вы сможете найти ключи и стартовые векторы для всех версий iOS всех 32-bit девайсов. Статьи о том, как именно происходит извлечение ram-ключей я не нашел, но вас может заинтересовать эта статья: https://www.theiphonewiki.com/wiki/Firmware_Keys
К сожалению нет возможности получить ключи для ARM64. Извиняюсь, что ввел в заблуждение — был уверен, что у ребят все совсем на потоке.
Fen1kz
Повышает ли это шансы на джейлбрейк?
SarganSaor
Повышает, для того и не шифровали, чтобы JB выпустили. Это конечно мои домыслы, но JB и как следствие пиратство, это необходимое условие популярности платформы iOS, поэтому парни из Купертино решили вот так вот завуалированно помочь.
neomedved
То есть при девяти прошлых версиях iOS Apple не знала секрет своего успеха, а сейчас догадалась?
rubero
Вы мобильные ОС перепутали.
Jebediah_Kerman
www.youtube.com/watch?v=z5Lto14kvuQ
silvansky
Осталось дождаться когда выйдет стабильная (читай — с минимальным риском окирпичивания) версия JB, да ещё и относительно простая в установке.
yvm
Повышает, но и закрывать их будут быстро. Похоже win-win.
silvansky
Так закрывают и сейчас быстро. Причём радикально — уязвимые версии нельзя больше ставить, Apple их не подписывает.
d_olex
Незначительно, у всех топовых джейлбрейк тим и так давно есть на руках 0day эксплойты которые дают доступ к GID ключу. Шансы на выпуск публичного джейлбрейка повысило бы снижение кол-ва $$$ которое за него можно выручить, чего в ближайшее время не случится совершенно точно :)
creker
А пруф где-то есть на это? Потому что мне лично pod2g рассказывал, что доступа к ядру у них нет и не сильно то нужно. Да, было легче раньше, когда был уязвимый bootrom и все прошивки можно было расшифровать, но это давно не так и особенно не мешает процессу.
d_olex
Какого рода пруфов вы хотите? Я знаю о конкретных рабочих атаках которые позволяют исполнить код на уровне бутлоадера на современных моделях, технических подробностей увы не раскрою (источник знаний — личное знакомство с технической стороной темы).
creker
Таких, которые бы позволили поверить в это балабольство. Раз нет, то остается то, что есть и слова самого автора джейлбрейков (из тех самых «топовых джейлбрейк тим») — доступа к бинарникам ядра нет и не сильно нужно
d_olex
За пруфами приходите на почту (pgp ключ в профиле), когда сможете учавствовать в дискуссии хотя бы на уровне «я считаю что таких багов нет потому что я провел следующие исследования ...» — подскажу в какую сторону копать :)
creker
Замечательный уровень дискуссии, где мне надо опровергать чужие бездоказательные утверждения. А тем более еще доказывать свою пригодность. Не хотите отвечать — ваше дело. До тех пор остается горькая правда — с тех пор, как пофиксили bootloader времен iPhone 4, никаких ключей достать не могут.
creker
Не особенно. В ядре все равно вряд ли кто копается в поисках уязвимости, слишком много там кода. Из того, что мне рассказывали, все банально и просто — фаззер API ядра, коих у iOS очень много. Упростит это разве что анализ потенциальных уязвимостей и, соответственно, как скоро выпустят рабочий джейл.
d_olex
Ерунда, не копаясь в ядре — full stack jailbreak будет тяжело сделать. Исполнить произвольный код и обойти sandbox с помощью чисто user mode багов еще можно, но для того что бы нормально исполнять неподписанный код — эксплойтить ядро в любом случае понадобится, в противном случае максисмум что у вас будет это ROP и исполнение кода в jit aware процессах типа сафари.
creker
Тяжело, но делают, как видим. Я нигде не говорил, что ядро не нужно ломать и прекрасно знаю, что одним user-land эксплоитом дело не обходится никогда. Я говорю то, что слышал от самих авторов джейлбрейка — расшифровать ядро они не могут, но справляются и без этого.
d_olex
> В ядре все равно вряд ли кто копается в поисках уязвимости.
И да, запишитесь на тренинг к Стефану что-ли, они именно этим там и занимаются :)