なぜ、セキュリティを意識したサイトでも「認証に不安が残る」のか
不正ログイン被害が相次ぎ、わずか3カ月ほどでサービスが終了したスマートフォン決済「7pay」。事件を受け、金融庁などがキャッシュレス決済事業者に不正アクセス対策の強化を要請するなど、業界に大きなインパクトをもたらしました。
そうした中、脆弱性診断サービスなどを手掛けるセキュアスカイ・テクノロジー(SST)では、7payの事件などを背景に「システムの認証周りが不安だけれど、どうしたらいいの?」という問い合わせが増えているといいます。
SSTは9月4日、同社が提供しているWeb Application Firewall(WAF)サービスと脆弱性診断サービスから得られた知見を基に、Webサービスの認証を取り巻く「攻撃」と、それに付け入れられる隙となる「脆弱性」の実態を紹介するセミナーを開催しました。
同社のはせがわようすけ取締役(兼CTO)によると、積極的に脆弱性診断を受けるほどセキュリティに気を配っているサイトでも、不備が多々見つかったといいます。はせがわ氏が認証の課題、不正ログインへの対策を解説しました。
●認証をかいくぐろうとする攻撃、その実態は
まず、はせがわ氏は認証をかいくぐろうとする攻撃の動向を紹介。SSTは日本国内で約3000サイトにWAFを提供していますが、「日々多数の攻撃を検知しており、認証に関連する攻撃も含まれている」と述べました。特定のWebサイトを狙って総当たりでやってくるログイン試行の他、どこかから入手したIDとパスワードのリストを基にしたとおぼしきパスワードリスト攻撃も観測されているそうです。
総当たりのログイン試行は規模が大きく、「数日間で100万件以上のアクセスがあることもある」といいます。WAFや監視体制がきちんとしていればいいのですが、あまりに大規模な攻撃では突破される恐れがあるとのことです。
パスワードリスト攻撃は、たびたび発生してきたのでご存じの方も多いでしょう。ちょっと古いのですが情報処理推進機構(IPA)が2014年に公開した資料によると、不正ログインの成立率は約0.15%から高くても9.98%でしたが、18年6月に国内のあるECサイトで発生したパスワードリスト攻撃では、1938件のログイン試行に対し490件が成功し、ログイン成功率が25%に達しました。これは、IPAの「オンライン本人認証方式の実態調査報告書」で「ユーザーの約25%が同一のパスワードを複数のサービスで使い回ししている」とされた結果と同じ数字です。
このケースで注目すべきは、ログインに失敗した場合でも「実在するID」が使われていたことです。このことから、当てずっぽうにリストを試したわけではなさそうだ、と推測できます。
被害を受けた会社ではリスト漏れを疑って調査したところ、ユーザーが新規登録をする際の二重登録防止機能を使って、リストのIDをスクリーニングしていたことが分かったそうです。はせがわ氏は「ECサイトはログイン失敗はけっこう監視しているが、新規登録時の機能までは監視していないことが多い。おそらく攻撃者はそのことを知っていてリストのスクリーニングをしたのではないか」と分析しています。
●なぜ、認証に関する脆弱性が生まれるのか
一方、脆弱性診断からはどのような傾向が見えてくるでしょうか。SQLインジェクションやクロスサイトスクリプティングといったWebアプリケーションの定番ともいえる問題もありますが、「認証に関する脆弱性もたくさん見つかる」とはせがわ氏は述べました。
例えば、きちんと認証・認可をできておらず、権限がない人にデータや特定の機能の利用を許し、他人の情報を閲覧できる状態にしていたり、弱いパスワードを設定できる状態になっていたり……中には、ログイン機能の実装に不備があり、そもそもログインしなくても閲覧できる状態のサービスもあったそうです。
しかしなぜ、自ら脆弱性診断を受けるほどセキュリティに気を配っているサイトでも、こうした問題が存在してしまうのでしょう。
理由の1つは「スコープ」(範囲)です。「アプリケーションの全機能を検査するのは、期間やコスト的にも非現実的であり、取捨選択した一部の機能のみを検査している可能性がある」(はせがわ氏)。
検査をする側は、一通りサービスを使ってみて流れをつかんだ上で「こことここを見ていきましょう」という具合に対象を取捨選択します。検査を受ける側も、重要ではないところは外して対象を決定するのですが、この結果「潜在的な脆弱性があるにもかかわらず、診断対象から外れるものもある」というわけです。
また、診断を行って報告書を作成したにもかかわらず、問題がすぐに修正されるとは限りません。例えば「年末キャンペーンがあるからあと1カ月だけ伸ばそう」とか、「次の定期メンテナンスのときに合わせて修正しよう」という具合に、一定期間リスクを許容するという選択もあります。
もう1つの要因は「いったん診断を済ませた既存の機能は、診断対象から外されがち」ということです。
最初は取り扱う情報も限定的な、シンプルなポイント管理システムでも、拡張していくうちにスマートフォンと連携したり、メールアドレスなどの個人情報とひも付けたり、決済機能を追加したり──という具合に機能が増えていくことは珍しくありません。これに伴って潜在的なリスクも変わってくるのですが、往々にして「検査するのは新しく作ったところだけで、バックエンドは見ないことになりがち」だといいます。この結果、思わぬ問題が発生するというわけです。
システム開発のスピードが上がり、APIを介して複数のサービスがつながり、時にIoTなどさまざまなデバイスがつながってくるいま、肝に銘じなければいけないポイントといえるでしょう。
●「たった1つの冴えたやり方はない」
ではこうした現状を踏まえ、どのように対策すればいいのでしょうか。「何も目新しいことはなく、愚直に、今までやってきたこと、ベストプラクティスを積み重ねるしかない」とはせがわ氏は述べます。
具体的には、企画段階からセキュリティを意識して設計し、機能追加などがある場合には守るべき資産価値が変動することを踏まえて対象を分析すること。そして診断対象を選定する際には、「絶対に守らないといけないところ」は外さないようにします。
認証機能の強化もポイントで、できれば「知識情報」「所持情報」「生体情報」のうち2つ以上を組み合わせた多要素認証を採用すべきといいます。ユーザーになるべく不便を強いたくない場合は、いつもと違う状況の時だけ、追加で多要素認証を実施するリスクベース認証という手もあるでしょう。
他にも、ログの記録、ログイン失敗および成功の記録、複数回ログインに失敗した際のアカウントロック機構の実装といった対策が挙げられるといいます。ログインの頻度にもよりますが、失敗したときだけでなく、成功したときも記録することで早い段階で被害に気付けますし、万一なりすましでログインされたとき、追跡や被害を特定する手段になり得ます。
また、あまり深くは立ち入りませんでしたが、ユーザーが「面倒だな」と思うあまり簡単なパスワードを設定しないよう、繰り返しパスワードを求めるようなユーザーインタフェースは避けるといった具合に、デザイン面からも考慮すべき事柄があるとしました。
「たった1つの冴えたやり方はない。基本的で地道な対策を積み重ねていくしかなく、いろいろ組み合わせていくことで攻撃者のコストは上がる」とはせがわ氏。急がば回れではないですが、確実に積み重ねていくことが大切だと考えさせられました。
