パスワードクラック

パスワードクラックとは

OSやプログラムで保存・伝達されるデータからパスワードを割り出すクラッキング手法です。

システムにネットワークを介してログインを試みる「オンライン攻撃」と暗号済みファイルを取得して解読する「オフライン攻撃」があります。


パスワードクラックの種類

パスワード推測

ユーザIDや個人情報からパスワードを推測する方法です。

ターゲットの個人情報をWEBなど様々な情報源から取得することで、パスワードとして使いる可能性が高い文字列を類推します。

パスワード無しやユーザ名とパスワードが同じである場合など、経験則に基づいて推測を行うこともあります。

推測は、利用者自身がパスワードの初期化を行なえるシステムで効果的といえます。


辞書アタック

パスワードとして利用される可能性が高い単語を「辞書ファイル」に登録し、辞書ファイルを元に解析を行う手法。


総当り(BruteForce)

使用可能な文字全てを総当りで試行する手法です。

出現頻度の高い文字を優先する必要がある。

(アルファベットなら「e」が最も多く出現することや「y」の出現頻度が低いといったことを考慮する。)

理論上、必ず解析が成功します。


事前計算(レインボーテーブル)

事前計算とは辞書(あるいはパスワード候補の探索空間)の各語のハッシュ値を計算し、ハッシュ値の一覧を検索できるよう平文パスワードとハッシュ値のペアを保存しておくことである。

暗号化されたパスワード(ハッシュ値)を新しく入手した際、平文パスワードを割り出すために照合します。


パスワード盗聴

ネットワークを監視し、パケット内からパスワードを盗聴することで取得します。

暗号パケットの解読を行う場合もあります。


SAMファイル取得 (Windows 2000のみ)

「C:\WINNT\system32\config\SAM」にはユーザ情報が格納されている。

これをそのまま入手することは不可能であるが、SAMのバックアップファイルが「C:\WINNT\repair\sam」に格納されており、これはデフォルトでEveryoneにアクセス権がある。

このファイルは最新情報が反映されていないので、「ntbbackup」コマンドを実行する必要がある。

圧縮されているため、「expand sam sam.txt」コマンドで解凍する必要がある。

ツールとしては「pwdemp3e」や「LOphtCrack」が有名。


passwdファイル(UNIX)

/etc/shadowファイルから、rootの識別や暗号化されたパスワードの解析を実施。


対策

予防と防止

・ワンタイムパスワード方式やバイオメトリック認証システムなど、クラックが困難となる認証システムを採用する。

・攻撃者が暗号化されたパスワードにアクセスできないような仕組みを、確実に施しておくこと。

・オンラインの場合ログイン情報をログとして記録しておくこと。


検知

・IDSやIPSで検知する。

・定期的にサーバのログを解析する。


復旧

・攻撃を受けたホストにデータの改ざん、不正プログラムの配置、設定変更などがないか確認し、問題箇所を修復する。

・場合によってはOSの再インストールを行うこと。


関連ページ