No209 こわいゼロデイ攻撃

2021/5/7にEC-Cubeという業務向けソフトパッケージに対し、未知
の脆弱性(ゼロデイ脆弱性)を狙った攻撃があったことがEC-Cube
の開発元から発表されました。

こういった未知の脆弱性を利用した攻撃をゼロデイ攻撃(アタック)
と呼びます。

ですが、不思議ですよね。なんで「ゼロデイ」なのでしょうか?
また、どうしてゼロデイ攻撃はこわいと言われるのでしょう?

今回はゼロデイ攻撃について解説をします。


1. ゼロデイ攻撃とは?

上述の通り、未知の脆弱性のことをゼロデイ脆弱性と呼び、その
脆弱性を利用した攻撃をゼロデイ攻撃(アタック)と呼びます。

未知の脆弱性というのは、アプリやサービスの提供元が把握できて
いない脆弱性のことを指します。把握できていないくらいですから、
当然ながら対応もできていません。

そのような脆弱性を何らかの方法で犯罪者が見つけだし、それを
使って攻撃をすることをゼロデイ攻撃と呼ぶのです。

ところで、ゼロデイというのは、脆弱性の発見(報告)日のこと
です。ゼロデイを起点として、脆弱性対応に要した日数を数える
習慣があるために発見日をゼロデイと呼ぶのです。


2. ゼロデイじゃない攻撃もあるの?

はい。
世の中で発生しているセキュリティ攻撃のほとんどは既知の脆弱性
に対する攻撃です。それに比べると、ゼロデイ攻撃は非常にレアです。

ゼロデイでない攻撃は、提供元から修正プログラムが提供されている
ということですから、WindowsUpdateやセキュリティアップデートを
行っていれば、攻撃を受けたとしても問題にはなりません。

こう聞くと「今どき、WindowsUpdateをやっていない人は少数派じゃ
ないの?」と思われる方もおられるかもしれません。

ですが、いろんな事情でセキュリティアップデートを公開から数日
や数週間遅れで適用する人も多いでしょう。
そういった人を狙う攻撃であれば、十分に効果はあります。

このメルマガの読者の皆様はそんなことはないと信じますが、そも
そもセキュリティアップデートをしない方も意外に多いようです。

中には「以前セキュリティアップデートを実施して動作がおかしく
なったから、以降は一切しないようにしている」という方もおられ
ます。

セキュリティアップデートで動作がおかしくなるリスクがあるのは
事実ですが、それでもマルウェアの侵入を許し、情報漏洩を引き
起こしたり、ランサムウェアにやられるよりはずっとましです。
今更ですが、セキュリティアップデートは忘れずに行いましょう。


3. どうしてゼロデイ攻撃はこわいのか?

ゼロデイ攻撃のやっかいな点は、修正プログラムなどの根本的な
対策がなく、攻撃への対応が極端に難しい点にあります。

また、実際に攻撃が行われており、被害が生じている点も特徴的
です。実際、今回警告が出されたEC-Cubeの場合でもクレジット
カード情報の漏洩といった被害が報告されています。

EC-Cubeのケースでは5/7にゼロデイ攻撃があったことの報告と
暫定的な修正プログラムの提供が行われ、5/10には正式な修正
プログラムが公開されました。最初の報告からわずか3日での
対応は称賛に値するスピードだと思います。

それでも、修正プログラムの提供までには数日の時間を要しており、
その間は無防備(EC-Cubeの場合は暫定策は提供されていました)
ですから、危険であることは間違いありません。

そもそも、気付いていない脆弱性への事前対応などできるはずが
ありません
見つかった時点では、修正プログラムはもちろん対策方法すら不明
なわけです。

こういった攻撃を受けた場合は、アプリやサービスの提供元の情報
を積極的に集め、対策を取らなければなりません。

ゼロデイ攻撃に対しては防御が非常に難しいのです。


4. 脆弱性は誰が見つけるのか?

世界中で見つかる脆弱性は年間で1万件を越えています。
それだけの脆弱性を誰が見つけるのでしょうか?

脆弱性を利用したマルウェアの存在にはアプリやサービスの提供元
は非常に困っています。脆弱性のないプログラムを作ることも大切
ですが、それでも脆弱性をゼロにすることは不可能です。

そのため、自社サービスの脆弱性を見つけてくれた人に賞金を出す
という会社が増えてきています。「お金を出すからたくさんバグを
見つけて教えてね」というわけです。

こういった流れの中で、バグや脆弱性の発見そのものを仕事にする
バグハンターという職業が登場しています。

多くの脆弱性は、誰かがそれを見つけてアプリやサービスの提供元
に通告するところから始まります。
その役割を担うのがバグハンターというわけです。

バグハンターはホワイトハッカー(正義のハッカー)の一形態です。

逆に、悪意を持ってバグを探すバグハンターも存在しています。
こういったバグハンターは発見した事実を企業に教えたりしません。
自分でこっそりと温存し、その脆弱性を利用したマルウェア(いわ
ゆるウイルス。詳細は文末参照)を作って、攻撃を計画している
グループに売却したりするわけです。

こちらのバグハンターの方がずっと儲かりますが、犯罪行為です。

なお、バグハンター以外にも、研究者が見つけるケース、自社の
メンバが見つけるケース、お客様が見つけるケースなど、発見の
シチュエーションはは実に様々です。


5. ゼロデイ攻撃を発見したら?

皆さんがもしゼロデイ脆弱性を見つけたら、どういった行動を取れば
いいのでしょうか?

脆弱性を見つけた場合は「隠密行動」が基本となります。

ブログやSNSで「脆弱性見つけたよ。具体的にはね...」などと詳細
を公開するなどもってのほかです。

ゼロデイ脆弱性の存在を広く世に知らしめると、実際に攻撃を行う
連中が出てくる可能性が高まるからです。

ではどうすればいいのでしょうか?

以前はアプリやサービスの提供元への連絡すべきと言われていまし
た。
ですが、脆弱性報告はかなり技術的な内容で、連絡を受けた部署が
理解できずに門前払いされたり、逆にクレーマー扱いされるという
トラブルが多発しました。

そのため、日本国内ではIPAという行政法人が受付窓口となり、
発見者から報告を受けると、連絡代行をする「情報セキュリティ
早期警戒パートナーシップガイドライン」という手順が定められて
います。

発見者はIPAへの報告を行うだけで、後はIPAが提供元とやりとりを
し、発見した脆弱性情報を無駄にしない仕組みとなっています。

さて、発見した脆弱性の情報公開はアプリやサービスの提供元での
対策などの準備が全て整った後になります。
それまでは上述の通り、「隠密行動」で一切公表されません。

ですが、隠密行動にしないケースがあります。
ゼロデイ攻撃です。

隠密行動を取るのは発見した脆弱性の存在を知られないためです。
既に脆弱性を知られているゼロデイ攻撃の場合は隠密行動を取る
理由がありませんから、攻撃を受けたことがわかれば早期に公表
をして、被害が拡がることを防ぐのです。

余談ですが、この情報を伏せておく期間は見つかった脆弱性の緊急
度と対応の難しさによって大きく異なります。

極端に緊急度が高い場合は数日で対応されることもありますが、
通常は数週間、長いもの(重要度が低いもの、回避が可能なもの)
では数ヵ月かかる場合もあります。


6. まとめ

ゼロデイ攻撃という攻撃方法があります。
まだ、どこにも公表されていない未知の脆弱性を利用した攻撃の
ことです。

通常の攻撃というのは、アプリやサービスの提供元が対応済の脆弱
性を利用しています。
ですから、セキュリティアップデートを適用しておけば、恐れる
ことはありません。

ですが、ゼロデイ攻撃の場合、修正プログラムはもちろん対策方法
すら不明な状態です。アプリやサービスの提供元から積極的に情報
を集め、暫定策などが発表されれば、すぐに適用しましょう。
ゼロデイ攻撃への防禦はスピードが非常に大切です。

こういった脆弱性情報はボランティアからの提供が多いのですが、
最近はバグや脆弱性の発見を仕事とするバグハンターという職業が
登場しています。

自らが脆弱性を発見した場合は、IPAという団体に報告をすること
で、以降の連絡を代行してもらうこともできます。

今回はゼロデイ攻撃について解説をしました。
次回もお楽しみに。

今回登場した用語

○マルウェア
 これは英語圏での造語で、malicious-softwareを縮めてmal-ware
 (=マルウェア)と呼ぶ。
 malicious(マリシャス)は「悪意のある」とか「故意の」と
 いった意味。
 つまり、利用者が思ってもいないコトを裏でコッソリやるソフト
 ウェアの総称を指す。
 ウイルスと何が違うんだ?と思ったアナタは正しい。
 以前は「ウイルス」が悪事を働くソフトの代表だったので、それ
 が総称を兼ねていた。
 ところが、ウイルス以外にも悪さをするソフトウェア、例えば
 ワーム、トロイの木馬、偽ソフトといった形式のソフトウェアが
 登場してきた。
 結果、狭義のウイルスと広義のウイルスの2つの意味にかなりの
 差が生まれてしまった。
 この両方を「ウイルス」で表記していると区別がつきにくくなる
 ため、マルウェアという言葉を「悪さをするソフトウェア」の
 総称として使いはじめた。
 2021年現在、ウイルスという言葉はマルウェアの一つの形式扱い
 ということで専門家の間では定着した。一般ユーザにも広がり
 つつあるが「ウイルス」と呼ぶ人もまだまだ多い。

この記事が気に入ったらサポートをしてみませんか?