急増する「不正ログインBot」代表的な手口と、効果的な対策4選

NTTドコモの電子決済サービス「ドコモ口座」の不正送金事件は、メディアで連日報じられ多くの人に不安を抱かせました。

不正送金に関する発表があったのは2020年9月10日ですが、NTTドコモは7月26日に行った決算会見の時点で「dアカウント」への不正ログインを試みる例が増えている点に言及しています。増加した不正ログイン試行は「海外からのリスト型攻撃」であり、これは「Bot」と呼ばれる悪質なプログラムを利用して実行されるものです。

ドコモ口座の事例のように、企業が不正ログインを許してしまえば甚大な被害をもたらす危険性があります。そうした被害を防ぐためにも、Botによる不正ログインの代表的な手口と、サービス提供者側がとるべき効果的な不正ログイン対策について押さえておきましょう。

Botによる不正ログインとは

そもそも「Bot」とは、あらかじめ設定された処理を自動的に実行するプログラム全般を指します。たとえばGoogleなどの検索エンジンが使う「クローラー」も、Webサイトを巡回してテキストや画像といった情報を自動取得する代表的なBotの一種です。

もちろん上記は無害なBotの例ですが、あらゆる攻撃を自動的に仕掛けてくる悪質なBotも存在します。たとえば、流出したIDやパスワードを片っ端から試して不正ログインを試みる「リスト型攻撃」などにもBotが悪用されています。

こうしたBotによる不正ログインを許してしまえば、ユーザーアカウントの乗っ取りや、フィッシングURLの送信に使われるなどの二次被害を招いてしまいます。そうなれば企業のイメージダウンにつながる可能性もあり、ビジネスに大きな悪影響を及ぼすでしょう。

Botの攻撃手段【代表的な4つの手口を紹介】

Botを使った不正ログインの手口として、代表的なものを4つ紹介します。

パスワードリスト型攻撃

パスワードリスト攻撃とは、攻撃者が何らかの方法によりID・パスワードを入手し、その情報を使って別のサイトなどで不正ログインを試みるものです。「リスト型攻撃」や「アカウントリスト攻撃」とも呼ばれます。

ネットユーザーの多くが複数サイトで同じID・パスワードを使い回している傾向を利用した攻撃方法で、ユーザーが実際に使っている文字列を使うことから不正ログインが成功しやすい特徴があります。

ブルートフォースアタック(総当たり攻撃)

ブルートフォースアタック(総当たり攻撃)とは、特定のIDに対してあらゆる文字列の組み合わせのパスワードを使い、総当たり的にログインを試みる攻撃のことです。

非常に原始的な手法ではありますが、時間をかければいつかは正解に行き着く確実性を持ったサイバー攻撃です。さらに年々コンピュータの性能が向上していることもあり、以前よりも早く正解を当てられてしまう環境が整ってしまっています。

リバースブルートフォースアタック

リバースブルートフォースアタックとは、特定のパスワードに対してユーザーIDに使用され得る文字列の組み合わせを使い、総当り的にログインを試みる手法のことです。

先ほどの「ブルートフォースアタック」の場合は特定のIDに対してログインを試みるため、IDごとのアカウントロックによって回避が可能です。しかし、リバースブルートフォースアタックの場合はユーザーIDの側を次々と変えていくため、こうしたアカウントロックでは防ぐことができません。

パスワードスプレー攻撃

パスワードスプレー攻撃とは、よく使われるパスワードやランダムな文字列を生成し、検知回避のために複数のIDに同じパスワードを試す「ブルートフォースアタック」の一種です。

IPアドレスを変えたり、時間をずらしたりしながらゆっくりと攻撃を行うことから「low-and-slow」攻撃とも呼ばれ、不正なログインとして検知されづらい特徴があります。


Botの不正ログインを防ぐ、効果的な対策4選

不正ログインによる被害を防ぐためには、利用者側の意識改善とあわせてサービス提供者側も適切な対策を講じておかなければなりません。ここでは、Botによる不正ログインを防ぐ効果的な対策を4つ紹介します。

多要素認証を設定する

多要素認証は、認証の3要素である「知識情報」「所持情報」「生体情報」のうち2つ以上の要素を組み合わせて行う認証方式です。

それぞれの要素の例としては以下のようなものが挙げられます。

知識情報(その人が知っている情報)・ID/パスワード・PINコード・秘密の質問
所持情報(その人が持っているものに付随する情報)・携帯電話を使ったSMS認証・ICカード・ハードウェアトークン
生体情報(その人の身体的な情報)・顔認証・指紋・虹彩(目の膜)・声紋


なお、一般的な用語としては「二段階認証」が広まっていますが、単に「2つのステップを通る」だけでは十分に強度が高まらない点に注意しましょう。

たとえば「IDとパスワード」のあとに「秘密の質問」で認証を行う場合、二段階認証ではあるものの要素としてはどちらも「知識情報」であり、1つの要素しか使っていません。セキュリティを高めるためには、異なる要素を2つ以上使うことが大切です。

CAPTCHAを導入する

CAPTCHAは「チャレンジ/レスポンス型テスト」の一種で、人間による操作・入力であることを確かめるために使われます。とくにGoogleの提供する「reCAPTCHA」が有名です。

CAPTCHAのパターンとしては以下のようなものが挙げられます。

・ゆがんだ文字列を入力させる
・「私はロボットではありません」と書かれたボックスにチェックをつけさせる
・簡易なパズルを完成させる
・写真をいくつか見せて男女を判定させるなど

GoogleのreCAPTCHA 例


ログイン時にこのようなひと手間を入れることで、ひたすらIDやパスワードを繰り返し入力しようとする、悪質なBotによる攻撃の手を緩めることができます。

Botに対して一定の効果が望める一方で、「ゆがんだ文字列を入力させる」「簡易なパズルを完成させる」などのテストはユーザーに煩わしさを感じさせてしまう点がデメリットです。ユーザー体験としてはマイナスに働くため、CAPTCHAの設置はフォームの離脱率を上げてしまう可能性がある点を考慮しましょう。

リスクベース認証を導入する

リスクベース認証とは、ユーザーのアクセス履歴などをもとに「不正のリスク」を判定し、高リスクと判定された場合には追加認証を行う認証技術です。ユーザーの使用するOSやIPアドレス、ブラウザなどの情報を記憶し、いつもとは異なる環境からのログインの場合に「秘密の質問」や「ワンタイムパスワード認証」などが実施されます。

ユーザーがいつもと同じ環境でログイン試行していれば追加認証は行われず、ユーザーに負担をかけずにセキュリティ性を高められます。一方で、ユーザーのアクセス環境や行動を確認するために大量のパラメータを分析・保存する必要があり、運用や導入にコストがかかる点がデメリットです。

外部のユーザー認証サービスを利用する

場合によっては、外部のユーザー認証サービスを使ってリスクを移転させることも検討するべきです。

たとえばGoogleやYahoo、Facebookなどでは「OpenID Connect」による認証サービスのプロトコルを提供しています。こうした大手サービスの最新の対策が施された認証環境を活用することでリスクの軽減が可能です。

そのほか、「手間のかかるユーザーデータの管理を専門組織に委ねられる」「アカウント登録の敷居が下がり新規ユーザーを獲得しやすい」などのメリットも働きます。ただし、こうした外部サービスを活用する場合でも、何かあったときの責任はサービス提供者側でとらなければなりませんので、この点は留意しておく必要があるでしょう。


まとめ

今回は「不正ログインBot」の代表的な手口と、サービス提供者側がとるべき効果的な対策について解説しました。

今回は4つの対抗手段について紹介しましたが、どれを選ぶべきかは提供しているサービスの種類や規模、予算などによっても最適な運用方法は異なります。総合的な視点で、セキュリティレベルを最も効果的に高められる手段を考えていきましょう。