Oprogramowanie sprzętowe

W tym artykule w pełni poznamy fascynujący świat Oprogramowanie sprzętowe i jego wpływ na współczesne społeczeństwo. Od jego powstania do obecnej ewolucji przeanalizujemy, w jaki sposób Oprogramowanie sprzętowe wpłynął i zmienił różne aspekty naszego codziennego życia. Dodatkowo przeanalizujemy różne perspektywy i opinie, które istnieją wokół Oprogramowanie sprzętowe, a także ich możliwe implikacje na przyszłość. W trakcie pisania tego tekstu wyruszymy w podróż pełną odkryć i refleksji na temat Oprogramowanie sprzętowe, aby lepiej zrozumieć jego znaczenie w dzisiejszym świecie.

Reflektometr optyczny firmy Yokogawa podczas pomiarów długości światłowodu z widocznym na ekranie efektem pracy oprogramowania sprzętowego

Oprogramowanie sprzętowe, oprogramowanie wbudowane, oprogramowanie układowe, oprogramowanie wewnętrzne, mikrooprogramowanie (ang. firmware) – oprogramowanie zainstalowane na stałe w urządzeniu, zapewniające podstawowe procedury jego obsługi.

Inną definicją oprogramowania sprzętowego jest kod poniżej systemu operacyjnego (a wręcz poniżej kodu maszynowego komputera) – przykładowo oprogramowanie karty sieciowej nie jest, w przeciwieństwie do sterowników, częścią systemu operacyjnego. Oprogramowanie sprzętowe 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).

Nowsze urządzenia mają często możliwość aktualizacji tego oprogramowania, dzięki zapisaniu go na przykład w pamięci flash lub EEPROM.

Historia

Ascher Opler użył terminu firmware w artykule Datamation w roku 1967. 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. Wbudowane oprogramowanie 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 sprzętowego 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

Mark Shuttleworth, założyciel firmy Canonical, która utrzymuje dystrybucję Ubuntu, opisał zamknięte oprogramowanie sprzętowe jako zagrożenie bezpieczeństwa, mówiąc, że „oprogramowanie wbudowane w twoim urządzenie jest najlepszym przyjacielem NSA” i nazywa je „koniem trojańskim o monumentalnych proporcjach”. Stwierdził, że niskiej jakości oprogramowanie sprzętowe z zamkniętym źródłem stanowi główne zagrożenie dla bezpieczeństwa systemu: „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 sprzętowe 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, które opisywałoby „powiązanie sprzętowe i zależności” i „nie powinno zawierać kodu wykonywalnego”. Oprogramowanie sprzętowe powinno być oprogramowaniem typu open source, aby można było sprawdzić i zweryfikować kod.

Niestandardowe włamania do oprogramowania sprzętowego koncentrowały się również na wstrzykiwaniu złośliwego oprogramowania do smartfonów lub pendrajwów. Jedna operacja tego typu na smartfonie z systemem operacyjnym Symbian została zademonstrowana podczas hakerskiej konferencji MalCon. Podczas konferencji Black Hat USA w roku 2014 zaprezentowano włamanie do oprogramowania urządzenia USB o nazwie BadUSB, pokazując, jak można przeprogramować mikrokontroler pendrajwa, dzięki czemu można „oszukać” różnego rodzaju urządzenia w celu przejęcia kontroli nad komputerem, eksfiltrowania danych lub szpiegowania użytkownika. Pozostałe osoby badające kwestie bezpieczeństwa pracowały dalej nad sposobem wykorzystania zasad działania BadUSB, 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.

Przykłady urządzeń z oprogramowaniem sprzętowym

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

Zobacz też

Uwagi

  1. Spotykane niekiedy tłumaczenie „oprogramowanie firmowe” jest niepoprawne, gdyż przymiotnik firm oznacza tu „stały, niezmienny”.

Przypisy

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