MITREからCVE番号を取る

ソフトウェア製品の脆弱性を開発元に報告しても、CVE番号を振ってくれないことがしばしばある。

そういう時は、報告者自身でもMITREにCVEを請求できる。

CVE - Common Vulnerabilities and Exposures (CVE)

昨年夏に、Laravel(PHPのWebアプリケーションフレームワーク)の脆弱性をいくつか発見して開発元に直接報告したが、CVEを振ってくれなかったため、上のリンクのフォームから請求してみた。フォームの「Affected component」「Attack vector」「Suggested description of the vulnerability」等々を英語で書くのは手間と言えば手間だが、そこまでたいしたことはない。

番号請求してから2週間弱で、以下の3つのCVEの割り当てを受けた。

CVE-2020-24940
CVE-2020-24941
CVE-2020-25128

私の場合は、3つとも開発元が脆弱性として認めて修正/公開したものなので、フォームに記入した以上の情報は求められずにすんなりと進んだのかも。開発元が脆弱性として扱っていない場合でもCVEは請求できるようだが、その場合はもっと時間が掛かるのかもしれない。

IPAの早期警戒パートナーシップでは、日本語で報告できるし、CVE番号を振ってくれるし、JVNでCreditもしてくれるのでとても楽であるが、開発元とのやり取りがうまくいかず、結果として修正されずに途中でスタックするケースもある。IPAに報告しつつ自分で開発元と調整することもできるが、開発元とIPAの2箇所とのやり取りが生じるのが手間と言えば手間である。

JPCERTはCNA(CVE Numbering Authority)なので、JPCERTに依頼してCVEを発行してもらうこともできるのかもしれない。しかし脆弱性報告者という立場でもCVEの請求依頼を出せるかなどは分からない。

読書

最近は、本読んで、テレビで五輪見て…、という生活になってきた。

★★★★ 御嶽山(みたけさん)の神官の屋敷を舞台とした、霊的な不思議な昔話。霊的と言っても、呪いだ何だというホラーではなく、御岳山の自然と神と人間の、厳かだったり、切ない気持ちにさせる話。昔「御嶽山に行く」と言っていた外国人がいて、「何故そこに?」と思ったことがあるが、この本を読むと一度行ってみたくなる。

★★★★★ 時代物の短編集。時代小説の面白さの一つは、現代よりも厳しい規範の社会の中で、色々と葛藤が生じるところにある。作者は、江戸時代の経済/政治/社会の制度や風習をネタに、現代にも通じる人間臭いストーリーを作り上げる人。制度や風習のネタ自体の面白さもあるし、そこから生じる葛藤を織り込んだストーリーを作る構想力もすごい。

★★★ 中国/印度/日本の歴史小説短編。補陀落渡海記が印象深い。補陀落渡海は、小舟の中に自らを閉じ込めて海を漂い、補陀落(南方にある浄土)を目指すという修行。小説は、決心がつかぬまま渡海にのぞむ、補陀落寺の老年の住職が主人公。渡海への恐怖から我を失う様を描く悲劇的な話だが、周囲の雰囲気に押されて渡海せざるをえなくなる様や、住職でありながら補陀落に渡り救われることを信じていない様は、喜劇的でもある。

★★ 違法捜査も辞さないマル暴刑事とその部下が、暴力団同士の抗争を止める話。対立組織を追い詰めていくところは面白い。だが、ダーティーヒーローである刑事や、その刑事が癒着している暴力団がイイ人でカッコよすぎる。キャラが類型的というか。映画とかには向くかなと思ったら映画化されているらしい。

★★★ 直木賞作品「邂逅の森」の作者によるマタギ小説。若い女性編集者が主人公で、現代における自然(熊)と人間の共生をテーマにしている。舞台が現代であり、人間同士の自然観の対立と理解が話のメインであるため、原始的な力とかロマンを感じさせる「邂逅」程の衝撃力はない。

★★★ 悪辣な企業経営者の娘と孫が拉致される。現在の外国人労働者問題を絡めたミステリー。偶然だがこの本を読んだ日の日経社説は「技能実習は速やかに廃止を」だった。

★ 殺し屋の話。読了できず。若い頃なら読めたかも。

★ 男と女の関係。これも最後まで読めず。

★★★★★ 恋愛小説とホラー小説を多く書く作家によるサイコホラー短編集。読んだことがある作品もあったが、「家鳴り」等はもう一度読んでも気持ち悪い。

★★★★ 「夜市」で日本ホラー小説大賞を取った作家。ゆったりした独特の雰囲気がある幻想的な世界を描く人。本作は「ネオ江戸ファンタジー小説」だそう。C3POみたいな金色のロボットが江戸時代に現れるというキテレツな設定だが面白い。

開会式のドローンショー

平昌の冬季五輪でもドローンによるショーをやっていたようだが、私は今回初めてみたのでビックリした。さらにインテルが担当したと聞いて、そんなビジネスもやってるんだということにも驚いた。

ショーに直接関連しそうなものとしては、インテルには以下のような特許出願があるらしい。

US20180136646A1 - Aerial display morphing - Google Patents(Pending)

似たようなものでディズニーの特許もある。

US20140236388A1 - Aerial display system with floating pixels - Google Patents(Active)

US20140249693A1 - Controlling unmanned aerial vehicles as a flock to synchronize flight in aerial displays - Google Patents(Active)

いずれもUSのみで「Aerial display」に関するもの。特許で言うとディズニーが一歩先を行ったように見える。

セキュリティ絡みの話では、開会式をテレビで見ていて「妨害電波とか飛ばされたらイヤだな」とは思った。今日調べてみたら関連しそうな記事(杉浦氏が出てくる)があった。

開会式彩ったドローンの舞、ハッカーが通信の解析試みた - 東京オリンピック:朝日新聞デジタル

記事によると、後日の解析のために会場の周辺でパケットを収集したらしい。

私は門外漢なので当てずっぽうだが、パフォーマンス開始の指示をする必要もあるし、GPSの測位だけではフォーメーションが乱れたりドローン同士がぶつかってしまう可能性があるので、地上もしくはドローン間でデータをやりとりしていると想像する。ちなみにディズニーの特許の図には、2つのチャネル(2.4GHz, 900MHz)で地上局とやりとりする例が示されている。

こういうショーでは、脆弱性を突いた攻撃や妨害に加えて、機器のトラブルや、天候の急変でドローンが飛べなくなるような事態も生じうる。失敗した時のダメージがでかいイベントのプログラムはそういうことも含めて色々と考慮した上で作る必要があるだろうし、準備はなかなか大変だろうと思う。

CSP bypass

少し前に公開されたものだが、PortswiggerのDaily swig経由で見つけた、MSの小勝さんが報告したChromeのCSP bypassバグについて。

やられる側は例えば下記のようなページ。nonceのCSPを使っている。

<meta http-equiv="content-security-policy" content="script-src 'nonce-testrandom'">
<body>
<?= $_GET['param'] ?>    ← エスケープ無し
</body>

攻撃者は以下のようにiframeを挿入してやる(ここでは簡単のためsrcdocを使っている)。

<meta http-equiv="content-security-policy" content="script-src 'nonce-testrandom'">
<body>
<iframe srcdoc='<script>alert(window.origin)</script>'></iframe> ← 攻撃者が挿入したiframeタグ
</body>

攻撃者はiframe内でalertを動かそうとするが、iframeの親ページのCSPがiframeにも継承されるため、正しいnonceが無いJSの実行はブロックされる。

しかし古いChromeでは以下のような方法で回避できた、というのが小勝さんのレポート。

①attackerのページ[A]内のiframeに、victimのページ[V]を入れてやる([V]は上記のiframeが挿入されたCSP付きページ)。

┌─────────────────┐
│attackerのページ[A]        │
│                 │
│┌───────────────┐│
││victimのページ[V]       ││
││               ││
││┌─────────────┐││
│││XSSで挿入したiframe[I]  │││
││└─────────────┘││
│└───────────────┘│
└─────────────────┘
 この時点で[I]には[V]のCSPが適用されている。

②[A]は[I]のURLをdata:text/html,<script>history.back()</script>に操作する。
 この時点で[I]には[A]のCSP(空っぽ)が適用されるようになる。

③[I]のJSが動作してhistory backされる。[I]はXSSで挿入した内容(以下)に戻る。
 <iframe srcdoc='<script>alert(window.origin)</script>'></iframe>

④backした後も、[I]には[A]のCSP(空っぽ)が適用される。
 一方で[I]のオリジンは[V]を継承している。

こんな感じで、CSPのiframeへの継承というメンドクサイところを突いた攻撃です。

修正後は、④にて[I]には[V]のCSPが継承されるようになった模様。Daily swigによると修正にはHTML仕様の追加が必要だったらしい。

他のブラウザではどうかというと、Firefoxは昔から修正後のChromeと同じ挙動だったと思われる。

面白いことに、Safariは挙動が異なっていて③のJS(history.back)は実行されない。これは②で[A]が[I]のURLを変えてもCSPはそのまま[V]のものが適用されるから。それはそれで何となく気持ち悪くはある。