Oculus Riftヘルメットは、コード署名証明書の有効期限が切れたため、ほぼ1日機能しませんでした





2018年3月7日、Oculus Riftの仮想現実ヘルメットの所有者は非常に不快な状況にありました。 ある日、ガジェットが突然機能しなくなり 、「Oculus Runtime Serviceに到達できません」というエラーが表示されました。







判明したように、Oculus Runtime Serviceの一部であるOculusAppFramework.dll動的ライブラリのコード署名証明書の有効期限が原因で問題が発生しました。 彼女は起動しませんでした。 このファイルは、証明書の有効期限を示しています。



Valid to: ‎Wednesday, ‎March ‎7, ‎2018 01:00:00 PM







この場合、Oculusの従業員は完全な無能を示しました。 重要なのは、証明書を更新するのを忘れたことではなく、ファイルが誤って署名されたことです。 彼らは、タイムスタンプサーバーからの制御署名を無視しました。 タイムスタンプサーバーからの署名はファイルの署名時に証明書の有効性を確認するため、証明書の日付を確認できないため、この署名を付けると、ファイルは永久に署名されます。 しかし、Oculusはこの署名を無視したため、証明書の有効期限が切れた瞬間、つまり03/07/2018の01:00:00 PMにライブラリがロードを停止しました。



Windows 10ビルド1607以降、ドライバーへの署名は必須になりました 。 いくつかの例外を除き、署名されていないドライバーは単に読み込まれません(たとえば、セキュアブートオプションが無効になっている場合、またはファイルが2015年7月29日以前に発行された相互証明書で署名されている場合)。



調査が示したように、タイムスタンプサーバーからの署名は、1か月以上前に行われたOculusのバージョン1.22から1.23へのアップグレード後に消えました。 事件の原因はまだ明らかではありません。 バージョンは、その時点でタイムスタンプサーバーがダウンしている場合、自動アセンブリ中に署名が配置されない可能性があると表現されています。



同社は1日以内に、システム内のOculusAppFramework.dllファイルを置き換えるパッチリリースしました 。 Windowsオペレーティングシステムでパッチを実行するには、ウイルス対策を無効にする必要があります(Windows Defenderでは、[ 詳細情報 ]リンクをクリックし、[ とにかく実行 ]ボタンをクリックします)。 パッチをインストールすると、Oculus Runtime Serviceがサーバーから更新され、ヘルメットが再び機能します。



パッチは3月8日の朝に登場しました。 つまり、このため、会社の従業員の卑劣さを軽視することなく、世界中のすべてのOculus Riftヘルメットはほぼ1日間故障しています。 これらは、1つの誤ったコード署名証明書の結果です。



会社の共同設立者であるネイト・ミッチェルは謝罪し、Oculus Storeで被害者に15ドルの融資をすることを約束しました。





最初は、ローンは特に申請した人だけに渡されました。 実際のところ、VRヘルメットはOculus Homeモードでまだロードされており、いくつかのアクションを実行できます。 したがって、すべてのユーザーが正式に被害者になったわけではありません。 しかし、その後 7日以内に、更新プログラムをインストールしたすべての人にローンが入金されるべきであるというメッセージが表示されました。



この物語からどのような結論を引き出すことができますか?



何千人ものユーザーが影響を受けました。 Oculus Riftユーザーの大部分に15ドルのローンを実際に計上した場合、自社の監視により、会社自体が損害を受けました。 同社は幸運にも、大口顧客から訴訟を起こさなかった-結局、Oculus VRシステムは企業部門でも使用されている。たとえば、プレゼンテーション、プロモーションなど。顧客の1人は、3月6日に、主要ブランド。 証明書の問題が1日前に発生した場合、イベントをキャンセルする必要があります。



別の被害者 、彼らのスタートアップがVR環境で外科医を訓練するためのソフトウェアを数ヶ月間開発していると言います。 先週、彼らは大規模な医療会議でプレゼンテーションを行う準備をしていましたが、Oculus Riftのヘルメットは会議の朝に故障しました 。 幸いなことに、ある会社のプログラマーはすぐに問題を見つけ出し、数日前にWindowsのシステムクロックをロールバックすればプログラムを実行できることを発見しました。



唯一の失効した証明書は、影響を受けるすべてのユーザーに対する15ドルのローンよりも、Oculusにとってより深刻な金銭的損失につながる可能性があります。 VRヘルメットやその他のIoTデバイスはどこにでもあると想像できます。 たとえば、実際の外科手術で使用され、同様のソフトウェアエラーが原因で突然突然すべてが同時に機能しなくなります。



コード署名証明書の有効性に対する不注意は、完全にOculusのせいであり、他の誰のせいでもありません。 タイムスタンプサーバーから署名を添付するのを忘れた場合、署名されたファイルは実際には「タイムボム」に変わり、証明書が期限切れになるとすぐに爆発します。 たとえば、GlobalSignはコード署名証明書を1、2、3年間発行します



この「時限爆弾」をソフトウェアにインストールする必要がある理由、つまりコードに署名する理由を尋ねる場合があります。 しかし、他の方法はありません。これは、特定のカテゴリのファイルに対するマイクロソフトの要件です。 Windowsの実行可能コードが署名されている場合、ほぼいつでもすべてのコンピューターでの実行を「禁止」できます。 これは、自由とセキュリティの妥協点です。 この場合、セキュリティを優先して選択されています。 そのため、ある意味でこのようなインシデントの原因は、コードインジェクションから保護するための「単一障害点」を作成したマイクロソフトにあります。



セキュリティリスクによりコード署名の検証がより徹底的になり、オペレーティングシステムの開発者がプロ​​プライエタリなプログラムカタログを介してプログラムの販売から利益の一部を獲得し、すべての開発者に署名を促すため、将来このようなインシデントがより頻繁に発生すると想定できますコード。 マイクロソフトにとって、これは数十億ドルの追加収益の潜在的なソースであり、以前はそれを奪われていました。



OculusはWindowsストアを通じて配布されておらず、Microsoftに30%の控除を支払っていません(少なくともまだ)。 ただし、システムドライバーの場合は、インジェクションから保護し、元のファイルの安全性を保証するコード署名を実装する必要があります。 最終的には、MicrosoftはおそらくWindowsストアでOculusと他のすべての開発者の両方を引き付けることを期待しています。



いずれにしても、開発者にはほとんど選択肢がありません。 証明書を使用する必要があります。 しかし同時に、Oculusのような事件を避けるように注意する必要があります。









All Articles