パスワードクラック
パスワードクラックとは
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の再インストールを行うこと。