【ITニュース解説】複数のブラザー製Windows版ドライバーインストーラーにおける権限昇格につながる脆弱性

作成日: 更新日:

ITニュース概要

ブラザー製プリンター等のWindows用ドライバーインストーラーに脆弱性が発見された。攻撃者がこの欠陥を悪用すると、PCの管理者権限を乗っ取り、システムを不正に操作する恐れがある。該当ソフト利用者は最新版への更新が必要となる。

ITニュース解説

ブラザー工業株式会社が提供しているプリンターや複合機などのWindows用ドライバーインストーラーに、セキュリティ上の重大な弱点、すなわち脆弱性が存在することが判明した。この脆弱性は「権限昇格」を引き起こす可能性があり、攻撃者に悪用された場合、コンピューターを不正に操作される危険性がある。システムエンジニアを目指す上で、このような脆弱性の仕組みを理解することは非常に重要である。 まず、「権限昇格」とは何かを理解する必要がある。Windowsのようなオペレーティングシステムでは、セキュリティを確保するために、ユーザーアカウントごとに操作できる範囲を定めた「権限」という概念が存在する。一般的に、システム全体に関わる重要な設定変更やソフトウェアのインストールが可能な「管理者権限」と、日常的な作業のみが許可された「一般ユーザー権限」に大別される。普段、私たちが意図せずシステムを破壊してしまわないように、多くの操作は一般ユーザー権限で行われる。権限昇格とは、この制限された一般ユーザー権限しか持たない攻撃者が、プログラムの不具合や設計上のミスを悪用して、本来許されていない管理者権限を不正に奪い取ってしまう行為を指す。管理者権限を奪われると、攻撃者はそのコンピューター上で文字通り何でもできるようになり、悪意のあるソフトウェアを仕込んだり、個人情報を盗み出したり、システムを完全に制御下に置くことが可能になる。 今回のブラザー製品の脆弱性は、「DLLハイジャック」と呼ばれる古典的かつ一般的な攻撃手法によって引き起こされる。これを理解するために、まずプログラムが動作する仕組みとDLLの役割について説明する。プログラムは、多くの場合、それ単体で全ての機能を持っているわけではなく、様々な機能を部品化した「DLL(ダイナミックリンクライブラリ)」という特殊なファイルを外部から読み込んで利用する。例えば、印刷機能や画面表示機能など、多くのプログラムで共通して使われる機能はDLLとして提供されており、プログラムは必要に応じてこれらのDLLを呼び出して動作する。 問題となるのは、プログラムがこのDLLを探し出す際の「順序」である。WindowsはDLLを読み込む際、あらかじめ決められた複数の場所を特定の順番で検索していく。今回の脆弱性を持つドライバーインストーラーは、この検索順序に問題があった。具体的には、システムが本来参照すべき安全な場所にある正規のDLLを探す前に、まず「インストーラーの実行ファイル自身が存在するフォルダ」を先に検索してしまっていた。 攻撃者はこの仕組みを悪用する。まず何らかの方法で標的のコンピューターに一般ユーザーとして侵入し、ユーザーがインストーラーをダウンロードするであろう場所、例えば「ダウンロード」フォルダなどに、正規のDLLと同じ名前を付けた悪意のある偽物のDLLファイルをあらかじめ配置しておく。その後、何も知らないユーザーがブラザーの公式サイトから脆弱性のあるドライバーインストーラーをダウンロードし、そのフォルダから実行すると、悲劇が起こる。インストーラーは必要なDLLを読み込もうとするが、最初に自分と同じフォルダ内を検索するため、そこにある攻撃者が仕掛けた偽物のDLLを正規のものと誤認して読み込んでしまう。これがDLLハイジャックの手口である。 そして、これが権限昇格に直結する。ドライバーのインストールという作業は、システムの根幹に関わる設定を変更するため、通常は管理者権限で実行する必要がある。ユーザーがインストーラーを実行する際には、画面に「ユーザーアカウント制御」の警告が表示され、実行を許可するとインストーラーは管理者権限で動作を開始する。この管理者権限で動作しているインストーラーが、先述のDLLハイジャックによって悪意のある偽物のDLLを読み込むと、その偽物DLLに含まれる攻撃コードもまた、管理者権限で実行されてしまう。これにより、元々は一般ユーザー権限しか持たなかった攻撃者が、結果的に管理者権限で任意の命令を実行できる状況が生まれ、権限昇格が成功する。 この脆弱性を悪用するには、攻撃者が事前にそのコンピューターにアクセスし、ファイルを配置できる状態にあることが前提となる。そのため、インターネット越しに不特定多数へ直接攻撃を仕掛けるタイプのものではないが、別のマルウェア感染の足がかりとして利用されたり、組織内部にいる悪意を持った人物によって悪用されたりする危険性は十分に考えられる。 この問題への対策として、利用者はブラザー工業の公式サイトを確認し、必ず脆弱性が修正された最新版のドライバーインストーラーを使用することが最も重要である。もし古いインストーラーを使用する必要がある場合は、ダウンロードした実行ファイルを、新しく作成した空のフォルダに移動させてから実行することが推奨される。これにより、同じフォルダ内に意図しないDLLファイルが存在するリスクを回避できる。また、アプリケーションを開発する側の視点に立てば、外部ライブラリを読み込む際には、読み込み元のパスを曖昧にせず、システムの既知の安全な場所をフルパスで指定するなど、DLLの検索パスを制御する設計が不可欠である。今回の事例は、アプリケーションの基本的なセキュリティ設計の重要性を改めて示すものと言えるだろう。

【ITニュース解説】複数のブラザー製Windows版ドライバーインストーラーにおける権限昇格につながる脆弱性