セキュリティ
Nightmare Eclipseの前例に続く研究者たち——Redmondへの抗議として即座の情報公開を選択
不満を抱いたバグハンターがまたしても、Microsoftのセキュリティ報告への対応に失望した末に、同社製品に影響する脆弱性を公開しました。
Ammar Askar氏は、オープンソースプラットフォームの「旧知の連絡先」に脆弱性を開示してからわずか1時間以内に、Visual Studio Code(VS Code)の欠陥に関する概念実証(PoC)エクスプロイトを公開しました。これは同氏自身の説明によるものです。
同氏が公開した脆弱性は、攻撃者が自ら作成または別途侵害したリポジトリを設定し、VS CodeのWorkspace Recommendations機能を通じて悪意のある拡張機能を配布するというものです。この拡張機能はOAuthトークンを窃取し、公開・非公開を問わずGitHubリポジトリへの読み書きに悪用されます。
影響を受けるのは、ブラウザベースのVS CodeでGitHubリポジトリを開けるgithub.devを一度でも使用したことがあるすべてのユーザーです。
Askar氏によると、この機能はgithub.comがgithub.devにOAuthトークンを渡すことで動作しますが、重要な点として、このトークンはgithub.devを起動したリポジトリに限定されていません。つまり、攻撃者はこのトークンを使って、ターゲットがアクセスできる他のあらゆるリポジトリ——公開・非公開を問わず——にアクセスできることになります。
このエクスプロイトは、攻撃者がリポジトリの.vscode/extensions.jsonファイルを変更し、ブラウザベースのVS Codeインスタンスに攻撃者管理の拡張機能を推薦できることが前提となります。
通常であれば、拡張機能のインストールを承認するよう求めるポップアップが表示され、ユーザーが不審な動きに気づく可能性があります。
しかし、攻撃者がターゲットにリポジトリを渡す仕組み上、拡張機能がインストールされる前から、すでにJupyter Notebookファイルがターゲットのgithub.dev上で実行されています。
攻撃者はまず、このipynbファイルを指すgithub.devリンクを使ってターゲットに自分のリポジトリを開かせる必要があります。VS CodeはこのファイルをWebview内で即座に開きます。
Jupyter NotebookのMarkdownセル内には隠されたHTMLスニペットが含まれており、読み込まれると攻撃者が制御するJavaScriptコードが実行されます。このコードは擬似的なキーボードショートカットを発火させ、VS Codeのメインエディタにバブルアップすることで、システムを騙して悪意のある拡張機能のポップアップを自動的に承認させます。
攻撃者が制御する拡張機能はその後、ブラウザ環境へのアクセスを持った状態で動作し、OAuthトークンを窃取します。このトークンは、公開・非公開を問わずあらゆるリポジトリの閲覧・変更に使用できます。
Askar氏は、Microsoft Security Response Center(MSRC)との過去の不快な経験が、通常の責任ある開示プロセスを踏まない決断に影響したと述べています。同氏はGitHubの連絡先に通知してからおよそ1時間後にPoCを公開しました。
「VSCodeのバグを報告したMSRCとの最後のやり取りを振り返ると、私が指摘したバグをクレジットなしで黙って修正されるという最悪な経験でした」と同氏は記しています。
「さらに、セキュリティへの影響なしとも判定されました。あの投稿でも述べたとおり、今後VSCodeで見つけたセキュリティバグはすべて完全公開する方針を取ります。StarLabsがVS CodeのXSSバグについて最近報告した事例を見ても、『対象外・低深刻度』と判定されており、MSRCのVSCodeバグへの対応は改善されていないようです。
「VSCodeチームとしては、解決策を考える時間を確保するためにもっと長い事前通知を望んでいたことでしょう。セキュリティ上の懸念とUI/UXのバランスを取る必要があることも、正当な問題として理解しています。そのメンバーには申し訳なく思いますが、これはMSRCとVSCodeのセキュリティ姿勢に影響を与えようとする、私が持つ数少ない手段のひとつです。このようなセキュリティバグを発見し、概念実証として完全に開発するには、セキュリティ研究者にとって多大な時間と労力がかかります。それを軽視したり、当然のものとして扱うべきではありません。」
Askar氏のアプローチは、Nightmare Eclipseと名乗る研究者を想起させます。Microsoftの元社員と疑われているこの人物は、Microsoftに事前通知することなくゼロデイ脆弱性を公開し、ここ数週間で大きな注目を集めています。
同研究者はこれまでに6件のゼロデイ脆弱性を公開しており、そのうち3件は実際の攻撃者による悪用が速やかに確認されています。
Microsoftに対するこの一連の行動の動機について、Nightmare Eclipseはかつて守られなかった合意の末に裏切られ、住む場所を失ったと仄めかしていました——いずれも非常に曖昧な表現でしたが。
6件目のゼロデイ公開後、Microsoftは法執行機関と密接に連携するDigital Crimes Unitをちらつかせて研究者を曖昧に脅しましたが、否定的な反応が相次いだため、すぐに態度を軟化させました。
The RegisterはMicrosoftに詳細を問い合わせています。®