総当たり攻撃
出典: フリー百科事典『ウィキペディア(Wikipedia)』
総当たり攻撃 (そうあたりこうげき、英:Brute force attack、もしくは力任せ攻撃)とはコンピューターシステムにおける暗号解読法のひとつ。
目次 |
[編集] 概要
総当たり攻撃とは、人間の計算能力では解析不可能な回数の計算をコンピューターにまかせ、時間の許す限りパスワードの検証等を行う暗号解読法。時間的制約が無い限りは、もっとも完璧にパスワードをクラックする方法。
このごろではカタカナでブルートフォースアタックとも呼ばれ、ネットワークに接続したPCのアカウントを奪い、自分の意のままに操作し、管理者を困らせるクラッカーも存在する。
類似する暗号解読方法としては、予め存在する候補を優先的に組み合わせて検証していく辞書攻撃等がある。
[編集] 2進法
コンピュータシステムで扱われているパスワード等を含む文字列(String)は、全て2進数に還元できる。なので「0,1,10,11,100,101,110,111,1000・・・」と順番に入力していくと、いつかはパスワードに合致する文字列を見つけることができる。
これはユーザーから見れば文字であっても、コンピュータにとっては文字コードと呼ばれる数字の羅列で扱っているため、そして数字がコンピュータ内では2進数によって扱われている以上、必然的にそのようになりえる。
[編集] 時間
人間が手作業で行った場合、入力が速い人が行った所で、恐るべき時間と労力が掛かる事となるが、単純なコンピュータプログラムで自動化する事が可能であり、またコンピュータは、そのような繰り返しの作業において、非常に有効に機能する。
一台のコンピュータを使った場合は、そのコンピュータの処理速度(主演算装置の処理能力だけではく、処理に関係する部分の全体的な処理能力)に応じて、いずれは正解に行き当たる。分散コンピューティングにおいては、(個々のコンピュータの空き時間に)探索する役割を分担して検索するようプログラムすると、使えるコンピュータの数によっては直ちに解読できる事がある。遅いか早いかは、あくまでも確率の問題である。故に、もっとも原初的な方法論でありながら、時間的制約が無い限りは、もっとも万能に使う事が出来る方法である。
[編集] 問題点
総当たり攻撃は、回答となるキーワードが長ければ長い程、指数的に正解(目的の結果が得られるキーワードが出る)へ至るのに掛かる時間が長くなる。また「入力しする」、「正解かどうかチェックする」、「不正解だったら1ビット追加する」を繰り返して行うため、正解かどうかチェックする対象のシステムが何らかの理由で反応を返さなくなった場合には、検証作業は停止してしまう。
一般的にパスワードによる保護を行っているコンピューターは、一定時間内に規定回数以上のパスワード誤入力が続いた場合、ロックアウト(アクセス禁止ともいう)してしまうように設計されているため、総当り攻撃による解析が難しい場合がある。例として銀行のキャッシュディスペンサーはカードを挿入して、3回暗証番号を間違えると、それ以上の操作を受け付けず、防犯のためカードを装置内の保管箱に取り上げてしまう。
[編集] 攻撃手段
ハッカーやクラッカーによりコンピューターシステムを攻撃する目的は様々だが、最大のゴールはシステムのルート(管理者)権限を得ることである。
基本的にはルート権限を奪うため様々なツールを利用しているが、初期攻撃としてポートスキャンなどの初歩的な総当たり攻撃を開始し、ずさんな管理をしているサーバやパソコンを探す。
セキュリティーの弱いシステムにはウィンドウズに標準で装備されているtelnetで簡単にルート権限を簒奪されてしまう。
パスワードを空白に設定しているPCなら何の苦労も無くユーザー権限を取得できるし、パスワード設定をしているPCであっても、白木葉子【シラキヨウコ】等のパスワードクラッツールを利用すれば、総当たり攻撃でパスワードを手当たり次第に入力していくため、それほど苦労もなくユーザー権限を奪取されてしまう。
FTP等で侵入が試みられる場合、ログに大量のパスワード入力記録が残り、管理がしっかりされているサーバーだとすぐに発見できるが、ルート権限を簒奪されると侵入者はログを削除にかかるので、注意が必要だ。
[編集] 防衛手段
ブルートフォースで攻撃されてもシステムへの侵入が非常に難しいシステムを構築することが大事だ。簡単にセキュリティー効率をアップするにはまず:
- パスワードを辞書にない文字、数字、記号の羅列にする
- パスワードを頻繁に変更する
- パスワードの入力回数を制限する
等が挙げられる。
総当たり攻撃に真っ向から勝負を挑むことも可能だ。
- 1000円で焼肉食い放題の店を経営するとき、客が注文するのに合わせていい肉をひたすら提供していては、客が来るほどに赤字になる。しかし、「ただいま混雑しておりまして、ご注文の品をお持ちするまで時間がかかります。それまで申し訳ありませんがこちらをお楽しみください」と言い超安いサラダを大量に提供すれば、客はそのサラダである程度腹を膨らませる。その後40分くらいしてからいい肉を少量提供すれば客は「今回は残念だったが、次はすいているときにこよう」と思う。
- それと同じ要領で(もっと悪質になるように)クラッカーをもてなすのが最良のセキュリティだといえる。例えばパスワードを入力する回数を制限すれば、telnetの接続が切断されてしまう。次に応答時間を徐々に長くすれば、だんだん反応速度が遅くなり、クラッカーはかなりイラつく。ここでニセログインプロンプト等が出るようにすれば、大抵はあきらめる。なにか崇高な志をもってクラックを行なっているような者でもなければ、こういったサーバには二度と来る気がなくなってしまうものである。
ネットワークからの侵入を100%防止する方法は存在しない。スタンドアロンのシステムであっても、その装置を直接さわることができる場所に設置されていれば侵入は可能。装置の使用を監視したり、パスワードを他人に漏らしたりしないことが侵入させないことが基本的なセキュリティである。
[編集] 関連項目
カテゴリ: セキュリティ技術 | 暗号技術 | コンピュータ関連のスタブ項目