vProの匠

【匠の部屋】USBメモリを利用してより確実にプロビジョニングを行う「USB Provisioning」とは?

vProの匠こと、牧真一郎氏。同氏の「匠」っぷりは、連載のこれまでの回を参考にしてほしい

 「インテル vPro プラットフォーム」を利用してクライアントPCを遠隔管理するには、AMTのプロビジョニング(初期設定)が必要になる。本連載ではここ数週に渡って、その操作手順を各メーカーのクライアントPCごとに紹介してきた。

 今回は読者の方から、それとは別の方法――例えば、USBメモリを利用するなどして、「より確実にプロビジョニングができないか?」との問い合わせがあったので、インテル vPro プラットフォームのすべてを知り尽くした“匠”こと牧真一郎氏に、その答えを聞いてみたい。

 なお、本連載では「匠に聞いてみたい」質問を随時募集中。vProに関する疑問・質問などがあれば、記事末尾のフォームからぜひ投稿してほしい。また、既に投稿いただいた質問は、順次回答していくので、お待ちいただければ幸いだ。


今回の記事内容には、最新ではないMEBxを利用する内容を含みますが、最新ではないMEBxの利用を推奨するものではありません。最新ではないMEBxの利用は、セキュリティの観点から推奨できませんので「過去のMEBxでできたこと」の紹介としてお読みください。過去のバージョンのMEBxの利用については、全て自己責任となります。 (7/29 注意を追記・修正しました)


今回の質問:「vPro(AMT)の設定を、USBメモリを使って行う方法を教えてください」

――今回、お問い合わせをいただいた読者の方は、一度に複数台のクライアントPCでプロビジョニングを行っているようです。その際に操作ミスが原因でvProを使えなくなったことがあるようで、「USBメモリに保存したプロファイルを参照するなどして、もっと確実にプロビジョニングを行えませんか?」との質問があったのですが、そのようなツールは存在するのでしょうか?

牧氏:プロビジョニングにUSBメモリを利用する方法は、「USB Provisioning」と呼ばれています。「USB Provisioning」ではMEBxの設定内容が含まれた「setup.bin」というバイナリーファイルをUSBメモリに保存することで、それを装着したクライアントPCを起動させた際に、設定を自動で読み込みながらプロビジョニングを行うことが可能です。

 この方法は複雑なメニュー操作を行うことなく、キーボードの配列などの固有環境に依存することもないため、誤操作を防ぐために有用でした。しかし、MEBxの更新によってUSB Provisioningが無効化されてしまいました。これは、「USB Provisioning」における潜在的な脆弱性(CVEID:CVE-2021-33107)が見つかったことが原因で、対策されたMEBxを搭載したクライアントPCでは、下の画面のように「Manual Configuration no longer supported」とのメッセージが表示され、USBメモリに保存した設定を読み込めません。

対策されたクライアントPCでは、USBメモリに保存した設定を読み込むことができない

――利用しているクライアントPCで脆弱性への対策が行われているかを、プロビジョニング前に確認することはできますか?

牧氏:それには、MEBxのバージョンを確認すると良いでしょう。対策済みのバージョンは以下の通りです。

【対策済のMEBxのバージョン】

・第6~7世代CPU……11.0.0.0012~
・第8~9世代CPU……12.0.0.0011~
・第10世代CPU……14.0.0.0004~
・第11世代CPU……15.0.0.0004~
・第12世代CPU……全バージョン
※MEファームウェアではなく、MEBxのバージョン

 MEBxはUEFI(BIOS)のファームウェアイメージに組み込まれているため、単独でのアップグレードやダウングレードはできません。UEFIファームウェアのアップデートを行うことで、同時にMEBxのバージョンが更新され、「USB Provisioning」ができなくなるケースもあります。

 なお、「USB Provisioning」で使用する「setup.bin」は、「インテル SCS(Setup and Configuration Software )」や「インテル AMT SDK」に含まれている「USBFile.exe」というモジュールを使って作成します。しかし、v16.0.3以降の「インテル AMT SDK」では、USB Provisioningが可能なsetup.binファイルの作成ができなくなってしまいました。

 私の所属するMogul Technologiesでも、GUIベースでsetup.binを生成したり、追加の設定を行ったりするためのツールを提供していたのですが、この様な事情から現在は開発や販売を停止しています。

――対策済みのMEBxを搭載したクライアントPCでは、手動でプロビジョニングを行う必要があるということですね。

牧氏:MEBxを直接クライアントPCで開いて手動で操作するか、インテル EMAを構築してエージェント経由で設定を行うことになります。

――ということは、対策前のMEBxを搭載しているクライアントPCであれば、今までと同じように「USB Provisioning」を行うことができるわけでしょうか?

牧氏:そうですね、それはできてしまいますが、セキュリティの観点からお勧めできません。やはり、MEBxは最新にしていただくべきものなので。

 ただ、最新でないMEBxを使うリスクを承知の上で、どうしても「USB Provisioning」を使いたい場合、「インテル AMT SDK」を利用することで、「USB Provisioning」を行うこともできてはしまいます。

 あくまでも、自己責任ということになりますが、「こういう手順があった(ある)」ということで紹介しましょう。

(7/29更新 過去のMEBxを利用する点について、内容を追記・修正しました)

【「USB Provisioning」の手順】

  1. 「インテル AMT SDK」のダウンロード

    「インテル AMT SDK」の公式サイトから、バージョン16.0.0.1のファイルをダウンロードする。

    プルダウンメニューから「16.0.0.1」を選択


  2. 「USBFile.exe」を実行

    ダウンロードしたファイルを解凍し、その中にある「USB_File_Module_16.0.0.1.zip」をさらに解凍。「Bin」フォルダー内にある「USBFile.exe」をコマンドプロンプト上で実行すると、同じフォルダー内に「setup.bin」ファイルが生成される。

    なお、この操作における引数の詳細は「USBFile Readme.txt」に記述されているが、「複雑で分かりづらい」(牧氏)とのことなので、いくつかサンプルを提供していただいた。

    デスクトップPCの場合(DHCPを使用する場合)
    USBfile.exe -create .\setup.bin admin MEBxのパスワード -v 4 -scramble -amt -consume 1 -hostname ホスト名 -domname ドメインサフィックス -sdFqdn 1 -kvm 1 -userConsentOption 0 -userConsentPolicy 1 -conf 1 -dhcp 1 -pp 7322734623DC432FA98A13D37982D855


    デスクトップPCの場合(固定IPを使用する場合)
    USBfile.exe -create .\setup.bin admin MEBxのパスワード -v 4 -scramble -amt -consume 1 -hostname ホスト名 -domname ドメインサフィックス -sdFqdn 1 -kvm 1 -userConsentOption 0 -userConsentPolicy 1 -conf 1 -dhcp 0 -s4p IPアドレス:サブネットマスク:デフォルトゲートウェイ:プライマリーDNS:セカンダリーDNS-pp 7322734623DC432FA98A13D37982D855


    ノートPCの場合(DHCPを使用する場合)
    USBfile.exe -create .\setup.bin admin MEBxのパスワード -v 4 -scramble -amt -consume 1 -hostname ホスト名 -domname ドメインサフィックス -sdFqdn 1 -kvm 1 -userConsentOption 0 -userConsentPolicy 1 -conf 1 -dhcp 1 -pp 30800DEE09C07843AF287868A2DBBE3A


    ノートPCの場合(固定IPを使用する場合)
    USBfile.exe -create .\setup.bin admin MEBxのパスワード -v 4 -scramble -amt -consume 1 -hostname ホスト名 -domname ドメインサフィックス -sdFqdn 1 -kvm 1 -userConsentOption 0 -userConsentPolicy 1 -conf 1 -dhcp 0 -s4p IPアドレス:サブネットマスク:デフォルトゲートウェイ:プライマリーDNS:セカンダリーDNS -pp 30800DEE09C07843AF287868A2DBBE3A


    デスクトップPCとノートPCにおける引数の違いは「-pp」の値(電源設定のGUID)で、どちらもシャットダウン時でも動作する設定を指定している。なお、固定IPを使用する場合は「-dhcp」の値を「0」にして、「-s4p」で各アドレスを指定。各アドレスは「:」 (コロン)で繋いで入力することになる。

    また、「setup.bin」ファイルには個々のクライアントPCの設定が含まれるため、それぞれファイルを個別に生成する必要がある。ただ、“ホスト名”と“固定IPを使用する際のIPアドレス”以外は同じ引数が利用できるため、「それほど操作が煩雑にはならない」(牧氏)とのこと。一度使用した「setup.bin」ファイルには使用済みのフラグが立つため、他のクライアントPCで読み込まれる心配はない。

    ちなみに、そのまま「USBFile.exe -view .\setup.bin」を実行すると、ファイルの内容を確認することも可能だ。


    DHCPを使用する場合


    固定IPを使用する場合

  3. UEFIの設定を確認

    クライアントPCのUEFI SetupでAMTと「USB Provisioning」が有効になっているかを確認。無効の場合には有効にする。

    AMTと「USB Provisioning」の設定を有効にする

  4. 設定の配布

    「FAT32」でフォーマットされた空のUSBメモリのルートフォルダーに、先ほど生成した「setup.bin」ファイルをコピー。このUSBメモリをクライアントPCに接続し、電源を入れる。OS起動前に「Found USB Key~」のメッセージが表示されたら、「Y」を入力すれば操作は完了。

    「Continue with Auto Provisioning (Y/N)」とのメッセージが表示されたら、「Y」を入力


牧氏:なお、「USB Provisioning」で行う設定には、MEBxで設定する内容しか含まれていません。例えば、以前の記事で紹介したように、“AMTでWiーFiを使用する”場合などには追加の設定が必要です。また、先に紹介したように、一部のクライアントPCでは脆弱性への対策として「USB Provisioning」は利用できなくなっているので、今後も使える保証はありません。


匠への質問、募集中!

 ……さて、今回はUSBメモリに保存した設定を利用してプロビジョニングを行う方法を教えてもらったが「インテル vPro プラットフォーム」は非常に多機能で奥が深い。

 当連載では、そんなvProを活用する上での疑問を随時、匠に伺って、解決に結び付けたいと考えている。vProの導入や活用を検討するうえで、「これはどうやるんだろう?」あるいは「できると思うのに、何故かうまくいかない」といった疑問点がもしあれば、是非、以下のフォームから質問を送っていただければ幸いだ。

アンケート回答にあたっての注意事項・同意事項

・いただきました質問につきまして、質問者やその企業を特定できないよう編集の上、匠の回答とあわせて誌面掲載させていただく可能性がございます。

・いただきました質問に対する回答は、原則として今後展開する記事内にて行わせていただきます。また、すべての質問への回答を約束するものではございません。

・氏名やメールアドレスのご記入は任意となりますが、ご記入いただければ、追加で伺いたいことなどがある場合、編集部よりご連絡させていただき、より正確な回答ができるよう務めさせていただきます。

・回答いただきました個人情報(名前/メールアドレス)は、追加の質問など編集部からの連絡のみ使用します。そのほかの目的で使用することはなく、対象者以外の個人情報は、企画終了後、速やかに消去します。

個人情報の保護について
http://www.impress.co.jp/privacy_policy/

【匠の部屋】vPro導入困りごとアンケート

相談したいお悩みの種類でもっとも近いものをお選びください。

あなたの社内でのポジションとしてもっとも適したものをお選びください。

対象となるPCの台数規模についてお選びください。

匠に質問したい内容の概要をご記入ください(全角100文字まで)

匠に質問したい具体的な内容をご記入ください(全角500文字まで)

氏名(任意)

かな(任意)

メールアドレス(推奨)

確認のために、もう一度入力してください。

上記の「応募にあたっての注意事項・同意事項」をご確認の上、同意いただける場合にはマークを付けてください
同意する