web-dev-qa-db-ja.com

BIOS / UEFIはOSコードを変更できますか?

私はOSがプログラムのボスであることを知っています(OSが読み込まれると)。 BIOS/UEFIは、OSがロードされる前のすべてのボスですか? OSはBIOS/UEFI関連のマルウェアの座り所になることはありますか?

つまり、BIOS/UEFIはOSやその他のコードを削除または変更できますか?

3
humble_wolf

技術的には、はい。

答えは、簡単に言えば、すべての質問に対して「はい」です。

ファームウェア(BIOSまたはUEFI)は、オペレーティングシステムの前にロードされます。通常、ストレージデバイス(内蔵HD、CD/DVD、USBドライブなど)のブートセクターを探します。次に、ブートセクターで指定されたブートローダーをメモリに読み込み、そのブートローダーに制御を渡します。これにより、残りのオペレーティングシステムが起動して実行されます。

ファームウェアが悪意のあるコードに感染している場合、どこでも読み書きできます。ファイルのアクセス許可は、OSカーネルまたはファイルシステムドライバーによって実装されるため、この状況ではまったく問題になりません。これは、OSファイルも自由に改ざんできることを意味します。

しかし、いいえ。

しかし、現代のシステムでは、これを達成するのは非常に困難です。

ファームウェアは、コードが格納されているEEPROMへのアクセスを制御します。最新のマザーボードは通常、製造元によってデジタル署名されたファームウェアの更新のみを受け入れます。 BIOS/UEFIを改ざんしたい場合は、最初にこのメカニズムを無効にする必要があります。

新しいオペレーティングシステムでは、ファイルのデジタル署名を検証できます。ファイルを改ざんすると、デジタル署名は無効になります。たとえば、Windows 10でSecureBootを有効にして何かを変更すると、起動が拒否されます。

ファームウェアを制御している場合は、OSを編集してデジタル署名チェックを取り除くことができますが、いくつかの理由でファームウェアに感染することは非常に困難です。

組み込みの保護機能に加えて、ほとんどのマザーボードのファームウェアは、個々のモデル、または多くても特定の製品ライン用にカスタマイズされています。幅広いマザーボードに適用されるファームウェアハックを作成することは非常に難しく、実際には不可能かもしれません。

全てを考慮に入れると...

この方法でシステムを改ざんすることは理論的には可能です。ただし、乱用の可能性は十分に理解されているため、危険は適切な技術的手段で対処されます。

マシンに物理的にアクセスできる人は、カスタムプログラムされたマルウェアでBIOSコードを含むEEPROMチップをフラッシュする可能性があります。これを調整するには多くのリソースが必要になるため、平均的なコンピューターユーザーが危険にさらされることはありません。

この種の攻撃は、政府や大規模な犯罪組織の手が届きやすい範囲です。政府や大企業はリスクにさらされており、侵害された機器を取得するリスクを軽減するために、信頼できるベンダーまたは認定リセラーから購入するのが一般的です。

4
DoubleD

ここでの答えは基本的に「いいえ」ですが、通常はそうではありません。ブートローダーまたはUEFIイメージを呼び出すだけです。

製造元やデバイスによっては、フロッピーディスクやメモリへの情報の書き込みなど、BIOSが使用する書き込み機能を実行する場合があります。

特定の理由で「OS」の既知の部分である特定のメモリ位置で設定を変更するBIOSが書き込まれる可能性があることは理論的には可能ですが、それは標準の実装ではなく、それを実行するデバイスについては知りません標準の「PC BIOS」タイプのセットアップ(たとえば、組み込みデバイスでファームウェアとBIOSが重複する場合は、はるかに複雑になります)。

Wikiページは実際に本当に良いです、それを確認してください。 https://en.wikipedia.org/wiki/BIOS

1
bashCypher

OSがロードされると、BIOS/UEFIがOSのボスになります。

あんまり。 OSが起動すると、すべてのプログラムがOSから関数を呼び出し、OSは実際に重要なコードを実行するものです。プログラムは、OSが実行を許可していないものは実行できません。

BIOS/UEFIは、よりローダーです。ディスクからデータを読み取り、メモリにデータを読み込み、マスターブートレコードのコードを実行します。この瞬間、ブートレコードにあるコードがすべて制御権を握ります。 BIOSはもはや制御できません。

UEFI/BIOSがOSが使用するメモリアドレスを変更した場合でも、BIOSが実行されなくなるため、OSが初期化されてディスクから自身をロードすると元に戻ります。

0
ThoriumBR