ファームウェアとは

コンピューティングデバイスを使用している人々の俯瞰図
Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

ファームウェアとは

「ハードウェアのためのソフトウェア」としても知られるファームウェアは、ハードウェア・デバイスに埋め込まれ、その主要な機能を適切に機能させるプログラム・コードです。ファームウェアは定期的に更新され、一般的な問題を修正プログラムを適用したり、主要な機能を追加または拡張したり、テクノロジーとのデバイスの互換性を高めたりしています。

テレビ、カメラ、モバイル、プリンター、ドライブなど、多くのデバイスは機能するためにファームウェアを使用しています。ファームウェアはデバイスの不揮発性メモリーにあり、デバイスがオフの状態でもコンテンツを保管できます。ファームウェアは、ランダムアクセスメモリ (RAM)、読み取り専用メモリ (ROM)、消去可能なプログラマブル読み取り専用メモリ (EPROM)、フラッシュメモリなど、さまざまなメモリタイプに書き込むことができます。

ファームウェアは、デバイスの起動方法、インターネット ルーターやリモート コントロールなどの他のデバイスとのやり取り方法、クリティカルな入出力 (I/O) タスクの実行方法などの指示を提供するなど、いくつかの重要な方法でデバイスが意図された機能を実行するのに役立ちます。Apple、LG Electronics、Microsoft など、多くのハードウェア デバイス メーカーは、製品にファームウェアを組み込んで、コンピューターのオペレーティング システム (OS) と同様に機能するようにしています。

「ファームウェア」という用語は、1967年にアメリカの科学者Ascher Oplerが「ハードウェアとソフトウェアの間の」プログラムを表すために初めて使用されたと報告されています 1 。今日、ファームウェアはiPhone、Mac、テレビのリモコンから衛星や自動運転車上の複雑な モノのインターネット(IoT)センサーまで、多くのデバイスで不可欠な要素となっています。ファームウェアとソフトウェアは似ていますが、ビジネス ニーズへの適合性を評価する際に考慮する価値のある重要な違いがあります。

ファームウェアとソフトウェアの比較

ファームウェアとソフトウェアの違いを理解する最も簡単な方法は、それぞれの独自の目的にあります。ファームウェアはデバイスの起動と相互の通信を支援するように設計されていますが、ソフトウェアは主に対話に使用されます。ファームウェアは、電話やテレビなどのコンシューマー・デバイスを制御するために使用されます。メーカーは、主要な機能の追加やセキュリティーの強化、脆弱性からの保護のために、ファームウェアを頻繁に更新します。AndroidiOS スマートフォン、さらにはスマート TV やゲーム機のユーザーなら誰でも知っているように、ファームウェア バージョンのアップデートは定期的にダウンロードしてインストールする必要があり、インストールしないとデバイスの性能に影響します。

一方、ソフトウェアは、インターネットの閲覧、電子メールのチェック、ワードプロセッサ、ビデオやストリーミング音楽の視聴などのアクティビティにおけるユーザーの対話を改善するためにデバイスにインストールされます。ソフトウェアはファームウェアほどハードウェアと密接に接続されておらず、その機能を提供するハードウェアと通信するためのファームウェアが必要です。

ファームウェアが重要な理由

ファームウェアは、パーソナル コンピューター (PC) 、スマートフォン、ゲーム コンソールなど、仕事や私生活で当たり前に使用しているデバイスが適切に機能するために不可欠です。これらのデバイスのほとんどのユーザーは、デバイスを動作させ続けるために必要な頻繁な「ファームウェアの更新」を通じてファームウェアに慣れ親しんでいます。

ファームウェア アップデートはコンピュータ コードで構成され、バグハッキングなど、デバイスの性能に影響を及ぼす可能性のあるセキュリティ上の脅威を修正するために発行されます。ただし、新しい種類のメディアと対話する方法など、主要な機能をデバイスに追加するために発行される場合もあります。ファームウェアの更新例には、インターネット・ルーターへの主要な機能の追加、ストリーミング・ビデオ・アプリのブラウジング機能の改善、コンピューター・システム・ボードが新しい種類のプロセッサーをサポートできるようにするオペレーティング・システム(OS)の更新などが含まれます。

今日では、ほとんどのデバイスがインターネットに接続されているため、リモートで、つまり「無線」でアップデートをダウンロードすることが、メーカーがファームウェアのアップデートを発行する方法になっています。ほとんどの場合、デバイスをファームウェアに更新する機能がプログラムされており、ユーザーは通知を受け取るだけです。他のデバイスでは、ユーザーはメーカーのWebサイトにアクセスして、必要なコードをダウンロードする必要があります。ファームウェアの更新頻度は、対象として設計されたデバイスの種類によって異なります。たとえば、スマートフォンは通常、ファームウェアとソフトウェアの更新を組み合わせて、電話とその基盤となるOSを適切に機能させます。

ファームウェア攻撃の防止

ファームウェアは非常に広く使用されており、非常に多くの重要なデバイスの機能に不可欠であるため、ハッカーの大きなターゲットとなっています。ファームウェアに依存するハードウェア デバイスは、同じコードを頻繁に使用するため、多くの脆弱性を抱えています。例えば、多くの場合機密性の高い業務情報を含むノートPCは、バッテリー、サウンド カード、ビデオ カード、Web カメラなどに電力を供給するためにファームウェアに依存しているため、格好の標的となります。

ファームウェアのハッキングには、多くの場合、マルウェアのデプロイメントが含まれます。これは、ファームウェアに自身を接続することで、コンピュータのシステムやユーザーに損害を与えるために意図的に書かれたコードです。一般的なマルウェアの種類には、ユーザーのデータを人質にするランサムウェア、正規のプログラムを装って検知を回避するトロイの木馬、ユーザーの機密情報を盗むスパイウェアなどがあります。ハッカーが悪用するためにマシンに物理的にアクセスする必要はほとんどなく、インターネット接続を持つデバイスの数が増えるにつれて人気が高まっている Bluetooth または Wi-Fi 接続を使用してリモートでアクセスできます。

ファームウェアの主要な機能が不十分な場合、機密ユーザー・データが盗まれたり侵害されたりする成果、悪意のある攻撃者がユーザーのマシンをリモートで制御する可能性があります。たとえば、2024 年 6 月に Google は、Pixel ファームウェアの問題により攻撃者に対して脆弱であり、その問題に対する既知の修正プログラムは存在しないという警告を発表しました2

企業は、ファームウェアの脆弱性のリスクをますます認識するようになり、ファームウェアが提供する多くのメリットを考慮して、システムのエクスプロイテーションを防ぐための対策を強化しています。

ファームウェアのメリット

新しいハードウェアなしでパフォーマンスが向上: ファームウェアの更新により、デバイスはデバイスやそのアーキテクチャーを変更せずに新しい機能を引き出せるようになります。多くのファームウェアの更新では、デバイスの基盤となるコードの実行と命令の時間が改善され、性能の最適化に役立ちます。

ユーザーエクスペリエンスの向上:ファームウェアの更新により、スマート冷蔵庫をIoT(モノのインターネット)を介してアプリに接続することで、口座残高の確認、スマートテレビでの番組の録画、購入する食料品の確認など、ユーザーが頼りにしているアクティビティに新しい主要な機能、コンピュータープログラム、機能が提供されます。

問題解決の迅速化: ファームウェアのアップデートにより、起動時間や処理時間、マルチタスク機能の向上、外部デバイスとの互換性の向上など、デバイスに関する多くの一般的な問題を迅速に解決することができます。

コンポーネントの機能: ファームウェアの更新により、スマートフォンのスピーカーやマイクなど、デバイスのすべての周辺コンポーネントが設計どおりに動作し、デバイスがピーク・レベルで動作できるようになります。

修理コストの削減: デバイスのファームウェアを最新の状態に保つことで、将来的にデバイスがバグに感染し、修正プログラムや高額な設備の修理が必要になる可能性を減らすことができます。

ファームウェアはどのように機能しますか?

ファームウェアは、デバイスの製造中にデバイスにインストールされます。第一に、オペレーティング・システム(OS)とデバイスのハードウェア間の通信を促進することです。ファームウェアには、デバイスが設計方法で機能するために不可欠な多くの命令が含まれています。コンピュータの中央処理装置 (CPU) は、データインプットを情報アウトプットに変換する場所であり、コンピュータのメモリからファームウェアを取得して実行します。

ファームウェアは、私たちが毎日使用する多くのデバイスで使用されています。おそらく、最も一般的なケースは、長期間非アクティブだった後にデバイスが起動することです。例えば、就寝後に目を覚まし、メッセージを確認するためにスマートフォンをちらりと見たとき、ファームウェアはデバイスが適切に起動するよう支援しています。使用されていない間情報を保持するために、デバイスはファームウェアを「不揮発性」メモリに保管します。ファームウェアに要求されるタスクの複雑さが増すにつれて、ファームウェアは、フラッシュ メモリと基本入力/出力システム (BIOS) の使用という、コンピュータ ハードウェアのいくつかの特性を採用するようになりました。

フラッシュ・メモリーとBIS

多くのデバイスは電源がオフになっている間も情報を保持する必要のあるため、ファームウェアは通常、システムの「不揮発性」または「読み取り専用」メモリ (ROM)、つまりフラッシュ メモリとも呼ばれるメモリにデータを保管します。このタイプのメモリは、フラッシュドライブ、スマートフォン、デジタルカメラ、ラップトップなどの幅広いポータブルデバイスで使用されており、ファームウェアの機能に不可欠です。

最近、フラッシュメモリは、コンピューターに関連するのと同じ機能の一部を獲得しました。たとえば、コンピュータが起動すると、基本入力/出力システム (BIOS) と呼ばれるシーケンスが実行されます。BIOS シーケンスを実行する最初のファームウェアでは ROM チップが使用されていましたが、現在ではシステムは BIOS にフラッシュ メモリを使用するように切り替えられ、チップをシステム ボードから取り外して再プログラム後に再挿入しなくてもデータを書き換えることができます。

ファームウェアの種類

ファームウェアによるメモリの使用方法や保管方法の変化に加えて、ユーザーが利用できるファームウェアの種類も進化しています。現在、ファームウェアはそのアーキテクチャーによって定義される3つの基本グループに分類できます。

  • 低レベルのファームウェア
  • 高レベルのファームウェア
  • サブシステムファームウェア

低レベルのファームウェア

低レベルのファームウェアはデバイスのハードウェアに固有のもので、ROMなどの不揮発性の読み取り専用チップに保管されており、更新できません。低レベルのファームウェアに依存するデバイスは、一度だけ書き込みでき、再プログラムできないメモリを使用します。

高レベルのファームウェア

高レベルのファームウェアは、ハードウェアの複雑さのために更新できないファームウェアです。高レベルのファームウェアは、コンピュータのフラッシュ・メモリー・チップに含まれており、低レベルのファームウェアよりも高度なタスクを実行します。高レベルのファームウェアには、デバイスの機能やさまざまなコンポーネントの相互作用に関する重要な指示が含まれています。

サブシステム・ファームウェア

サブシステムファームウェアは、目的やタスクのために設計されたハードウェアとソフトウェアの特定の組み合わせである「組み込みシステム」と呼ばれるものに含まれています。サブシステムファームウェアは、その複雑さと適応性において高レベルのファームウェアに似ています。高レベルのファームウェアと同様、サブシステムファームウェアも簡単に更新できます。

ファームウェア・アプリケーション

ファームウェアはデジタル・トランスフォーメーションに欠かせない幅広いデバイスで使用されているため、現代の企業にとって有用な用途が数多くあります。ファームウェアのより一般的なビジネス上の用途には、次のようなものがあります。

  • パーソナルコンピューター(PC)
  • データ・ストレージ
  • スマートフォン
  • 自動車
  • モノのインターネット(IoT)デバイス

パソコン

パーソナル・コンピューター(PC)は、電源を入れていない間もクリティカルなデータを保持するファームウェアと、オペレーティング・システムとファームウェアの間のソフトウェア・インターフェース用のBIOSおよび統一ファームウェア・インターフェース(UEFI)仕様に依存しています。通常、これらの主要な機能はコンピューターのシステム・ボード上のメモリー・チップに組み込まれています。また、グラフィック カードやビデオ カードなどの一般的な PC コンポーネントも、機能するためにファームウェアに依存しています。

データ・ストレージ・デバイス

USBドライブ、外付けハードディスク・ドライブ、フラッシュ・ドライブ、その他のポータブル・データ・ストレージ・デバイスが機能するためには、ファームウェアが必要です。ファームウェアは、多くの最新のデータ・ストレージ・デバイスが使用するフラッシュ・メモリー・チップに組み込まれており、ROMやEPROMに含まれるファームウェアとは異なり、簡単に更新できます。

スマートフォン

スマートフォンはファームウェアに大きく依存して機能します。ファームウェアは、しばらく使用されなかったスマートフォンが確実に起動するようにするだけでなく、クリティカルなコンポーネントが設計された方法で相互に通信できるようにするのにも役立ちます。最後に、スマートフォンでは、バグ修正、セキュリティ機能、新機能はすべて、インターネットからダウンロードされる定期的なファームウェア アップデートによって正常に動作します。

自動車

過去10年間に設計された多くの自動車には、ファームウェアに依存してクリティカルなタスクを実行するコンピューターが搭載されています。エンジンの性能と燃料効率を最適化するエンジン・コントロール・ユニット(ECU)や、多くの車に取り付けられたナビゲーションやカメラを支援する、ますます複雑化する情報・エンターテイメント・システム(インフォテインメント)など、さまざまな自動車システムで、さまざまなタイプのファームウェアが使用されています。

モノのインターネット(IoT)デバイス

IoT(モノのインターネット)とは、インターネットを通して、データの収集と共有が可能な機器、車両、家電製品、その他のモノからなるネットワークを指します。ファームウェアは、スマート家電、自動運転車、スマート・シティやファクトリーなど、多くのIoT(モノのインターネット)テクノロジーのユースケースに不可欠です。インターネット経由でデータを送信するセンサーなどのIoTデバイスでは、ファームウェアには、デバイスの電源のオン/オフ、データの収集、分析、送信などを可能にするクリティカルな命令がハードウェアに保管されています。

脚注

1. ファームウェア(ibm.com外部へのリンク)、ウィキペディア

2. Google Warns of Pixel Firmware Security Flaw Exploited as Zero-Day (リンクは ibm.com外部), The Hacker News, June 13, 2024

関連ソリューション
IBM Cloud Infrastructure Center 

IBM Cloud Infrastructure Centerは、IBM zSystemsおよびIBM LinuxONE上のプライベートクラウドのインフラストラクチャーを管理するためのOpenStack互換ソフトウェア・プラットフォームです。

Cloud Infrastructure Centerの詳細はこちら
ITインフラストラクチャー・ソリューション

企業のハイブリッドクラウドとAI戦略のために設計された、サーバー、ストレージ、ソフトウェアを紹介します。

ITインフラストラクチャー・ソリューションはこちら
クラウド・ソリューション

安全性と柔軟性を備えたクラウドで、ビジネスの成長に合わせてリソースを無理なく拡張できます。

クラウド・ソリューション
詳細情報はこちら

IBMのハイブリッドクラウドとAI対応ソリューションで、企業インフラを変革しましょう。ビジネスを保護、拡張、モダナイズするために設計されたサーバー、ストレージ、ソフトウェアを発見したり、専門家のインサイトにアクセスして生成AIストラテジーを強化したりできます。

ITインフラストラクチャー・ソリューションはこちら 電子書籍を読む