ブルートフォースアタック!パスワード総当たり攻撃の怖さ
ブルートフォースアタックとは総当たり攻撃と呼ばれ、パスワードを1件ずつ試行解析して取得するサイバー攻撃です。
これにはパスワードの総当たり攻撃・辞書攻撃・リスト攻撃等の種類があります。
パスワードロックを掛ける事、2段階認証を設ける事、そして何より英数字で8ケタ以上のパスワードにする事をおすすめします。
ブルートフォースアタック!パスワード総当たり攻撃の怖さ
正攻法というと変な言い方かもしれませんが、他人のログインパスワードを破るための常とう手段として使われるのが「Brute-force attack(ブルートフォースアタック)」です。
このサイバー攻撃は単純かつ有効なパスワード解読手段であり、簡単なパスワードであればある程被害を受けやすくなります。
本記事ではブルートフォースアタックの概要と被害、およびその対策について解説します。
元々ブルートフォース(Brute-force)とは「力任せ」「強引な」という意味で、「総当たり攻撃」により正しいパスワードを突き止める解析方法の一つです。
ブルートフォースアタックとは?
ブルートフォースアタックはパスワードを総当たりして、パスワードを突き止める手法の一つです。
総当たりといわれる通り、パスワードに使われていると推測される文字列を1つずつ変えながら順々に試して、正解にぶち当たるまで継続する手法です。
例えば4ケタの数字の鍵などの暗証番号であれば、その組み合わせ数は全部で1万通りということがあらかじめ分かっています。
4ケタの暗証番号に対する総当たり攻撃
数字は全部で10種類「0-9」までですよね。
「0000」から「9999」まで1ずつ数字を足しながら試すとなると、その試行回数の合計は以下となります。
0000
0001
0002
…
一の位10種×十の位10種×百の位10種×千の位10種=10,000通り
このように最大1万回を実施すれば100%の確率で正解のパスワードにたどり着けます。
つまり4桁の番号式のロックであればブルートフォースアタックで確実に開錠することができるのですね。
最も原始的かつ最も確実な攻撃
こういったタイプのパスワードの場合は、時間さえ掛ける事ができればいつかは正解を導き出せることを意味しています。
いたってシンプルであり、かつ試行時間に比例して解読の確率が上がるという最も確実な攻撃となります。
いまだにこのブルートフォースアタックは現役で、この攻撃による様々な被害の報告を受けています。
パスワードを試行するのはPCマシン
このブルートフォースアタックは人間手作業でおこなう作業ではありません。
これを人海戦術でやると途方もない時間が掛かります、現実的ではありませんよね。
この作業を専門におこなうプログラムを開発し、専用サーバー等のマシンに総当たり攻撃をさせれば、パスワードを突き止めれる可能性が上がります。
ブルートフォースアタックの攻撃パターン
ブルートフォースアタックの種類は大きく分けて3つあります。
・文字通り全ての組み合わせを総当たりで試行する場合
・パスワードに設定されがちなキーワードを元に試行をする辞書攻撃
・突き止めたパスワードで他サービスもあたるリスト攻撃
パスワード総当たりによる攻撃
先ほども述べましたが、総当たり攻撃は全ての配列パターンを片っ端から試していく方法です。
例えば、0から9までの数字を使い4桁のパスワードを設定している場合、0001・0002・0003と順に試していき、1万通り(10の4条)の中からパスワードを突き止める訳ですね。
このくらいの配列なら根気よく試せば人の手でも解析は可能です。
過去のデータではありますが、下の試行時間表にある様にPCコンピュータなどを使えば、4ケタの数字だけなら約3秒で全パターンを終了できるという指標が出ています。
成功(傾向)キーワードを集めた辞書攻撃
これは過去に解析に成功したパスワードのデータや、使われやすいとされるパターンを辞書データの様に蓄積させて、その中から試行するというものです。
過去に解析に成功したパスワードをリスト化して分析すると、ユーザーの癖であったり設定傾向がわかります。
パスワード自体が試行価値のあるデータ群の一つとして集積されているのですね。
自分が思い出しやすいパスワードではダメ
誰もが簡単に思いつくような文字や「単語」になったものは、パスワードに設定してはいけません。
でないと今は簡単にパスワードを読み取られる時代です。
流出したパスワードを調査した結果、ユーザーは自分自身が予測可能で入力しやすいパスワードを使い続けている事が判明しています。
パスワードはあくまで自分のためなので仕方ないかも知れませんが、本来他人から予測されやすいパスワードはもうパスワードでは無いのです。
パスワードトップ100
現実問題として、簡単に解読ができてしまうような「123456」や「password」などの簡易的なパスワードが実際に使われているのです。
詳細は、米国のセキュリティ会社である「Splash Date」の調査データをご覧ください。
リスト攻撃
リスト攻撃とは一度ログインできた「ユーザー名」「パスワード」を他サービスでも試行する方法です。
例えば、Instagramのユーザー名・パスワードがたまたまヒットしたとします。
するとそのユーザー名・パスワードを利用して、TwitterやGoogleアカウントなどのサイトに試してログインできるか試みるのですね。
これは複数のパスワードを記憶しきれないという盲点を狙った攻撃と言っていいでしょう。
総当たり攻撃にどれくらいの時間を要するか
数字10種以外にアルファベット(大文字と小文字)とを組み合わせた4桁の文字列の場合、利用できる文字種類は合計62個です。
62種の文字を組み合わせたパスワード配列を全て試すとなると、それこそ人類の歴史程の年月に相当するものすごい時間が掛かります。
文字種類と必要な解読時間
使用文字の種類 | 使用 文字数 |
最大解読時間 | |||
---|---|---|---|---|---|
入力桁数 | |||||
4桁 | 6桁 | 8桁 | 10桁 | ||
英字(大文字小文字区別無し) | 26 | 約3秒 | 約37分 | 約17日 | 約32年 |
英字(大文字小文字区別有り) +数字 |
62 | 約2分 | 約5日 | 約50年 | 約20万年 |
英字(大文字小文字区別有り) +数字+記号 |
93 | 約9分 | 約54日 | 約1千年 | 約1千万年 |
引用:コンピュータウイルス・不正アクセスの届出状況「2008年9月分および第3四半期」について
上記の表で整理したように、8桁以上のパスワードにすれば試行時間もそれだけ長くなりますね。
10年以上前の計測データである事に注意
ただこのデータは2008年の報告データに基づくものです。なので上記の試行時間に安心してはいけないと思います。
これから10年以上の年月が経過していますので解析マシンやプログラム側もレベルが飛躍的に上がっていてもおかしくはありません。
ですが基本、桁数を増やせばそれだけ試行回数が天文学的に増える事は一つの指針として間違いありませんね。
ですのでパスワードは10~12桁などにし、文字数は多く種類も英数字・記号などを併用して設定する事をお勧めします。
パスワードを解析されると…?受ける被害
金銭的な実被害の発生
ネットバンキングやキャッシュレスなど、WEB上でお金またはそれに相当する価値を管理・取引する事が当たり前になりました。
こうしたサービスは他人に不正使用されないような堅牢なセキュリティがあって初めて機能します。
しかしその要となるパスワードが破られてしまえば、当然の事ながら不正取引されるなどの被害をこうむります。
そして一番問題なのが連鎖被害です。
共通パスワードによる連鎖被害
皆さんもご経験があると思いますが、大体パスワードは複数のサービスで同じパスワードにしている事が多いと思います。
一旦そのパスワードが解析されてしまうと、他のサービスも総当たりで調べられてしまいます。
そうなると他サービスでも不正ログインをされてしまう恐れがありますね。
こうした攻撃は「リスト攻撃」と呼ばれ、共通パスワードの使い回しにより起こる今一番厄介なセキュリティリスクの一つです。
いくら文字列が多く複雑なパスワードにしたとしても、使いまわすのはリスクにつながる事を意味します。
個人情報・機密情報が漏洩する
パスワードによって保護されていた個人情報や機密情報が漏洩してしまう被害が発生しています。
過去にもWEBデータベースへのログイン情報が盗まれて、会員情報が全て漏えいしてしまったというケースは少なくありません。
そしてWEBサービスへのログイン情報だけでなく、端末間の機密情報のやり取りにも注意を払わなければなりません。
メールをフィッシングされて機密情報を盗まれる
例えば、メールで機密情報を送る際にZIP等の圧縮ファイルにパスワードを設定することがありますよね。
※ファイル自体を一度送り、パスワードを次のメールで送るという訳のわからない仕様のあれです。
パスワードを設定しておけば、送信メールをハッキングされても中身を見られてしまう事を防止できるので有効です。
しかしこのPDFやZIPファイルに掛けられているパスワードをブルートフォースアタックで破られてしまうと、情報が漏れてしまいます。
こういった機密情報の入ったファイルパスワードへの総当たり攻撃被害も出ているのです。
WordpressなどのWEBサイト、SNSなどが改ざんされる
WEBサイトを管理するためのログインパスワードが破られると、WEBサイト内容を書き換えたり、破壊する事ができるようになります。
またパスワードを解析される事で、以前Facebookの乗っ取りのようなSNSの改ざん被害が報告されていました。
これによりSNSサービス側も毎回ランダムデータと掛け合わせたハッシュ値を保存するなどして、パスワードを読み取られない様な対応が必要になりました。
ブルートフォースアタックの被害事例
セブンイレブンの7pay事件
7payの認証を潜り「不正利用」「不正チャージ」が行われていたというものです。ごく最近の事件ですよね。
不正ログインの回数は数千万回行われ、7月中旬までに不正利用被害にあった方は808人にまで膨れ上がり、被害総額は3861万5473円と大きな被害となっています。
決済などの個人情報やクレジット情報を入力する局面では、認証をおこない、通信保護をして安易なパスワードは設定しないように確認する必要があります。
そういった認証過程を予算を惜しんだが故に無視してしまい、起こってしまった事件ですね。
Guardicore報告のハッキングキャンペーン
Windows「MS−SQL」やphpMyAdminサーバーを感染させる事を目的としたハッキングキャンペーンが告知されました。
ログインを試みた結果、認証に成功されてしまったMS−SQLサーバーやマシンが50,000台以上ありました。
各マシンのサーバーアドレス・ユーザー名・パスワードが別利用を想定してファイルに保存されてしまうといった事が起こりました。
同じユーザー名・パスワードを利用していたが故にリスト攻撃の標的にされ、結果これほどの数になっていると思われます。
サイトのリダイレクトやユーザーへのマルウェア感染攻撃
とある某WEBサイトがブルートフォースアタックによるパスワードを解析され、不正ログインをされました。
そのサイトを訪問すると別サイトにリダイレクトされてしまうものです。
巧妙な事に2回目のアクセスはリダイレクトされずに通常通りWEBサイトが映るため、攻撃された事に気づきにくかったという事件です。
さらにはハッキングされたWEBページを開くと同時に添付ファイルがダウンロードされ、それを開くとそのユーザーのPCがマルウェアに感染するという悪質な攻撃にも遭遇しています。
ブルートフォースアタック8つの対策方法
ブルートフォースアタックを防ぐには、サービスを提供するシステム側とユーザー側の双方が対策を取らねばなりません。
以下にブルートフォースアタックにおける有効な8つの対策方法をご紹介します。
1.ログイン試行回数を制限する
まずはWEBシステム側の対策として有効なのがログイン試行回数に制限を設ける事です。
例えばパスワードの入力に3回失敗したら自動ロックされたり、再び入力するには一定時間を要するといった仕組みにするのです。
そうすればブルートフォースアタックによる連続試行を実施する事は不可能になります。
2.WordPressならプラグイン「SiteGuard WP Plugin」
Wordpressでこのようなブルートフォースアタックを受ける可能性は普通にあります。
全世界のWEBサイトの3割がこのWordpressシステムによるサイトといわれています。
ユーザー数が多いという事はそれだけ設定パスワードの脆弱性の度合いも上がる訳です。
ですので、ユーザーであればWordPressへのブルートフォースアタックをご自身で防がなければなりません。
おすすめプラグイン「SiteGuard WP Plugin」
Wordpressのオススメするプラグインが「SiteGuard WP Plugin」です。このプラグインにより上記の「ログインロック」を設定することです。
不自然なアクセスに対する制限やアラートを設定する
不自然なアクセスを感知した時に自動でロックを掛けるだけでなく、不自然なアクセス時にWEB管理者に対してアラート通知が発信される機能なども有効ですね。
・普段と違うIPアドレスが通信源である場合
・国内のWEBサービスなのに海外からのアクセスがある場合
このように通常の現象以外の場合にアラートが出るとより効果的です。
3.8桁以上のパスワードを設定する
まずはパスワードの文字種類と桁数を増やす事です。これが基本ですよね。
単純に0~9の数字のみの組み合わせであったとしても、8桁の数字があればその組み合わせパターンは1億にのぼります。
これに加え英字(大文字小文字は区別しましょう)と数字で8桁にすれば、その組み合わせパターンは約218兆通りです。
つまりまずはパスワードを8桁以上にしておけば、ブルートフォースアタック対策としてはかなりの効果があると言えます。
6ケタ等はまだ十分とは言えないので、最低でも英数字の組み合わせで8ケタ以上に変更するようにしましょう。
4.強固なパスワードを生成するツールを利用する
いきなり全く意味を持たないしかもランダムな長い文字列を作るとなると、あまり作る機会がないのでちょっと考えますよね。
そこでそういった英数字文字列を作ってくれるパスワード生成ツールをご紹介したいと思います。
これらのサービスを利用すると指定した文字数でランダムな文字列を生成してくれるので便利です。
しかし自分がわからなくならないように、設定する前にきちんとメモしておきましょう。
パスワード生成ツール
パスワードメモをスマホの写真に保存
とりあえずパスワードは一覧でメモ書きしておき、それをスマホで撮影しておくと良いと思います。
いざとなったら写真データを見ればわかりますからね。
5.パスワードは読める様な単語にしない
辞書攻撃が利用されるケースを考えれば、パスワードは読んでも全く意味のない文字列にするべきです。
あなた名前や生年月日を用いることはもちろん、実際に読める「password」という単語はご法度です。
それから例えば「qwerty」や「zxcvbnm」などキーボードのキーの横並びをそのまま設定したパスワードは、実は非常に多くの人が使っていると言われます。
読めてしまう文字や推測されやすい文字や数字の組み合わせは、数は多くてもセキュリティ強度が低くなるので注意です。
6.2段階認証にする
2段階認証とはIDとパスワードの他に、ユーザーの端末を使った追加認証をおこなうセキュリティ形式です。
・メールで送られてくるセキュリティコードの入力
・SMS(ショートメッセージサービス)でスマホに認証コードを発行
以上の様に別端末を利用して、2回認証を行います。
7.ブラウザやIPで本人認証
あくまでブルートフォースアタックは、普段利用しない住所(IPアドレス)から攻撃を受けます。
ですので同じブラウザやIPアドレスからのアクセス時には2段階目の認証プロセスは必要ないといった仕組みも取れます。
2段階認証が可能なサービスを利用していない場合は積極的にこの方式を活用すべきでしょう。
8.ワンタイムパスワードの利用
ワンタイムパスワードは高い安全性が求められる金融機関などでよく利用されている方法で、「一度きりのパスワード」のことです。
決済や認証を行う重要な局面では毎回必ず新しいパスワードを発行して利用します。
この時一度使ったパスワードは再度利用ができないため、上で述べた辞書攻撃やリスト攻撃に対して有効なセキュリティ対策だといえます。
以上のような対策を行うことにより、ブルートフォースアタックを防げる可能性が高まります。
まとめ
ここまでブルートフォースアタックの内容や対策をご紹介しました。
ブルートフォースアタックは業者が金庫のロックを外す事とは違います。マシンがおこなうので時間さえあれば確実に外せるのです。
しかもユーザーに関連したものやよく使われるパスワードだと、桁数に関係なくマシンは短時間で突き止めてしまいます。
つまり安易なパスワードだと突破されるリスクがある事をお分かりいただけたと思います。
ブルートフォースアタック側も成功事例をもとにレベルアップしているのですね。
今も昔も変わらず、パスワードは長いものを
ブルートフォースアタックは技術知識やノウハウの必要が無い、いたって原始的な方法として昔から知られています。
その対策も昔から言われているとおりです。パスワードはなるべく文字種類と桁数を多くするべきです。
さらにはログインロックの設定もして、可能であれば2段階認証の導入も実施しましょう。
貴方のパスワードは単純でわかりやすく、しかも桁数が少ないようなものを利用していないでしょうか。
是非ご確認をお願いします。