
コンピューティングにおいて、ファームウェアとはコンピューティング デバイスのハードウェアの低レベルの制御を提供するソフトウェアです。比較的単純なデバイスの場合、ファームウェアはすべての制御、監視、およびデータ操作機能を実行します。より複雑なデバイスの場合、ファームウェアは比較的低レベルの制御と、オペレーティング システムなどの高レベルのソフトウェアへのハードウェア抽象化サービスを提供する場合があります。
ファームウェアは、パーソナル コンピュータ、電話、家電製品、車両、コンピュータ周辺機器などの幅広いコンピューティング デバイスや、これらの大規模システム内の 多くのデジタル チップに使用されています。
ファームウェアは不揮発性メモリ(読み取り専用メモリ(ROM)またはEPROM、EEPROM、フラッシュなどのプログラム可能なメモリ)に保存されます。ROMに保存されているデバイスのファームウェアを変更するには、メモリチップを物理的に交換する必要がありますが、一部のチップは製造後に取り外すように設計されていません。プログラム可能なファームウェアメモリは、フラッシングと呼ばれる手順で再プログラムできます。[2]
ファームウェアを変更する一般的な理由としては、バグの修正や機能の追加などが挙げられます。
歴史と語源
アッシャー・オプラーは、1967 年のデータメーションの記事で、ファームウェアという用語を「ハードウェア」と「ソフトウェア」の中間的な用語として使用しました。オプラーは、第 4 世代のコンピュータ システムに書き込み可能な制御ストア(小型の専用高速メモリ) があり、そこにマイクロコードファームウェアがロードされると予測しました。多くのソフトウェア機能がマイクロコードに移行され、命令セットをカスタマイズして、異なる命令セットに異なるファームウェアをロードできるようになりました。[3]
コンピュータが複雑化するにつれ、ユーザーの判断でより複雑なプログラムを実行するために必要な一貫した環境を提供するために、さまざまなプログラムを最初に起動して実行する必要があることが明らかになりました。これには、それらのプログラムを自動的に実行するようにコンピュータをプログラミングする必要がありました。さらに、企業、大学、マーケティング担当者は、技術的な知識がほとんどない一般の人々にコンピュータを販売したいと考えていたため、一般のユーザーが実用的な目的でプログラムを簡単に実行できるようにするために、より高度な自動化が必要になりました。これにより、ユーザーが意識的に実行しない種類のソフトウェアが生まれ、一般のユーザーが気付かないソフトウェアにつながりました。[4]
元々、ファームウェアはハードウェア (CPU 自体) とソフトウェア (CPU で実行される通常の命令) とを対比する意味で使用されていました。CPU マシン命令ではなく、マシン命令の実装に関係する低レベルのマイクロコードで構成されていました。ハードウェアとソフトウェアの境界に存在するため、ファームウェアという名前が付けられました。時が経つにつれ、ファームウェアという単語は、 PC のBIOS 、スマートフォンのブート ファームウェア、コンピュータ周辺機器、電子レンジやリモコンなどのシンプルな民生用電子機器の制御システムなど、ハードウェアに密接にリンクされたコンピュータプログラムを表すために広く使われるようになりました。
アプリケーション
コンピューター

ある意味、さまざまなファームウェア コンポーネントは、動作中のコンピュータのオペレーティング システムと同じくらい重要です。ただし、ほとんどの最新のオペレーティング システムとは異なり、ファームウェアには、ユニットの出荷後に検出された機能上の問題を修正するために自動的に更新される、十分に進化したメカニズムがほとんどありません。
コンピュータのファームウェアは、小さなユーティリティ プログラムを使用してユーザーが手動で更新できます。一方、大容量ストレージ デバイス (ハード ディスク ドライブ、光ディスク ドライブ、フラッシュ メモリ ストレージ (例: ソリッド ステート ドライブ)) のファームウェアは、ファームウェアにフラッシュ メモリ (ROM や EEPROM ではなく) ストレージが使用されている場合でも、更新される頻度は低くなります。
ほとんどのコンピュータ周辺機器は、それ自体が特殊用途のコンピュータです。プリンタ、スキャナ、ウェブカメラ、USB フラッシュ ドライブなどのデバイスには、内部に保存されたファームウェアがあります。一部のデバイスでは、ファームウェアのフィールド アップグレードも許可されています。USBキーボード、USB マウス、USB サウンド カードなどの最近のよりシンプルなデバイスでは、ファームウェア メモリをマイクロコントローラに統合し、独立したEEPROMチップに対抗する傾向があります。
コンピュータ ファームウェアの例には次のものがあります。
- PCで使用されるBIOSファームウェア
- Itaniumシステム、IntelベースのMac、および多くの新しいPCで使用される(U)EFI準拠のファームウェア
- ハードディスクドライブ、ソリッドステートドライブ、光ディスクドライブ、光ディスクレコーダーファームウェア[5]
- グラフィックカードのビデオBIOS
- Open Firmware は、Sun MicrosystemsおよびOracle CorporationのSPARCベースのコンピュータ、 Apple のPowerPCベースのコンピュータ、およびGenesiのコンピュータで使用されています。
- ARCS 、 Silicon Graphicsのコンピュータで使用
- Amigaシリーズのコンピュータで使用されるKickstart ( POST、ハードウェア初期化 +周辺機器、カーネルなどのプラグアンド プレイ 自動構成)
- RTAS (Run-Time Abstraction Services)、IBMのSystem iおよびSystem pコンピュータで使用されている
- Broadcomシステムオンチップ(SoC)用の共通ファームウェア環境(CFE)

家庭用および個人用製品
ゲーム機、デジタルカメラ、ポータブル音楽プレーヤーなどの消費者向け機器は、ファームウェアのアップグレードをサポートしています。一部の企業は、ファームウェアのアップデートを使用して、新しい再生可能なファイル形式 (コーデック) を追加します。ファームウェアのアップデートで変更される可能性のあるその他の機能には、GUI やバッテリー寿命などがあります。スマートフォンには、新しい機能を追加したり、セキュリティの問題にパッチを適用したりするためのファームウェアの無線アップグレード機能があります。
自動車
1996 年以降、ほとんどの自動車には、機械的な問題を検出するために車載コンピュータとさまざまなセンサーが搭載されています。2010 年現在[アップデート]、現代の自動車には、コンピュータ制御のアンチロック ブレーキ システム(ABS) とコンピュータ操作のトランスミッション コントロール ユニット(TCU) も搭載されています。ドライバーは、この方法で運転中に、リアルタイムの燃費やタイヤ空気圧の測定値などの情報をダッシュボードで確認することもできます。ほとんどの車両のファームウェアは、地元のディーラーで更新できます。
その他の例
その他のファームウェア アプリケーションには次のものがあります。
- 家庭用および個人用製品の場合:
- ルーター、スイッチ、ファイアウォールの場合:
- LibreCMC – Linux-libreカーネルをベースにした 100%フリーのソフトウェアルーターディストリビューション
- IPFire – Linuxカーネルをベースにしたオープンソースのファイアウォール/ルーターディストリビューション
- fli4l – Linuxカーネルをベースにしたオープンソースのファイアウォール/ルーターディストリビューション
- OpenWrt – Linuxカーネルをベースにしたオープンソースのファイアウォール/ルーターディストリビューション
- m0n0wall – FreeBSD の組み込みファイアウォール ディストリビューション
- 独自のファームウェア
- NASシステムの場合:
- NAS4Free – FreeBSD をベースにしたオープンソースの NAS オペレーティングシステム
- Openfiler – LinuxカーネルをベースにしたオープンソースのNASオペレーティングシステム
- 独自のファームウェア
- フィールドプログラマブルゲートアレイ(FPGA)コードはファームウェアと呼ばれることもある
点滅
フラッシング[6]とは、電子機器内のEEPROMまたはフラッシュメモリモジュールに格納されている既存のファームウェアまたはデータを新しいデータで上書きすることです。 [6]これは、デバイスをアップグレードするため[7]、または携帯電話サービスプロバイダーの変更や新しいオペレーティングシステムのインストールなど、デバイスの機能に関連するサービスのプロバイダーを変更するために行うことができます。ファームウェアがアップグレード可能な場合は、プロバイダーのプログラムを介して行われることが多く、アップグレード前に古いファームウェアを保存して、プロセスが失敗した場合や新しいバージョンのパフォーマンスが低下した場合に戻すことができることがよくあります。ベンダーのフラッシュツールの代わりになる無料のソフトウェアが開発されており、たとえばFlashromなどがあります。
ファームウェアハッキング
時々、サードパーティが、新機能を提供したり、隠された機能をアンロックしたりするために、ファームウェアの非公式な新規または修正版 (「アフターマーケット」) を開発することがあります。これは、カスタム ファームウェアと呼ばれます。例としては、ポータブル メディア プレーヤーのファームウェアの代替品としてのRockboxがあります。さまざまなデバイス用の自作プロジェクトが多数あり、以前は制限されていたデバイスの汎用コンピューティング機能をアンロックすることがよくあります (例: iPodでDoom を実行する)。
ファームウェア ハッキングは通常、多くのデバイスのファームウェア更新機能を利用してインストールまたは実行されます。ただし、メーカーがハードウェアをロックしてライセンスのないコードの実行を阻止しようとしているため、実行にはエクスプロイトに頼らざるを得ないものもあります。
ファームウェア ハックのほとんどはフリー ソフトウェアです。
HDDファームウェアハック
モスクワに拠点を置くカスペルスキー研究所は、 「 Equation Group」と呼ばれる開発者グループが、さまざまなドライブモデルのハードディスクドライブファームウェアの改変版を開発していることを発見した。この改変版には、ドライブをフォーマットしたり消去したりしても消去されない場所にデータを保存できるトロイの木馬が含まれていた。 [8] カスペルスキー研究所の報告書では、このグループが米国国家安全保障局(NSA)の一部であるとは明示的に主張していないが、さまざまなEquation Groupソフトウェアのコードから得られた証拠は、彼らがNSAの一部であることを示唆している。[9] [10]
カスペルスキー研究所の研究者らは、イクエーション・グループによる行為をこれまで発見された中で最も高度なハッキング活動と分類し、少なくとも42カ国でイクエーション・グループが引き起こした約500件の感染も記録した。
セキュリティリスク
Ubuntu Linuxディストリビューションを開発したCanonical社の創設者マーク・シャトルワースは、プロプライエタリなファームウェアをセキュリティリスクと表現し、「デバイスのファームウェアはNSAの親友」であり、ファームウェアを「巨大なトロイの木馬」と呼んでいる。彼は、低品質のクローズドソースのファームウェアがシステムセキュリティに対する大きな脅威であると主張している。[11]「最大の間違いは、この信頼関係を悪用している機関がNSAだけであると想定することです。実際、すべてのファームウェアは、メーカーの極度の無能と、非常に幅広いそのような機関の極度の能力のおかげで、セキュリティの欠如の溜まり場であると想定するのは合理的です」。この問題の潜在的な解決策として、彼は「ハードウェアのリンクと依存関係」を記述し、「実行可能コードを含めるべきではない」宣言型ファームウェアを求めている。 [12]ファームウェアは、コードをチェックおよび検証できるように オープンソースであるべきである。
カスタムファームウェアハッキングは、スマートフォンやUSBデバイスなどのデバイスにマルウェアを注入することにも重点を置いています。そのようなスマートフォンへの注入の1つは、ハッカーコンベンションであるMalConでSymbian OS上で実演されました。BadUSBと呼ばれるUSBデバイスのファームウェアハッキングは、 Black Hat USA 2014カンファレンスで発表され、[15] USBフラッシュドライブのマイクロコントローラを再プログラムして、さまざまな種類のデバイスを偽装し、コンピューターを制御したり、データを盗み出したり、ユーザーをスパイしたりする方法を示しました。 [16] [17]他のセキュリティ研究者は、BadUSBの背後にある原理をどのように利用するかについてさらに研究しており、[18]同時に、さまざまなUSBデバイスの動作を変更するために使用できるハッキングツールのソースコードをリリースしました。[19]
参照
参考文献
- ^ 「W25X20CL データシート」。Winbond 。 2024年8月30日閲覧。
- ^ 「ファームウェアとは何か?」 2013年1月23日。
- ^ オプラー、アッシャー (1967 年 1 月)。 「第4世代ソフトウェア」。データメーション。13 (1): 22-24。
- ^ 「コンピュータアプリケーションと概念の紹介。モジュール 3: システムソフトウェア」。Lumen。
- ^ マイケル・ミーレウツィク (2000)。 「ファームウェアのアップデート。速度とSicherheit」。PC Praxis (ドイツ語)。 2000年1月: 68。
- ^ ab 「Flashing Firmware」。Tech-Faq.com。2011年9月27日時点のオリジナルよりアーカイブ。2011年7月8日閲覧。
- ^ 「HTC Developer Center」。HTC。2011年4月26日時点のオリジナルよりアーカイブ。2011年7月8日閲覧。
- ^ 「Equation Group: サイバースパイ活動の最高責任者」。Kaspersky Lab。2015年2月16日。2015年12月2日時点のオリジナルよりアーカイブ。
- ^ Dan Goodin (2015年2月)。「NSAと関係のある「全能の」ハッカーはいかにして14年間身を隠し、ついに発見されたのか」Ars Technica。2016年4月24日時点のオリジナルよりアーカイブ。
- ^ 「速報:カスペルスキー、NSA による全世界のほぼすべてのハードドライブファームウェアへのバックドアハッキングを暴露」Daily Kos 2015 年 2 月 17 日。2015 年 2 月 25 日時点のオリジナルよりアーカイブ。
- ^ 「Shuttleworth が宣言型ファームウェアを要求」Linux Magazine . 第 162 号. 2014 年 5 月. p. 9.
- ^ Shuttleworth, Mark (2014 年 3 月 17 日). 「ACPI、ファームウェア、およびセキュリティ」。2015 年 3 月 15 日時点のオリジナルよりアーカイブ。
- ^ 「MalCon 2010 Technical Briefings」。Malcon.org。2011年7月4日時点のオリジナルよりアーカイブ。
- ^ 「ハッカーがSymbianファームウェアにバックドアを仕掛ける」H-online.com 2010年12月8日 オリジナルより2013年5月21日時点のアーカイブ。 2013年6月14日閲覧。
- ^ 「USB のセキュリティが根本的に破られている理由」Wired.com 2014 年 7 月 31 日。2014 年 8 月 3 日時点のオリジナルよりアーカイブ。2014年 8 月 4 日閲覧。
- ^ 「BadUSB - 悪意のあるアクセサリについて」BlackHat.com。 2014 年 8 月 8 日のオリジナルからアーカイブ。2014 年 8 月 6 日に取得。
- ^ Karsten Nohl、Sascha Krißler、Jakob Lell (2014-08-07)。「BadUSB – 悪意のあるアクセサリについて」( PDF)。srlabs.de。2016-10-19にオリジナルからアーカイブ(PDF) 。2014-08-23に取得。
- ^ 「BadUSB マルウェアがリリース — 数百万台の USB ドライブに感染」。The Hacking Post。2014年 10 月 6 日時点のオリジナルよりアーカイブ。2014年10 月 7 日閲覧。
{{cite web}}: CS1 メンテナンス: 不適切 URL (リンク) - ^ Greenberg, Andy. 「USB に感染するパッチ不可能なマルウェアが今や蔓延」WIRED。2014 年 10 月 7 日時点のオリジナルよりアーカイブ。2014年10 月 7 日閲覧。
