パスワードスプレー攻撃とは?リバースブルートフォースとの違い・対策まとめ

多くのシステムがサービスとして提供されている現代、
「IDとパスワード」
を入力する事は多々あります。

そんなパスワードが破られれば、氏名や住所だけではなく、クレジットカード情報なども抜き取られるなど、非常に危険な状況となります。

そんなパスワードを破るための方法の1つとして
「パスワードスプレー攻撃」
というものが存在します。

今回は、そんなパスワードスプレー攻撃と、混同されやすい「リバースブルートフォース」との違いなどを解説していきます。

パスワードスプレー攻撃とは

パスワードスプレー攻撃とは、ウェブサイトやオンラインアカウントのセキュリティにおいて、最も一般的な攻撃手法の1つです。

特徴

パスワードスプレー攻撃は、多くのユーザーアカウントに対して同じパスワードや簡単なパスワードを試す手法です。

攻撃者は特定のアカウントを狙うのではなく、広範なアカウントに対して繰り返しパスワードを試すことで、弱いパスワードを持つアカウントを見つけ出すことを目的にしています。

この攻撃手法は、手当たり次第に総当たりでパスワードを入れていく
「ブルートフォース攻撃」
の一種として位置づけられています。

仕組み

攻撃者は、多くのユーザーアカウントに対して同じパスワードリストを使用し、一つずつアカウントのログインを試みていきます。

最近のウェブサービスでは、
「一つのアカウントで複数回ログインを間違えると、一時的にアカウントをロックする(もしくはSMS認証などが必要になる)」
という仕組みを導入している所が多いです。

そうすることで、何度もパスワード入力をされて破られる・・・ということを避けられます。

この方法は、
「すでに入力されているユーザーID」
に対して制限をかけるものですが、これを逆手に取ったのがパスワードスプレー攻撃です。

パスワードスプレー攻撃では、一つのアカウントではなく、複数のアカウントに対して同じパスワードを使います。

そのため、例え同じ端末で同じIPアドレスで何度失敗したとしても、システムのカウント上は、
「各アカウントで1回ずつの失敗」
ということになります。

そうすることで、攻撃者は実質何度もログインを試すことができているというのが、このパスワードスプレー攻撃の仕組みです。

ブルートフォース・リバースブルートフォースとの違い

先程パスワードスプレー攻撃は、
「ブルートフォース攻撃の一種」
という表現をしましたが、具体的にはブルートフォース攻撃・リバースブルートフォース攻撃とはどう違うのでしょうか。

ブルートフォースとの違い

ブルートフォース攻撃は、全ての可能な組み合わせを試すことにより、パスワードを解読しようとする手法です。

つまり、一つのアカウントに対して複数回のパスワード入力を行います。

これは、前述したように最近のサービスでは
・一時的にアカウントがロックされる
・数分(数時間)間を開けなければ再度ログインを試せない
・SMS認証などが必要になる
・別の認証方法と併用する必要が出てくる
など、ブルートフォース攻撃に対する対策が取られています。

これが、ブルートフォース攻撃とパスワードスプレー攻撃の大きな違いです。

リバースブルートフォースとの違い

リバースブルートフォース攻撃は、ブルートフォース攻撃が
「IDを固定して色々なパスワードを試す」
という方法に対して、
「パスワードを固定して、色々なIDを試す」
という方法です。

一見すると1つのパスワードを複数のアカウントで試すという点で、パスワードスプレー攻撃と同じ様に感じるかもしれません。

しかし、これらは微妙な違いがあります。

リバースブルートフォース攻撃はパスワードを「総当たり」で攻撃していくのに対して、パスワードスプレー攻撃は
「一般的によく使われるパスワード」
で、複数のアカウントを攻撃します。

やり方としては同じように見えますが、そこには微妙な違いがあるのです。

パスワードスプレー攻撃の対策(利用ユーザー)

続いて、パスワードスプレー攻撃への対策を解説していきます。

対策は、サービスを利用するユーザー側の対策と、サービスを提供する側の対策を分けて解説していきます。

まずは、サービスの利用ユーザー側の対策です。

多要素認証の設定

パスワードスプレー攻撃は、IDとパスワードが合致するアカウントを探す方法です。

そのため、仮に1つ目のパスワードが通っても、指紋認証やFACE ID等による多要素認証と組み合わせることで、ログインができなくなります。

パスワードスプレー攻撃が
「パスワードを始め個人情報がバレたのではなく、たまたまパスワードとIDが一致してしまった」
という特徴から、それ以外の認証方法があれば、被害を受けない可能性が高いです。

また、過去に利用されたことがない端末でログインした際に、メールへその事が通知されるような仕組みがあるものは、それらを導入することで、被害を最小限に抑えることも可能でしょう。

推測されないパスワードを利用

次に、パスワードを推測されないような難しいものに変えることです。

パスワードスプレー攻撃は、1つのパスワードに対して複数のユーザーIDを入力します。

ということは、ユーザーIDが6桁の数字だとしても、100万通りのユーザーIDが存在します。

1回のパスワードでこれら全てのユーザーIDで試すとすると、当然
「一般的にパスワードとして利用される可能性が高いパスワード」
から優先的に行うと考えられます。

そのため、
・誕生日
・英単語
・名前(イニシャル)
などのような推測されやすいものほど、パスワードスプレー攻撃の被害に遭う可能性が高いと言えます。

ですので、推測されないようなランダムなパスワードを設定することで対策が可能です。

Googleなどで、「パスワード生成」などで検索すると、ランダムなパスワードを作ってくれるようなサービスが無料で使えます。

こういったパスワードを利用することで、セキュリティレベルは格段に上がります。

パスワードを使い回さない

1人の人が多くのサイトを利用する現代、
「複数のサイトのパスワードが同じ」
という人は多いのではないでしょうか。

しかし、パスワードを使い回すことで、パスワードスプレー攻撃の被害も増える可能性があります。

攻撃者も、1つのサービスだけに攻撃している訳ではなく、複数のサイトで同じように攻撃している可能性が高いです。

結果的に、1つのサイトでパスワードがバレた際に、同じIDとパスワードで別のサービスにもログインしてみるという可能性は十分にあります。

そのため、パスワードの使い回しは、非常に危険なのです。

使用しないアカウントの削除

昔からずっと同じサービスを利用し続けるのは稀です。

あなたも、過去利用していたけど、今は使っていないサービスがあるのではないでしょうか。

そんな過去に利用していたアカウントも、そのまま放置しておくのは危険です。

先程の「パスワードの使いまわし」にも関連してきますが、例えば昔使っていたサービスのセキュリティレベルが低く、多要素認証などができないものだった場合。

そのサイトでパスワードがバレた結果、他のサービスもログインされる危険性があります。

特に、
・転職サイト
・一時的に購入したネットショップ
・買取サービス
・婚活サイト
などは、登録したものの、一定期間だけしか利用しない可能性が十分にあります。

こういったアカウントを順次消していくのが良いでしょう。

基本は、メールを確認している際に、メルマガなどが届けば
「今必要なアカウントか」
を精査していくのが良いでしょう。

リスクベース認証の設定

リスクベース認証とは、ユーザーの普段の行動と違った動きを検知して、本人確認を行ってくれるような仕組みです。

ユーザの行動パターンとして
・地理情報
・利用デバイス
・時間帯
・IPアドレス
等が利用されることが多いです。

例えば、普段は日本からアクセスしているのに、急にアメリカからのログインがあれば、
「本当に本人なのか」
を確認する必要があります。

これが、リスクベース認証です。

このリスクベース認証を設定することで、パスワードスプレー攻撃の被害に遭う可能性が下がります。

パスワードスプレー攻撃の対策(システム管理者側)

続いて、サービスを提供している管理者側の対策を解説していきます。

多要素認証やリスクベース認証の導入

ユーザー側でお話した、多要素認証やリスクベース認証などをサービスとして導入する事が1つの対策です。

これらを、設定項目として用意するのではなく、強制的に全ユーザーに対して行うことで、サービスのセキュリティレベルが向上します。

パスワードの制限を強くする

サービスによって、パスワードのレベルが異なりますが、複雑なパスワードを必須になるように設定することで、自然とパスワードスプレー攻撃の対策もできます。

一般的には
・8文字以上
・大文字小文字を含める
・記号を入れる
などの対策がありますが、更に強固にするなら必須文字数を増やすなどが挙げられますが、これらはユーザーの登録のハードルにもなりますので、実装する際には注意が必要です。

「ユーザーの負担が少なく、且つセキュリティに強いサービス」

が求められるのです。

ログ監視

サービスを利用する際のログを監視することで、パスワードスプレー攻撃の対策が可能です。

例えば、同一IPアドレスから短時間で複数回のログインが試みられた場合。

IDが別々であれば、パスワードスプレー攻撃の可能性を疑う事ができます。

しかし、これも攻撃者が別のPCを踏み台に複数のIPアドレスから攻撃をしてきた場合には、検知が難しいです。

その場合には、
「一定時間の間の平均ログイン失敗時間」
を算出し、それが突出したタイミングでアラートを設けるなどの対策が有効でしょう。

パスワードスプレー攻撃は、
「ログイン成功よりも、失敗の方が圧倒的に多くなる」
という特徴があるので、この点を考慮して対策をすれば良いでしょう。

ただし、パスワードスプレー攻撃以外の攻撃も考慮する必要があり、網羅的に検知が可能な設計が必要となります。

高いセキュリティレベルのシステム開発はAMELAに

今回は、パスワードスプレー攻撃について見てきました。

セキュリティの分野は、攻撃者とのイタチごっこな部分があり、常に改良が必要です。

新しい攻撃手法を学び、それに対抗するための対策を用意する。

これからシステムを導入しようと考えている企業様は、是非その点にも着目してシステムを検討していただきたいと思っています。

AMELAでは、海外の優秀なエンジニアを参画させるオフショア開発により、高い実績を出しています。

安心安全なシステム開発や、システムの導入を検討される際には、是非ご相談いただければと思います。