# 2020(一次予選) ### 白浜情報危機管理コンテスト(一次予選) --- #### 「フェーズ」 1. 原因の列挙 2. 原因をリスク順(優先度順)に並べる 3. 原因を切り分けるための提案  (リスクの高い原因から順に切り分ける必要があると考える) 4. 調査の方法とその順序を示す --- ### 原因(ブレスト) 1. 身に覚えのない金券譲渡 - 家族の誰かの悪意のある利用(いたずら等) - 個人ユーザのアカウント漏洩 - 本人か身内の誤操作 - 本人の自作自演 - システムの不具合(ポイント付与や換算の不具合) - サービス側の内部不正 2. 一部ユーザが不自然な数のイベントに参加して多量のポイントを得ている - グループ間でQRコードを共有し、各人が複数回認証を得る - 商店・イベ開催・自治体システム管理者の内部犯 - 商店・イベ開催・自治体システムへの不正アクセス - 自治体の管理アプリ - データセンター側の仮想システムの不具合(脆弱性) ### このシステムの発展のためのアドバイス - 地域イベントに貢献している人間を表彰(ないし持ち上げる)する仕組みがあると良い - ユーザをIDで指定できるように - 金券の譲渡にパスワードを設ける - お互いの承認を持って金銭の譲渡を行えるようにする - セキュリティ対応策に二段階認証、ワンタイムパスワード等を提言する --- ### [提案構成例] お問い合わせいただきありがとうございます。 本件を担当させていただきます「clpwn」の鈴木です。 この度はご相談いただき誠にありがとうございます。 今回ご相談いただいた「個人ユーザのA様から、自分の身に覚えがない金券の譲渡の発生」と「一部のユーザがかなり多くのイベントに参加して多量のポイントを得ていること」という2件の問題に関して、私どものチームで検討を行った結果、現状で考えうる原因究明方法と、短期・長期の対応方法について、加えて貴社の地域通貨サービスのシステム設計や運用方法に問題や発展の可能性について次に示す順で報告させていただきます。 ### はじめに まず、弊チームの見解を述べさせていただきます。 - 貴社のデータベースサーバの調査結果,外部者の侵入や改竄が疑われるようなアクセス記録は認められず,データベースの改竄はないと判断したということ - 仮にアカウントが漏洩した場合でも現金から変換できるポイント等は本地域でのみ利用可能であること これらの状況を鑑みて、2つの問題が外部(自治体外)から攻撃によるものだという可能性は低いと考えています。 本トラブルの該当地域内の調査 -> システム内の調査 という順で調査をご案内させていただきます。 ### 初動対応 最初に、現在の証拠保全と事実確認のために各問題の関係者へヒアリングを行う必要がございます。以下に詳細を述べます。 - A様へのヒアリング 被害にあわれたA様に詳細な事実確認を行い、今回のトラブルが起きた際の状況を確認する必要があります。 - 金券譲渡先のユーザ名の確認 - アプリの不具合等がなかったか - 周りで同じような症状な人はいないか - 家族にA様の端末を使用する人がいるか - ログの保全(データベース,アクセスプログラム) ログの保全を行うことで今後の調査の証拠とすることができます。貴社の調査においても、ログの保全を行っているとのことですが以下に当てはまるログの保全を終えていない場合は早急に取得をお願いいたします。 - データベースサーバのログ - サーバへのアクセスログ - アカウント作成時のログ - ポイントの発行履歴 - ユーザのポイント利用履歴 - 金券の譲渡履歴 - 自治体の管理する管理アプリやそのアプリを使用する端末のログ - 管理アプリからのポイント管理情報や履歴 - 管理アプリで行ったアカウント管理履歴 - 管理アプリの使用履歴 - 管理アプリを使用する端末の使用、アクセス履歴 - アクセスプログラムの持つユーザ認証のログ - A様の端末のアプリにあるログ - 自治体の担当者へのヒアリング ポイント事業を管理する自治体へも事実確認を行う必要があります。 - 自治体の管理アプリの各消費者ユーザや商店ユーザのポイント受給に関わる文書とサーバのログとの比較 - 個人や商店等のユーザアカウント作成時の文書とサーバのログの比較 ### 想定される原因と調査の優先度 前述いたしましたが、弊チームでは、今回の問題に対して外部からの不正アクセスである可能性は低いと考えています。今回の問題に対して想定される原因について可能性の基準から各問題に対して調査の優先度を付けさせていただきました。 - 身に覚えのない金券譲渡 1. 家族の誰かの悪意のある利用(いたずら等)(高) 2. ソーシャルエンジニアリングによる個人ユーザのアカウント漏洩(高) 3. システムの不具合(ポイント付与や換算の不具合)(中) 4. 自治体の内部不正(低) 5. システム管理者の内部不正(低) 6. 本人か身内の誤操作(低) 7. 本人の自作自演(低) ###### 上記調査で解決しない場合 8. 不正アクセスによるアカウント漏洩 <br><br> - 一部ユーザが不自然な数のイベントに参加して多量のポイントを得ている 1. グループ間でQRコードを共有し、各人が複数回認証を得る(高) 2. イベント開催側の内部不正(中) 4. 自治体の内部不正(中) 5. システム管理者の内部不正(低) ###### 上記調査で解決しない場合 6. 商店・イベ開催・自治体システムへの不正アクセス 7. データセンター側の問題(脆弱性、管理体制等) 調査の優先度としては、優先度の高いものから行うことを推奨いたします。 状況確認などですぐに原因が判明いたしましたら、上記の優先順位に関わらずご調査ください。 <br><br> ### 考えられる原因と調査方法 弊チームが示した優先度順に調査を行い、原因が判明次第、続いて示す対処を行ってください。 #### 1. 見に覚えのない金券譲渡 ##### 本人以外のアカウント利用 [原因] 家族の誰かの悪意のある利用(いたずら等) [調査方法] - 今一度、家族や身内によるAさんのアカウントの利用が無いか確認をお願いします。 - また、管理アプリのポイント利用履歴、データサーバのポイント利用履歴を参照し、利用時間や回数を本人に確認を取ってください。 [対処] - 金券譲渡先のユーザ様へ金券の譲渡が誤操作であったことを通知し、利用しないように連絡する。また、A様に対するポイントの還元行い、自体の収束を図ってください。 システム的な対処としては、アプリ起動時にパス、生体認証を利用できるオプションを追加などの対策が考えられます。 ##### アカウントの漏洩 [原因] ソーシャルエンジニアリングによる個人ユーザのアカウント漏洩 [調査方法] - 管理アプリのポイント利用履歴、データサーバのポイント利用履歴を参照し、利用時間や利用回数の記録が本人の意思と齟齬がないか確認を取ってください。 - 可能であればログイン端末等の情報を確認し、本人様以外の端末からのログインがないか確認してください。 [対処] (1)一時的にA様のアカウントを停止。 (2)金券譲渡先のユーザ様に対して通知を行った上でアカウントを停止。 (3)A様のアカウントを新規に作成し、データベースサーバからポイントの復旧。その際に再度アカウントの申請が必要な旨をA様に連絡する。 ##### システムの不具合 [原因] システムの不具合による金券の譲渡(ポイント付与や換算の不具合) [調査方法] - データベースサーバの金券の譲渡に関わるログを確認し、金券譲渡のリクエストがA様のアカウントから出ているかを確認してください。システムの不具合であった場合、金券の譲渡に関わるリクエストがない可能性があります。 [対処] - 金券の譲渡に関わるプログラム等を確認してください。不具合が見つかった場合にはサービスの縮小や停止を考慮に入れて改善を行う必要があると思われます。見つからない場合であっても、定期的に金券の譲渡や交換のプログラムの監視やログを残すことをお勧めします。 ##### サービス運営者による内部不正 [原因] - 自治体のサービス運営者による内部不正 自治体の管理アプリ管理者による他人のアカウントの不正利用、不正なアカウント作成 [調査方法] - 管理アプリの操作ログとアカウント作成の申請時に作成した文書を比較し、不審なアカウントの作成がないか確認してください。 - 自治体の管理アプリの管理者へ、他人のアカウントの不正利用や不正なアカウント作成等に関して聞き込みを行ってください。 [対処] - 管理アプリのもつ権限の範囲を見直す必要があります。自治体の運営者には、最小限の範囲で権限を与え、運用するようにしてください。また、内部不正者の可能性を自治体に通知ください。 [原因] 貴社のデータベース管理・運用担当者によるアカウントの不正利用、不正なアカウント作成 [調査方法] - アクセスプログラムのログから不審なアカウントの作成がないか確認してください。 - 貴社のデータベース管理者へ、不正利用等に関してヒアリングを行ってください。 [対処] - 各スタッフのもつシステムへの権限を見直す必要があります。管理スタッフ以外のスタッフには、システムへの最小限の範囲の権限を与えて運用するようにしてください。 ##### 本人に起因する問題 [原因] 本人様かご家族様の誤操作 [調査方法] - A様やそのご家族様へ再度、ご確認を行ってください。 [対処] - 利用者への注意、アカウントの取り扱いについて見直すように通知を行う共に、全ユーザへ同じような注意を行うことをお勧めします。 [原因] A様ご本人の自作自演である可能性 [調査方法] - あまり考えたくはありませんが、万が一、他の原因のいずれにも当てはまらなかった場合、本人様への入念なヒアリングをお願いします。 [対処] - 利用者への厳重注意、今後も続くようであれば対象ユーザの利用停止をご検討ください。 #### 2. 一部ユーザが不自然な数のイベントに参加して多量のポイントを得ている ##### 人為的問題 [原因] グループ間でQRコードを共有(送信し合う等)し、参加していない人間がイベント参加の認証を受けている [調査方法] - イベント主催側に実際の参加者とシステムで確認できる参加者が一致しているかの調査を行ってください。 - 管理アプリでのポイント履歴の調査、利用状況アンケート調査を行ってください。悪意なく利用者間でQRコードの共有が行われている可能性があります。 [対処] - QRコードの共有が確認された場合、サービス利用者全体へQRコードの共有が行われていることを通知し、利用方法を改めるよう連絡してください。 また、個人証明を認証する人に対して、事例を周知させて注意するように促してください。 - 個人を証明するQRコードの仕様変更を推奨いたします。詳細な内容は、「地域通貨サービスのシステム設計や運用方法に問題や発展」をご確認ください。 ##### アプリ機能の問題 [原因] 他の端末で同一アカウントにログインし、複数のイベントに参加している [調査方法] - システムの仕様が、複数端末で同一アカウントにログインできるものであるか確認をお願いします。 - また、今ケースのような利用をするユーザがいないか、利用状況アンケート調査を行ってください。 - 同時間帯に開催されている別イベントに同一ユーザが参加しているのが確認された場合に、対象のユーザにヒアリングを行ってください。 [対処] - 複数端末で同一アカウントにログイン可能な場合、端末情報の利用などにより、複数の端末でのログインを防ぎ、アカウント保有者のみがアプリにログインできるようにする必要があると思われます。 ##### システムの問題 [原因] システムの不具合によって参加者以外にポイントが付与されている(ポイント付与や換算の不具合) [調査方法] - QRコードによって認証が行われたのかを確認する必要があります。データベースサーバのポイント発行履歴とユーザ認証のログを比較し、認証を行ったユーザに対してのみポイントが発行されているか確認してください。 - 異常なポイントの付与が行われていないか確認するために、自治体の管理ソフト、データベースサーバのポイント発行履歴を確認してください。 - 不自然な数のイベントに参加しているユーザに対して、記録上では参加した事になっているイベントに関するヒアリングを行ってください。 [対処] - ポイント発行に関する不具合が確認された場合、自治体や認定商店に経済的被害が起きる可能性があります。不具合の内容によってはサービスの一時的な停止を視野に入れてください。停止ないしサービスの一部縮小の後、管理ソフトやデータベースサーバ等といったシステムのプログラムの修正をお願いします。 ##### サービス側の内部不正 [原因] イベント開催者の内部不正  - 複数のアカウントにポイントを付与して、実際には行われていないイベントを行ったと虚偽申告していると考えられます。 [調査方法] - ポイントの流れや利用に関して不自然なものが無いか、イベント主催側の利用調査をお願いします。 - 実際にイベントが申請された時間帯に開催されているかの事実確認をしてください。 [対処] - イベント主催者への厳重注意、今後も続くようであれば対象ユーザのポイント発行停止等をご検討ください [原因] 自治体の管理者の内部不正 自治体の管理アプリ管理者による他人のアカウントの不正利用、実態のないアカウントの作成が考えられます。 [調査方法] - 自治体側では、管理者による付与ポイント設定や申請の無いアカウントの作成などの履歴が無いかを確認してください。 - ポイントの流れや利用に関して不自然なものが無いか自治体管理者の利用調査をお願いします。 [対処] - 自治体内に内部不正者がいる可能性があるとして、該当の自治体に通知ください。 #### 以上で解決しない場合 [原因] 不正アクセスによるアカウントの漏洩の可能性があります。 [調査方法] - 利用者全体に、ご利用状況アンケートのような形で、覚えのない操作履歴などが無いか調査を行ってください。また、今一度ログの精査を行う他、自治体側、データベースサーバで不自然なポイント履歴がないか探る。 - 改めて自治体の管理端末への外部からのアクセスが無いか、データベースサーバの脆弱性調査を行ってください。 [対処] - 現状のウイルス対策ソフトウェアの導入等を含めセキュリティ対策を見直し、脆弱性等が見つかり次第ソフトウェア等のアップデートを行ってください。 - セキュリティ対応策に二段階認証、ワンタイムパスワードの設定を推奨いたします。また、アカウント漏洩が確認された場合は、全ユーザーへパスワードの再設定を依頼することを推奨いたします。 [原因] 商店・イベント開催者・自治体システムへの不正アクセスの可能性があります。 [調査方法] - 自治体の管理者端末のログイン/アクセスログ、管理アプリのログ等の調査。貴社のサービス管理・運用を行う端末のログイン/アクセスログ等の調査。セキュリティ診断を行う企業による診断を受けることをお勧めします。 [対処方法] - 個人証明の認証システムに脆弱性があり、不正利用されている可能性があります。セキュリティ診断を行う企業による診断を受けることをお勧めします。 [原因] データセンター側の仮想システムの不具合(脆弱性、管理体制等) [調査方法] - データセンターのサーバ貸し出し業者への調査依頼 - サービスセンターの状態や障害発生などの更新情報を確認する [対処方法] - システムの不具合が修正されるまで、ポイント発行などの現金が絡むサービスの縮小をお勧めします。 ### 対応,調査の手順 #### 短期的対応 短期的な対応といたしましては、初動対応の後、上記の想定される原因について優先順位の高いものから順に調査、対応を行うことを提案いたします。 また、上記の調査の後原因が判明しなかった場合、「以上で解決しない場合」の項目にある調査を行うことを推奨いたします。 #### 長期的対応 長期的な対応といたしまして、今後の運用方法についてご提案させていただきます。 1. 定期的なセキュリティ診断 今後新たなセキュリティ上の欠陥が発生することも考えられるため、インシデントを未然に防ぐという意味で地域通貨サービスのシステムで利用しているデータベースサーバや自治体の管理アプリ等に対して、定期的なセキュリティ診断をお勧めいたします。 2. イベント参加状態の監視を含む、ポイント発行・利用状態の監視 通常ではありえないイベント参加があった場合、短時間での大量ポイント獲得があった場合等に管理者にそれを通達するシステムの導入をお勧めいたします。 3. 内部不正が行われないための体制づくり 今後の内部不正を防ぐために貴社、自治体側において定期的なヒアリングを行った上で適切な研修を行うと共に、各人のもつシステムへの権限等の体制を見直すことをお勧めします。 4. 定期的なデータベースのポイント利用・発行等のポイント情報、アカウント情報等に関するログの監視 今後新たなセキュリティ上の欠陥やシステムの不具合が発生することも考えられるため、仮想サーバーの状態のモニタリングや、各種ログの照合は定期的に行ってください。 ### 地域通貨サービスのシステム設計や運用方法に関する提案 #### システムの仕様に関して改善が必要であると思われる点 ##### 金券の譲渡について 1. 金券の譲渡時において、譲渡相手を氏名を指定する仕様となっている点 - 仮に同名のアカウント利用者がいた場合に、システム側で金券譲渡に不具合が発生する可能性があるため、アカウントにユーザIDなどの一意な情報を紐づけ、このユーザIDで金券譲渡先を指定する仕様への変更を提案します。 2. 金券の譲渡を譲渡する側が一方的にできてしまう。 - 現在の仕様であると、金券の譲渡が間違った相手に送ってしまった場合などでも一方的に送ることが可能となっていると思われます。よって、金券の譲渡の際には譲渡側、受け取る側がお互いに認証する機能を追加することを提案いたします。例えば、譲渡側がパスワードを設定し、受け取る側が譲渡側からパスワードを教えて貰うことで金券を受け取るというような仕組みです。 3. 現金からポイントのチャージ、ポイントの金券への交換、金券の譲渡がアプリ内で完結している点 - 現金やポイントの動きは何らかの通知なく行われてしまっているので、これらの利用時は登録したメールアドレスに通知が届く機能を追加することをお勧めします。 ##### 金券の期限に関して 1. 有効期限を無期限に設定した金券をユーザが停止できない点 - 有効期限を無期限にした場合には金券を使い切るまで利用できてしまいます。この金券を紛失した場合、または意図せず自分以外の手に渡ってしまった場合に現在の仕様ではユーザ自身が金券の利用を停止できません。よって、金券の有効期限を無期限に設定した場合にユーザが任意で金券の利用停止を行い、残高が戻ってくるという機能を追加することを提案します。ここで、ユーザのいたずら等を防ぐために一定時間に金券の発行と停止を行える回数や間隔の制限を検討することをお勧めします。 ##### 個人を証明するQRコードについて 1. 個人を証明するQRコードが容易に複製できる点 - 貴サービスでは家族向けの機能として、個人を証明するQRコードが印刷できますが、この機能がサービス利用者間でのQRコードの共有に繋がると考えています。一つのアカウントに対し、アカウント保有者の家族を証明するような個別のQRコードを発行できるようにすることで不自然な量のイベントに参加しているユーザを見つけやすくなります。 #### サービスの発展への提案 1. 地域イベントに貢献している方に何らかの贈賞を行う。 - ポイント獲得量やイベント参加数等の地域への貢献が大きい方に何らかの贈賞を行う制度を作ることを提案します。これにより、サービスの利用や注目はさらに高まると思われます。しかしこの制度を行うことで新たに、貢献度を高めるための不正行為を行うユーザが現れることが考えられます。この制度を導入する場合は、現在のシステムやアプリの仕様等を考慮した上で慎重な導入をお願いいたします。 2. 初めてイベントに参加する場合や、久しぶりに参加する場合に一定期間付与するポイントの上昇効果等といった特典を用意する。 - このような制度を導入することで、新規ユーザや過去に利用していたユーザを呼び戻しアクティブユーザの増加に繋がると思われます。現在より多くのユーザを獲得するために、このような制度の導入を提案します。しかし、すでに利用しているユーザにも公平となるような特典が必要となると思われます。加えて、ゲーム性が感じられるような環境となってしまった場合は、そのような環境を好まないユーザが離れていく可能性があるので慎重な協議の上でご判断ください。 <br><br> - 初動対応で原因が判明する可能性? - 人為的に利用者によって引き起こされた問題であれば、初動対応で管理アプリのログの参照などで解決は大いにあり得る. - 家族が原因と判明する - 外部からの攻撃の可能性は低いと結論づける。何故ならば、アカウントが外部に漏洩した場合でも、現金からポイントに変換できても逆はできず、ポイントから交換できる金券は商店街など地域でしか利用ができない。よって今回のサービス地域内で完結している可能性が高いと判断した。また、貴社の調査からも外部からの侵入は低いと考えられる。 - 報告から分かる環境やシステムを踏まえた上で、考えられる可能性 <br><br><br> ### アプリの問題 - 一つのアカウントでログインできるアプリ数の制限がされていないのでは。(一つのアカウントで1アプリ) - 一つのアプリにログインできるアカウント数を制限すべき? - 金券QRと個人証明QRでデザインを変える - 参加証明QRを1つのイベント参加時間中は発行?使用?できなくする。 - 印刷した金券QRコードを紛失した際の金券停止といった機能? ### 終わりに ご不安な点や疑問点などございましたら、以下の連絡先までご連絡いただければ幸いです。 TeamO「CLPWN」 担当: 鈴木 Email: example[@]XXX.com Tel: XXX-XXXX-XXXX