Oprogramowanie sprzętowe

Z Wikipedii, wolnej encyklopedii
(Przekierowano z Firmware)
Przejdź do nawigacji Przejdź do wyszukiwania
Reflektometr optyczny firmy Yokogawa podczas pomiarów długości światłowodu z widocznym na ekranie efektem pracy oprogramowania sprzętowego

Oprogramowanie sprzętowe[1][2] (ang. firmware, inne określenia: oprogramowanie układowe[3][4], oprogramowanie wbudowane[5], mikrooprogramowanie[6][7]) – oprogramowanie zainstalowane na stałe w urządzeniu, zapewniające podstawowe procedury jego obsługi. Nowsze urządzenia posiadają często możliwość jego aktualizacji dzięki zapisaniu go na przykład w pamięci flash lub EEPROM. Inną definicją oprogramowania sprzętowego (mikrokodu) jest kod poniżej systemu operacyjnego (a wręcz kodu maszynowego komputera) – przykładowo firmware karty sieciowej w przeciwieństwie do sterowników nie jest częścią systemu operacyjnego. Oprogramowanie układowe może być małych rozmiarów (jak w karcie sieciowej) lub stanowić wydzielony system (przykładowo kontrolerem napędów taśmowych 3490E-F01 jest serwer x86 pracujący pod kontrolą systemu operacyjnego Sinix – jednak z punktu widzenia systemu operacyjnego korzystającego z napędów kod ten realizuje zdefiniowane protokołem funkcje sprzętowe).

Historia[edytuj | edytuj kod]

Ascher Opler użył terminu firmware w artykule Datamation w roku 1967[8]. Początkowo termin ten oznaczał zawartość zapisywalnego fragmentu pamięci CPU, zawierającej mikroprogram, który definiował i implementował zestaw instrukcji komputera, ponadto mógł być przeładowany w celu modyfikacji instrukcji, które procesor był w stanie wykonać. Pierwotnie firmware kontrastowało ze sprzętem komputerowym (CPU) i oprogramowaniem (standardowe instrukcje wykonywane przez CPU). Nie składało się ono z instrukcji maszynowych procesora, lecz z mikrokodu niższego poziomu odpowiedzialnego za implementację instrukcji. Oprogramowanie układowe istniało na „pograniczu” między sprzętem a oprogramowaniem, stąd powstała nazwa firmware. Z czasem znaczenie tego pojęcia poszerzyło się do wszystkich danych zapisywanych w pamięci ROM, w skład których wchodziły instrukcje procesora dla BIOS, programu rozruchowego lub aplikacji dedykowanych.

Do połowy lat 90. aktualizacje oprogramowania układowego przeważnie wiązały się z podmianą pamięci je zawierającej (zwykle były nimi układy scalone ROM). Pamięć flash umożliwiała aktualizację bez konieczności fizycznego wyjmowania układów scalonych. Błąd w trakcie procesu aktualizacji mógł permanentnie uszkodzić urządzenie; system jest na to narażony, gdy fragmenty pamięci flash – zawierające oprogramowanie „źródłowe” lub program aktualizujący – zostaną wyjęte i przeprogramowane. Jeżeli proces aktualizacji zostanie gwałtownie przerwany, oprogramowanie może przestać działać prawidłowo i tym samym uruchomienie urządzenia i wznowienie aktualizacji będzie niemożliwe. Aby tego uniknąć, pamięć flash powinna mieć zabezpieczoną sekcję tylko do odczytu, zawierającą oprogramowanie „źródłowe”. Wadą produkcyjną jest to, że oprogramowanie tylko do odczytu nie może być zmodyfikowane i musi być poddane bardzo dokładnym testom.

Zagrożenia[edytuj | edytuj kod]

Mark Shuttleworth, założyciel firmy Canonical, która utrzymuje dystrybucję Ubuntu, opisał zamknięte oprogramowanie firmowe jako zagrożenie bezpieczeństwa, mówiąc, że „oprogramowanie układowe na twoim urządzeniu jest najlepszym przyjacielem NSA” i nazywa je „koniem trojańskim o monumentalnych proporcjach” . Stwierdził, że niskiej jakości oprogramowanie układowe z zamkniętym źródłem stanowi główne zagrożenie dla bezpieczeństwa systemu:[9] „Twoim największym błędem jest założenie, że NSA jest jedyną instytucją nadużywającą tej pozycji zaufania - w rzeczywistości rozsądne jest założenie, że całe oprogramowanie układowe jest źródłem niebezpieczeństwa, na co składa się najwyższy stopień niekompetencji ze strony producentów, a także najwyższy stopień kompetencji z bardzo szerokiej gamy tego typu agencji ”. Jako potencjalne rozwiązanie tego problemu wezwał do deklaratywnego oprogramowania układowego, które opisywałoby „powiązanie sprzętowe i zależności” i „nie powinno zawierać kodu wykonywalnego”.[10]Oprogramowanie układowe powinno być oprogramowaniem typu open source, aby można było sprawdzić i zweryfikować kod.

Niestandardowe włamania do oprogramowania układowego koncentrowały się również na wstrzykiwaniu złośliwego oprogramowania do urządzeń takich jak smartfony lub urządzenia USB. Jedna operacja tego typu na smartfonie z systemem operacyjnym Symbian została zademonstrowana podczas konferencji hakerów Malcon.[11][12] Podczas konferencji Black Hat USA w roku 2014 zaprezentowano włamanie do oprogramowania urządzenia USB o nazwie BadUSB[13] pokazując, jak można przeprogramować mikrokontroler pamięci USB, dzięki czemu można "oszukać" różnego rodzaju urządzenia w celu przejęcia kontroli nad komputerem, eksfiltrowania danych lub szpiegowania użytkownika.[14][15] Pozostałe osoby badające kwestie bezpieczeństwa pracowały dalej nad sposobem wykorzystania zasad działania BadUSB,[16] wydając jednocześnie kod źródłowy w postaci narzędzi hakerskich, których można użyć do modyfikacji zachowania różnych urządzeń USB.[17]

Przykłady urządzeń z oprogramowaniem sprzętowym[edytuj | edytuj kod]


Systemy preinstalowane w serwerach (np. ESXi na nośniku USB w serwerze) również są nazywane oprogramowaniem sprzętowym.

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. oprogramowanie sprzętowe - tłumaczenie na angielski. W: słownik polsko-angielski [on-line]. bab.la. [dostęp 2017-12-14].
  2. Słownik naukowo-techniczny angielsko-polski. [dostęp 2017-12-14].
  3. firmware: Informatyczny Słownik Angielsko-Polski Computerworld - Wiadomości IT, biznes IT, praca w IT, konferencje. [dostęp 2017-12-14].
  4. oprogramowanie układowe - tłumaczenie na angielski - słownik polsko-angielski bab.la. [dostęp 2017-12-14].
  5. oprogramowanie wbudowane - tłumaczenie na angielski - słownik polsko-angielski bab.la. [dostęp 2017-12-14].
  6. Narodowy Fotokorpus Języka Polskiego. [dostęp 2017-06-05].
  7. firmware - Tłumaczenie po polsku - Słownik angielsko-polski Diki. [dostęp 2017-12-15].
  8. Opler, Ascher. Fourth-Generation Software. „Datamation”. 13 (1), s. 22–24, styczeń 1967. 
  9. "Linux Magazine", wydanie 162, Maj 2014, strona 9
  10. ACPI, firmware and your security (ang.). 17 marca, 2014. [zarchiwizowane z tego adresu (15 marca, 2015)].
  11. We will be back soon! (ang.). Malcon.org. [zarchiwizowane z tego adresu (2013-05-26)].
  12. Hacker plants back door in Symbian firmware (ang.). H-online.com, 2010-12-08. [zarchiwizowane z tego adresu (21 maja 2013)].
  13. Why the Security of USB Is Fundamentally Broken (ang.). 2014-07-31. [zarchiwizowane z tego adresu (2014-08-03)].
  14. BadUSB - On Accessories that Turn Evil (ang.). BlackHat.com. [zarchiwizowane z tego adresu (2014-08-08)].
  15. BadUSB – On accessories that turn evil (ang.). 2014-08-07. [zarchiwizowane z tego adresu (2016-10-19)].
  16. BadUSB Malware Released - Infect millions of USB Drives (ang.). [zarchiwizowane z tego adresu (6 października 2014)].
  17. The Unpatchable Malware That Infects USBs Is Now on the Loose (ang.). [zarchiwizowane z tego adresu (7 października 2014)].
  18. Firmware aparatu cyfrowego – co to jest?, 16 maja 2003 [dostęp 2009-07-09].