Как стать автором
Обновить

Считывание защищенной прошивки из флеш-памяти STM32F1xx с использованием ChipWhisperer

Время на прочтение9 мин
Количество просмотров51K
Всего голосов 39: ↑39 и ↓0+39
Комментарии45

Комментарии 45

Какой смысл считывать залоченную прошивку, если написать полный аналог выйдет намного дешевле, чем разбираться в дизассемблированной мути?
P.S. Те, кто лочит прошивки на МК, будут вариться в одном котле вместе с патентными троллями, микрокредиторами и прочей нечистью.
Это если нет такой пакости, как взаимодействие МК с неизвестным железом. Иногда дизассемблирование прошивки — самый прямой путь к получению протокола взаимодействия с неведомой чёрной плюмбой на плате.
НЛО прилетело и опубликовало эту надпись здесь
nope!
НЛО прилетело и опубликовало эту надпись здесь
Те, кто лочит прошивки на МК, будут вариться в одном котле вместе с патентными троллями, микрокредиторами и прочей нечистью.
Вы, по всей видимости, альтруист. Не боитесь остаться без штанов с такой жизненной позицией?

PS: Первое правило бизнеса — защищайте свои инвестиции © «Этикет банкира», 1775 г.
Free Software для вас ничего не говорит? Сочувствую.
Да уж, сколько здесь проприетастов… Аж страшно!
Ну что же ты как Диоген в бочке не живёшь? Наверное и кушаешь каждый день, ай-яй-яй! Да ещё небось и квартира есть и машина, безобразие.
Free Software != Open Source
Естественно. Я радею за Free Software. Опенсорс — чушь собачья!
Этот комментарий очень расстраивает SpringSource, Mozilla, Linux Foundation, и других крупных контрибуторов open source.
Это с каких пор Linux перестал быть Free Software?
И да, советую-таки почитать, чем open software отличается от free! Первое означает, что лицензия может быть любой — даже проприетарной, абы код был открыт. Вторая же требует однозначной вирусной свободной лицензии.
Т.о. настоящую свободу дает лишь free software!

а с каких пор Линукс перестал быть open source?
free software без исходников не нужно. смысл, если я не могу допилить под себя?

Если software (пусть даже free) с вами говорит, то у меня для вас плохие новости…
FreeSoftWare — иная бизнес-модель. У нас, скажем, в софте 50 человеколет наукоемкого кода. Это embeded, то есть железка. Китайцы все могут повторить дешевле — кроме кода. Пока единичные экземпляры — защищает необходимость обслуживания. Будет массовая серия — защита только в закрытости кода.

FreeSoftware живет в некоммерческом сегменте. Или там, где нужна поддержка. А в наукоемком массовом — не живёт.
Ну давай, напиши мне прошивку на какой-нибудь хроматограф…
Да запросто. Составляй техзадание, а я оглашу сумму.
Ха. Если бы было полное ТЗ, то любой дурак бы хроматограф повторил. Потому как закодировать алгоритмы — говно вопрос, а вот эти алгоритмы придумать — дело нифига не простое.

И да. В открытом доступе лежат прошивки того, что не имеет особенной ценности: ширпотреб всякий, гиковские приблуды, ардуиноподобные поделия, термометры всякие и прочее с алиэкспресса.
Без полного ТЗ — это читерство )
Элементарно все разрабатывается. За 3-5 лет и грант в N миллионов рублей хорошая команда все эти алгоритмы разработает и получит желаемую железяку. Далее код, схемы и документация выкладываются на гитхаб. Все счастливы.
Хроматографы делают уже много десятков лет. Поэтому те, кто в теме, как свои пять пальцев все эти алгоритмы знают. И стоимость разработки можно очень даже уменьшить. Просто вот, например, я совсем не в теме, и мне понадобилось бы нанимать внешних специалистов.
Ну, а если надо разработать астрофизическую аппаратуру, автоматизировать что-нибудь — то добро пожаловать, все будет намного дешевле…
Вот царю вместо того, чтобы провоцировать бомжей и алкашей на размножение, стоило бы увеличить количество грантов при условии, что все результаты разработок будут в итоге в свободном доступе по свободным лицензиям. Можно было бы и недорогие МРТ сделать, и всякую прочую медтехнику, которую приходится за бешеные баксы за рубежом покупать. Заодно и вместо прошивок для игровых приставок работали бы в нормальном линуксе!!!
А царь-то тут причём?
Где в открытом доступе документация на хороший, годный прибор с исходниками? Ну хрен с ним, с хроматографом. Где в открытом доступе инфа на хотя бы цифровой осциллограф уровня Тектроникса 220 мохнатого года? Со схемами, исходниками. Где? Нету…
И что за привычка смешивать всё в кучу.
Царь ему мешает, насмешил. Ну идите к Маску тогда, предложите: он вам — грант на ахулиард денег, вы ему — все разработки в открытом доступе, чтобы все пользовались, недорогие МРТ делали и прочую медтехнику… Маск бы вас нахрен послал, с такими-то идеями.
Потому что капитализм-с, и защита интеллектуальной собственности и прочее. А он везде одинаков, что тут, что там.
Капитализм — загнивающий тупик. Только социализм способен повернуть этот мир к лучшему.
И первая вешка на пути к социализму — свободное ПО! А мерзопакостных проприетастов надо всеми доступными средствами банкротить.

Ага один тупик уже отгнил в виде сесесер

ссср ни с социализмом, ни с коммунизмом не имеет ничего общего
за чей счет банкет?
За 3-5 лет и грант в N миллионов рублей хорошая команда все эти алгоритмы разработает и получит желаемую железяку. Далее код, схемы и документация выкладываются на гитхаб. Все счастливы.
С какого бодуна кто-нибудь будет вкладывать N миллионов рублей в то, что потом будет выложено на гитхаб? В бизнесе любые инвестиции делаются с целью заработать денег: не просто отбить потраченное, а отбить потраченное плюс получить прибыль. Как Вы себе видите этот заработок после выкладывания результата на гитхаб? Когда любой условный «китаец», не вложивший ни копейки ни минуты в разработку, сможет спокойненько клепать эти железки и продавать их налево-направо чуть ли не задаром.
man государственный грант.
Все, что сделано на деньги таких грантов, просто обязательно должно выкладываться в свободный доступ под свободными лицензиями!
Вы так говорите, как будто государство берёт эти деньги из воздуха. Нет — государство берёт их из собственных природных богатств (которые отнюдь не бесконечны) и из наших карманов в виде налогов. И Вы хотите, чтобы государство разбазарило эти деньги таким бездарным образом — тупо подарив их условным «китайцам»? Такое государство обречено.
Да пусть хотя бы так. Уж лучше, чем выкидывать деньги налогоплательщиков на яхты всяких воров и жуликов!
И да, плохо то государство, которое не может реализовать коммерчески выгодные проекты в виде хоть тех же МРТ дешевле, чем это сделают китайцы!!!
Ну, а лично я с удовольствием бы увидел серийные железяки, созданные на основе моих схем и кода на гитхабе. Это наверняка будет намного дешевле, чем делать самому!!!
Ну, есть ghidra. Так что не обязательно дизасмить.
И решил один человек уйти от несправедливого мира под землю. Нет не умереть, и не замуровать себя заживо. А начать новую жизнь в подземном городе по среди пустыни где будет все чего не хватало в других городах. Прикупил купил кусок пустыни, и созвал всех кто хочет попасть в его новый мир приложить силы построить его удивительный город где не будет все «залочено» и спрятано

Но пришло не так много людей. Мало того пожертвования на необходимые затраты оставляли желать лучшего. Прошли 1960-е потом 1970-е и энтузиазм стал еще меньше. Но неутомимый идеолог все таки призывал людей разделить его затею. Тяжелая жизнь посвященная строительству города его мечты оборвалась несколько лет назад в уже в нашем столетии, полностью охладив интерес к его начинанию. Общий объем жилплощади построенной в странном «небоскребе навыворот» куда больше чем желающих там жить. Люди в т.ч. и не добившиеся успеха программисты, больше стремятся находить себе теплые места в автомобилях или канализационных коллекторах и каналах, нежели в его городе, полном очень необычных инженерных решений.
Так же вспоминается активная личная жизнь Клары Цеткин ее сына и Розы Люксембург в их идее построить дома с общим домашним хозяйством для целой коммуны дома. Может стоит признать что утопии невозможны, как ее автор и написал автор «утопии», и что стоит лочить прошивки когда надо.
Сигналку на машины тоже лочить не надо? Или например охрану дома. )))
Там надо лочить ключ шифрования. Секретность алгоритма — security through obscurity.
очень интересная статья, а скажите можно ли сделать тоже самое с помощью ChipWhisperer-Lite?
У CW-Lite меньшая комплектация, в отличии от CW1200. Также CW-Lite является Open Source проектом.

Функционалы у CW1200 и CW-Lite практически идентичны (в CW1200 имеется дисплей, стоят другие транзисторы на Vcc-glitch). Поэтому приведенный в статье пример возможно повторить и с использованием CW-Lite, только параметры атаки будут немного отличаться.
Ничего нового нету, во вмешательстве в работу микропроцессорной системы внося помехи по линии либо линиям питания. В данном случае обход защиты только часть из того что можно сделать. Это кончено очень плохо что что старые серии микроконтроллеров stm32 содержат такую похабную дырку в защите как масочный загрузчик.
Надо сказать что постукивание по линии питания очень и очень «пропаливает» сам кристалл. Внутри кристалла, по шинам питания тоже конденсаторы стоят только их емкость в пикофорадах и долях пикофорада меряется, а сопротивление шин увы немаленькое доходит до сотых ома. При перекосе по питанию должен срабатывать BROWN-OUT, предохраняя от всего нехорошего, но это довольно медленная защита. Потому разработчик нарисовал конденсаторы по каждому входы питания, не от прихоти. Но при ударе по питанию возникают «сквознячки» с нарушением структуры полупроводниковых переходов и диффузией смещающей присадки в другой канал 3-валентной в 5-валентную и наоборот. Этому процессу вообще подвержены все полупроводники, но одно дело произойдет через 100 лет или совсем скоро. У меня например погорел контроллер на который я конденсатор внутреннего стабилизатора напаял при помощи без-смывочного флюса от местного гения химии, выставленного на базаре вместе с другими сомнительными химикатами. Достав паяльник в мороз на вытянутых мне показалось что паяльник выключен, но взявшись за него рукой я понял что греется и напаял оставшейся неповрежденной рукой, благо я амбидекстер, конденсатор восстановил работоспособность но микроконтроллера но увы не на долго.
Так что прочитав или нет но микроконтроллер вы убиваете. Каждый «стук» по питанию это день месяц или может год минус время отведенное микроконтроллеру. Надо сказать что таким образом «побитый» микроконтроллер, может проявить дефект в неожиданном месте.
Данный метод вмешательства в работу микроконтроллеров описывается в специальной литературе очень давно. Мы продемонстрировали его состоятельность на конкретном примере с использованием такого интересного инструмента как ChipWhisperer.

По поводу работоспособности МК после воздействия — честно говоря, злоумышленника по большому счету не волнует дальнейшая судьба атакуемого устройства.
Не волнует, но можно довести его до неработоспособности, аж так что перестанет читаться. Правда самый похабный способ, состоит в том что вся микросхема погружается в деполимиризующий химикат. (Дышать парами этого химиката крайне нежелательно поскольку происходит продукты деполимеризации тканей тела оказываются канцерогенами.) Достаочно микросхему промыть в бутил ацетате и она голенькая. Над полями памяти можно носить иголочку и считывать. Правда чем меньше разрешение литографического процесса в производстве микросхемы тем труднее это делать, и требуется соответственно более сложное оборудование. Есть еще способы этого избегать.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо большое за отзыв. Взломать можно в принципе всё, но только вопрос во времени, трудозатратах, ресурсах, и т.д. Действительно, описанная Вами серия МК имеет более развитую систему защиты, обойти которую в значительной степени труднее.
В микроконтроллерах серии STM32G031 (как в других сериях, не изучал) второй пункт уже может быть отсечён. Дело в том, что режим загрузки в нём выбирается с помощью байтов опций (option bytes). Блок байтов опций, отвечающий в том числе за источник загрузки МК, находится по адресам 0x1FFF7800...0x1FFF7807 (4 байта основных и 4 защитных, в них пишутся первые 4 байта в инвертированном виде). За загрузку там отвечают 3 бита:
Осталось убедиться, что корректное чтение этих адресов нельзя нарушить с помочью все той же глич-атаки…
В общем без исследования что-либо утверждать нельзя…
НЛО прилетело и опубликовало эту надпись здесь

Здравствуйте, спасибо за статью! Скажите, а каков правовой аспект такой атаки? Когда речь идёт о взломе программного обеспечения, при установке которого пользователь принимает лицензионное соглашение, то вроде бы этот вопрос понятен и достаточно освещён.

Но что если исследователь, назовем его так, указанным в статье способом будет вычитывать ПО из контроллеров стиральных машин, чтобы скопировать это ПО в сторонние контроллеры? Или делать такое считывание на заказ для третьих лиц? Какая статья РФ это запрещает делать и чем это грозит? И чем это отличается, скажем, от считывания/прошивки spi памяти на bios материнских плат, что делают в каждом втором сервис-центре? А если выложить прошивку в открытый доступ?

Добрый день.

По поводу уточнения правовых аспектов взлома ПО и конкретных статей УК РФ, регулирующих эти аспекты, следует обратиться в организацию с соответствующим юридическим профилем деятельности. Там смогут провести более квалифицированную консультацию. От себя можем сказать, что в статье мы не призывали к взлому ПО, а лишь демонстрировали несовершенство защиты определенных классов микроконтроллеров от действий злоумышленников, показали их уязвимость от подобных side-channel атак.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий