先週、動画変換ファイルアプリ HandBrake のMac版によってマルウェアに感染との報道がありました。(日本語記事参考: 動画変換ソフト「HandBrake」Mac版にマルウェア感染の危険性 | CNET Japan)2つの配信サーバのうちの片方で、感染したHandBrakeアプリが3日間公開された状態になっており、ダウンロードして起動するとそのコンピュータは攻撃者による遠隔操作が可能な状態になる、というものです。
運が悪く、さらにコンピュータ運にも恵まれず、公開されていた3日の間に感染したHandBrakeをダウンロード、起動したためにプログラマのMacが感染してしまいました。
その結果、どこかの、誰かに、私たちのアプリのソースコードが盗まれました。
続けて、以下の大切な3つについてお知らせします:
・今回の攻撃者がユーザ情報にアクセスした兆候はまったくありませんでした。
・さらに、Panic Syncデータにアクセスした兆候もまったくありませんでした。
・また、私たちのWebサーバへの不正なアクセスは基本的にありませんでした。
(なお、私たちの直販サイトでの決済のすべてはStripeによって処理されており、お客様のクレジットカードを一切保持しない様に設計されております。またすべてのPanic Syncデータは常に強固に暗号化されています。より詳しい情報はこちらをご参照ください。)
その時、何が起こっていたのでしょうか?過去最大級に愚かな今回のことについて、以下ご説明します。
Story
HandBrakeのアップデートがあったことを認識していました。そして、どういう訳かそのタイミングで更新することにしました。アップデートのダイアログには差分アップデートが利用できず、そのためサーバから直接ダウンロードする必要がある旨の記載がありました。以前、Sparkleによるアップデート破損の経験があったので特に意識することなく、直接ダウンロードしました。
その限られた3日間、感染したアプリが配信されているとはまったく想像しませんでしたし、ダウンロードサーバが問題あるミラーリングサーバであるとも想像しませんでした。とはいえ振り返ってみると、なぜ起動時に管理者権限のパスワードを要求するのか不思議でした。以前に要求され、アップデートのタイミングで再び要求されるものかと考えたかも知れません。またHandBreakは開発者によって署名されていないアプリなので、Gatekeeperの警告をバイパスして起動しました。その後、3秒とかからずMacは完全に感染しました。
感染したHandBrakeのニュースが流れる頃にはGitへのアクセス情報がすっかり盗まれ、ログによれば私たちのソースコードリポジトリのクローニングに使用されていました。
直ちにMacの感染に気づき、すぐにマルウェアを無効にしました。そしてMacを切り離してパスワードの変更作業を進めました。また秘密鍵を更新し関連するインフラ全体に行き渡らせ、ドアを再度ロックしました。これは非常に時間のかかる作業でした。Webサーバへの侵害はありませんでしたが、念のためすべての認証鍵を変更しました。
続けて、ログを収集し被害状況の分析に取り掛かりました。結果として、私たちのソースコードとプログラマの個人情報のみに限定された不正アクセスであることが分かりました。ロギングが完全に行われていた(ありがとうJames)ため、状況を正しく分析することができました。攻撃者はソースコードをクローニングできないようにし、すべてを晒さないよう注意深くリポジトリ名から推察して盗んでいきました。
攻撃者からメールがあり、盗難の証拠としてソースコードの一部が添付されていました。ソースコードを公開し会社を「窒息させる」すると脅迫され、高額なビットコインによる身代金が要求されました。私たちは支払いに一切応じない姿勢で取り組んでいます。
So…
今回の件に関して、全社会議を行いました。結果、当初の予想とは少々異なる結論に落ち着きました。
誰かが私たちのソースコードを持っている。それは致命的な問題ですか?
ソースコードが悪意ある第3者に渡った際の「最悪のケース」について、基本的に以下の3つが考えられます:
・フリーで使用可能なアプリがビルドされ配布される。
これは、、すでに存在します。海賊版として古の時代から存在し、認識もしています — ですが、やめてください — よって、今回の件で突然大きな影響が及ぶことは考えづらく、また海賊版を使用することによるマルウェアへの感染確率は100%と言っていいでしょう。
・マルウェアに感染したアプリが作られ配布される。
この可能性は高いと考えられます。しかしそれらはすぐに発見され、Appleとの協力により根絶されるでしょう。また弊社のWebサイトから直接ダウンロードするかMac App Storeを利用することでリスクを最小限にすることが可能です。私たちはこれまで以上に、ダウンロードサーバの信頼性をセキュアで強固にしています。
・競合他社がアドバンテージを得るためにソースコードを入手する。
私たちが何年にも渡って知り合ってきたMacのデベロッパは上品で、理解ある人々です。道徳に反する行為をするとは想像できません。また盗まれ提供されるソースコードにマルウェアが仕込まれている可能性も高く、その様なリスクを犯すとは考えられません。
そしてひとつの重要な考えが、私たちに慰めを与えました:
1日1日と、盗まれたソースコードは古くなっていきます。
今回のことは私たちをスローダウンさせません。すでに単独で行った先週の修正は今回盗まれたソースに含まれていません。6ヶ月もするとメジャーな新機能も含まれないでしょう。ソースコードは生き物なのです。
全体会議の席上、自分たちで先にソースコードのすべてを公開することが半分決まりかけていました。そして公開後に起こることを想像した時、その影響は(コードに関する大量の質問以外は)特に無いかもしれないと認識しました。その瞬間、解き放たれた様な自由な気持ちになりました。
Assistance
不正アクセスから24時間以内に、私たちは今回の件について Apple と FBI に通報しました。
Apple はセキュリティに関する専門チームを素早く設け、できる限りの情報収集行いました。(そしてHandBrakeに添付されていたマルウェアが広範囲に及ばない様、発見後間もないにも関わらずOSレベルでブロックしました。)また私たちの以前の開発者IDをブロックするという最善の方法を準備してくれました。開発者IDは漏洩していないと考えていますが、慎重に慎重を期すためです。さらに重要なこととして、これから発見されるかもしれないマルウェアに感染したアプリはAppleによって監視され、発見されると即座にシャットダウンされる仕組みが整っています。
またFBIによる捜査へも全面的に協力しています。
Together
今回の件には多くの時間を割いて対応してまいります。
しかし、みなさんの協力と助けが必要です。
もし私たちのアプリが非公式な形で配布されていたりクラックされたバージョンを見つけたりした場合、それは何らかに感染していると考えるのが自然です。その際はお知らせください。またソースコードを見つけた場合もぜひ教えてください。今回の事件の捜査に役立つ情報はすべて必要で貴重です。
情報があればあるほど、法律的にも技術的にもできることが増え、事態の解決に役立ちます。
ご不明な点や気になることがございましたらメールやTwitterのDMでいつでも、お気軽にお寄せください。
繰り返しになりますが、私たちのアプリは製品ページとMac App Storeのみで配布されています。
今回のブログはとても書くのが難しく、不正にアクセスされたという現実が嫌で嫌で仕方ありません。自身の注意不足が腹立たしく、毎日自分を蹴っています。一方、どんなにコンピュータに精通しており経験があっても使うのは人間で、間違いは簡単に起こることがあります。今回、お客様に直接の被害が及ぶものではありませんでした。しかし無いに越したことはありません。この度はお騒がせし、本当に申し訳ございません。
私たちは20年にわたり、ユーザの皆さまに — アプリを買っていただき、素晴らしいアイディアを与えていただき、お友達に勧めていただき、という毎日を過ごしてきました。ユーザの皆さまのおかげで私たちがあります。私たちは立ち上がり、進むためにできるすべてのことを、これまで以上にしてまいります。
— together.
[原文]