マルウエアと「脆弱性」は切っても切れない関係にある。マルウエアには脆弱性を悪用することで感染を広げ、攻撃の成功率を高めるタイプが存在するからだ。
では、攻撃者は脆弱性をどうやって知るのだろうか。もちろん攻撃者自身が見つけることもあるが、他者から「購入」することもある。現在では脆弱性情報に関する市場が存在し、日々売買されている。
そこで今回は、脆弱性情報の取引の知られざる実態と、脆弱性を悪用するマルウエアを解説する。
暗躍する脆弱性ブローカー
脆弱性の発見者と攻撃者(マルウエア作者)が直接やりとりすることは少ない。脆弱性情報の売買を仲介する「脆弱性ブローカー」が存在するからだ。米国の脆弱性ブローカーであるゼロディウムは、サイトで脆弱性情報の買い取り価格の目安を公開している(図1)。
世の中でまだ知られていない脆弱性(未知の脆弱性)の発見者は、脆弱性ブローカーに売ることで、その情報を金銭に換えられる。多くの場合脆弱性ブローカーに売却された脆弱性情報は、サイバー攻撃やスパイ活動などに使われる。
バグバウンティプログラムに報告することで金銭に換えることもできる。これは、ソフトウエアベンダーが報奨金をかけて脆弱性を見つけてもらう制度である。
バグバウンティプログラムに報告した脆弱性情報は、ソフトウエアベンダーが修正プログラムの開発に役立てたり、ユーザーへの注意喚起に利用したりする。
どんな脆弱性が高いのか
脆弱性情報の値段は、その危険性や悪用のしやすさなどで決まってくる。一般的な商材と同じで、購入側(攻撃者)が欲しがる情報ほど市場原理によって高価になる。
例えばゼロディウムが公表している目安によると、「Win RCE Zero Click」が100万ドル以下で最も高額だ。これは、ユーザーの操作なし(クリックなし)で任意のプログラム(マルウエア)を実行できるWindowsの脆弱性である。
過去に見つかった脆弱性の価格を調べられるデータベースもある。その1つが「VULDB」だ(図2)。VULDBは、脆弱性の危険性や悪用のしやすさに加えて、脆弱性ブローカーの買い取り価格も考慮して独自に価格を算出している。
例えば、2020年3月10日に公開されたWindowsが備える「SMB▼」の脆弱性(CVE▼-2020-0796)には、最大で10万ドルの価格が付けられている。脆弱性の危険性や悪用のしやすさを表す指標であるCVSS▼は、10点満点で9.5と高い。
一方、筆者が2015年に発見したWindowsの脆弱性(MS15-063▼)の価格は1000ドルから2000ドルと表示された。この脆弱性のCVSSは5.1だった。
このようにCVSSが高い脆弱性のほうが攻撃者にとって有用であるため高い価格が付きやすい。言い換えれば、高値が付く脆弱性ほどマルウエアが悪用しやすく、ユーザーにとって脅威になる。