stringtranslate.com

Прошивка

Прошивка обычно хранится в EEPROM или флэш-памяти [1] , которая использует протокол ввода-вывода, такой как SPI .

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

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

Прошивка хранится в энергонезависимой памяти – либо в постоянном запоминающем устройстве (ПЗУ), либо в программируемой памяти, такой как EPROM , EEPROM или flash . Изменение прошивки устройства, хранящейся в ПЗУ, требует физической замены микросхемы памяти – хотя некоторые микросхемы не предназначены для удаления после изготовления. Программируемая память прошивки может быть перепрограммирована с помощью процедуры, иногда называемой перепрошивкой . [2]

Распространенными причинами смены прошивки являются исправление ошибок и добавление функций .

История и этимология

Эшер Оплер использовал термин «прошивка» в статье Datamation 1967 года как промежуточный термин между «аппаратным обеспечением» и «программным обеспечением». Оплер прогнозировал, что компьютерные системы четвертого поколения будут иметь записываемое хранилище управления (небольшую специализированную высокоскоростную память), в которое будет загружена микропрограмма микрокода . Многие программные функции будут перемещены в микрокод, а наборы инструкций можно будет настраивать, загружая разные прошивки для разных наборов инструкций. [3]

По мере того, как компьютеры начали усложняться, стало ясно, что сначала необходимо инициировать и запускать различные программы, чтобы обеспечить согласованную среду, необходимую для запуска более сложных программ по усмотрению пользователя. Это требовало программирования компьютера для автоматического запуска этих программ. Кроме того, поскольку компании, университеты и маркетологи хотели продавать компьютеры непрофессионалам с небольшими техническими знаниями, возникла необходимость в большей автоматизации, чтобы позволить непрофессионалу легко запускать программы для практических целей. Это привело к появлению программного обеспечения, которое пользователь не будет сознательно запускать, и это привело к программному обеспечению, о котором непрофессионал даже не будет знать. [4]

Первоначально прошивка противопоставлялась аппаратному обеспечению (самому ЦП) и программному обеспечению (обычным инструкциям, выполняемым на ЦП). Она состояла не из машинных инструкций ЦП, а из микрокода более низкого уровня, задействованного в реализации машинных инструкций. Она существовала на границе между аппаратным обеспечением и программным обеспечением; отсюда и название прошивка . Со временем популярное использование расширило слово прошивка , чтобы обозначать любую компьютерную программу, которая тесно связана с оборудованием, включая BIOS на ПК, загрузочную прошивку на смартфонах, компьютерные периферийные устройства или системы управления на простых потребительских электронных устройствах, таких как микроволновые печи , пульты дистанционного управления .

Приложения

Компьютеры

Прошивка ROM BIOS на материнской плате Baby AT

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

Прошивка компьютера может быть вручную обновлена ​​пользователем с помощью небольшой утилиты. Напротив, прошивка в устройствах массового хранения (жесткие диски, оптические дисководы, флэш-память, например, твердотельный накопитель) обновляется реже, даже когда для прошивки используется флэш-память (а не ПЗУ, EEPROM).

Большинство периферийных устройств компьютера сами по себе являются специализированными компьютерами. Такие устройства, как принтеры, сканеры, веб-камеры и USB-флеш-накопители , имеют внутреннюю прошивку; некоторые устройства также могут допускать обновление прошивки в полевых условиях. Для современных более простых устройств, таких как USB-клавиатуры , USB-мыши и USB-звуковые карты , тенденция заключается в интеграции памяти прошивки в ее микроконтроллер , а не в отдельной микросхеме EEPROM .

Примеры компьютерных прошивок включают в себя:

Обновление прошивки камеры Fuji Instax

Товары для дома и личного пользования

Потребительские устройства, такие как игровые консоли , цифровые камеры и портативные музыкальные плееры, поддерживают обновления прошивки. Некоторые компании используют обновления прошивки для добавления новых воспроизводимых форматов файлов ( кодеков ). Другие функции, которые могут меняться с обновлениями прошивки, включают графический интерфейс или даже время работы батареи. Смартфоны имеют возможность обновления прошивки по воздуху для добавления новых функций и исправления проблем безопасности.

Автомобили

С 1996 года большинство автомобилей используют бортовой компьютер и различные датчики для обнаружения механических проблем. С 2010 года современные автомобили также используют управляемые компьютером антиблокировочные тормозные системы (ABS) и управляемые компьютером блоки управления трансмиссией (TCU). Водитель также может получать информацию на панели приборов во время вождения таким образом, например, данные об экономии топлива в реальном времени и показания давления в шинах. Местные дилеры могут обновить большинство прошивок автомобилей.

Другие примеры

Другие приложения прошивки включают в себя:

Мигающий

Перепрошивка [6] подразумевает перезапись существующей прошивки или данных, содержащихся в EEPROM или модуле флэш-памяти, присутствующем в электронном устройстве, новыми данными. [6] Это может быть сделано для обновления устройства [7] или для смены поставщика услуг, связанных с функцией устройства, например, для смены одного поставщика услуг мобильной связи на другого или установки новой операционной системы. Если прошивка обновляется, это часто делается с помощью программы от поставщика и часто позволяет сохранить старую прошивку перед обновлением, чтобы к ней можно было вернуться, если процесс не удался или если новая версия работает хуже. Были разработаны бесплатные программные замены для инструментов прошивки от поставщика, такие как Flashrom .

Взлом прошивки

Иногда третьи стороны разрабатывают неофициальную новую или модифицированную («вторичную») версию прошивки для предоставления новых функций или разблокировки скрытой функциональности; это называется пользовательской прошивкой . Примером является Rockbox как замена прошивки для портативных медиаплееров . Существует множество проектов homebrew для различных устройств, которые часто разблокируют универсальные вычислительные функции в ранее ограниченных устройствах (например, запуск Doom на iPod ).

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

Большинство хаков прошивок — это бесплатное программное обеспечение .

Взлом прошивки жесткого диска

Московская « Лаборатория Касперского» обнаружила, что группа разработчиков, которую она называет « Equation Group », разработала модификации прошивки жестких дисков для различных моделей дисков, содержащие троянского коня , который позволяет хранить данные на диске в местах, которые не будут стерты, даже если диск будет отформатирован или очищен. [8] Хотя в отчете «Лаборатории Касперского» прямо не утверждалось, что эта группа является частью Агентства национальной безопасности США (АНБ), доказательства, полученные из кода различного программного обеспечения Equation Group, позволяют предположить, что они являются частью АНБ. [9] [10]

Исследователи из «Лаборатории Касперского» охарактеризовали действия Equation Group как самую продвинутую хакерскую операцию, когда-либо раскрытую, также задокументировав около 500 заражений, вызванных Equation Group, по меньшей мере в 42 странах.

Риски безопасности

Марк Шаттлворт , основатель компании Canonical , создавшей дистрибутив Ubuntu Linux , описал фирменную прошивку как риск безопасности, заявив, что «прошивка на вашем устройстве — лучший друг АНБ » и назвав прошивку «троянским конем колоссальных размеров». Он утверждал, что некачественная прошивка с закрытым исходным кодом представляет собой серьезную угрозу безопасности системы: [11] «Ваша самая большая ошибка — предполагать, что АНБ — единственное учреждение, злоупотребляющее этим положением доверия — на самом деле, разумно предположить, что все прошивки — это клоака небезопасности, любезно предоставленная некомпетентностью высочайшей степени производителей и компетентностью высочайшей степени очень широкого круга таких агентств». В качестве потенциального решения этой проблемы он призвал к декларативной прошивке, которая описывала бы «аппаратные связи и зависимости» и «не должна включать исполняемый код ». [12] Прошивки должны быть с открытым исходным кодом , чтобы код можно было проверить и верифицировать.

Пользовательские взломы прошивок также были сосредоточены на внедрении вредоносного ПО в такие устройства, как смартфоны или USB-устройства . Одна такая инъекция смартфона была продемонстрирована на Symbian OS на MalCon [13] [14] хакерском съезде . Взлом прошивки USB-устройства под названием BadUSB был представлен на конференции Black Hat USA 2014 [15], демонстрируя, как микроконтроллер USB-флеш-накопителя может быть перепрограммирован для подмены различных других типов устройств с целью получения контроля над компьютером, извлечения данных или шпионажа за пользователем. [16] [17] Другие исследователи безопасности работали дальше над тем, как использовать принципы, лежащие в основе BadUSB, [18] одновременно выпустив исходный код хакерских инструментов, которые можно использовать для изменения поведения различных USB-устройств. [19]

Смотрите также

Ссылки

  1. ^ "W25X20CL Datasheet". Winbond . Получено 2024-08-30 .
  2. ^ «Что такое прошивка?». 23 января 2013 г.
  3. ^ Оплер, Ашер (январь 1967 г.). «Программное обеспечение четвертого поколения». Датаматизация . 13 (1): 22–24.
  4. ^ «Введение в компьютерные приложения и концепции. Модуль 3: Системное программное обеспечение». Lumen.
  5. ^ Милевчик, Майкл (2000). «Обновление прошивки. Дополнительная скорость и безопасность». ПК Праксис (на немецком языке). 1/2000: 68.
  6. ^ ab "Flashing Firmware". Tech-Faq.com. Архивировано из оригинала 27 сентября 2011 г. Получено 8 июля 2011 г.
  7. ^ "HTC Developer Center". HTC . Архивировано из оригинала 26 апреля 2011 г. Получено 8 июля 2011 г.
  8. ^ "Equation Group: The Crown Creator of Cyber-Espionage". Kaspersky Lab . 16 февраля 2015 г. Архивировано из оригинала 2 декабря 2015 г.
  9. Дэн Гудин (февраль 2015 г.). «Как «всемогущие» хакеры, связанные с АНБ, скрывались 14 лет — и наконец были найдены». Ars Technica . Архивировано из оригинала 24.04.2016.
  10. ^ "Срочно: Касперский раскрывает взлом АНБ по всему миру с помощью бэкдора практически всех прошивок жестких дисков". Daily Kos . 17 февраля 2015 г. Архивировано из оригинала 25 февраля 2015 г.
  11. ^ «Шаттлворт призывает к декларативной прошивке». Linux Magazine . № 162. Май 2014. стр. 9.
  12. Шаттлворт, Марк (17 марта 2014 г.). "ACPI, прошивка и ваша безопасность". Архивировано из оригинала 15 марта 2015 г.
  13. ^ "MalCon 2010 Technical Briefings". Malcon.org . Архивировано из оригинала 2011-07-04.
  14. ^ "Хакер устанавливает бэкдор в прошивке Symbian". H-online.com . 2010-12-08. Архивировано из оригинала 21 мая 2013 года . Получено 2013-06-14 .
  15. ^ "Почему безопасность USB фундаментально нарушена". Wired.com . 2014-07-31. Архивировано из оригинала 2014-08-03 . Получено 2014-08-04 .
  16. ^ "BadUSB - Об аксессуарах, которые превращают зло". BlackHat.com . Архивировано из оригинала 2014-08-08 . Получено 2014-08-06 .
  17. ^ Карстен Ноль; Саша Крисслер; Якоб Лелль (2014-08-07). "BadUSB – Об аксессуарах, которые становятся злыми" (PDF) . srlabs.de . Архивировано (PDF) из оригинала 2016-10-19 . Получено 2014-08-23 .
  18. ^ "BadUSB Malware Released — Infect millions of USB Drives". The Hacking Post . Архивировано из оригинала 6 октября 2014 года . Получено 7 октября 2014 года .{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  19. ^ Гринберг, Энди. «Неисправимое вредоносное ПО, которое заражает USB-накопители, теперь на свободе». WIRED . Архивировано из оригинала 7 октября 2014 г. Получено 7 октября 2014 г.