Рубрика «прошивки»

Прошивки OpenWrt: атака на цепочку поставок - 1


Несколько дней назад я обновлял сеть своей домашней лаборатории и решил обновить OpenWrt роутера 1. Подключившись к LuCI (веб-интерфейсу OpenWrt), я заметил раздел Attended Sysupgrade и попробовал обновить прошивку с его помощью.

В описании говорилось, что он собирает новую прошивку при помощи онлайн-сервиса.

Прошивки OpenWrt: атака на цепочку поставок - 2

Мне стало любопытно, как это работает, так что я приступил к исследованиям.Читать полностью »

Реверс-инжиниринг новой функции iOS Inactivity Reboot - 1


В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.

Безопасность до и после первой разблокировки

А вы знали, что первый ввод пароля после включения телефона сильно отличается от его дальнейшего ввода для разблокировки телефона?

При первом вводе пароля разблокируется хранилище ключей в Secure Enclave Processor (SEP), шифрующем пользовательские данные на iPhone.

Состояние до первого ввода пароля называется Before First Unlock (BFU). Из-за шифрования пользовательских данных iPhone ведёт себя немного иначе при последующих разблокировках. Вы увидите, что Face ID и Touch ID не работают, и требуется ввод пароля. Но можно заметить и более тонкие отличия: поскольку пароли Wi-Fi зашифрованы, iPhone не будет подключаться к сетям Wi-Fi. Если SIM не защищена PIN-кодом, то iPhone сможет подключаться к сотовым сетям. Это означает, что вы сможете получать телефонные вызовы. Однако при получении вызова, даже если номер есть в контактах, имя контакта не будет отображаться, потому что контакты ещё не дешифрованы. Аналогично, при получении уведомлений о новых сообщениях вы увидите, что получили сообщения, но их предпросмотр будет недоступен. Можете попробовать сами!Читать полностью »

image

Друзья! А вы помните такие мобильные телефоны, как Siemens? Когда-то у всемирно известного консорциума, занимающегося выпуском различного силового оборудования и поездов, было собственное мобильное подразделение, которое успешно конкурировало в конце 90х и начале 2000х годов. Многие мои читатели «постарше» наверняка вспомнят, а то и сами владели такими легендарными моделями, как Siemens SL45, ME45, C55, C65, S65, S75! Но немногие знают, что в своё время эти девайсы были сродни современным Android-смартфонам с разблокированным загрузчиком: энтузиасты быстро смогли разобраться в алгоритме генерации ключей для загрузчика и начать делать патчи, которые фактически превращали «тормозной» телефон в почти настоящий смартфон с полноценной многозадачностью! Недавно мне подарили целых три телефона Siemens, которые носят статус культовых: Siemens C65, Siemens C75 и Siemens S75! Два девайса из трёх были в замечательном состоянии, но имели некоторые проблемы в аппаратной части. В сегодняшнем ностальгическом материале, мы с вами: вспомним о том, какие телефоны делали Siemens в своё время и на каких аппаратных платформах они работали, продиагностируем, проведем аппаратный ремонт и составим список самых частых болячек устройств на платформе S-Gold, рассчитаем ключи для загрузчика, пропатчим, накатим эльфпак и посмотрим, какой же была моддинг-сцена телефонов в нулевых! Интересно? Тогда жду вас под катом!Читать полностью »

Загружаем OpenIPC по сети на камеру без удаления заводской прошивки - 1

Многие уже слышали о проекте OpenIPC, который представляет собой альтернативную универсальную прошивку для камер видеонаблюдения. Сегодняшний пост для тех, кто хочет попробовать этот софт, кто дружит с Linux, но далёк от программатора, паяльника, фена и многих подобных вещей, которые, как правило, сопровождают смену прошивки и путь обратно к заводской. Ведь многие боятся, что залив новую прошивку, она не заработает, а дороги к родной уже не будет. И эти опасения вполне оправданы, потому как на большинстве плат производители всеми средствами ограничивают возможности создания бэкапов. С каждой новой версией это становится сделать всё сложнее. Ещё такой вариант загрузки будет удобен администраторам, кому требуется обслуживать огромное количество одинаковых камер, ведь одно изменение в директории обновит сразу все камеры.

Из дополнительных железок нам понадобится мультиметр, USB UART-адаптер на 3.3 вольта и dupont-проводки от макетной платы, чтобы подключиться к камере. Сегодня будем настраивать загрузку OpenIPC на камере с сервера вместо классической загрузки с микросхемы флэш-памяти. Если понравится, можно даже оставить работать камеру таким образом навсегда.

Особенно такой вариант будет удобен тем, кто разрабатывает программы для камеры, и нужно быстрым и удобным способом подкидывать в систему программы, модули ядра, менять ядро и саму корневую файловую систему. А также тем, кто использует камеру как одноплатный компьютер вместо плодово-ягодных плат.Читать полностью »

Доверяй, но проверяй - 1


Не так давно я считал, что обновление программного обеспечения от производителя на роутерах и подобных им «железках» обязательно, и переход на новую стабильную версию гарантирует временную безопасность. Почитав в интернете мнения пользователей, которые с этим не согласны и были очень убедительны, мои розовые очки разбились, радужных единорогов я больше не увижу, и жизнь стала не такой простой как была. Оказалось, новые прошивки, скачанные у официального производителя «железки», можно считать устаревшими. За точку входа в эту тему предлагаю взять переведённую статью. Помимо интересной и полезной информации о том, как вскрывать бинарники, автор утверждает, что если заглянуть в прошивку, можно обнаружить устаревшую версию ядра Linux. Я решил всё-таки проверить этот довод самостоятельно и вставить свои дилетантские «15 копеек». Заодно провести разведку в области, где я ещё не бывал. Для удовлетворения интереса будет достаточным определить версию ядра прошивки. На время написания статьи последняя версия ядра kernel — 6.0.9 от 16.11.2022. Вскрыть и выгрузить прошивку из приборов, которые описаны в статье, у меня не было возможности. Поэтому воспользуюсь прошивками, скачанными с сайта производителя.Читать полностью »

Аппаратный взлом жёсткого диска - 1

Жёсткие диски: если вы читаете эту статью, то с большой вероятностью у вас есть одно или несколько таких устройств. Они довольно просты и, по сути, представляют собой набор 512-байтных секторов, пронумерованных возрастающими адресами, также называемыми LBA (Logical Block Address). Компьютер, к которому подключен жёсткий диск (hard drive, HD), может считывать и записывать данные в эти сектора. Обычно используется файловая система, абстрагирующая все эти сектора до файлов и папок.

Неспециалисту может показаться, что оборудование HD должно быть довольно простым: достаточно всего лишь устройства, подключаемого к порту SATA, которое может позиционировать свои головки чтения/записи и считывать или записывать данные на пластины. Однако их работа намного сложнее: разве жёсткие диски не занимаются обработкой сбойных блоки и атрибутов SMART, и не имеют кэша, с которым тоже каким-то образом нужно работать?

Всё это подразумевает, что в жёстком диске есть что-то умное, а умность устройства подразумевает возможность его взлома. Меня всегда интересовали возможности взлома, поэтому я решил узнать, как жёсткие диски работают на немеханическом уровне. Подобные исследования уже проводились с разными видами оборудования, от PCI-карт расширения и встроенных контроллеров до ноутбуков и даже клавиатур Apple. Обычно исследования проводились для того, чтобы доказать, что возможность взлома этих устройств может привести к компрометации ПО, поэтому я захотел воспользоваться тем же подходом: создавая этот хак, я стремился создать жёсткий диск, способный обходить программную защиту.
Читать полностью »

Недавно на GoTo Chicago я читала лекцию на эту тему и подумала, что будет неплохо написать статью с выводами. Этот пост посвящён тому, почему прошивки с открытым исходным кодом важны для безопасности.

Уровни привилегий

В типичном стеке у вас различные уровни привилегий.

  • Кольцо 3. Приложения: минимальное привилегий, за исключением песочницы в пользовательском пространстве, которая ещё больше ограничена.
  • Кольцо 0. Ядро: ядро операционной системы, в случае ОС с открытым исходным кодом вы видите его код.
  • Кольцо −1. Гипервизор: мониторинг виртуальных машин (VMM), создаёт и запускает виртуальные машины. В гипервизорах с открытым исходным кодом, таких как Xen, KVM, bhyve и другие, вы видите код.
  • Кольцо −2. Режим управления системой (SMM), ядро UEFI: проприетарный код, подробнее об этом ниже.
  • Кольцо −3. Движок управления: проприетарный код, подробнее об этом ниже.

Отрицательные кольца указывают на уровни с привилегиями больше, чем у нулевого.
Читать полностью »

image

В начале июля компания Intel выпустила два security advisory (SA-00112 и SA-00118), в которых описала исправления в прошивке Intel Management Engine. Оба бюллетеня безопасности описывают ошибки, позволяющие атакующему произвольное выполнение кода на внутреннем процессоре PCH (Minute IA).

Эти ошибки аналогичны тем, которые специалисты по безопасности компании Positive Technologies обнаружили в ноябре прошлого года (SA-00086). Однако история на этом не закончилась, и теперь Intel выпустила новые исправления уязвимостей в ME.Читать полностью »

Расшифровка обновлений одного популярного сотового модема: метод Дмитрия Склярова - 1

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

Название производителя модема убрано, и некоторые имена файлов специально изменены, так как хочется заострить внимание на самой задаче — и на интересном подходе к ее решению. Кстати, в последних моделях модемов этого производителя такой метод уже не работает. Но не исключено, что он может быть использован и в других случаях.Читать полностью »

android l nexus 4

Только вчера на Хабре публиковалась новость о том, что Google выложил preview-версию исходного кода Android L. Сегодня же в Сети появилась информация о том, что новую версию Adnroid, Android L, портировали на Nexus 4.

Текущая версия Android L для Nexus 4 основана на официальном (девелоперском) билде для Nexus 5. Порт для Nexus 4 — нефициальный, да еще и основан на версии для разработчиков, так что глюков/багов может быть еще больше, чем в официальной девелоперской версии.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js