こんにちは、株式会社カドベヤでエンジニアをしております幅です
前回の投稿を読んでくださった方、ありがとうございます
もしまだでしたら以下から読めるので良ければ読んでみてください。時事ネタなので今読んでも微妙かもしれませんが…
突然ですが、皆さんはゲームは好きですか?
私はもっぱらオフラインでできるソロゲームをプレイしているのですが、今一番楽しみにしているタイトルといえば、ゼルダの伝説 ティアーズ オブ ザ キングダムですね
前作のブレス オブ ザ ワイルドがゲーム史に名を残すであろうレベルの大ヒット作であっただけに、続編となる今作への期待は世界中で高まっていると思います
私もしっかり前作プレイ済み・予約済みです
さて、ゼルダの伝説シリーズではある程度おなじみの展開があります
それは「敵の手に落ちたハイラル城がダンジョンになる」というもので、ゼルダの伝説はストーリー上(あるいは本編開始前)で城を奪われるという過程を踏むことが非常に多いのです
これは見方を変えると、「ハイラル王国の脆弱性を悪意を持ったユーザーに攻撃されて乗っ取り被害を受けている」と言えるのではないでしょうか?
そうです、ゼルダの伝説シリーズからはセキュリティについて学べるのです
といいうわけで、今回はシリーズの中から「ゼルダの伝説 時のオカリナ」について取り上げて、ハイラル王国のセキュリティとその脆弱性を攻撃者であるガノンドロフが如何にして突いているのかについて紹介していこうと思います
※この記事は時のオカリナのネタバレを含みますのでそれを承知の上でお読みください
時のオカリナ作中のセキュリティ
時オカにおいて重要になるのは時の神殿という建物です
この建物内にはトライフォースがある聖地へ向かう鍵となるマスターソードが安置され、剣の台座へと向かう通路は時の扉という大きな扉で封印されています
この封印を解くために必要な手順は以下の通りとなっています
- コキリ・ゴロン・ゾーラの3種族がそれぞれ管理している3つの精霊石を集め、扉の前の台座に捧げる
- 時のオカリナという特別なオカリナで時の歌を演奏する
この両方を行うことで扉が開き、マスターソードのもとへと進むことができます
…実はこれって多要素認証だということに、皆さんお気づきでしょうか?
多要素認証とは
多要素認証(Multi-Factor Authentication :MFA)とは文字通り複数の認証を組み合わせることです
複数の認証と言っても単純にパスワードを2種類用意させるわけではなく、以下に分類されるような複数の認証要素を組み合わせるのがポイントとなります
知識認証
パスワードや秘密の質問などユーザーが知っていることを利用した認証
所有物認証
社員証の提示や携帯へのSMSなどユーザーが持っているものを利用した認証
生体認証
指紋や虹彩などユーザー自身の身体的特徴を利用した認証
最も身近な多要素認証の例としては、ATMで自分の口座からお金を下ろす際にキャッシュカード(所有物)と暗証番号(知識)が求められているのがそうでしょうか
また、良く混同される単語として二段階認証がありますが、二段階認証は上記どの種類の認証を使うか関係なく二段階に分けて認証していれば二段階認証です。パスワードAとパスワードBで知識認証を二回行っても二段階認証と言えます
二段階認証のうち二種類の認証を使っているものが二要素認証、という関係になります
時のオカリナでの多要素認証
時の神殿では、精霊石や時のオカリナといった所有物と、時の歌という知識の二種類の要素を求める認証方法を採用しています
これにより精霊石を力づくで奪ったとしても時の歌がわからないといけませんし、城内で時の歌を盗み聞きできたとしても精霊石やオカリナ無しでは意味がありません
GitHubがユーザーに二要素認証の利用を義務付けたのが今年3月であることを考えると、1998年に発売された時のオカリナでこのセキュリティを構築しているハイラル王家はかなりセキュリティ意識が高いのではないでしょうか?
…ですが、残念ながらゲームのストーリーではガノンドロフが聖地に侵入し、トライフォースを(一部)奪われてしまいます
一体何が良くなかったのでしょうか?
ガノンドロフのハッキング手法
ゲーム上で説明される経緯としては、リンクはゼルダ王女との計画通りにガノンドロフより先にトライフォースを手に入れて守るために、各部族から譲り受けた精霊石とゼルダから託された時のオカリナで時の扉の封印を解きます
そしてマスターソードを引き抜くところまではよかったのですが、その際に子供のリンクではトライフォースの力に耐えられないとマスターソードに判断され、7年間聖地で強制的に眠りにつかされてしまいます
その間に、リンクが聖地への鍵を握っていると睨んだガノンドロフはリンクを追いかけ時の神殿へとたどり着き、無防備な状態の聖地に侵入してトライフォースを手に入れてしまうのです
…これは、ソーシャル・エンジニアリングの手法の一つじゃないでしょうか?
ソーシャル・エンジニアリングとは
ソーシャル・エンジニアリングはDoS攻撃やソフトウェアの脆弱性への攻撃とは違い、情報通信技術を使用せずに行うハッキング手法です
多くの場合人間の心理的な隙や行動・ルールのミスを突くことで行われます
代表的な手口としては以下のような物が挙げられます
なりすまし(フィッシング・ビッシング)
銀行や警察のフリをして電話をかけ、口座の暗証番号を聞き出そうとするといった方法
覗き見(ショルダーハック)
パスワードを入力する画面やキー操作、ディスプレイに貼ってある付箋、あるいは画面に映ってる資料そのものを盗み見ることで機密情報を盗みだす方法
ゴミ箱を漁る(トラッシング)
ゴミとして捨てられた資料から機密情報やそれに繋がる足がかりとなる情報を盗み出す方法
その他に偽サイトやウィルスに感染したという偽のポップアップから個人情報を盗んだり支払いをさせたりしようというのもソーシャル・エンジニアリングに含まれます
最近のサイバー攻撃はマルウェアやランサムウェアによる不正侵入が増えているものの、ソーシャル・エンジニアリングは依然としてデータ漏洩・侵害事例の原因の20%以上を占めていて、対策は必須であると言えるでしょう
「電車内でPCを立ち上げて仕事してはいけない」「不要になった書類は必ずシュレッダーにかけて処分する」といったルールが皆さんの職場にもあると思いますが、これらはソーシャル・エンジニアリング対策のためのルールの一例ですね
※侵害事例の割合の参考:https://www.verizon.com/business/ja-jp/resources/reports/dbir/
時のオカリナでのソーシャルエンジニアリング
さて、時のオカリナでは前述の通りリンクがマスターソードを抜いた状態で眠りについてしまいます
問題はその際に扉が開きっぱなしな上、マスターソードを抜いた時点で聖地への道は開いていて、マスターソードの所持者でなくても聖地へたどり着けるという点です
※これが人的要因と言えるのかと思うかもしれませんが、他作品を踏まえるとこれは神殿のシステムではなく剣に宿る意思によるものなので人的要因に含まれるのではないかと判断しました
皆さんの職場でも離席時にはPCをロックするといったルールが決められているのではないでしょうか?
時の神殿は画面ロック無しにログイン状態で7年間離席していたようなものと考えれば、どれだけ危険なことか想像に難くないと思います
また、その状態でも聖地へのアクセスにマスターソードの利用を必須にしていれば最悪の事態は防げたのですが、剣を抜いた時点で誰でもアクセス可能な状態になっていたというのも非常に残念です
※ガノンドロフが追いかけてきたはずなのにリンクは無事だったため、7年間マスターソードを持って眠っていたリンクはガノンドロフでも手出しできない場所にいたと思われる
その他の気になるセキュリティリスク
作中において利用されたわけではありませんが個人的にここが危ないと思った点を挙げてみます
精霊石の重要さが失伝してしまっている
おそらく王家誕生時から同一個体であると思われるデクの樹サマはちゃんと精霊石の役割を知っているのですが、他の二部族では「族長の家系で保管するよくわからんけど大事なもの」程度の認識しか持っていないように見えます
ゾーラのルト姫はまだ子供なのに自分の判断で(婚約指輪代わりに)リンクに精霊石をプレゼントしています。これが伝説のトライフォースへつながる鍵だということを考えるとあまりにも扱いが軽すぎるのではないでしょうか?
ルト姫に男を見る目がしっかりあったから良かったものの、悪い男に騙されていたら大問題になってしまいます
現実世界でもセキュリティのためのルールが何を防ぐ目的で制定されているのかを正しく周知できていない場合、形骸化し時代にそぐわない不要なものになっていたりルールを改修する必要があるのに気づけないといった状態になってしまうことがあります
各部族長の家系には定期的にセキュリティ研修を受けさせたほうが良いでしょう
保守性のない封印
最終的にガノンドロフは賢者達の力を合わせて封印することになるのですが、この封印はちゃんとメンテナンスできておらず、後の時系列で封印は破られてしまいます
封印というものの考え方が難しいですがファイアウォールを設置して境界外に追い出しているという風に考えると、日々新たに生まれてくるセキュリティリスクに対応するためにファイアウォールを更新していく必要があるのは明白です
この点は時のオカリナに限らずシリーズ全般の問題だと言えるでしょう(そうじゃないとガノンが再登場できないというメタな都合もあるのでしょうが…)
時の神殿のBGM
だいぶメタな話にはなってしまいますが、時の神殿ではBGMとして時の歌が流れています
これはもうパスワードのヒント欄に答えそのものを書いているのと同じではないでしょうか?
非常に危険だと思います(作中の登場人物達にBGMが聞こえているのかという点は置いておく)
まとめ
ゼルダの伝説 時のオカリナのストーリーを題材に、主に多要素認証とソーシャルエンジニアリングを中心にセキュリティについて考えてみました
セキュリティについて考えるとき一番危ないのはソフトよりもそれを運用する人間だと個人的には思っています
人間によるミスはどうしても発生してしまうものです
ミスを起こさないようなルールを制定・周知するのと同時に、ミスをしても影響範囲が最小限で済むような仕組みを構築することも大事ですね
ちなみによくRPGでは重要なボスを倒したりアイテムを入手するまでの手順としておつかい要素と呼ばれるような面倒な工程であっちこっちに行かされるのですが、実はこの面倒臭さ自体もセキュリティの一つであると言えるのではないでしょうか
おまけの宣伝
もしまだティアーズ オブ ザ キングダムを予約していなくて、現在購入を検討している方がいらっしゃったら、2本でお得 ニンテンドーカタログチケットがオススメです!
このチケットは対象のソフトから2本を選択して購入できますが、なんとお値段9980円!
ティアーズ オブ ザ キングダム単体で購入すると7900円なので、実質2000円でもう一本ソフトが購入できるというわけです
対象ソフトには前作ブレス オブ ザ ワイルドや夏に発売予定のピクミン4なども含まれていて、普通に2本買うよりおよそ4~5000円お得になると思います
チケットの購入にはNintendo Switch Onlineの有料プランへの加入が必須なのですが、加入者特典でファミコン・スーファミ・ゲームボーイの特定の作品が遊び放題になるので入って損はないと思います
更に上位プランのNintendo Switch Online + 追加パックではニンテンドー64やゲームボーイアドバンスのゲームも遊べて、この記事で紹介している時のオカリナも対象となっています
自分はちゃんと加入して時のオカリナをやり直しました
皆さんもぜひゼルダの伝説をプレイしましょう!