起動時に CDN からスクリプトを取ってくるアプリは改ざんに弱い:NIKKE PC ランチャーの事例
『勝利の女神:NIKKE』の PC ランチャーで、スクリプトファイルが第三者に改ざんされた可能性があると運営が公表し、11 月 4 日にクライアントを修正した。第三者の技術報告では、配信元 CDN 上の公式 JavaScript が 9 月 27 日に改ざんされ、ランチャー起動時に遠隔操作型のエージェントがダウンロード・実行される場合があったとしている。
何が教訓か
- ランチャーや Electron アプリが「起動のたびに CDN から JavaScript を取ってきて実行する」作りだと、CDN 側(保存先のバケットや配信設定)を書き換えられるだけで、署名済みのアプリ本体を通さずに全利用者の端末でコードが動く。
- 運営の公表まで約 1 カ月あり、その間に起動した端末が対象になりうる。
作る側の対策
- 実行するコードは、アプリ本体に同梱して署名するか、取得したファイルの署名やハッシュ(Subresource Integrity と同じ考え方)を検証してから読み込む。
- CDN の元データ(オブジェクトストレージなど)への書き込み権限を絞り、変更を監視して通知する。
- 配信中のファイルの中身を、リリース時のハッシュと定期的に照合する。
利用者側(影響期間にランチャーを起動した場合)
- 運営の今後のお知らせ(影響範囲と対応方針)を確認する。
- 心配な場合は、見覚えのない常駐プロセスや自動起動項目、外向き通信を確かめ、その PC で使っていたアカウントのパスワードを別の端末から変更する。